diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c
index 28b6eb0e518708913d2198e47b61178646a1c8a6..89ad8dee6ad53f6f5ca76ac20d465b54ac45b4ab 100644
--- a/drivers/base/swnode.c
+++ b/drivers/base/swnode.c
@@ -477,7 +477,8 @@ software_node_get_parent(const struct fwnode_handle *fwnode)
 {
 	struct software_node *swnode = to_software_node(fwnode);
 
-	return swnode->parent ? &swnode->parent->fwnode : NULL;
+	return swnode ? (swnode->parent ? &swnode->parent->fwnode : NULL) :
+			NULL;
 }
 
 struct fwnode_handle *