On Fri, Jun 21, 2013 at 11:19 PM, Alan Stern <st...@rowland.harvard.edu> wrote:
> On Fri, 21 Jun 2013, Konstantin Filatov wrote:
>
>> > --- a/drivers/usb/host/uhci-q.c
>> > +++ b/drivers/usb/host/uhci-q.c
>> > @@ -977,6 +977,9 @@ static int uhci_submit_common(struct uhci_hcd *uhci, 
>> > struct urb *urb,
>> >          for (;;) {      /* Allow zero length packets */
>> >                  int pktsze = maxsze;
>> >
>> > +               if (this_sg_len < pktsze)       /* The short packet */
>> > +                       pktsze = this_sg_len;
>> > This will build a short packet transfer descriptor which is not the last
>> > one, and it isn't correct.
>> Why do you think so? Could you please refer to the specification of UHCI.
>
> It _isn't_ correct.  But the fault lies in the driver that submitted
> the SG transfer in the first place, not in uhci-hcd.  This is the right
> thing to do.

The correct fix should be: not using sg under this situation by
patching usb_sg_init(),
shouldn't it?


Thanks,
-- 
Ming Lei
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to