On Fri, Apr 1, 2011 at 2:08 PM, Felipe Balbi <balbi@xxxxxx> wrote: > we shouldn't assume that value because on SuperSpeed, we have > 1024 as wMaxPacketSize. > > Signed-off-by: Felipe Balbi <balbi@xxxxxx> > --- > > this was tested with dummy_hcd and a bunch of dd if of > transfers with different sizes. > > Âdrivers/usb/gadget/file_storage.c |  Â3 ++- > Â1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c > index a6eacb5..b3c9f29 100644 > --- a/drivers/usb/gadget/file_storage.c > +++ b/drivers/usb/gadget/file_storage.c > @@ -1249,6 +1249,7 @@ static int do_read(struct fsg_dev *fsg) > > Âstatic int do_write(struct fsg_dev *fsg) > Â{ > +    struct usb_ep      *ep = fsg->bulk_out; >    Âstruct fsg_lun     Â*curlun = fsg->curlun; >    Âu32           lba; >    Âstruct fsg_buffhd    *bh; > @@ -1331,7 +1332,7 @@ static int do_write(struct fsg_dev *fsg) >                Âcurlun->info_valid = 1; >                Âcontinue; >            Â} > -            amount -= (amount & 511); > +            amount -= (amount & (ep->maxpacket - 1)); IMHO, amount &= ~(ep->maxpacket - 1) looks better -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html