usb: phy: fix error handling in usb_get_phy
authorKishon Vijay Abraham I <kishon@ti.com>
Mon, 2 Jul 2012 06:50:24 +0000 (12:20 +0530)
committerFelipe Balbi <balbi@ti.com>
Mon, 2 Jul 2012 07:41:00 +0000 (10:41 +0300)
spin_unlock_irqrestore() was not being called in the error path of
usb_get_phy. It's fixed here.

Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/otg/otg.c

index 88d62b1..1bf60a2 100644 (file)
@@ -98,11 +98,12 @@ struct usb_phy *usb_get_phy(enum usb_phy_type type)
        if (IS_ERR(phy)) {
                pr_err("unable to find transceiver of type %s\n",
                        usb_phy_type_string(type));
-               return phy;
+               goto err0;
        }
 
        get_device(phy->dev);
 
+err0:
        spin_unlock_irqrestore(&phy_lock, flags);
 
        return phy;