x86/vm86: Use the normal pt_regs area for vm86
authorBrian Gerst <brgerst@gmail.com>
Wed, 29 Jul 2015 05:41:19 +0000 (01:41 -0400)
committerIngo Molnar <mingo@kernel.org>
Fri, 31 Jul 2015 11:31:09 +0000 (13:31 +0200)
commit5ed92a8ab71f8865ba07811429c988c72299b315
tree30e8cd33bd97ca0c0b7a835e11b6ab41657c7356
parent90c6085a248f8f964588617f51329688bcc9f2bc
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>
arch/x86/entry/entry_32.S
arch/x86/include/asm/thread_info.h
arch/x86/include/asm/vm86.h
arch/x86/kernel/signal.c
arch/x86/kernel/vm86_32.c