[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[qemu-xen staging] usb: fix storage regression



commit 4084e35068772cf4f81bbae5174019f277c61084
Author:     Gerd Hoffmann <kraxel@xxxxxxxxxx>
AuthorDate: Mon Jul 13 08:27:12 2020 +0200
Commit:     Gerd Hoffmann <kraxel@xxxxxxxxxx>
CommitDate: Thu Jul 16 10:20:27 2020 +0200

    usb: fix storage regression
    
    Fix the contition to figure whenever we need to wait for more data or
    not.  Simply check the mode, if we are not in DATAIN state any more we
    are done already and don't need to go ASYNC.
    
    Fixes: 7ad3d51ebb8a ("usb: add short-packet handling to usb-storage driver")
    Reported-by: Sai Pavan Boddu <saipava@xxxxxxxxxx>
    Tested-by: Paul Zimmerman <pauldzim@xxxxxxxxx>
    Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx>
    Message-id: 20200713062712.1476-1-kraxel@xxxxxxxxxx
---
 hw/usb/dev-storage.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
index 2ed6a8df24..405a4ccfe7 100644
--- a/hw/usb/dev-storage.c
+++ b/hw/usb/dev-storage.c
@@ -546,8 +546,7 @@ static void usb_msd_handle_data(USBDevice *dev, USBPacket 
*p)
                     }
                 }
             }
-            if (p->actual_length < p->iov.size && (p->short_not_ok ||
-                    s->scsi_len >= p->ep->max_packet_size)) {
+            if (p->actual_length < p->iov.size && s->mode == USB_MSDM_DATAIN) {
                 DPRINTF("Deferring packet %p [wait data-in]\n", p);
                 s->packet = p;
                 p->status = USB_RET_ASYNC;
--
generated by git-patchbot for /home/xen/git/qemu-xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.