Messages in this thread Patch in this message | | | Date | Thu, 13 Dec 2007 09:37:22 +0000 | From | "Jan Beulich" <> | Subject | [PATCH] x86: move interrupts[] to .rodata/.init.data |
| |
The array is never written, and on 64-bits it's not even being used past initial boot.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
arch/x86/kernel/entry_32.S | 2 +- arch/x86/kernel/i8259_64.c | 2 +- include/asm-x86/hw_irq_32.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
--- linux-2.6.24-rc5/arch/x86/kernel/entry_32.S 2007-12-12 11:28:18.000000000 +0100 +++ 2.6.24-rc5-x86-interrupt-section/arch/x86/kernel/entry_32.S 2007-12-04 16:25:04.000000000 +0100 @@ -583,7 +583,7 @@ END(syscall_badsys) * Build the entry stubs and pointer table with * some assembler magic. */ -.data +.section .rodata,"a" ENTRY(interrupt) .text --- linux-2.6.24-rc5/arch/x86/kernel/i8259_64.c 2007-12-12 11:28:18.000000000 +0100 +++ 2.6.24-rc5-x86-interrupt-section/arch/x86/kernel/i8259_64.c 2007-12-04 16:25:04.000000000 +0100 @@ -76,7 +76,7 @@ BUILD_16_IRQS(0xc) BUILD_16_IRQS(0xd) BU IRQ(x,c), IRQ(x,d), IRQ(x,e), IRQ(x,f) /* for the irq vectors */ -static void (*interrupt[NR_VECTORS - FIRST_EXTERNAL_VECTOR])(void) = { +static void (*__initdata interrupt[NR_VECTORS - FIRST_EXTERNAL_VECTOR])(void) = { IRQLIST_16(0x2), IRQLIST_16(0x3), IRQLIST_16(0x4), IRQLIST_16(0x5), IRQLIST_16(0x6), IRQLIST_16(0x7), IRQLIST_16(0x8), IRQLIST_16(0x9), IRQLIST_16(0xa), IRQLIST_16(0xb), --- linux-2.6.24-rc5/include/asm-x86/hw_irq_32.h 2007-12-12 11:29:30.000000000 +0100 +++ 2.6.24-rc5-x86-interrupt-section/include/asm-x86/hw_irq_32.h 2007-12-04 16:25:04.000000000 +0100 @@ -26,7 +26,7 @@ * Interrupt entry/exit code at both C and assembly level */ -extern void (*interrupt[NR_IRQS])(void); +extern void (*const interrupt[NR_IRQS])(void); #ifdef CONFIG_SMP fastcall void reschedule_interrupt(void);
| |