diff options
author | Jiaxun Yang <jiaxun.yang@flygoat.com> | 2024-06-03 09:45:53 +0200 |
---|---|---|
committer | Huacai Chen <chenhuacai@loongson.cn> | 2024-06-03 09:45:53 +0200 |
commit | b56f67a6c748bb009f313f91651c8020d2338d63 (patch) | |
tree | ccd42508430f653e9b0cad040c2f923bc578153f /arch/loongarch | |
parent | LoongArch: Remove CONFIG_ACPI_TABLE_UPGRADE in platform_init() (diff) | |
download | linux-b56f67a6c748bb009f313f91651c8020d2338d63.tar.xz linux-b56f67a6c748bb009f313f91651c8020d2338d63.zip |
LoongArch: Fix built-in DTB detection
fdt_check_header(__dtb_start) will always success because kernel
provides a dummy dtb, and by coincidence __dtb_start clashed with
entry of this dummy dtb. The consequence is fdt passed from firmware
will never be taken.
Fix by trying to utilise __dtb_start only when CONFIG_BUILTIN_DTB is
enabled.
Cc: stable@vger.kernel.org
Fixes: 7b937cc243e5 ("of: Create of_root if no dtb provided by firmware")
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Diffstat (limited to 'arch/loongarch')
-rw-r--r-- | arch/loongarch/kernel/setup.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/loongarch/kernel/setup.c b/arch/loongarch/kernel/setup.c index 89ad756aeeed..3d048f1be143 100644 --- a/arch/loongarch/kernel/setup.c +++ b/arch/loongarch/kernel/setup.c @@ -282,7 +282,7 @@ static void __init fdt_setup(void) return; /* Prefer to use built-in dtb, checking its legality first. */ - if (!fdt_check_header(__dtb_start)) + if (IS_ENABLED(CONFIG_BUILTIN_DTB) && !fdt_check_header(__dtb_start)) fdt_pointer = __dtb_start; else fdt_pointer = efi_fdt_pointer(); /* Fallback to firmware dtb */ |