diff options
author | Shan Hai <shan.hai@windriver.com> | 2015-04-29 16:53:09 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-04-30 23:01:27 +0100 |
commit | 156d8fecf31a7a9dc257e55e25645c561d5ba0b8 (patch) | |
tree | 99acf066728793bda1ecedbfe61c26aad197ee22 /meta/recipes-bsp/grub/files | |
parent | c577a52b252ccbad9a8dde79c6a4a4f23376d9d8 (diff) | |
download | openembedded-core-156d8fecf31a7a9dc257e55e25645c561d5ba0b8.tar.gz openembedded-core-156d8fecf31a7a9dc257e55e25645c561d5ba0b8.tar.bz2 openembedded-core-156d8fecf31a7a9dc257e55e25645c561d5ba0b8.zip |
grub2: fix initrd size restriction bug
The current grub2 fails on loading large initrd file (> 500M) since
the initrd size is added to the addr_min and causes the failure.
Fix it by picking a patch from grub2 upstream.
Signed-off-by: Shan Hai <shan.hai@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-bsp/grub/files')
-rw-r--r-- | meta/recipes-bsp/grub/files/grub2-fix-initrd-size-bug.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/meta/recipes-bsp/grub/files/grub2-fix-initrd-size-bug.patch b/meta/recipes-bsp/grub/files/grub2-fix-initrd-size-bug.patch new file mode 100644 index 0000000000..d114f4847b --- /dev/null +++ b/meta/recipes-bsp/grub/files/grub2-fix-initrd-size-bug.patch @@ -0,0 +1,48 @@ +From 8fbb150a56966edde4dc07b8d01be5eb149b65ab Mon Sep 17 00:00:00 2001 +From: Colin Watson <cjwatson@ubuntu.com> +Date: Sun, 20 Jan 2013 23:03:35 +0000 +Subject: [PATCH 1/1] * grub-core/loader/i386/linux.c (grub_cmd_initrd): Don't + add the initrd size to addr_min, since the initrd will be allocated after + this address. + +commit 6a0debbd9167e8f79cdef5497a73d23e580c0cd4 upstream + +Upstream-Status: Backport + +Signed-off-by: Shan Hai <shan.hai@windriver.com> +--- + ChangeLog | 6 ++++++ + grub-core/loader/i386/linux.c | 3 +-- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index c2f42d5..40cb508 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2013-01-20 Colin Watson <cjwatson@ubuntu.com> ++ ++ * grub-core/loader/i386/linux.c (grub_cmd_initrd): Don't add the ++ initrd size to addr_min, since the initrd will be allocated after ++ this address. ++ + 2012-07-02 Vladimir Serbinenko <phcoder@gmail.com> + + * grub-core/net/tftp.c (ack): Fix endianness problem. +diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c +index 62087cf..e2425c8 100644 +--- a/grub-core/loader/i386/linux.c ++++ b/grub-core/loader/i386/linux.c +@@ -1098,8 +1098,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + worse than that of Linux 2.3.xx, so avoid the last 64kb. */ + addr_max -= 0x10000; + +- addr_min = (grub_addr_t) prot_mode_target + prot_init_space +- + page_align (size); ++ addr_min = (grub_addr_t) prot_mode_target + prot_init_space; + + /* Put the initrd as high as possible, 4KiB aligned. */ + addr = (addr_max - size) & ~0xFFF; +-- +1.8.5.2.233.g932f7e4 + |