7f102ebeb5
My recent uhci cleanup series has introduced a regression, where qemu sometimes crashes on a device disconnect. The problem is that the uhci code never checked for a device not / no longer existing, instead it was relying on usb_handle_packet accepting a NULL device. But since we now pass usb_handle_packet q->ep->dev, rather then just a local dev variable, we crash as q->ep == NULL due to the device no longer existing. This patch fixes this. Note that this patch also improves over the old behavior were we would: 1) create a queue for the device 2) create an async for the packet 3) have usb_handle_packet fail 4) destroy the async 5) wait for the queue to be idle for 32 frames 6) destroy the queue Which was rather sub-optimal. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> |
||
---|---|---|
.. | ||
bus.c | ||
core.c | ||
desc.c | ||
desc.h | ||
dev-audio.c | ||
dev-bluetooth.c | ||
dev-hid.c | ||
dev-hub.c | ||
dev-network.c | ||
dev-serial.c | ||
dev-smartcard-reader.c | ||
dev-storage.c | ||
dev-uas.c | ||
dev-wacom.c | ||
hcd-ehci-pci.c | ||
hcd-ehci-sysbus.c | ||
hcd-ehci.c | ||
hcd-ehci.h | ||
hcd-musb.c | ||
hcd-ohci.c | ||
hcd-uhci.c | ||
hcd-xhci.c | ||
host-bsd.c | ||
host-linux.c | ||
host-stub.c | ||
libhw.c | ||
Makefile.objs | ||
redirect.c |