Page MenuHomeFreeBSD

D37287.diff
No OneTemporary

D37287.diff

diff --git a/usr.sbin/bhyve/pci_xhci.c b/usr.sbin/bhyve/pci_xhci.c
--- a/usr.sbin/bhyve/pci_xhci.c
+++ b/usr.sbin/bhyve/pci_xhci.c
@@ -1725,7 +1725,7 @@
DPRINTF(("pci_xhci handle_transfer slot %u", slot));
retry:
- err = 0;
+ err = XHCI_TRB_ERROR_INVALID;
do_retry = 0;
do_intr = 0;
setup_trb = NULL;
@@ -1849,24 +1849,26 @@
goto errout;
if (epid == 1) {
- err = USB_ERR_NOT_STARTED;
+ int usberr;
+
if (dev->dev_ue->ue_request != NULL)
- err = dev->dev_ue->ue_request(dev->dev_sc, xfer);
- setup_trb = NULL;
+ usberr = dev->dev_ue->ue_request(dev->dev_sc, xfer);
+ else
+ usberr = USB_ERR_NOT_STARTED;
+ err = USB_TO_XHCI_ERR(usberr);
+ if (err == XHCI_TRB_ERROR_SUCCESS ||
+ err == XHCI_TRB_ERROR_STALL ||
+ err == XHCI_TRB_ERROR_SHORT_PKT) {
+ err = pci_xhci_xfer_complete(sc, xfer, slot, epid,
+ &do_intr);
+ if (err != XHCI_TRB_ERROR_SUCCESS)
+ do_retry = 0;
+ }
+
} else {
/* handle data transfer */
pci_xhci_try_usb_xfer(sc, dev, devep, ep_ctx, slot, epid);
err = XHCI_TRB_ERROR_SUCCESS;
- goto errout;
- }
-
- err = USB_TO_XHCI_ERR(err);
- if ((err == XHCI_TRB_ERROR_SUCCESS) ||
- (err == XHCI_TRB_ERROR_STALL) ||
- (err == XHCI_TRB_ERROR_SHORT_PKT)) {
- err = pci_xhci_xfer_complete(sc, xfer, slot, epid, &do_intr);
- if (err != XHCI_TRB_ERROR_SUCCESS)
- do_retry = 0;
}
errout:

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 28, 5:23 PM (22 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
13049656
Default Alt Text
D37287.diff (1 KB)

Event Timeline