diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-08-14 14:50:58 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-08-14 14:50:58 -0700 |
commit | feea468014f0c2f930b149e83a9047da86b26e4e (patch) | |
tree | 29807205f471d63affd20e1e36fc3f832b55a106 /drivers/of/property.c | |
parent | f24f27b85eadb6e6e7a68aa16c60a2d65789a02a (diff) | |
parent | ef954844c7ace62f773f4f23e28d2d915adc419f (diff) | |
download | blackbird-obmc-linux-feea468014f0c2f930b149e83a9047da86b26e4e.tar.gz blackbird-obmc-linux-feea468014f0c2f930b149e83a9047da86b26e4e.zip |
Merge 4.13-rc5 into usb-next
This gets the USB fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/of/property.c')
-rw-r--r-- | drivers/of/property.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/of/property.c b/drivers/of/property.c index eda50b4be934..067f9fab7b77 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -708,6 +708,15 @@ struct device_node *of_graph_get_port_parent(struct device_node *node) { unsigned int depth; + if (!node) + return NULL; + + /* + * Preserve usecount for passed in node as of_get_next_parent() + * will do of_node_put() on it. + */ + of_node_get(node); + /* Walk 3 levels up only if there is 'ports' node. */ for (depth = 3; depth && node; depth--) { node = of_get_next_parent(node); @@ -728,12 +737,16 @@ EXPORT_SYMBOL(of_graph_get_port_parent); struct device_node *of_graph_get_remote_port_parent( const struct device_node *node) { - struct device_node *np; + struct device_node *np, *pp; /* Get remote endpoint node. */ np = of_graph_get_remote_endpoint(node); - return of_graph_get_port_parent(np); + pp = of_graph_get_port_parent(np); + + of_node_put(np); + + return pp; } EXPORT_SYMBOL(of_graph_get_remote_port_parent); |