usb: gadget: mv_udc: Handle return value of clk_prepare_enable.
authorArvind Yadav <arvind.yadav.cs@gmail.com>
Wed, 14 Jun 2017 09:50:08 +0000 (15:20 +0530)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Thu, 15 Jun 2017 08:09:48 +0000 (11:09 +0300)
clk_prepare_enable() can fail here and we must check its return value.

Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/udc/mv_udc_core.c

index 76f56c5762f9659e27aeb1304a4ff145986685ab..8a708d0a1042e9238b822f81074d504cc27c200a 100644 (file)
@@ -960,9 +960,9 @@ static const struct usb_ep_ops mv_ep_ops = {
        .fifo_flush     = mv_ep_fifo_flush,     /* flush fifo */
 };
 
-static void udc_clock_enable(struct mv_udc *udc)
+static int udc_clock_enable(struct mv_udc *udc)
 {
-       clk_prepare_enable(udc->clk);
+       return clk_prepare_enable(udc->clk);
 }
 
 static void udc_clock_disable(struct mv_udc *udc)
@@ -1070,7 +1070,10 @@ static int mv_udc_enable_internal(struct mv_udc *udc)
                return 0;
 
        dev_dbg(&udc->dev->dev, "enable udc\n");
-       udc_clock_enable(udc);
+       retval = udc_clock_enable(udc);
+       if (retval)
+               return retval;
+
        if (udc->pdata->phy_init) {
                retval = udc->pdata->phy_init(udc->phy_regs);
                if (retval) {