This series ultimately permits relaxed ordering of USB mass-storage packets from the host, as allowed by the usbmassbulk 1.0 spec, but not usually seen in drivers. AIX drivers do require this ordering.
The RFC unsurprisingly had no comments, it wasn't polished well so don't bother to look at it. This one I tried to split it up nicely, add some improvements that help readability and robustness first. Importantly I kept vmstate compatibility here and didn't do a big rip up of the whole model but managed to find a nice way to fit it in the existing design, and I think the end result is just as good or better. Thanks, Nick Nicholas Piggin (11): usb/msd: Add status to usb_msd_packet_complete() function usb/msd: Split in and out packet handling usb/msd: Ensure packet structure layout is correct usb/msd: Improved handling of mass storage reset usb/msd: Improve packet validation error logging usb/msd: Allow CBW packet size greater than 31 usb/msd: Split async packet tracking into data and csw usb/msd: Add some additional assertions usb/msd: Rename mode to cbw_state, and tweak names usb/msd: Permit a DATA-IN or CSW packet before CBW packet usb/msd: Add more tracing include/hw/usb/msd.h | 18 +- hw/usb/dev-storage.c | 517 ++++++++++++++++++++++++++++--------------- hw/usb/trace-events | 9 +- 3 files changed, 360 insertions(+), 184 deletions(-) -- 2.45.2