x86_64 trap table fixup
PATCH 1/1 x86_64 trap table fixup
Recent header file cleanup (cset 2b6c1a8098078f7e53de7cf72227fddf01f0b2b6) broke x86_64. The cleanup removed a padding field in trap_info_t, so the trap table set the address for each trap handler to zero.
Signed-off-by Chris Wright <[email protected]>
---
linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/traps.c +23 -23
@@ -910,31 +910,31 @@static trap_info_t trap_table[] = { - {0 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )divide_error }, - {1 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )debug }, - {3 ,3 , (__KERNEL_CS|0x3 ),0 , (unsigned long )int3 }, - {4 ,3 , (__KERNEL_CS|0x3 ),0 , (unsigned long )overflow }, - {5 ,3 , (__KERNEL_CS|0x3 ),0 , (unsigned long )bounds }, - {6 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )invalid_op }, - {7 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )device_not_available }, - {9 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )coprocessor_segment_overrun}, - {10 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )invalid_TSS }, - {11 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )segment_not_present }, - {12 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )stack_segment }, - {13 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )general_protection }, - {14 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )page_fault }, - {15 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )spurious_interrupt_bug }, - {16 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )coprocessor_error }, - {17 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )alignment_check }, + {0 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )divide_error }, + {1 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )debug }, + {3 ,3 , (__KERNEL_CS|0x3 ), (unsigned long )int3 }, + {4 ,3 , (__KERNEL_CS|0x3 ), (unsigned long )overflow }, + {5 ,3 , (__KERNEL_CS|0x3 ), (unsigned long )bounds }, + {6 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )invalid_op }, + {7 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )device_not_available }, + {9 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )coprocessor_segment_overrun}, + {10 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )invalid_TSS }, + {11 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )segment_not_present }, + {12 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )stack_segment }, + {13 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )general_protection }, + {14 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )page_fault }, + {15 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )spurious_interrupt_bug }, + {16 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )coprocessor_error }, + {17 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )alignment_check }, #ifdef CONFIG_X86_MCE - {18 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )machine_check }, -#endif - {19 ,0 , (__KERNEL_CS|0x3 ),0 , (unsigned long )simd_coprocessor_error }, - {SYSCALL_VECTOR ,3 , (__KERNEL_CS|0x3 ),0 , (unsigned long )system_call }, + {18 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )machine_check }, +#endif + {19 ,0 , (__KERNEL_CS|0x3 ), (unsigned long )simd_coprocessor_error }, + {SYSCALL_VECTOR ,3 , (__KERNEL_CS|0x3 ), (unsigned long )system_call }, #ifdef CONFIG_IA32_EMULATION - {IA32_SYSCALL_VECTOR ,3 , (__KERNEL_CS|0x3 ),0 , (unsigned long )ia32_syscall}, -#endif - {0 ,0 ,0 ,0 ,0 } + {IA32_SYSCALL_VECTOR ,3 , (__KERNEL_CS|0x3 ), (unsigned long )ia32_syscall}, +#endif + {0 ,0 ,0 ,0 } };void __init trap_init (void )