Subject: RE: linux-next: Tree for Nov 19 (drivers/edac/igen6_edac.c)

From: "Luck, Tony" <[email-masked]>
Date: Thu, 19 Nov 2020 17:53:33 +0000

> ../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.

-Tony