|
|
|
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
|
|
|
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
|
|
|
|
#
|
|
|
|
# Filename: package/.../grub/grub-0.97-initrdmax.patch
|
|
|
|
# Copyright (C) 2006 The OpenSDE Project
|
|
|
|
#
|
|
|
|
# More information can be found in the files COPYING and README.
|
|
|
|
#
|
|
|
|
# This patch file is dual-licensed. It is available under the license the
|
|
|
|
# patched project is licensed under, as long as it is an OpenSource license
|
|
|
|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
|
|
|
|
# of the GNU General Public License as published by the Free Software
|
|
|
|
# Foundation; either version 2 of the License, or (at your option) any later
|
|
|
|
# version.
|
|
|
|
# --- SDE-COPYRIGHT-NOTE-END ---
|
|
|
|
|
|
|
|
--- 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;
|
|
|
|
|