While there fix a potential race condition, first set usbmisc, then call
usbmisc_set_ops().

Signed-off-by: Marc Kleine-Budde <m...@pengutronix.de>
---
 drivers/usb/chipidea/usbmisc_imx6q.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/chipidea/usbmisc_imx6q.c 
b/drivers/usb/chipidea/usbmisc_imx6q.c
index 416e3fc..edc0edd7 100644
--- a/drivers/usb/chipidea/usbmisc_imx6q.c
+++ b/drivers/usb/chipidea/usbmisc_imx6q.c
@@ -116,14 +116,14 @@ static int __devinit usbmisc_imx6q_probe(struct 
platform_device *pdev)
                return ret;
        }
 
+       usbmisc = data;
        ret = usbmisc_set_ops(&imx6q_usbmisc_ops);
        if (ret) {
+               usbmisc = NULL;
                clk_disable_unprepare(data->clk);
                return ret;
        }
 
-       usbmisc = data;
-
        return 0;
 }
 
@@ -131,6 +131,7 @@ static int __devexit usbmisc_imx6q_remove(struct 
platform_device *pdev)
 {
        usbmisc_unset_ops(&imx6q_usbmisc_ops);
        clk_disable_unprepare(usbmisc->clk);
+       usbmisc = NULL;
        return 0;
 }
 
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to