summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_missing/host_missing/accel_missing/2081
blob: 538976cb769723a8c3db20a9cdef4f4b9fa9da90 (plain) (blame)
1
2
3
4
5
6
7
8
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.