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

From: Randy Dunlap
Date: Thu Nov 19 2020 - 13:12:42 EST


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