When 2.4.31-pre2 is configured for X86_64 && !SMP && UP_IOAPIC
it fails to link:
arch/x86_64/kernel/kernel.o(.text+0x4591): In function `enable_irq':
: undefined reference to `send_IPI_self'
make: *** [vmlinux] Error 1
A broken change in 2.4.31-pre{1,2} made the UP kernel reference
a symbol which is only defined in the SMP kernel.
The patch below fixes this by reverting that change.
Signed-off-by: Mikael Pettersson <[email protected]>
diff -rupN linux-2.4.31-pre2/include/asm-x86_64/hw_irq.h linux-2.4.31-pre2.x86_64-fix/include/asm-x86_64/hw_irq.h
--- linux-2.4.31-pre2/include/asm-x86_64/hw_irq.h 2005-05-13 00:05:51.000000000 +0200
+++ linux-2.4.31-pre2.x86_64-fix/include/asm-x86_64/hw_irq.h 2005-05-13 00:35:59.000000000 +0200
@@ -156,7 +156,7 @@ static inline void x86_do_profile (unsig
atomic_inc((atomic_t *)&prof_buffer[eip]);
}
-#ifdef CONFIG_X86_IO_APIC
+#ifdef CONFIG_SMP /*more of this file should probably be ifdefed SMP */
static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i) {
if (IO_APIC_IRQ(i))
send_IPI_self(IO_APIC_VECTOR(i));