diff options
author | Andy Lutomirski <luto@kernel.org> | 2015-10-31 06:42:46 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2015-10-31 09:50:25 +0100 |
commit | 2459ee8651dc5ab72790c2ffa99af288c7641b64 (patch) | |
tree | 6ddbab8ebd33416d3a37778b4ce0d59da619bd75 /arch/x86/kernel/process.c | |
parent | selftests/x86: Add a fork() to entry_from_vm86 to catch fork bugs (diff) | |
download | linux-2459ee8651dc5ab72790c2ffa99af288c7641b64.tar.xz linux-2459ee8651dc5ab72790c2ffa99af288c7641b64.zip |
x86/vm86: Set thread.vm86 to NULL on fork/clone
thread.vm86 points to per-task information -- the pointer should not
be copied on clone.
Fixes: d4ce0f26c790 ("x86/vm86: Move fields from 'struct kernel_vm86_struct' to 'struct vm86'")
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Stas Sergeev <stsp@list.ru>
Link: http://lkml.kernel.org/r/71c5d6985d70ec8197c8d72f003823c81b7dcf99.1446270067.git.luto@kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to '')
-rw-r--r-- | arch/x86/kernel/process.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index e28db181e4fc..9f7c21c22477 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -84,6 +84,9 @@ EXPORT_SYMBOL_GPL(idle_notifier_unregister); int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) { memcpy(dst, src, arch_task_struct_size); +#ifdef CONFIG_VM86 + dst->thread.vm86 = NULL; +#endif return fpu__copy(&dst->thread.fpu, &src->thread.fpu); } |