[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
@ -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…
Reference in New Issue
Block a user