From: "H. Peter Anvin" <[email protected]>

Change the BIOS corruption checker to scan 640K if enabled.  This is
the normal amount that we otherwise would reserve with the new default
settings; change the Kconfig help message to indicate that this is now
intended as a diagnostic tool when one is considering enabling any
chunk of low memory.

Signed-off-by: H. Peter Anvin <[email protected]>
Cc: Olof Johansson <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
---
 arch/x86/Kconfig        | 25 +++++++++++--------------
 arch/x86/kernel/check.c | 10 +++++-----
 2 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 7631122..554aedd 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1384,24 +1384,21 @@ config HIGHPTE
 config X86_CHECK_BIOS_CORRUPTION
        bool "Check for low memory corruption"
        ---help---
-         Periodically check for memory corruption in low memory, which
-         is suspected to be caused by BIOS.  Even when enabled in the
-         configuration, it is disabled at runtime.  Enable it by
-         setting "memory_corruption_check=1" on the kernel command
-         line.  By default it scans the low 64k of memory every 60
-         seconds; see the memory_corruption_check_size and
+         Periodically check for memory corruption in low memory,
+         which is suspected to be caused by BIOS.  Even when enabled
+         in the configuration, it is disabled at runtime.  Enable it
+         by setting "memory_corruption_check=1" on the kernel command
+         line.  By default it reserves and scans the low 640K of
+         memory every 60 seconds; see the
+         memory_corruption_check_size and
          memory_corruption_check_period parameters in
          Documentation/kernel-parameters.txt to adjust this.
 
-         When enabled with the default parameters, this option has
-         almost no overhead, as it reserves a relatively small amount
-         of memory and scans it infrequently.  It both detects corruption
-         and prevents it from affecting the running system.
-
-         It is, however, intended as a diagnostic tool; if repeatable
+         It is intended as a diagnostic tool; if repeatable
          BIOS-originated corruption always affects the same memory,
-         you can use memmap= to prevent the kernel from using that
-         memory.
+         you should use the memmap= or reservelow= runtime options or
+         the CONFIG_X86_RESERVE_LOW compile time option to prevent
+         the kernel from using that memory.
 
 config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
        bool "Set the default setting of memory_corruption_check"
diff --git a/arch/x86/kernel/check.c b/arch/x86/kernel/check.c
index e2dbcb7..c00182d 100644
--- a/arch/x86/kernel/check.c
+++ b/arch/x86/kernel/check.c
@@ -7,16 +7,16 @@
 #include <asm/proto.h>
 
 /*
- * Some BIOSes seem to corrupt the low 64k of memory during events
- * like suspend/resume and unplugging an HDMI cable.  Reserve all
- * remaining free memory in that area and fill it with a distinct
- * pattern.
+ * Some BIOSes and even some hardware devices seem to corrupt the low
+ * 640K of memory during events like suspend/resume and unplugging an
+ * HDMI cable.  Reserve all remaining free memory in that area and
+ * fill it with a distinct pattern.
  */
 #define MAX_SCAN_AREAS 8
 
 static int __read_mostly memory_corruption_check = -1;
 
-static unsigned __read_mostly corruption_check_size = 64*1024;
+static unsigned __read_mostly corruption_check_size = 640*1024;
 static unsigned __read_mostly corruption_check_period = 60; /* seconds */
 
 static struct scan_area {
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to