On 17/12/2019 04:34, Taylor R Campbell wrote:
The attached change set aims to fix a number of races in the USB transfer complete/abort/timeout protocol by consolidating the logic to synchronize it into a few helper subroutines. (Details below.) Bonus: It is no longer necessary to sleep (other than on an adaptive mutex) when aborting.
Thanks for working on this. Some questions/comments if I may - Any reason that dwc2 and ahci didn't get the conversion? At least dwc2 should be done - I'm not sure ahci ever worked, but I've tried to keep it up-to-date in the past. slhci probably needs some love too. - It appears to me that upm_abort could be removed in favour of ubm_abortx and all the xfer cancel logic contained there, but that could be a future change - Off list you mentioned ohci getting stuck during testing and I would agree it's unlikely that these diffs caused the issue. I have some changes to ohci aborting on nhusb which I'll try and fixup when this diff goes in. Thanks, Nick
