| From 8891123f9cbb9c1ee531e5a87fa116f0af685c48 Mon Sep 17 00:00:00 2001 |
| From: Heikki Krogerus <heikki.krogerus@linux.intel.com> |
| Date: Mon, 1 Mar 2021 17:30:11 +0300 |
| Subject: software node: Fix node registration |
| |
| From: Heikki Krogerus <heikki.krogerus@linux.intel.com> |
| |
| commit 8891123f9cbb9c1ee531e5a87fa116f0af685c48 upstream. |
| |
| Software node can not be registered before its parent. |
| |
| Fixes: 80488a6b1d3c ("software node: Add support for static node descriptors") |
| Cc: 5.10+ <stable@vger.kernel.org> # 5.10+ |
| Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> |
| Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/base/swnode.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/drivers/base/swnode.c |
| +++ b/drivers/base/swnode.c |
| @@ -786,6 +786,9 @@ int software_node_register(const struct |
| if (software_node_to_swnode(node)) |
| return -EEXIST; |
| |
| + if (node->parent && !parent) |
| + return -EINVAL; |
| + |
| return PTR_ERR_OR_ZERO(swnode_register(node, parent, 0)); |
| } |
| EXPORT_SYMBOL_GPL(software_node_register); |