summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Danis <frederic.danis@collabora.com>2023-04-27 11:49:44 +0200
committerRichard Hughes <richard@hughsie.com>2023-04-27 14:10:02 +0100
commitbe141de49e7e620ca76b5d60fd5ee287fa16d0ee (patch)
tree10d38e993622fd5f421d5855910a0faef66a45d9
parenteba81f9866d0814a6c3d6fe47b27d74e3111136c (diff)
downloadgusb-main.tar.gz
Fix BulkTransfer out-of-order replyHEADmain
The reply to an out-of-order outgoing BulkTransfer may be also out-of-order Currently we can get: found in-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 315 found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 316 … found out-of-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 312 found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 320 while expecting: found in-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 315 found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 316 … found out-of-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 312 found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 314 … found in-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 319 found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 320
-rw-r--r--gusb/gusb-device.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gusb/gusb-device.c b/gusb/gusb-device.c
index 949137c..e93d85f 100644
--- a/gusb/gusb-device.c
+++ b/gusb/gusb-device.c
@@ -887,6 +887,7 @@ g_usb_device_load_event(GUsbDevice *self, const gchar *id)
if (g_strcmp0(g_usb_device_event_get_id(event), id) == 0) {
if (_g_usb_context_has_flag(priv->context, G_USB_CONTEXT_FLAGS_DEBUG))
g_debug("found out-of-order %s at position %u", id, i);
+ priv->event_idx = i + 1;
return event;
}
}