Messages in this thread | | | Subject | Re: lk 4.7 regression: EDAC, amd64_edac: Drop pci_register_driver() use | From | Tony Battersby <> | Date | Wed, 15 Jun 2016 17:43:42 -0400 |
| |
On 06/15/2016 05:12 PM, Borislav Petkov wrote: > On Wed, Jun 15, 2016 at 04:46:40PM -0400, Tony Battersby wrote: >> The following commit is causing an oops: >> >> 3f37a36b6282 ("EDAC, amd64_edac: Drop pci_register_driver() use") >> >> The oops happens when I "modprobe amd64_edac_mod" on an Intel >> Xeon-based system, or when booting the same system with amd64_edac >> built-in. Obviously the module is not meant for this hardware, but it >> tries to load anyway and then oopses. > Hmm, that shouldn't happen. AFAICT, amd_cache_northbridges() doesn't > prevent us from loading as it should. > > Can you send me your .config please? Privately is fine too. > > It is late here so I can only think of this totally untested fix right > now: > > --- > diff --git a/arch/x86/kernel/amd_nb.c b/arch/x86/kernel/amd_nb.c > index a147e676fc7b..b913c6173c1b 100644 > --- a/arch/x86/kernel/amd_nb.c > +++ b/arch/x86/kernel/amd_nb.c > @@ -72,7 +72,7 @@ int amd_cache_northbridges(void) > i++; > > if (i == 0) > - return 0; > + return -1; > > nb = kzalloc(i * sizeof(struct amd_northbridge), GFP_KERNEL); > if (!nb) > --- > > More staring tomorrow. > > Thanks! >
With that patch applied, modprobe amd64_edac_mod correctly reports "No such device" and everything is fine. I also get a new line in dmesg on boot:
amd_nb: Cannot enumerate AMD northbridges
You might want to consider using -ENODEV instead of -1 for callers such as init_amd_nbs() that use the error value.
Tony
| |