usb: host: ehci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
authorKrzysztof Kozlowski <krzk@kernel.org>
Sat, 7 Jan 2017 08:41:40 +0000 (10:41 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 10 Jan 2017 16:00:42 +0000 (17:00 +0100)
Returning from for_each_available_child_of_node() loop requires cleaning
up node refcount.  Error paths lacked it so for example in case of
deferred probe, the refcount of phy node was left increased.

Fixes: 6d40500ac9b6 ("usb: ehci/ohci-exynos: Fix of_node_put() for child when getting PHYs")
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-exynos.c

index 42e5b66..7a603f6 100644 (file)
@@ -77,10 +77,12 @@ static int exynos_ehci_get_phy(struct device *dev,
                if (IS_ERR(phy)) {
                        ret = PTR_ERR(phy);
                        if (ret == -EPROBE_DEFER) {
+                               of_node_put(child);
                                return ret;
                        } else if (ret != -ENOSYS && ret != -ENODEV) {
                                dev_err(dev,
                                        "Error retrieving usb2 phy: %d\n", ret);
+                               of_node_put(child);
                                return ret;
                        }
                }