1
0
Fork 0
alistair23-linux/arch/x86/entry
Brian Gerst 5ed92a8ab7 x86/vm86: Use the normal pt_regs area for vm86
Change to use the normal pt_regs area to enter and exit vm86
mode.  This is done by increasing the padding at the top of the
stack to make room for the extra vm86 segment slots in the IRET
frame.  It then saves the 32-bit regs in the off-stack vm86
data, and copies in the vm86 regs.  Exiting back to 32-bit mode
does the reverse.  This allows removing the hacks to jump
directly into the exit asm code due to having to change the
stack pointer.  Returning normally from the vm86 syscall and the
exception handlers allows things like ptrace and auditing to work properly.

Signed-off-by: Brian Gerst <brgerst@gmail.com>
Acked-by: Andy Lutomirski <luto@kernel.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1438148483-11932-5-git-send-email-brgerst@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2015-07-31 13:31:09 +02:00
..
syscalls x86/entry/syscalls: Wire up 32-bit direct socket calls 2015-07-21 10:11:04 +02:00
vdso x86/compat: Don't build the 32-bit VDSO if not needed 2015-07-06 15:28:56 +02:00
vsyscall x86/compat: Check for both 32-bit compat and x32 in get_gate_vma() 2015-07-06 15:28:57 +02:00
Makefile x86/entry: Move C entry and exit code to arch/x86/entry/common.c 2015-07-07 10:59:05 +02:00
calling.h x86/asm/entry/64: Save all regs on interrupt entry 2015-07-07 10:59:07 +02:00
common.c x86/entry: Fix _TIF_USER_RETURN_NOTIFY check in prepare_exit_to_usermode 2015-07-17 16:08:22 +02:00
entry_32.S x86/vm86: Use the normal pt_regs area for vm86 2015-07-31 13:31:09 +02:00
entry_64.S Merge branch 'x86/urgent' into x86/asm, before applying dependent patches 2015-07-31 10:23:35 +02:00
entry_64_compat.S Merge branch 'x86/urgent' into x86/asm, before applying dependent patches 2015-07-31 10:23:35 +02:00
syscall_32.c
syscall_64.c
thunk_32.S Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-06-22 17:59:09 -07:00
thunk_64.S Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-06-22 17:59:09 -07:00