Restructure some code to make it easier to read.

While at it, return -ENOMEM instead of -EINVAL if
usb_ep_alloc_request() fails, and omit the logging in such cases
(the mm core will complain loud enough).

Signed-off-by: Daniel Mack <zon...@gmail.com>
---
 drivers/usb/gadget/function/f_uac2.c | 39 +++++++++++++++---------------------
 1 file changed, 16 insertions(+), 23 deletions(-)

diff --git a/drivers/usb/gadget/function/f_uac2.c 
b/drivers/usb/gadget/function/f_uac2.c
index 0d65e7c..ab4652e 100644
--- a/drivers/usb/gadget/function/f_uac2.c
+++ b/drivers/usb/gadget/function/f_uac2.c
@@ -1104,31 +1104,24 @@ afunc_set_alt(struct usb_function *fn, unsigned intf, 
unsigned alt)
        usb_ep_enable(ep);
 
        for (i = 0; i < USB_XFERS; i++) {
-               if (prm->ureq[i].req) {
-                       if (usb_ep_queue(ep, prm->ureq[i].req, GFP_ATOMIC))
-                               dev_err(&uac2->pdev.dev, "%d Error!\n",
-                                       __LINE__);
-                       continue;
-               }
-
-               req = usb_ep_alloc_request(ep, GFP_ATOMIC);
-               if (req == NULL) {
-                       dev_err(&uac2->pdev.dev,
-                               "%s:%d Error!\n", __func__, __LINE__);
-                       return -EINVAL;
+               if (!prm->ureq[i].req) {
+                       req = usb_ep_alloc_request(ep, GFP_ATOMIC);
+                       if (req == NULL)
+                               return -ENOMEM;
+
+                       prm->ureq[i].req = req;
+                       prm->ureq[i].pp = prm;
+
+                       req->zero = 0;
+                       req->context = &prm->ureq[i];
+                       req->length = prm->max_psize;
+                       req->complete = agdev_iso_complete;
+                       req->buf = prm->rbuf + i * req->length;
                }
 
-               prm->ureq[i].req = req;
-               prm->ureq[i].pp = prm;
-
-               req->zero = 0;
-               req->context = &prm->ureq[i];
-               req->length = prm->max_psize;
-               req->complete = agdev_iso_complete;
-               req->buf = prm->rbuf + i * req->length;
-
-               if (usb_ep_queue(ep, req, GFP_ATOMIC))
-                       dev_err(&uac2->pdev.dev, "%d Error!\n", __LINE__);
+               if (usb_ep_queue(ep, prm->ureq[i].req, GFP_ATOMIC))
+                       dev_err(&uac2->pdev.dev, "%s:%d Error!\n",
+                               __func__, __LINE__);
        }
 
        return 0;
-- 
2.1.0

--
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