[PATCH] x86: move interrupts[] to .rodata/.init.data

From: Jan Beulich
Date: Thu Dec 13 2007 - 04:36:40 EST


The array is never written, and on 64-bits it's not even being used
past initial boot.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

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);



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/