usb: gadget: f_uac2: improve error handling
authorPeter Chen <peter.chen@nxp.com>
Wed, 4 Jan 2017 02:19:22 +0000 (10:19 +0800)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 24 Jan 2017 09:04:11 +0000 (11:04 +0200)
If it is out of memory, we should return -ENOMEM;

Signed-off-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/function/f_uac2.c

index 969cfe7413808c5b1bcc421b56d60fb6db65e57d..3f4e4785418ff62b77807473e9505e5affabd7c5 100644 (file)
@@ -1098,6 +1098,7 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
        prm->rbuf = kzalloc(prm->max_psize * USB_XFERS, GFP_KERNEL);
        if (!prm->rbuf) {
                prm->max_psize = 0;
+               ret = -ENOMEM;
                goto err_free_descs;
        }
 
@@ -1106,20 +1107,21 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
        prm->rbuf = kzalloc(prm->max_psize * USB_XFERS, GFP_KERNEL);
        if (!prm->rbuf) {
                prm->max_psize = 0;
-               goto err;
+               ret = -ENOMEM;
+               goto err_no_memory;
        }
 
        ret = alsa_uac2_init(agdev);
        if (ret)
-               goto err;
+               goto err_no_memory;
        return 0;
 
-err:
+err_no_memory:
        kfree(agdev->uac2.p_prm.rbuf);
        kfree(agdev->uac2.c_prm.rbuf);
 err_free_descs:
        usb_free_all_descriptors(fn);
-       return -EINVAL;
+       return ret;
 }
 
 static int