genirq: Force inlining of __irq_startup_managed to prevent build failure
authorGeert Uytterhoeven <geert@linux-m68k.org>
Tue, 4 Jul 2017 10:06:01 +0000 (12:06 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 4 Jul 2017 10:36:44 +0000 (12:36 +0200)
If CONFIG_SMP=n, and gcc (e.g. 4.1.2) decides not to inline
__irq_startup_managed(), the build fails with:

    kernel/built-in.o: In function `irq_startup':
    (.text+0x38ed8): undefined reference to `irq_set_affinity_locked'

Fix this by forcing inlining of __irq_startup_managed().

Fixes: 761ea388e8c4e3ac ("genirq: Handle managed irqs gracefully in irq_startup()")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Link: http://lkml.kernel.org/r/1499162761-12398-1-git-send-email-geert@linux-m68k.org
kernel/irq/chip.c

index 2e30d925a40d9b638854949bac95ba209590b98b..aa5497dfb29e3e1b7211094beda78097b8fba68f 100644 (file)
@@ -234,7 +234,7 @@ __irq_startup_managed(struct irq_desc *desc, struct cpumask *aff, bool force)
        return IRQ_STARTUP_MANAGED;
 }
 #else
-static int
+static __always_inline int
 __irq_startup_managed(struct irq_desc *desc, struct cpumask *aff, bool force)
 {
        return IRQ_STARTUP_NORMAL;