aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2005-05-01 11:58:51 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-01 11:58:51 -0400
commitbe9e68703c53fece406bc2e40976a5cfe2a8e77f (patch)
treeefa540d85ab7a193a402ba952e4c8fe63fe18f25 /arch
parent3c3b73b6f50a47601b1897deb9c6b4b5ecadf591 (diff)
[PATCH] x86_64: interrupt handling fix
- Initialize workmask correctly on interrupt signal handling - Readd missing cli's in the interrupt return path. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86_64/kernel/entry.S5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S
index 3233a15cc4e0..1086b5fcac21 100644
--- a/arch/x86_64/kernel/entry.S
+++ b/arch/x86_64/kernel/entry.S
@@ -296,6 +296,7 @@ int_very_careful:
296 call syscall_trace_leave 296 call syscall_trace_leave
297 popq %rdi 297 popq %rdi
298 andl $~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP),%edi 298 andl $~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP),%edi
299 cli
299 jmp int_restore_rest 300 jmp int_restore_rest
300 301
301int_signal: 302int_signal:
@@ -307,6 +308,7 @@ int_signal:
3071: movl $_TIF_NEED_RESCHED,%edi 3081: movl $_TIF_NEED_RESCHED,%edi
308int_restore_rest: 309int_restore_rest:
309 RESTORE_REST 310 RESTORE_REST
311 cli
310 jmp int_with_check 312 jmp int_with_check
311 CFI_ENDPROC 313 CFI_ENDPROC
312 314
@@ -490,7 +492,8 @@ retint_signal:
490 call do_notify_resume 492 call do_notify_resume
491 RESTORE_REST 493 RESTORE_REST
492 cli 494 cli
493 GET_THREAD_INFO(%rcx) 495 GET_THREAD_INFO(%rcx)
496 movl $_TIF_WORK_MASK,%edi
494 jmp retint_check 497 jmp retint_check
495 498
496#ifdef CONFIG_PREEMPT 499#ifdef CONFIG_PREEMPT