usb: gadget: gr_udc: Return error code when trying to set ep.maxpacket > ep.maxpacket...
authorAndreas Larsson <andreas@gaisler.com>
Thu, 27 Mar 2014 15:15:58 +0000 (16:15 +0100)
committerFelipe Balbi <balbi@ti.com>
Mon, 21 Apr 2014 19:07:27 +0000 (14:07 -0500)
Make gr_ep_enable fail properly when a call requests a larger ep.maxpacket than
ep.maxpacket_limit.

Signed-off-by: Andreas Larsson <andreas@gaisler.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/gr_udc.c

index 253e608b57f93ddfe6794463d511c92f64352d04..72458be7763a6bc940f6a39805dd772712dff1d8 100644 (file)
@@ -1542,6 +1542,10 @@ static int gr_ep_enable(struct usb_ep *_ep,
        } else if (max == 0) {
                dev_err(dev->dev, "Max payload cannot be set to 0\n");
                return -EINVAL;
+       } else if (max > ep->ep.maxpacket_limit) {
+               dev_err(dev->dev, "Requested max payload %d > limit %d\n",
+                       max, ep->ep.maxpacket_limit);
+               return -EINVAL;
        }
 
        spin_lock(&ep->dev->lock);