Hi, This pull fixes SYNCRONIZE_CACHE handling in both scsi and usb code.
The SYNCRONIZE_CACHE scsi command is different from all other ones: It doesn't transfer any data, but still doesn't complete instantly. Both scsi-disk and usb-storage failed to handle this case correctly, resulting in all sorts of funky assert failures and segfaults when the guest writes to a virtual usb stick and flushes stuff. Patches 1-4 are minor cleanups for usb-storage (slighly improved scsi request tracking). Also Patch 6 depends on these. Patch 5 is the actual bugfix for scsi-disk. Patch 6 is the actual bugfix for usb-storage. Patches 7+8 are bonus fixes for Coverity-spotted issues which are sitting in the usb patch queue for a while already. The following changes since commit bc4268998d154b9b3cc86a7b6bd932cc974591c9: x86: fix pcmpestrm and pcmpistrm (2011-11-19 13:51:27 +0000) are available in the git repository at: git://git.kraxel.org/qemu usb.30 Gerd Hoffmann (8): usb-storage: move status debug message to usb_msd_send_status. usb-storage: fill status in complete callback. usb-storage: drop tag from device state. usb-storage: drop result from device state. scsi-disk: don't call scsi_req_complete twice. usb-storage: don't try to send the status early. ehci: add assert usb-linux: fix /proc/bus/usb/devices scan hw/scsi-disk.c | 5 ++- hw/usb-ehci.c | 1 + hw/usb-msd.c | 65 ++++++++++++++++++++++++++++++------------------------- usb-linux.c | 7 +++++- 4 files changed, 45 insertions(+), 33 deletions(-)