Explorar o código

usb: xhci-rcar: deregister before deactivating clock

During the execution of xhci_deregister xHCI registers are accessed. If
the clock is already deactivated when xhci_deregister is called this can
lead to undefined behavior. Change the order to deregister the device
before deactivating the clock.

Signed-off-by: Matthias Blankertz <matthias.blankertz@cetitec.com>
Matthias Blankertz %!s(int64=7) %!d(string=hai) anos
pai
achega
3f48422679
Modificáronse 1 ficheiros con 4 adicións e 1 borrados
  1. 4 1
      drivers/usb/host/xhci-rcar.c

+ 4 - 1
drivers/usb/host/xhci-rcar.c

@@ -117,12 +117,15 @@ err_clk:
 
 static int xhci_rcar_deregister(struct udevice *dev)
 {
+	int ret;
 	struct rcar_xhci_platdata *plat = dev_get_platdata(dev);
 
+	ret = xhci_deregister(dev);
+
 	clk_disable(&plat->clk);
 	clk_free(&plat->clk);
 
-	return xhci_deregister(dev);
+	return ret;
 }
 
 static int xhci_rcar_ofdata_to_platdata(struct udevice *dev)