Thread (11 messages) 11 messages, 6 authors, 2015-10-08

[PATCH V4 2/3] arm64: support initrd outside kernel linear map

From: Christoffer Dall <hidden>
Date: 2015-10-08 08:49:43
Also in: linux-arch, linux-mm, lkml

On Tue, Oct 06, 2015 at 01:16:52PM -0400, Mark Salter wrote:
On Tue, 2015-10-06 at 18:11 +0100, Mark Rutland wrote:
quoted
On Tue, Sep 08, 2015 at 12:31:13PM +0100, Mark Rutland wrote:
quoted
Hi Mark,

On Mon, Aug 17, 2015 at 06:01:06PM +0100, Mark Salter wrote:
quoted
The use of mem= could leave part or all of the initrd outside of
the kernel linear map. This will lead to an error when unpacking
the initrd and a probable failure to boot. This patch catches that
situation and relocates the initrd to be fully within the linear
map.
With next-20150908, this patch results in a confusing message at boot when not
using an initrd:

Moving initrd from [4080000000-407fffffff] to [9fff49000-9fff48fff]

I think that can be solved by folding in the diff below.
Mark, it looks like this fell by the wayside.

Do you have any objection to this? I'll promote this to it's own patch
if not.

Mark.
quoted
Thanks,
Mark.
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 6bab21f..2322479 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -364,6 +364,8 @@ static void __init relocate_initrd(void)
                to_free = ram_end - orig_start;
 
        size = orig_end - orig_start;
+       if (!size)
+               return;
 
        /* initrd needs to be relocated completely inside linear mapping */
        new_start = memblock_find_in_range(0, PFN_PHYS(max_pfn),
Sorry, no. That looks perfectly good to me.
FYI: I applied these patches to 4.0 (only a trivial conflict on the x86
side) and this fixed an issue for me booting systems with mem=X,
reducing the amount of physical memory available on a system, which
would otherwise cause the system to just silently halt during boot.

Note that this seems to fix even more than it promises, because one of
those systems does not use an initrd, but I'm thinking maybe this fixes
issues with the DT as well?

In any case, I think this may be a good candidate for cc'ing to stable?

Thanks,
-Christoffer
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help