> And why are the IRQ entry points (in 2.4.20) not 16-byte aligned?
> Up until IRQ0x0b everything is OK because the actual stubs are only
> 7+1 bytes long, but after that the jmp instruction needs a 32-bit
> offset and they are 10+2 bytes. This puts IRQ #15 and #19 four
> bytes from the end of a 16-byte cache line, and their first
> instructions are 5 bytes long.
This should help:
--- linux-2.4.20aa1/arch/i386/kernel/i8259.c Tue Sep 18 02:03:09 2001
+++ linux-2.4.20irq/arch/i386/kernel/i8259.c Thu Apr 17 22:22:12 2003
@ -35,8 +35,6 @
* interrupt-controller happy.
*/
-BUILD_COMMON_IRQ()
-
#define BI(x,y) \
BUILD_IRQ(x##y)
@ -52,6 +50,8 @
*/
BUILD_16_IRQS(0x0)
+BUILD_COMMON_IRQ()
+
#ifdef CONFIG_X86_IO_APIC
/*
* The IO-APIC gives us many more interrupt sources. Most of these
-- Chuck - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/