On 5/23/22 20:28, Genjian Zhang wrote:
From: huhai <huhai@xxxxxxxxxx> modpost complains once these drivers become modules. ERROR: modpost: "irq_err_count" [drivers/gpio/gpio-vr41xx.ko] undefined! Fix it by use spurious_interrupt() and export spurious_interrupt() when that symbol is =m. Fixes: 27fdd325dace ("MIPS: Update VR41xx GPIO driver to use gpiolib") Suggested-by: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx> Reported-by: k2ci <kernel-bot@xxxxxxxxxx> Signed-off-by: huhai <huhai@xxxxxxxxxx> --- arch/mips/kernel/irq.c | 3 +++ drivers/gpio/gpio-vr41xx.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c index 5e11582fe308..69f9a46bf9e5 100644 --- a/arch/mips/kernel/irq.c +++ b/arch/mips/kernel/irq.c @@ -49,6 +49,9 @@ asmlinkage void spurious_interrupt(void) { atomic_inc(&irq_err_count); } +#ifdef CONFIG_GPIO_VR41XX_MODULE +EXPORT_SYMBOL_GPL(spurious_interrupt); +#endif
You should not be exporting for just a specific configuration, export it unconditionally. The generic IRQ layer however prefers to use handle_bad_irq() which is already exported, can you consider using that?
-- Florian