diff options
Diffstat (limited to 'drivers/usb/gadget/composite.c')
-rw-r--r-- | drivers/usb/gadget/composite.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index d67de0d22a2b..eb648485a58c 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c | |||
@@ -1868,14 +1868,19 @@ unknown: | |||
1868 | } | 1868 | } |
1869 | break; | 1869 | break; |
1870 | } | 1870 | } |
1871 | req->length = value; | 1871 | |
1872 | req->context = cdev; | 1872 | if (value >= 0) { |
1873 | req->zero = value < w_length; | 1873 | req->length = value; |
1874 | value = composite_ep0_queue(cdev, req, GFP_ATOMIC); | 1874 | req->context = cdev; |
1875 | if (value < 0) { | 1875 | req->zero = value < w_length; |
1876 | DBG(cdev, "ep_queue --> %d\n", value); | 1876 | value = composite_ep0_queue(cdev, req, |
1877 | req->status = 0; | 1877 | GFP_ATOMIC); |
1878 | composite_setup_complete(gadget->ep0, req); | 1878 | if (value < 0) { |
1879 | DBG(cdev, "ep_queue --> %d\n", value); | ||
1880 | req->status = 0; | ||
1881 | composite_setup_complete(gadget->ep0, | ||
1882 | req); | ||
1883 | } | ||
1879 | } | 1884 | } |
1880 | return value; | 1885 | return value; |
1881 | } | 1886 | } |