diff options
Diffstat (limited to 'arch/x86/kernel/traps.c')
| -rw-r--r-- | arch/x86/kernel/traps.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index ed5aee5f3fcc..d36a502d87ab 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c | |||
| @@ -979,8 +979,13 @@ void __init trap_init(void) | |||
| 979 | #endif | 979 | #endif |
| 980 | set_intr_gate(19, &simd_coprocessor_error); | 980 | set_intr_gate(19, &simd_coprocessor_error); |
| 981 | 981 | ||
| 982 | /* Reserve all the builtin and the syscall vector: */ | ||
| 983 | for (i = 0; i < FIRST_EXTERNAL_VECTOR; i++) | ||
| 984 | set_bit(i, used_vectors); | ||
| 985 | |||
| 982 | #ifdef CONFIG_IA32_EMULATION | 986 | #ifdef CONFIG_IA32_EMULATION |
| 983 | set_system_intr_gate(IA32_SYSCALL_VECTOR, ia32_syscall); | 987 | set_system_intr_gate(IA32_SYSCALL_VECTOR, ia32_syscall); |
| 988 | set_bit(IA32_SYSCALL_VECTOR, used_vectors); | ||
| 984 | #endif | 989 | #endif |
| 985 | 990 | ||
| 986 | #ifdef CONFIG_X86_32 | 991 | #ifdef CONFIG_X86_32 |
| @@ -997,17 +1002,9 @@ void __init trap_init(void) | |||
| 997 | } | 1002 | } |
| 998 | 1003 | ||
| 999 | set_system_trap_gate(SYSCALL_VECTOR, &system_call); | 1004 | set_system_trap_gate(SYSCALL_VECTOR, &system_call); |
| 1000 | #endif | ||
| 1001 | |||
| 1002 | /* Reserve all the builtin and the syscall vector: */ | ||
| 1003 | for (i = 0; i < FIRST_EXTERNAL_VECTOR; i++) | ||
| 1004 | set_bit(i, used_vectors); | ||
| 1005 | |||
| 1006 | #ifdef CONFIG_X86_64 | ||
| 1007 | set_bit(IA32_SYSCALL_VECTOR, used_vectors); | ||
| 1008 | #else | ||
| 1009 | set_bit(SYSCALL_VECTOR, used_vectors); | 1005 | set_bit(SYSCALL_VECTOR, used_vectors); |
| 1010 | #endif | 1006 | #endif |
| 1007 | |||
| 1011 | /* | 1008 | /* |
| 1012 | * Should be a barrier for any external CPU state: | 1009 | * Should be a barrier for any external CPU state: |
| 1013 | */ | 1010 | */ |
