When reading or writing larger chunks with the usb_msd driver, it seems there is a case where the usb_msd driver stops working when reading or writing data that is larger than the DMA buffer size of 131kb. When performing copy_data, it tries to refresh the DMA buffer when running out of data - but it still defers the packet even tho the data is available. I've fixed this by making sure that it only stops copying data and defers the packet if there is no data available anymore.
I've attached a single line of code change that fixes this case.
This happens with bochs 2.6.10, latest svn
Applied to SVN. Thanks