diff options
author | Roger Quadros <roger.quadros@nokia.com> | 2011-04-05 11:36:38 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-04-13 19:40:59 -0400 |
commit | 73ee4da994e7b97bd8241e39099cf3dd94675d79 (patch) | |
tree | 3883124d341dc96ea32aa5d097319cf3a32b2a2d /drivers/usb/gadget | |
parent | 654d121ad8c84e3442efee20b2a0703edb18c212 (diff) |
usb: gadget: f_mass_storage: Fix Bulk-only RESET handling
The ep0 request tag was not recorded thus resulting in phase
problems while sending status/response in handle_execption() handler.
This was resulting in MSC compliance test failures with USBCV tool.
With this patch, the Bulk-Only Mass storage RESET request is
handled correctly and the MSC compliance tests pass.
Signed-off-by: Roger Quadros <roger.quadros@nokia.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/f_mass_storage.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c index 98d6b39061d2..e9de33d1c9a0 100644 --- a/drivers/usb/gadget/f_mass_storage.c +++ b/drivers/usb/gadget/f_mass_storage.c | |||
@@ -599,6 +599,11 @@ static int fsg_setup(struct usb_function *f, | |||
599 | if (!fsg_is_set(fsg->common)) | 599 | if (!fsg_is_set(fsg->common)) |
600 | return -EOPNOTSUPP; | 600 | return -EOPNOTSUPP; |
601 | 601 | ||
602 | ++fsg->common->ep0_req_tag; /* Record arrival of a new request */ | ||
603 | req->context = NULL; | ||
604 | req->length = 0; | ||
605 | dump_msg(fsg, "ep0-setup", (u8 *) ctrl, sizeof(*ctrl)); | ||
606 | |||
602 | switch (ctrl->bRequest) { | 607 | switch (ctrl->bRequest) { |
603 | 608 | ||
604 | case USB_BULK_RESET_REQUEST: | 609 | case USB_BULK_RESET_REQUEST: |