diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index 6a474e1028c712e8e6fada00e21f222114ef45d2..be5c31d048847e0ba2ae2f76eb5a136e9ee96cb7 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S @@ -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 diff --git a/arch/x86/kernel/i8259_64.c b/arch/x86/kernel/i8259_64.c index be82b1217691091e2e9ea48cee03fa902ba2d88c..99c8406ae253913bec30606c4c69e32216bf8954 100644 --- a/arch/x86/kernel/i8259_64.c +++ b/arch/x86/kernel/i8259_64.c @@ -77,7 +77,7 @@ BUILD_16_IRQS(0xc) BUILD_16_IRQS(0xd) BUILD_16_IRQS(0xe) BUILD_16_IRQS(0xf) 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), diff --git a/include/asm-x86/hw_irq_32.h b/include/asm-x86/hw_irq_32.h index b93e35a708ace5e3bdcff3b9fe3664d0fe756873..6d65fbb6358b0d91692da95313fd09c5ee3c8690 100644 --- a/include/asm-x86/hw_irq_32.h +++ b/include/asm-x86/hw_irq_32.h @@ -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 void reschedule_interrupt(void);