diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-06-11 17:31:52 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-06-11 17:31:52 -0400 |
commit | 0d5959723e1db3fd7323c198a50c16cecf96c7a9 (patch) | |
tree | 802b623fff261ebcbbddadf84af5524398364a18 /arch/x86/kernel/traps.c | |
parent | 62fdac5913f71f8f200bd2c9bd59a02e9a1498e9 (diff) | |
parent | 512626a04e72aca60effe111fa0333ed0b195d21 (diff) |
Merge branch 'linus' into x86/mce3
Conflicts:
arch/x86/kernel/cpu/mcheck/mce_64.c
arch/x86/kernel/irq.c
Merge reason: Resolve the conflicts above.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/traps.c')
-rw-r--r-- | arch/x86/kernel/traps.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index f4d683b630ba..1e1e27b7d438 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c | |||
@@ -839,9 +839,6 @@ asmlinkage void math_state_restore(void) | |||
839 | } | 839 | } |
840 | 840 | ||
841 | clts(); /* Allow maths ops (or we recurse) */ | 841 | clts(); /* Allow maths ops (or we recurse) */ |
842 | #ifdef CONFIG_X86_32 | ||
843 | restore_fpu(tsk); | ||
844 | #else | ||
845 | /* | 842 | /* |
846 | * Paranoid restore. send a SIGSEGV if we fail to restore the state. | 843 | * Paranoid restore. send a SIGSEGV if we fail to restore the state. |
847 | */ | 844 | */ |
@@ -850,7 +847,7 @@ asmlinkage void math_state_restore(void) | |||
850 | force_sig(SIGSEGV, tsk); | 847 | force_sig(SIGSEGV, tsk); |
851 | return; | 848 | return; |
852 | } | 849 | } |
853 | #endif | 850 | |
854 | thread->status |= TS_USEDFPU; /* So we fnsave on switch_to() */ | 851 | thread->status |= TS_USEDFPU; /* So we fnsave on switch_to() */ |
855 | tsk->fpu_counter++; | 852 | tsk->fpu_counter++; |
856 | } | 853 | } |
@@ -945,8 +942,13 @@ void __init trap_init(void) | |||
945 | #endif | 942 | #endif |
946 | set_intr_gate(19, &simd_coprocessor_error); | 943 | set_intr_gate(19, &simd_coprocessor_error); |
947 | 944 | ||
945 | /* Reserve all the builtin and the syscall vector: */ | ||
946 | for (i = 0; i < FIRST_EXTERNAL_VECTOR; i++) | ||
947 | set_bit(i, used_vectors); | ||
948 | |||
948 | #ifdef CONFIG_IA32_EMULATION | 949 | #ifdef CONFIG_IA32_EMULATION |
949 | set_system_intr_gate(IA32_SYSCALL_VECTOR, ia32_syscall); | 950 | set_system_intr_gate(IA32_SYSCALL_VECTOR, ia32_syscall); |
951 | set_bit(IA32_SYSCALL_VECTOR, used_vectors); | ||
950 | #endif | 952 | #endif |
951 | 953 | ||
952 | #ifdef CONFIG_X86_32 | 954 | #ifdef CONFIG_X86_32 |
@@ -963,14 +965,9 @@ void __init trap_init(void) | |||
963 | } | 965 | } |
964 | 966 | ||
965 | set_system_trap_gate(SYSCALL_VECTOR, &system_call); | 967 | set_system_trap_gate(SYSCALL_VECTOR, &system_call); |
968 | set_bit(SYSCALL_VECTOR, used_vectors); | ||
966 | #endif | 969 | #endif |
967 | 970 | ||
968 | /* Reserve all the builtin and the syscall vector: */ | ||
969 | for (i = 0; i < FIRST_EXTERNAL_VECTOR; i++) | ||
970 | set_bit(i, used_vectors); | ||
971 | |||
972 | set_bit(IA32_SYSCALL_VECTOR, used_vectors); | ||
973 | |||
974 | /* | 971 | /* |
975 | * Should be a barrier for any external CPU state: | 972 | * Should be a barrier for any external CPU state: |
976 | */ | 973 | */ |