diff options
author | Gerd Hoffmann | 2017-06-12 09:31:09 +0200 |
---|---|---|
committer | Gerd Hoffmann | 2017-06-13 12:17:33 +0200 |
commit | ad3c5412f2704672bb212bb82035c9b1a72db782 (patch) | |
tree | 854b200ff3b4d54bc44d7ee953cca0206ff4b0db /hw/usb/hcd-ehci.h | |
parent | xhci: only update dequeue ptr on completed transfers (diff) | |
download | qemu-ad3c5412f2704672bb212bb82035c9b1a72db782.tar.gz qemu-ad3c5412f2704672bb212bb82035c9b1a72db782.tar.xz qemu-ad3c5412f2704672bb212bb82035c9b1a72db782.zip |
ehci: stop recursive calls to ehci_work_bh
Can happen with usb-storage devices: ehci_work_bh calls usb-storage,
usb-storage calls into block layer, block layer may run BHs.
Add a simple bool and just do nothing in case we figure ehci_work_bh is
active.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20170612073109.25930-1-kraxel@redhat.com
Diffstat (limited to 'hw/usb/hcd-ehci.h')
-rw-r--r-- | hw/usb/hcd-ehci.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/usb/hcd-ehci.h b/hw/usb/hcd-ehci.h index 938d8aa284..821f1ded43 100644 --- a/hw/usb/hcd-ehci.h +++ b/hw/usb/hcd-ehci.h @@ -297,6 +297,7 @@ struct EHCIState { */ QEMUTimer *frame_timer; QEMUBH *async_bh; + bool working; uint32_t astate; /* Current state in asynchronous schedule */ uint32_t pstate; /* Current state in periodic schedule */ USBPort ports[NB_PORTS]; |