summaryrefslogtreecommitdiffstats
path: root/src/interface/efi/efi_timer.c
diff options
context:
space:
mode:
authorMichael Brown2018-02-19 19:59:45 +0100
committerMichael Brown2018-02-19 19:59:45 +0100
commit8dbb73a779e5b11ee2b65f9d2af6dd9bd8998608 (patch)
treefeea61eefea1cc2f6d4455257afc3c07cfa5e9df /src/interface/efi/efi_timer.c
parent[http] Allow for domain names within NTLM user names (diff)
downloadipxe-8dbb73a779e5b11ee2b65f9d2af6dd9bd8998608.tar.gz
ipxe-8dbb73a779e5b11ee2b65f9d2af6dd9bd8998608.tar.xz
ipxe-8dbb73a779e5b11ee2b65f9d2af6dd9bd8998608.zip
[xhci] Consume event TRB before reporting completion to USB core
Reporting a completion via usb_complete() will pass control outside the scope of xhci.c, and could potentially result in a further call to xhci_event_poll() before returning from usb_complete(). Since we currently update the event consumer counter only after calling usb_complete(), this can result in duplicate completions and consequent corruption of the submission TRB ring structures. Fix by updating the event ring consumer counter before passing control to usb_complete(). Reported-by: Andreas Hammarskjöld <junior@2PintSoftware.com> Tested-by: Andreas Hammarskjöld <junior@2PintSoftware.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/efi/efi_timer.c')
0 files changed, 0 insertions, 0 deletions