Re: [PATCH 02/37] usb: host: xhci: handle COMP_STOP from SETUP phase too

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

 



Hi,

Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx> writes:
> On 29.12.2016 13:00, Felipe Balbi wrote:
>> Stop Endpoint command can come at any point and we
>> have no control of that. We should make sure to
>> handle COMP_STOP on SETUP phase as well, otherwise
>> urb->actual_lenght might be set to negative values
>> in some occasions such as below:
>>
>>   urb->length = 4;
>>   build_control_transfer_td_for(urb, ep);
>>
>>   					stop_endpoint(ep);
>>
>> COMP_STOP:
>> 	[...]
>> 	urb->actual_length = urb->length - trb->length;
>>
>> trb->length is 8 for SETUP stage (8 control request
>> bytes), so actual_length would be set to -4 in this
>> case.
>>
>> While doing that, also make sure to use TRB_TYPE
>> field of the actual TRB instead of matching pointers
>> to figure out in which stage of the control transfer
>> we got our completion event.
>>
>> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>
>>
>> ---
>
> Cherry-picked this one for usb-linus and stable

cool, let me know if you want me to rebase the others on top of anything
else. They're all sitting on top of v4.10-rc1 for now.

-- 
balbi
--
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