diff options
author | Mark Rutland <mark.rutland@arm.com> | 2015-10-06 18:24:37 +0100 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2015-10-06 18:33:15 +0100 |
commit | 4ca3bc86bea23f38596ce7508f75e072839bde44 (patch) | |
tree | 6cd7b6433b2f305c4937ca8d136b0000a459bfc6 /arch/arm64/kernel/setup.c | |
parent | abffa6f3b1578d5991545f6998ca7ee70b830e94 (diff) | |
download | linux-stable-4ca3bc86bea23f38596ce7508f75e072839bde44.tar.gz linux-stable-4ca3bc86bea23f38596ce7508f75e072839bde44.tar.bz2 linux-stable-4ca3bc86bea23f38596ce7508f75e072839bde44.zip |
arm64: Don't relocate non-existent initrd
When booting a kernel without an initrd, the kernel reports that it
moves -1 bytes worth, having gone through the motions with initrd_start
equal to initrd_end:
Moving initrd from [4080000000-407fffffff] to [9fff49000-9fff48fff]
Prevent this by bailing out early when the initrd size is zero (i.e. we
have no initrd), avoiding the confusing message and other associated
work.
Fixes: 1570f0d7ab425c1e ("arm64: support initrd outside kernel linear map")
Cc: Mark Salter <msalter@redhat.com>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/setup.c')
-rw-r--r-- | arch/arm64/kernel/setup.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 6bab21f84a9f..232247945b1c 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), |