o noirqdebug_setup() is __init but it is being called by
quirk_intel_irqbalance() which if of type __devinit. If CONFIG_HOTPLUG=y,
quirk_intel_irqbalance() is put into text section and it is wrong to
call a function in __init section.
o MODPOST flags this on i386 if CONFIG_RELOCATABLE=y
WARNING: vmlinux - Section mismatch: reference to .init.text:noirqdebug_setup from .text between 'quirk_intel_irqbalance' (at offset 0xc010969e) and 'i8237A_suspend'
o Make noirqdebug_setup() non-init.
Signed-off-by: Vivek Goyal <[email protected]>
---
kernel/irq/spurious.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff -puN kernel/irq/spurious.c~make-noirqdebug_setup-function-non-init kernel/irq/spurious.c
--- linux-2.6.20-rc2-mm1-reloc/kernel/irq/spurious.c~make-noirqdebug_setup-function-non-init 2007-01-08 09:49:47.000000000 +0530
+++ linux-2.6.20-rc2-mm1-reloc-root/kernel/irq/spurious.c 2007-01-08 09:50:12.000000000 +0530
@@ -176,7 +176,7 @@ void note_interrupt(unsigned int irq, st
int noirqdebug __read_mostly;
-int __init noirqdebug_setup(char *str)
+int noirqdebug_setup(char *str)
{
noirqdebug = 1;
printk(KERN_INFO "IRQ lockup detection disabled\n");
_