diff options
author | Brian Gerst <brgerst@gmail.com> | 2019-12-19 14:58:12 +0300 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2020-01-08 21:40:51 +0300 |
commit | 2b10906f2d25515bba58070b8183babc89063597 (patch) | |
tree | 9b6a4c28c47d3bbd438f0264a2ccb693471ee652 /arch/x86/kernel/vm86_32.c | |
parent | f444a5ff95dce07cf4353cbb85fc3e785019d430 (diff) | |
download | linux-2b10906f2d25515bba58070b8183babc89063597.tar.xz |
x86: Remove force_iret()
force_iret() was originally intended to prevent the return to user mode with
the SYSRET or SYSEXIT instructions, in cases where the register state could
have been changed to be incompatible with those instructions. The entry code
has been significantly reworked since then, and register state is validated
before SYSRET or SYSEXIT are used. force_iret() no longer serves its original
purpose and can be eliminated.
Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Link: https://lkml.kernel.org/r/20191219115812.102620-1-brgerst@gmail.com
Diffstat (limited to 'arch/x86/kernel/vm86_32.c')
-rw-r--r-- | arch/x86/kernel/vm86_32.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c index a76c12b38e92..91d55454e702 100644 --- a/arch/x86/kernel/vm86_32.c +++ b/arch/x86/kernel/vm86_32.c @@ -381,7 +381,6 @@ static long do_sys_vm86(struct vm86plus_struct __user *user_vm86, bool plus) mark_screen_rdonly(tsk->mm); memcpy((struct kernel_vm86_regs *)regs, &vm86regs, sizeof(vm86regs)); - force_iret(); return regs->ax; } |