X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fusb%2Fgadget%2Ffile_storage.c;h=9b978911e98e3bfffae40cd608f1326dda3e6809;hb=70790a4b5cd6c0291e5b1a2836e2832d46036ac6;hp=df7eb892bb24f6e72b53b14933be125103c65fc3;hpb=413ba3004a4036bb5d6e52d2faa2b19cb13561dc;p=linux-2.6.git diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c index df7eb892b..9b978911e 100644 --- a/drivers/usb/gadget/file_storage.c +++ b/drivers/usb/gadget/file_storage.c @@ -1465,6 +1465,8 @@ static int fsg_setup(struct usb_gadget *gadget, /* Respond with data/status or defer until later? */ if (rc >= 0 && rc != DELAYED_STATUS) { fsg->ep0req->length = rc; + fsg->ep0req->zero = rc < ctrl->wLength + && (rc % gadget->ep0->maxpacket) == 0; fsg->ep0req_name = (ctrl->bRequestType & USB_DIR_IN ? "ep0-in" : "ep0-out"); rc = ep0_queue(fsg); @@ -3671,7 +3673,7 @@ static void fsg_unbind(struct usb_gadget *gadget) usb_ep_free_request(fsg->ep0, req); } - set_gadget_data(gadget, 0); + set_gadget_data(gadget, NULL); }