summaryrefslogtreecommitdiff
path: root/arch/microblaze
diff options
context:
space:
mode:
authorUsama Arif <usamaarif642@gmail.com>2024-10-23 18:14:26 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-12-09 10:31:56 +0100
commit1103d3b5a5025aba1ea1fcee287c8858b175bec4 (patch)
treedbe2fb1bfd4117e502b964e74a04d08c8fc55f10 /arch/microblaze
parentbe0a96cfa9c06cee30af45a583a1c18a8d15f47a (diff)
downloadlinux-1103d3b5a5025aba1ea1fcee287c8858b175bec4.tar.gz
linux-1103d3b5a5025aba1ea1fcee287c8858b175bec4.tar.bz2
linux-1103d3b5a5025aba1ea1fcee287c8858b175bec4.zip
of/fdt: add dt_phys arg to early_init_dt_scan and early_init_dt_verify
[ Upstream commit b2473a359763e27567993e7d8f37de82f57a0829 ] __pa() is only intended to be used for linear map addresses and using it for initial_boot_params which is in fixmap for arm64 will give an incorrect value. Hence save the physical address when it is known at boot time when calling early_init_dt_scan for arm64 and use it at kexec time instead of converting the virtual address using __pa(). Note that arm64 doesn't need the FDT region reserved in the DT as the kernel explicitly reserves the passed in FDT. Therefore, only a debug warning is fixed with this change. Reported-by: Breno Leitao <leitao@debian.org> Suggested-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Usama Arif <usamaarif642@gmail.com> Fixes: ac10be5cdbfa ("arm64: Use common of_kexec_alloc_and_setup_fdt()") Link: https://lore.kernel.org/r/20241023171426.452688-1-usamaarif642@gmail.com Signed-off-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'arch/microblaze')
-rw-r--r--arch/microblaze/kernel/prom.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/microblaze/kernel/prom.c b/arch/microblaze/kernel/prom.c
index e424c796e297..76ac4cfdfb42 100644
--- a/arch/microblaze/kernel/prom.c
+++ b/arch/microblaze/kernel/prom.c
@@ -18,7 +18,7 @@ void __init early_init_devtree(void *params)
{
pr_debug(" -> early_init_devtree(%p)\n", params);
- early_init_dt_scan(params);
+ early_init_dt_scan(params, __pa(params));
if (!strlen(boot_command_line))
strscpy(boot_command_line, cmd_line, COMMAND_LINE_SIZE);