[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>
This commit is contained in:
parent
3c3b73b6f5
commit
be9e68703c
1 changed files with 4 additions and 1 deletions
|
@ -296,6 +296,7 @@ int_very_careful:
|
||||||
call syscall_trace_leave
|
call syscall_trace_leave
|
||||||
popq %rdi
|
popq %rdi
|
||||||
andl $~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP),%edi
|
andl $~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP),%edi
|
||||||
|
cli
|
||||||
jmp int_restore_rest
|
jmp int_restore_rest
|
||||||
|
|
||||||
int_signal:
|
int_signal:
|
||||||
|
@ -307,6 +308,7 @@ int_signal:
|
||||||
1: movl $_TIF_NEED_RESCHED,%edi
|
1: movl $_TIF_NEED_RESCHED,%edi
|
||||||
int_restore_rest:
|
int_restore_rest:
|
||||||
RESTORE_REST
|
RESTORE_REST
|
||||||
|
cli
|
||||||
jmp int_with_check
|
jmp int_with_check
|
||||||
CFI_ENDPROC
|
CFI_ENDPROC
|
||||||
|
|
||||||
|
@ -490,7 +492,8 @@ retint_signal:
|
||||||
call do_notify_resume
|
call do_notify_resume
|
||||||
RESTORE_REST
|
RESTORE_REST
|
||||||
cli
|
cli
|
||||||
GET_THREAD_INFO(%rcx)
|
GET_THREAD_INFO(%rcx)
|
||||||
|
movl $_TIF_WORK_MASK,%edi
|
||||||
jmp retint_check
|
jmp retint_check
|
||||||
|
|
||||||
#ifdef CONFIG_PREEMPT
|
#ifdef CONFIG_PREEMPT
|
||||||
|
|
Loading…
Add table
Reference in a new issue