Package: memtest86+
Version: 4.00-2.1
Severity: normal
Tags: patch

*** Please type your report below this line ***

I have a system (unreleased "big server") where the BIOS reports more
than 32 e820 entries to describe the RAM.  memtest86+ has a hard-coded
limit of 32 e820 entries, so it crashes on boot on this system.  Since
there are realistic systems that exceed this limit, I think it would
be a good idea to apply the patch below to increase the limit.  (The
patch increases the stack size because increasing E820MAX increases the
size of a few on-stack arrays to require that)

I also reported this upstream at
http://forum.canardpc.com/showthread.php?t=43234
-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.33-rc4 (SMP w/64 CPU cores)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash

Versions of packages memtest86+ depends on:
ii  debconf [debconf-2.0]         1.5.28     Debian configuration management sy

memtest86+ recommends no packages.

Versions of packages memtest86+ suggests:
pn  grub2 | grub                  <none>     (no description available)
pn  hwtools                       <none>     (no description available)
pn  kernel-patch-badram           <none>     (no description available)
pn  memtest86                     <none>     (no description available)
pn  memtester                     <none>     (no description available)
pn  mtools                        <none>     (no description available)

-- debconf information excluded
diff -Naur memtest86+-4.00.orig/head.S memtest86+-4.00/head.S
--- memtest86+-4.00.orig/head.S	2009-09-21 17:35:46.000000000 -0700
+++ memtest86+-4.00/head.S	2010-01-14 13:28:30.084943518 -0800
@@ -980,6 +980,6 @@
 .bss
 .balign 16
 stack:
-	. = . + 4096
+	. = . + 8192
 stack_top:
 .previous
diff -Naur memtest86+-4.00.orig/test.h memtest86+-4.00/test.h
--- memtest86+-4.00.orig/test.h	2009-09-21 17:35:46.000000000 -0700
+++ memtest86+-4.00/test.h	2010-01-14 13:29:26.807510442 -0800
@@ -14,9 +14,9 @@
 #define E801    0x04
 #define E820NR  0x08           /* # entries in E820MAP */
 #define E820MAP 0x0c           /* our map */
-#define E820MAX 32             /* number of entries in E820MAP */
+#define E820MAX 64             /* number of entries in E820MAP */
 #define E820ENTRY_SIZE 20
-#define MEMINFO_SIZE 0x28c
+#define MEMINFO_SIZE (0xc + E820MAX * E820ENTRY_SIZE)
 #define MAX_DMI_MEMDEVS 16
 
 #ifndef __ASSEMBLY__

Reply via email to