[PATCH] x86_64: Fix a small missing schedule race

Could lead to a lost reschedule event when the process already rescheduled on
exception exit, and needs it again while still being in the kernel.  Unlikely
case though.

Also remove one redundant cli in another entry.S 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:
Andi Kleen 2005-04-16 15:25:04 -07:00 committed by Linus Torvalds
parent 6fefb0d175
commit cdd219cd1f

View file

@ -284,6 +284,7 @@ int_careful:
pushq %rdi pushq %rdi
call schedule call schedule
popq %rdi popq %rdi
cli
jmp int_with_check jmp int_with_check
/* handle signals and tracing -- both require a full stack frame */ /* handle signals and tracing -- both require a full stack frame */
@ -453,7 +454,6 @@ retint_check:
andl %edi,%edx andl %edi,%edx
jnz retint_careful jnz retint_careful
retint_swapgs: retint_swapgs:
cli
swapgs swapgs
retint_restore_args: retint_restore_args:
cli cli