EDAC/amd64: Do not load on family 0x15, model 0x13
authorBorislav Petkov <bp@suse.de>
Sat, 12 Dec 2020 14:20:28 +0000 (15:20 +0100)
committerBorislav Petkov <bp@suse.de>
Mon, 28 Dec 2020 11:18:11 +0000 (12:18 +0100)
Those were only laptops and are very very unlikely to have ECC memory.
Currently, when the driver attempts to load, it issues:

  EDAC amd64: Error: F1 not found: device 0x1601 (broken BIOS?)

because the PCI device is the wrong one (it uses the F15h default one).

So do not load the driver on them as that is pointless.

Reported-by: Don Curtis <bugrprt21882@online.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Tested-by: Don Curtis <bugrprt21882@online.de>
Link: http://bugzilla.opensuse.org/show_bug.cgi?id=1179763
Link: https://lkml.kernel.org/r/20201218160622.20146-1-bp@alien8.de
drivers/edac/amd64_edac.c

index f7087ddddb902109b3124d64fb0698a36a8ce5f6..5754f429a8d2d6dc56803fe04c9ee2564275a295 100644 (file)
@@ -3342,10 +3342,13 @@ static struct amd64_family_type *per_family_init(struct amd64_pvt *pvt)
                        fam_type = &family_types[F15_M60H_CPUS];
                        pvt->ops = &family_types[F15_M60H_CPUS].ops;
                        break;
+               /* Richland is only client */
+               } else if (pvt->model == 0x13) {
+                       return NULL;
+               } else {
+                       fam_type        = &family_types[F15_CPUS];
+                       pvt->ops        = &family_types[F15_CPUS].ops;
                }
-
-               fam_type        = &family_types[F15_CPUS];
-               pvt->ops        = &family_types[F15_CPUS].ops;
                break;
 
        case 0x16:
@@ -3539,6 +3542,7 @@ static int probe_one_instance(unsigned int nid)
        pvt->mc_node_id = nid;
        pvt->F3 = F3;
 
+       ret = -ENODEV;
        fam_type = per_family_init(pvt);
        if (!fam_type)
                goto err_enable;