[RFC PATCH 1/4] kho: Move subtree blob logic to separate function
From: Logan Odell
Date: Fri Jul 31 2026 - 17:57:19 EST
Move the logic to set the blob data in a subtree node into a separate
function to allow for re-use. No functional change.
Signed-off-by: Logan Odell <loganodell@xxxxxxxxxx>
---
kernel/liveupdate/kexec_handover.c | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/kernel/liveupdate/kexec_handover.c b/kernel/liveupdate/kexec_handover.c
index cc68a3692905..29a05cec2625 100644
--- a/kernel/liveupdate/kexec_handover.c
+++ b/kernel/liveupdate/kexec_handover.c
@@ -722,6 +722,21 @@ static void __init kho_reserve_scratch(void)
kho_enable = false;
}
+static int kho_add_subtree_node(const char *name, void *root_fdt, void *fdt, int off)
+{
+ int err;
+ phys_addr_t phys = virt_to_phys(fdt);
+
+ err = fdt_setprop(root_fdt, off, KHO_FDT_SUB_TREE_PROP_NAME,
+ &phys, sizeof(phys));
+ if (err)
+ return err;
+
+ WARN_ON_ONCE(kho_debugfs_fdt_add(&kho_out.dbg, name, fdt, false));
+
+ return 0;
+}
+
/**
* kho_add_subtree - record the physical address of a sub FDT in KHO root tree.
* @name: name of the sub tree.
@@ -739,7 +754,6 @@ static void __init kho_reserve_scratch(void)
*/
int kho_add_subtree(const char *name, void *fdt)
{
- phys_addr_t phys = virt_to_phys(fdt);
void *root_fdt = kho_out.fdt;
int err = -ENOMEM;
int off, fdt_err;
@@ -757,12 +771,7 @@ int kho_add_subtree(const char *name, void *fdt)
goto out_pack;
}
- err = fdt_setprop(root_fdt, off, KHO_FDT_SUB_TREE_PROP_NAME,
- &phys, sizeof(phys));
- if (err < 0)
- goto out_pack;
-
- WARN_ON_ONCE(kho_debugfs_fdt_add(&kho_out.dbg, name, fdt, false));
+ err = kho_add_subtree_node(name, root_fdt, fdt, off);
out_pack:
fdt_pack(root_fdt);
--
2.55.0.508.g3f0d502094-goog