6.6-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Stephen Boyd <sb...@kernel.org>

[ Upstream commit 221a819aa3ca5bbbc91ce425b3e8d9463b121d09 ]

Call this function unconditionally so that we can populate an empty DTB
on platforms that don't boot with a command line provided DTB.  There's
no harm in calling unflatten_device_tree() unconditionally. If there
isn't a valid initial_boot_params dtb then unflatten_device_tree()
returns early.

Cc: Rob Herring <robh...@kernel.org>
Cc: Frank Rowand <frowand.l...@gmail.com>
Cc: Richard Weinberger <rich...@nod.at>
Cc: Anton Ivanov <anton.iva...@cambridgegreys.com>
Cc: Johannes Berg <johan...@sipsolutions.net>
Cc: linux-um@lists.infradead.org
Signed-off-by: Stephen Boyd <sb...@kernel.org>
Link: https://lore.kernel.org/r/20240217010557.2381548-4-sb...@kernel.org
Signed-off-by: Rob Herring <r...@kernel.org>
Stable-dep-of: b2473a359763 ("of/fdt: add dt_phys arg to early_init_dt_scan and 
early_init_dt_verify")
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 arch/um/kernel/dtb.c  | 16 ++++++++--------
 drivers/of/unittest.c |  4 ----
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/arch/um/kernel/dtb.c b/arch/um/kernel/dtb.c
index 484141b06938f..4954188a6a090 100644
--- a/arch/um/kernel/dtb.c
+++ b/arch/um/kernel/dtb.c
@@ -16,16 +16,16 @@ void uml_dtb_init(void)
        void *area;
 
        area = uml_load_file(dtb, &size);
-       if (!area)
-               return;
-
-       if (!early_init_dt_scan(area)) {
-               pr_err("invalid DTB %s\n", dtb);
-               memblock_free(area, size);
-               return;
+       if (area) {
+               if (!early_init_dt_scan(area)) {
+                       pr_err("invalid DTB %s\n", dtb);
+                       memblock_free(area, size);
+                       return;
+               }
+
+               early_init_fdt_scan_reserved_mem();
        }
 
-       early_init_fdt_scan_reserved_mem();
        unflatten_device_tree();
 }
 
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 4f58345b5c683..7986113adc7d3 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -4017,10 +4017,6 @@ static int __init of_unittest(void)
        add_taint(TAINT_TEST, LOCKDEP_STILL_OK);
 
        /* adding data for unittest */
-
-       if (IS_ENABLED(CONFIG_UML))
-               unittest_unflatten_overlay_base();
-
        res = unittest_data_add();
        if (res)
                return res;
-- 
2.43.0




Reply via email to