Răsfoiți Sursa

usb: phy: fix error handling in usb_get_phy

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>
Kishon Vijay Abraham I 13 ani în urmă
părinte
comite
f8ecf82948
1 a modificat fișierele cu 2 adăugiri și 1 ștergeri
  1. 2 1
      drivers/usb/otg/otg.c

+ 2 - 1
drivers/usb/otg/otg.c

@@ -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;