]> git.baikalelectronics.ru Git - kernel.git/commit
x86/nmi, EDAC: Get rid of DRAM error reporting thru PCI SERR NMI
authorBorislav Petkov <bp@suse.de>
Wed, 25 Jan 2017 19:30:29 +0000 (20:30 +0100)
committerBorislav Petkov <bp@suse.de>
Mon, 10 Apr 2017 15:13:48 +0000 (17:13 +0200)
commitc8f97a67964995ad64965c3afb2fde98cf2feb79
treeb30a16a9ddcd5725c824c168cef62d795a36fd33
parent1a4fe82da181d8f4c0a44ca022cfb63f8d9efdf7
x86/nmi, EDAC: Get rid of DRAM error reporting thru PCI SERR NMI

Apparently, some machines used to report DRAM errors through a PCI SERR
NMI. This is why we have a call into EDAC in the NMI handler. See

  32b2807c517b ("drivers/edac: add new nmi rescan").

From looking at the patch above, that's two drivers: e752x_edac.c and
e7xxx_edac.c. Now, I wanna say those are old machines which are probably
decommissioned already.

Tony says that "[t]the newest CPU supported by either of those drivers
is the Xeon E7520 (a.k.a. "Nehalem") released in Q1'2010. Possibly some
folks are still using these ... but people that hold onto h/w for 7
years generally cling to old s/w too ... so I'd guess it unlikely that
we will get complaints for breaking these in upstream."

So even if there is a small number still in use, we did load EDAC with
edac_op_state == EDAC_OPSTATE_POLL by default (we still do, in fact)
which means a default EDAC setup without any parameters supplied on the
command line or otherwise would never even log the error in the NMI
handler because we're polling by default:

  inline int edac_handler_set(void)
  {
         if (edac_op_state == EDAC_OPSTATE_POLL)
                 return 0;

         return atomic_read(&edac_handlers);
  }

So, long story short, I'd like to get rid of that nastiness called
edac_stub.c and confine all the EDAC drivers solely to drivers/edac/. If
we ever have to do stuff like that again, it should be notifiers we're
using and not some insanity like this one.

Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
arch/x86/kernel/nmi.c
drivers/edac/edac_stub.c
include/linux/edac.h