On 11/19/20 9:53 AM, Luck, Tony wrote: >> ../drivers/edac/igen6_edac.c: In function 'ecclog_nmi_handler': >> ../drivers/edac/igen6_edac.c:525:10: error: 'NMI_DONE' undeclared (first use in this function); did you mean 'DMI_NONE'? >> return NMI_DONE; > > This driver has a #include <linux/nmi.h> > > But inside that file it says: > > #if defined(CONFIG_HAVE_NMI_WATCHDOG) > #include <asm/nmi.h> > #endif > > and the randconfig used doesn't set CONFIG_HAVE_NMI_WATCHDOG > > > Some options: > > 1) Drop that #ifdef from <linux/nmi.h> > It was introduced as part of this commit: > f2e0cff85ed1 ("kernel/watchdog: introduce arch_touch_nmi_watchdog()") > presumably for some good reason. > > 2) Make this edac driver select CONFIG_HAVE_NMI_WATCHDOG > Yuck! > > 3) Make this driver #include <asm/nmi.h> instead of <linux/nmi.h> > This fixes this build error, but I thought that general policy was to > use the <linux/*.h> if it exists rather than the <asm/*.h> one. > Maybe that's ok here because this is an x86 specific driver? > > I'm leaning toward option #3. I lean toward option #1 but #3 would be OK. We generally try NOT to surround #include lines with ifdef/endif as was done here for some reason. -- ~Randy