mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-03 17:51:57 +09:00
x86-32, espfix: Remove filter for espfix32 due to race
commit 246f2d2ee1 upstream.
It is not safe to use LAR to filter when to go down the espfix path,
because the LDT is per-process (rather than per-thread) and another
thread might change the descriptors behind our back. Fortunately it
is always *safe* (if a bit slow) to go down the espfix path, and a
32-bit LDT stack segment is extremely rare.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
43507abd62
commit
7a1d06c866
@@ -554,11 +554,6 @@ ENTRY(iret_exc)
|
||||
|
||||
CFI_RESTORE_STATE
|
||||
ldt_ss:
|
||||
larl PT_OLDSS(%esp), %eax
|
||||
jnz restore_nocheck
|
||||
testl $0x00400000, %eax # returning to 32bit stack?
|
||||
jnz restore_nocheck # allright, normal return
|
||||
|
||||
#ifdef CONFIG_PARAVIRT
|
||||
/*
|
||||
* The kernel can't run on a non-flat stack if paravirt mode
|
||||
|
||||
Reference in New Issue
Block a user