Bug#264782: grub: Boot failures with >2GB ram

Goswin Brederlow Goswin Brederlow <brederlo@informatik.uni-tuebingen.de>, 264782@bugs.debian.org
Tue, 10 Aug 2004 13:10:49 +0200


This is a multi-part MIME message sent by reportbug.

--===============0609178845==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Package: grub
Version: 0.94+cvs20040429-1
Severity: important
Tags: patch

Hi,

I tracked down the (or at least one of) boot failures with more than 2
GB ram.

I reported the patch upstream but the diff is also attached here. The
patch should be placed into debian/patches and added to 00list.

http://savannah.gnu.org/bugs/?func=detailitem&item_id=9954

MfG
	Goswin

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (x86_64)
Kernel: Linux 2.6.5-amd64
Locale: LANG=C, LC_CTYPE=de_DE

Versions of packages grub depends on:
ii  libc6                       2.3.2.ds1-11 GNU C Library: Shared libraries an
ii  libncurses5                 5.4-3        Shared libraries for terminal hand

-- no debconf information

--===============0609178845==
Content-Type: text/x-c; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="2g_limit.diff"

diff -Nurd grub-0.95+cvs20040624/stage2/char_io.c grub-0.95+cvs20040624-mrvn/stage2/char_io.c
--- grub-0.95+cvs20040624/stage2/char_io.c	2004-05-23 18:45:44.000000000 +0200
+++ grub-0.95+cvs20040624-mrvn/stage2/char_io.c	2004-08-10 11:58:16.000000000 +0200
@@ -1175,10 +1175,10 @@
 #endif /* ! STAGE1_5 */
 
 int
-memcheck (int addr, int len)
+memcheck (unsigned long addr, unsigned long len)
 {
 #ifdef GRUB_UTIL
-  static int start_addr (void)
+  static unsigned long start_addr (void)
     {
       int ret;
 # if defined(HAVE_START_SYMBOL)
@@ -1189,7 +1189,7 @@
       return ret;
     }
 
-  static int end_addr (void)
+  static unsigned long end_addr (void)
     {
       int ret;
 # if defined(HAVE_END_SYMBOL)
diff -Nurd grub-0.95+cvs20040624/stage2/shared.h grub-0.95+cvs20040624-mrvn/stage2/shared.h
--- grub-0.95+cvs20040624/stage2/shared.h	2004-06-20 15:48:47.000000000 +0200
+++ grub-0.95+cvs20040624-mrvn/stage2/shared.h	2004-08-10 11:58:16.000000000 +0200
@@ -911,7 +911,7 @@
 int nul_terminate (char *str);
 int get_based_digit (int c, int base);
 int safe_parse_maxint (char **str_ptr, int *myint_ptr);
-int memcheck (int start, int len);
+int memcheck (unsigned long start, unsigned long len);
 void grub_putstr (const char *str);
 
 #ifndef NO_DECOMPRESSION

--===============0609178845==--