summaryrefslogtreecommitdiffstats
path: root/abs/core/grub-gfx/05-grub-0.97-initrdaddr.diff
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/grub-gfx/05-grub-0.97-initrdaddr.diff')
-rw-r--r--abs/core/grub-gfx/05-grub-0.97-initrdaddr.diff16
1 files changed, 16 insertions, 0 deletions
diff --git a/abs/core/grub-gfx/05-grub-0.97-initrdaddr.diff b/abs/core/grub-gfx/05-grub-0.97-initrdaddr.diff
new file mode 100644
index 0000000..ccf5f3e
--- /dev/null
+++ b/abs/core/grub-gfx/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;
+