[PATCH 3/4] software node: handle missing remote endpoint node

From: Peng Fan (OSS)

Date: Wed Nov 04 2026 - 10:54:27 EST


From: Peng Fan <peng.fan@xxxxxxx>

software_node_graph_get_remote_endpoint() passes the result of
software_node_fwnode() directly to software_node_get(). That lookup
returns NULL if the referenced software node is not registered, and now
also if it is in its release path.

Check the result and return NULL instead of passing a NULL fwnode to
software_node_get().

Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---
drivers/base/swnode.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c
index 9095d50ba146f..4d95a59a27f0a 100644
--- a/drivers/base/swnode.c
+++ b/drivers/base/swnode.c
@@ -676,6 +676,7 @@ software_node_graph_get_remote_endpoint(const struct fwnode_handle *fwnode)
{
struct swnode *swnode = to_swnode(fwnode);
const struct software_node_ref_args *ref;
+ struct fwnode_handle *refnode;
const struct property_entry *prop;

if (!swnode)
@@ -690,7 +691,11 @@ software_node_graph_get_remote_endpoint(const struct fwnode_handle *fwnode)
if (!ref->swnode)
return NULL;

- return software_node_get(software_node_fwnode(ref->swnode));
+ refnode = software_node_fwnode(ref->swnode);
+ if (!refnode)
+ return NULL;
+
+ return software_node_get(refnode);
}

static struct fwnode_handle *

--
2.34.1