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:04:14 +0100 |
commit | aa389373d8b36bbb8baa82e7c1fce060ac3f00fb (patch) | |
tree | 672184acbfd2cf8bde0d3b1cb7f6e37eb2515ed3 /meta/recipes-bsp/grub/files | |
parent | 7fc174f180cb08a4147118a89b68a593637a0c7a (diff) | |
download | poky-aa389373d8b36bbb8baa82e7c1fce060ac3f00fb.tar.gz |
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.
(From OE-Core rev: 156d8fecf31a7a9dc257e55e25645c561d5ba0b8)
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 @@ | |||
1 | From 8fbb150a56966edde4dc07b8d01be5eb149b65ab Mon Sep 17 00:00:00 2001 | ||
2 | From: Colin Watson <cjwatson@ubuntu.com> | ||
3 | Date: Sun, 20 Jan 2013 23:03:35 +0000 | ||
4 | Subject: [PATCH 1/1] * grub-core/loader/i386/linux.c (grub_cmd_initrd): Don't | ||
5 | add the initrd size to addr_min, since the initrd will be allocated after | ||
6 | this address. | ||
7 | |||
8 | commit 6a0debbd9167e8f79cdef5497a73d23e580c0cd4 upstream | ||
9 | |||
10 | Upstream-Status: Backport | ||
11 | |||
12 | Signed-off-by: Shan Hai <shan.hai@windriver.com> | ||
13 | --- | ||
14 | ChangeLog | 6 ++++++ | ||
15 | grub-core/loader/i386/linux.c | 3 +-- | ||
16 | 2 files changed, 7 insertions(+), 2 deletions(-) | ||
17 | |||
18 | diff --git a/ChangeLog b/ChangeLog | ||
19 | index c2f42d5..40cb508 100644 | ||
20 | --- a/ChangeLog | ||
21 | +++ b/ChangeLog | ||
22 | @@ -1,3 +1,9 @@ | ||
23 | +2013-01-20 Colin Watson <cjwatson@ubuntu.com> | ||
24 | + | ||
25 | + * grub-core/loader/i386/linux.c (grub_cmd_initrd): Don't add the | ||
26 | + initrd size to addr_min, since the initrd will be allocated after | ||
27 | + this address. | ||
28 | + | ||
29 | 2012-07-02 Vladimir Serbinenko <phcoder@gmail.com> | ||
30 | |||
31 | * grub-core/net/tftp.c (ack): Fix endianness problem. | ||
32 | diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c | ||
33 | index 62087cf..e2425c8 100644 | ||
34 | --- a/grub-core/loader/i386/linux.c | ||
35 | +++ b/grub-core/loader/i386/linux.c | ||
36 | @@ -1098,8 +1098,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), | ||
37 | worse than that of Linux 2.3.xx, so avoid the last 64kb. */ | ||
38 | addr_max -= 0x10000; | ||
39 | |||
40 | - addr_min = (grub_addr_t) prot_mode_target + prot_init_space | ||
41 | - + page_align (size); | ||
42 | + addr_min = (grub_addr_t) prot_mode_target + prot_init_space; | ||
43 | |||
44 | /* Put the initrd as high as possible, 4KiB aligned. */ | ||
45 | addr = (addr_max - size) & ~0xFFF; | ||
46 | -- | ||
47 | 1.8.5.2.233.g932f7e4 | ||
48 | |||