Re: [PATCH] xhci: fix reporting of 0-sized URBs in control endpoint

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Feb 21, 2015 at 1:18 AM, Aleksander Morgado
<aleksander@xxxxxxxxxxxxx> wrote:
> The current logic, though, doesn't seem to contemplate the case where a TD has a
> TDR in the data stage which actually reports 0 bytes (i.e. transfer event len
> equal to transfer buffer len). The logic is currently handling this case in the
> following way:
>
>   Transfer event len = 64, COMP_SHORT_TX (data)
>    |---------> URB actual length = 64 - 64 = 0
>   Transfer event len = 0, COMP_SHORT_SUCCESS (status)
>    |---------> URB actual length set to transfer buffer length = 64   <------
>
> In this case, the logic shouldn't update the URB actual length during the status
> stage; instead it should leave the URB actual length that was computed during
> the data stage, even if it's 0:
>
>   Transfer event len = 63, COMP_SHORT_TX (data)

So much for re-reading the patch 10 times before sending it...  The
"Transfer event len" in this previous line should be 64, not 63.

>    |---------> URB actual length = 64 - 64 = 0
>   Transfer event len = 0, COMP_SHORT_SUCCESS (status)
>    |---------> URB actual length not modified = 0                     <------


-- 
Aleksander
https://aleksander.es
--
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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux