[PATCH Wily SRU] x86/vm86: Set thread.vm86 to NULL on fork/clone

tim.gardner at canonical.com tim.gardner at canonical.com
Wed Nov 4 18:07:45 UTC 2015


From: Andy Lutomirski <luto at kernel.org>

BugLink: http://bugs.launchpad.net/bugs/1499089

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 at kernel.org>
Cc: Brian Gerst <brgerst at gmail.com>
Cc: Linus Torvalds <torvalds at linux-foundation.org>
Cc: Borislav Petkov <bp at alien8.de>
Cc: Stas Sergeev <stsp at list.ru>
Link: http://lkml.kernel.org/r/71c5d6985d70ec8197c8d72f003823c81b7dcf99.1446270067.git.luto@kernel.org
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
(cherry picked from commit 2459ee8651dc5ab72790c2ffa99af288c7641b64)
Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
---
 arch/x86/kernel/process.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 7e3bedb..7e2ef5d 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -83,6 +83,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);
 }
-- 
2.5.0





More information about the kernel-team mailing list