smbios: Do not look up children of invalid nodes
authorSamuel Holland <samuel.holland@sifive.com>
Mon, 14 Apr 2025 19:47:04 +0000 (12:47 -0700)
committerTom Rini <trini@konsulko.com>
Thu, 24 Apr 2025 14:23:02 +0000 (08:23 -0600)
If there is no UCLASS_SYSINFO device available, parent_node will be
ofnode_null(). Calling ofnode_find_subnode() then triggers an assertion:

  drivers/core/ofnode.c:598: ofnode_find_subnode: Assertion `ofnode_valid(node)' failed.

Check for a valid parent_node, not just that OF_CONTROL is enabled.

Fixes: 44ffb6f0ecaf ("smbios: Allow properties to come from the device tree")
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
lib/smbios.c

index 7c9701a..b8c2846 100644 (file)
@@ -950,7 +950,7 @@ ulong write_smbios_table(ulong addr)
                ctx.subnode_name = NULL;
                if (method->subnode_name) {
                        ctx.subnode_name = method->subnode_name;
-                       if (IS_ENABLED(CONFIG_OF_CONTROL))
+                       if (ofnode_valid(parent_node))
                                ctx.node = ofnode_find_subnode(parent_node,
                                                               method->subnode_name);
                }