diff options
| author | Hans de Goede <hdegoede@redhat.com> | 2012-08-17 11:39:17 +0200 |
|---|---|---|
| committer | Gerd Hoffmann <kraxel@redhat.com> | 2012-08-31 12:02:15 +0200 |
| commit | 574ef17191f5ec5a3cc4782c1f59dc5eb8279654 (patch) | |
| tree | 33b93a5f1ceb452469a5c019fa4725141f2e85eb | |
| parent | 53dd6f7032ec4898ca8f95356df795a92cd27e09 (diff) | |
| download | focaccia-qemu-574ef17191f5ec5a3cc4782c1f59dc5eb8279654.tar.gz focaccia-qemu-574ef17191f5ec5a3cc4782c1f59dc5eb8279654.zip | |
ehci: simplify ehci_state_executing
ehci_state_executing does not need to check for p->usb_status == USB_RET_ASYNC or USB_RET_PROCERR, since ehci_execute_complete already does a similar check and will trigger an assert if either value is encountered. USB_RET_ASYNC should never be the packet status when execute_complete runs for obvious reasons, and USB_RET_PROCERR is only used by ehci_state_execute / ehci_execute not by ehci_state_executing / ehci_execute_complete. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
| -rw-r--r-- | hw/usb/hcd-ehci.c | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index 923a949ea5..b6169ce968 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -2084,19 +2084,11 @@ out: static int ehci_state_executing(EHCIQueue *q) { EHCIPacket *p = QTAILQ_FIRST(&q->packets); - int again = 0; assert(p != NULL); assert(p->qtdaddr == q->qtdaddr); ehci_execute_complete(q); - if (p->usb_status == USB_RET_ASYNC) { - goto out; - } - if (p->usb_status == USB_RET_PROCERR) { - again = -1; - goto out; - } // 4.10.3 if (!q->async) { @@ -2114,11 +2106,8 @@ static int ehci_state_executing(EHCIQueue *q) ehci_set_state(q->ehci, q->async, EST_WRITEBACK); } - again = 1; - -out: ehci_flush_qh(q); - return again; + return 1; } |