From: Matthias Blankertz Date: Tue, 22 May 2018 13:24:48 +0000 (+0200) Subject: usb: xhci-rcar: deregister before deactivating clock X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=3f484226793166c75bd56784832d4c1a84061ad5;p=project%2Fbcm63xx%2Fu-boot.git 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 --- diff --git a/drivers/usb/host/xhci-rcar.c b/drivers/usb/host/xhci-rcar.c index a837afc483..f2e91ef0fe 100644 --- a/drivers/usb/host/xhci-rcar.c +++ b/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)