x86: default corruption check to off, but put parameter default in Kconfig

Default the low memory corruption check to off, but make the default setting of
the memory_corruption_check kernel parameter a config parameter.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index cbee419..7820d44 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1061,7 +1061,6 @@
 
 config X86_CHECK_BIOS_CORRUPTION
         bool "Check for low memory corruption"
-	default y
 	help
 	 Periodically check for memory corruption in low memory, which
 	 is suspected to be caused by BIOS.  Even when enabled in the
@@ -1082,6 +1081,14 @@
 	 you can use memmap= to prevent the kernel from using that
 	 memory.
 
+config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
+        bool "Set the default setting of memory_corruption_check"
+	depends on X86_CHECK_BIOS_CORRUPTION
+	default y
+	help
+	 Set whether the default state of memory_corruption_check is
+	 on or off.
+
 config MATH_EMULATION
 	bool
 	prompt "Math emulation" if X86_32
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 27ae912..ec7e56c 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -587,7 +587,8 @@
 #ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION
 #define MAX_SCAN_AREAS	8
 
-static int __read_mostly memory_corruption_check = 0;
+static int __read_mostly memory_corruption_check = -1;
+
 static unsigned __read_mostly corruption_check_size = 64*1024;
 static unsigned __read_mostly corruption_check_period = 60; /* seconds */
 
@@ -634,6 +635,16 @@
 {
 	u64 addr = PAGE_SIZE;	/* assume first page is reserved anyway */
 
+	if (memory_corruption_check == -1) {
+		memory_corruption_check =
+#ifdef CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
+			1
+#else
+			0
+#endif
+			;
+	}
+
 	if (corruption_check_size == 0)
 		memory_corruption_check = 0;