diff options
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/swnode.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index 306bb93287af..89ad8dee6ad5 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 * @@ -487,7 +488,7 @@ software_node_get_next_child(const struct fwnode_handle *fwnode, struct software_node *p = to_software_node(fwnode); struct software_node *c = to_software_node(child); - if (list_empty(&p->children) || + if (!p || list_empty(&p->children) || (c && list_is_last(&c->entry, &p->children))) return NULL; |