Commit 2203e1ad authored by Mark Brown's avatar Mark Brown Committed by Catalin Marinas

arm64: kaslr: Check command line before looking for a seed

Now that we print diagnostics at boot the reason why we do not initialise
KASLR matters. Currently we check for a seed before we check if the user
has explicitly disabled KASLR on the command line which will result in
misleading diagnostics so reverse the order of those checks. We still
parse the seed from the DT early so that if the user has both provided a
seed and disabled KASLR on the command line we still mask the seed on
the command line.
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 294a9ddd
...@@ -26,7 +26,7 @@ enum kaslr_status { ...@@ -26,7 +26,7 @@ enum kaslr_status {
KASLR_DISABLED_FDT_REMAP, KASLR_DISABLED_FDT_REMAP,
}; };
enum kaslr_status __ro_after_init kaslr_status; static enum kaslr_status __initdata kaslr_status;
u64 __ro_after_init module_alloc_base; u64 __ro_after_init module_alloc_base;
u16 __initdata memstart_offset_seed; u16 __initdata memstart_offset_seed;
...@@ -108,10 +108,6 @@ u64 __init kaslr_early_init(u64 dt_phys) ...@@ -108,10 +108,6 @@ u64 __init kaslr_early_init(u64 dt_phys)
* Retrieve (and wipe) the seed from the FDT * Retrieve (and wipe) the seed from the FDT
*/ */
seed = get_kaslr_seed(fdt); seed = get_kaslr_seed(fdt);
if (!seed) {
kaslr_status = KASLR_DISABLED_NO_SEED;
return 0;
}
/* /*
* Check if 'nokaslr' appears on the command line, and * Check if 'nokaslr' appears on the command line, and
...@@ -124,6 +120,11 @@ u64 __init kaslr_early_init(u64 dt_phys) ...@@ -124,6 +120,11 @@ u64 __init kaslr_early_init(u64 dt_phys)
return 0; return 0;
} }
if (!seed) {
kaslr_status = KASLR_DISABLED_NO_SEED;
return 0;
}
/* /*
* OK, so we are proceeding with KASLR enabled. Calculate a suitable * OK, so we are proceeding with KASLR enabled. Calculate a suitable
* kernel image offset from the seed. Let's place the kernel in the * kernel image offset from the seed. Let's place the kernel in the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment