Hi, looking at this code:
/* ring command ring doorbell to restart the command ring */
if ((xhci->cmd_ring->dequeue != xhci->cmd_ring->enqueue) &&
!(xhci->xhc_state & XHCI_STATE_DYING)) {
xhci->current_cmd = cur_cmd;
xhci_mod_cmd_timer(xhci, XHCI_CMD_DEFAULT_TIMEOUT);
xhci_ring_cmd_db(xhci);
}
Something looks fishy to me. The timer is started before the door bell
is rung. I cannot see how you can guarantee the timeout given that
order. Should it be reversed?
Regards
Oliver
