summaryrefslogtreecommitdiff
path: root/libre/grub-legacy/05-grub-0.97-initrdaddr.diff
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-08-27 03:20:03 +0000
committerroot <root@rshg054.dnsready.net>2012-08-27 03:20:03 +0000
commitfeeabffe5469ebe2fde0e79802e470d007528b85 (patch)
tree1b98f3d07f0a38f721bc038e4e6a724ad5fc264d /libre/grub-legacy/05-grub-0.97-initrdaddr.diff
parentfda2b119766956ebbf97ba80640e6eeb1519cad4 (diff)
Mon Aug 27 03:20:01 UTC 2012
Diffstat (limited to 'libre/grub-legacy/05-grub-0.97-initrdaddr.diff')
-rw-r--r--libre/grub-legacy/05-grub-0.97-initrdaddr.diff16
1 files changed, 16 insertions, 0 deletions
diff --git a/libre/grub-legacy/05-grub-0.97-initrdaddr.diff b/libre/grub-legacy/05-grub-0.97-initrdaddr.diff
new file mode 100644
index 000000000..ccf5f3e54
--- /dev/null
+++ b/libre/grub-legacy/05-grub-0.97-initrdaddr.diff
@@ -0,0 +1,16 @@
+--- grub-0.96/stage2/boot.c
++++ grub-0.96/stage2/boot.c
+@@ -824,8 +824,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;
+