提交 4084e350 编写于 作者: G Gerd Hoffmann

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: 7ad3d51e ("usb: add short-packet handling to usb-storage driver")
Reported-by: NSai Pavan Boddu <saipava@xilinx.com>
Tested-by: NPaul Zimmerman <pauldzim@gmail.com>
Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
Message-id: 20200713062712.1476-1-kraxel@redhat.com
上级 8ec14159
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册