lkml.org 
[lkml]   [2015]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[tip:x86/asm] x86/kconfig/32: Mark CONFIG_VM86 as BROKEN
Commit-ID:  0b02e20767a3b4d843d2c58cf031d9e31f60e39d
Gitweb: http://git.kernel.org/tip/0b02e20767a3b4d843d2c58cf031d9e31f60e39d
Author: Andy Lutomirski <luto@kernel.org>
AuthorDate: Tue, 7 Jul 2015 18:25:56 -0700
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 8 Jul 2015 11:04:45 +0200

x86/kconfig/32: Mark CONFIG_VM86 as BROKEN

VM86 is entirely broken if ptrace, syscall auditing, or
NOHZ_FULL is in use. The code is a big undocumented mess, it's
a real PITA to test, and it looks like a big chunk of vm86_32.c
is dead code. It also plays awful games with the entry asm.

No one should be using it anyway. Use DOSBOX or KVM instead.

Mark it BROKEN. I want to remove some (obviously incorrect)
exit asm that it depends on, and I don't want to figure out how
to run severely obsolete programs just to test something that no
one uses for anything other than exploits anyway.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Acked-by: Arjan van de Ven <arjan@linux.intel.com>
Cc: <stable@vger.kernel.org> # Backport it as far back as possible
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/23d4709cee2fe92c32d41b99c7a3c1823725925a.1436312944.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/Kconfig | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index aa94fd0..a7648f9b 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -997,8 +997,8 @@ config X86_THERMAL_VECTOR
depends on X86_MCE_INTEL

config VM86
- bool "Enable VM86 support" if EXPERT
- default y
+ bool "Enable VM86 support" if BROKEN
+ default n
depends on X86_32
---help---
This option is required by programs like DOSEMU to run
@@ -1006,6 +1006,12 @@ config VM86
be needed by software like XFree86 to initialize some video
cards via BIOS. Disabling this option saves about 6K.

+ Linux's VM86 support is poorly maintained, essentially never
+ tested by upstream kernel developers, has quite a few known
+ bugs, and is probably full of security holes. The only thing
+ that appears to use it is DOSEMU, and DOSBOX and KVM are
+ better options these days. Don't enable it.
+
config X86_16BIT
bool "Enable support for 16-bit segments" if EXPERT
default y

\
 
 \ /
  Last update: 2015-07-08 12:01    [W:0.068 / U:0.236 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site