diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2017-06-23 12:42:56 +0200 |
---|---|---|
committer | Yongbok Kim <yongbok.kim@imgtec.com> | 2017-07-11 15:06:34 +0100 |
commit | 9768e2abf7ca3ef181f7cec134d7305c1643f78a (patch) | |
tree | c3b6dd6d064580e0b0a671aa0df52a9d396768a1 /hw/mips | |
parent | cab4888136a92250fdd401402622824994f7ce0b (diff) | |
download | qemu-9768e2abf7ca3ef181f7cec134d7305c1643f78a.zip qemu-9768e2abf7ca3ef181f7cec134d7305c1643f78a.tar.gz qemu-9768e2abf7ca3ef181f7cec134d7305c1643f78a.tar.bz2 |
mips/malta: load the initrd at the end of the low memory
Currently the malta board is loading the initrd just after the kernel.
This doesn't work for kaslr enabled kernels, as the initrd ends-up being
overwritten.
Move the initrd at the end of the low memory, that should leave a
sufficient gap for kaslr.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Yongbok Kim <yongbok.kim@imgtec.com>
Signed-off-by: Yongbok Kim <yongbok.kim@imgtec.com>
Diffstat (limited to 'hw/mips')
-rw-r--r-- | hw/mips/mips_malta.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index 95cdabb..dad2f37 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -841,8 +841,9 @@ static int64_t load_kernel (void) if (loaderparams.initrd_filename) { initrd_size = get_image_size (loaderparams.initrd_filename); if (initrd_size > 0) { - initrd_offset = (kernel_high + ~INITRD_PAGE_MASK) & INITRD_PAGE_MASK; - if (initrd_offset + initrd_size > ram_size) { + initrd_offset = (loaderparams.ram_low_size - initrd_size + - ~INITRD_PAGE_MASK) & INITRD_PAGE_MASK; + if (kernel_high >= initrd_offset) { fprintf(stderr, "qemu: memory too small for initial ram disk '%s'\n", loaderparams.initrd_filename); |