Re: [tip:irq/core 6/17] ERROR: modpost: "irq_gc_mask_disable_and_ack_set" [drivers/irqchip/irq-brcmstb-l2.ko] undefined!

From: Florian Fainelli
Date: Wed Jan 15 2025 - 16:57:50 EST


On 1/15/25 13:53, Dr. David Alan Gilbert wrote:
* kernel test robot (lkp@xxxxxxxxx) wrote:
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
head: 12cbdcb9f05559ff72eb8a04df829852804c0276
commit: dd1f17a9faf5359d76644236cde4cc1720f1184d [6/17] irqchip/irq-brcmstb-l2: Replace brcmstb_l2_mask_and_ack() by generic function
config: arm64-randconfig-002-20250115 (https://download.01.org/0day-ci/archive/20250116/202501160501.6r9pNtBg-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250116/202501160501.6r9pNtBg-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501160501.6r9pNtBg-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>, old ones prefixed by <<):

ERROR: modpost: "irq_gc_mask_disable_and_ack_set" [drivers/irqchip/irq-brcmstb-l2.ko] undefined!

Hmm, that's not happy is it - I'll have a look.

We should be amending your original patch with the following:

diff --git a/kernel/irq/generic-chip.c b/kernel/irq/generic-chip.c
index 32ffcbb87fa1..c4a8bca5f2b0 100644
--- a/kernel/irq/generic-chip.c
+++ b/kernel/irq/generic-chip.c
@@ -162,6 +162,7 @@ void irq_gc_mask_disable_and_ack_set(struct irq_data *d)
irq_reg_writel(gc, mask, ct->regs.ack);
irq_gc_unlock(gc);
}
+EXPORT_SYMBOL_GPL(irq_gc_mask_disable_and_ack_set);

/**
* irq_gc_eoi - EOI interrupt


This was not going to be a problem back when Doug's commit was accepted, but later on, irq-brcmsbtb-l2 was allowed to become modular with 51d9db5c8fbbed160081d4cb5c193abdf67ded05 ("irqchip/irq-brcmstb-l2: Switch to IRQCHIP_PLATFORM_DRIVER").

This totally escaped me when I acked your patch making use of the generic irq_gc_mask_disable_and_ack_set implementation.
--
Florian