[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/2] usb-host: fix splitted transfers
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 2/2] usb-host: fix splitted transfers |
Date: |
Thu, 15 Nov 2012 16:19:23 +0100 |
USBPacket->actual_length wasn't updated correctly for USBPackets
splitted into multiple urbs. Fix it.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/usb/host-linux.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/hw/usb/host-linux.c b/hw/usb/host-linux.c
index e3d394f..aa77b77 100644
--- a/hw/usb/host-linux.c
+++ b/hw/usb/host-linux.c
@@ -366,8 +366,11 @@ static void async_complete(void *opaque)
if (p) {
switch (aurb->urb.status) {
case 0:
- p->actual_length = aurb->urb.actual_length;
- p->status = USB_RET_SUCCESS; /* Clear previous ASYNC status */
+ p->actual_length += aurb->urb.actual_length;
+ if (!aurb->more) {
+ /* Clear previous ASYNC status */
+ p->status = USB_RET_SUCCESS;
+ }
break;
case -EPIPE:
--
1.7.1