mirror of https://gitee.com/openkylin/qemu.git
xhci: don't kick in xhci_submit and xhci_fire_ctl_transfer
xhci_submit and xhci_fire_ctl_transfer are is called from
xhci_kick_epctx processing loop only, so there is no need to call
xhci_kick_epctx make sure processing continues. Also eecursive calls
into xhci_kick_epctx can cause trouble.
Drop the xhci_kick_epctx calls.
Cc: 1653384@bugs.launchpad.net
Fixes: 94b037f2a4
Reported-by: Fabian Lesniak <fabian@lesniak-it.de>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 1485790607-31399-4-git-send-email-kraxel@redhat.com
This commit is contained in:
parent
13e8ff7abb
commit
ddb603ab6c
|
@ -2001,11 +2001,7 @@ static int xhci_fire_ctl_transfer(XHCIState *xhci, XHCITransfer *xfer)
|
|||
xfer->packet.parameter = trb_setup->parameter;
|
||||
|
||||
usb_handle_packet(xfer->packet.ep->dev, &xfer->packet);
|
||||
|
||||
xhci_try_complete_packet(xfer);
|
||||
if (!xfer->running_async && !xfer->running_retry) {
|
||||
xhci_kick_epctx(xfer->epctx, 0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2105,11 +2101,7 @@ static int xhci_submit(XHCIState *xhci, XHCITransfer *xfer, XHCIEPContext *epctx
|
|||
return -1;
|
||||
}
|
||||
usb_handle_packet(xfer->packet.ep->dev, &xfer->packet);
|
||||
|
||||
xhci_try_complete_packet(xfer);
|
||||
if (!xfer->running_async && !xfer->running_retry) {
|
||||
xhci_kick_epctx(xfer->epctx, xfer->streamid);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue