irqchip: Fix compile-testing without CONFIG_OF
authorArnd Bergmann <arnd@arndb.de>
Fri, 22 Oct 2021 15:49:21 +0000 (17:49 +0200)
committerMarc Zyngier <maz@kernel.org>
Mon, 25 Oct 2021 07:55:42 +0000 (08:55 +0100)
Drivers using the new IRQCHIP_PLATFORM_DRIVER_BEGIN helper
fail to link when compile-testing without CONFIG_OF,
as that means CONFIG_IRQCHIP is disabled as well:

ld.lld: error: undefined symbol: platform_irqchip_probe
>>> referenced by irq-meson-gpio.c
>>>               irqchip/irq-meson-gpio.o:(meson_gpio_intc_driver) in archive drivers/built-in.a
>>> referenced by irq-mchp-eic.c
>>>               irqchip/irq-mchp-eic.o:(mchp_eic_driver) in archive drivers/built-in.a

As the drivers are not actually used in this case, just
making the reference to this symbol conditional helps
avoid the link failure.

Fixes: f8410e626569 ("irqchip: Add IRQCHIP_PLATFORM_DRIVER_BEGIN/END and IRQCHIP_MATCH helper macros")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20211022154927.920491-1-arnd@kernel.org
include/linux/irqchip.h

index 67351aa..29dbe67 100644 (file)
@@ -39,8 +39,9 @@ static const struct of_device_id drv_name##_irqchip_match_table[] = {
        {},                                                             \
 };                                                                     \
 MODULE_DEVICE_TABLE(of, drv_name##_irqchip_match_table);               \
-static struct platform_driver drv_name##_driver = {            \
-       .probe  = platform_irqchip_probe,                               \
+static struct platform_driver drv_name##_driver = {                    \
+       .probe  = IS_ENABLED(CONFIG_IRQCHIP) ?                          \
+                       platform_irqchip_probe : NULL,                  \
        .driver = {                                                     \
                .name = #drv_name,                                      \
                .owner = THIS_MODULE,                                   \