I am attaching a short patch which corrects the issue I mailed about
previously with some broken (SMP only?) BIOSes reporting a zero-length
addressable range at 4 GB, and throwing off GRUB's memory count (and
causing a Linux kernel booted without the --no-mem-option flag to the
'kernel' command to Oops on boot). It just checks the length of the memory
range in the check loop in common.c, and if it is zero bytes long, just
ignores the range.

Derrik Pates      |   Sysadmin, Douglas School   |    #linuxOS on EFnet
[EMAIL PROTECTED] |     District (dsdk12.net)    |    #linuxOS on OPN
--- orig/grub-0.5.96.1.cvs20010530/stage2/common.c      Sun Nov 26 11:31:30 2000
+++ grub-0.5.96.1.cvs20010530/stage2/common.c   Thu Aug  2 09:25:28 2001
@@ -226,7 +226,7 @@
        {
          struct AddrRangeDesc *desc = (struct AddrRangeDesc *) addr;
          
-         if (desc->Type == MB_ARD_MEMORY
+         if (desc->Type == MB_ARD_MEMORY && desc->Length > 0
              && desc->BaseAddr + desc->Length > max_addr)
            max_addr = desc->BaseAddr + desc->Length;
        }

Reply via email to