
    Date: 2005-11-11
    Author: Otavio Salvador
    Comment: Stolen from SuSE grub package.
     It fix the max address of initrd image and include a safe
     default in case of it isn't available

--- grub-0.94/stage2/boot.c.orig	2004-01-11 09:49:05.000000000 +0100
+++ grub-0.94/stage2/boot.c	2004-03-04 16:11:21.857403508 +0100
@@ -810,8 +810,11 @@
     moveto = (mbi.mem_upper + 0x400) << 10;
   
   moveto = (moveto - len) & 0xfffff000;
-  max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
-	      ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
+  max_addr = LINUX_INITRD_MAX_ADDRESS;
+  if (lh->header == LINUX_MAGIC_SIGNATURE &&
+      lh->version >= 0x0203 &&
+      lh->initrd_addr_max < max_addr)
+    max_addr = lh->initrd_addr_max;
   if (moveto + len >= max_addr)
     moveto = (max_addr - len) & 0xfffff000;
   
