Messages in this thread Patch in this message | | | From | Alex Henrie <> | Subject | [PATCH v2] x86: Preserve iopl on fork and execve | Date | Mon, 11 May 2015 17:38:25 -0600 |
| |
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Suggested-by: Doug Johnson <dougvj@dougvj.net> --- arch/x86/kernel/process_32.c | 2 +- arch/x86/kernel/process_64.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c index 8ed2106..0ef7078 100644 --- a/arch/x86/kernel/process_32.c +++ b/arch/x86/kernel/process_32.c @@ -205,7 +205,7 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) regs->cs = __USER_CS; regs->ip = new_ip; regs->sp = new_sp; - regs->flags = X86_EFLAGS_IF; + regs->flags = X86_EFLAGS_IF | (X86_EFLAGS_IOPL & regs->flags); force_iret(); } EXPORT_SYMBOL_GPL(start_thread); diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index ddfdbf7..e21eda2 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c @@ -238,7 +238,7 @@ start_thread_common(struct pt_regs *regs, unsigned long new_ip, regs->sp = new_sp; regs->cs = _cs; regs->ss = _ss; - regs->flags = X86_EFLAGS_IF; + regs->flags = X86_EFLAGS_IF | (X86_EFLAGS_IOPL & regs->flags); force_iret(); } -- 2.4.0
| |