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

Florian Fainelli
2025-01-15T21:57:41Z

On 1/15/25 13:53, Dr. David Alan Gilbert wrote:
> * kernel test robot (lkp@intel.com) 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@intel.com/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@intel.com/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@intel.com>
>> | Closes: https://lore.kernel.org/oe-kbuild-all/202501160501.6r9pNtBg-lkp@intel.com/
>>
>> 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