From: Matthias Blankertz Date: Tue, 22 May 2018 13:24:48 +0000 (+0200) Subject: usb: xhci-rcar: deregister before deactivating clock X-Git-Tag: v2018.07-rc1~15^2~24 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3f484226793166c75bd56784832d4c1a84061ad5;p=u-boot 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)