On 19.1.2024 23.54, Michał Pecio wrote:
Usual tests passed (but only transaction errors are covered).
Thanks for testing, I'l add your a tested-by tag to the patch.
I noticed that with your new fix to the frame length bug, error_mid_td always equals urb_length_set. So the new flag is perhaps not necessary after all. The test in handle_tx_event() could be: if (usb_pipeisoc(td->urb->pipe) && td->urb_length_set && !list_is_last(... )) I tried it and it works just as well.
This is probably true here, but urb_length_set and error_mid_td have a bit different idea behind them For example short control transfers may send an event mid TD (during data stage). There is no error, we wait for the completion of the status stage but don't want to change the transfer length set in the urb. I suspect we will need to play with both flags for other error cases in the future. Thanks Mathias