summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_missing/host_missing/accel_missing/2081
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues_text/target_missing/host_missing/accel_missing/2081')
-rw-r--r--gitlab/issues_text/target_missing/host_missing/accel_missing/20819
1 files changed, 9 insertions, 0 deletions
diff --git a/gitlab/issues_text/target_missing/host_missing/accel_missing/2081 b/gitlab/issues_text/target_missing/host_missing/accel_missing/2081
new file mode 100644
index 000000000..538976cb7
--- /dev/null
+++ b/gitlab/issues_text/target_missing/host_missing/accel_missing/2081
@@ -0,0 +1,9 @@
+[OHCI] OHCI_CC_DEVICENOTRESPONDING not set when transferring to a disconnected device
+Description of problem:
+If a USB device is disconnected and is cleaned up by qemu, subsequent transfers to that device address are ignored. On a real OHCI controller `OHCI_CC_DEVICENOTRESPONDING` bit is set and is reported as an error to the host.
+
+qemu attempts to set it here https://github.com/qemu/qemu/blob/ffd454c67e38cc6df792733ebc5d967eee28ac0d/hw/usb/hcd-ohci.c#L795 which would work fine on a valid device handle.
+
+However this check https://github.com/qemu/qemu/blob/ffd454c67e38cc6df792733ebc5d967eee28ac0d/hw/usb/hcd-ohci.c#L975 leaves early if no device handle is found so the error code is never set.
+
+Fix is to set `OHCI_CC_DEVICENOTRESPONDING` if `ohci_find_device` fails before returning.