Re: HC died

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> xhci driver does exactly this, but fails to stop the command ring while
> trying to abort the command TRB.
>
> Does increasing the timeout for stopping command ring help?
>
> diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
> index f5b0e1ce22af..6cecbca34cca 100644
> --- a/drivers/usb/host/xhci-ring.c
> +++ b/drivers/usb/host/xhci-ring.c
> @@ -397,7 +397,7 @@ static int xhci_abort_cmd_ring(struct xhci_hcd *xhci, unsigned long flags)
>           * and try to recover a -ETIMEDOUT with a host controller reset.
>           */
>          ret = xhci_handshake(&xhci->op_regs->cmd_ring,
> -                       CMD_RING_RUNNING, 0, 5 * 1000 * 1000);
> +                       CMD_RING_RUNNING, 0, 10 * 1000 * 1000);
>          if (ret < 0) {
>                  xhci_err(xhci, "Abort failed to stop command ring: %d\n", ret);
>                  xhci_halt(xhci);

Well, for us it doesn't really help as it still ends the life of the
HC, but it doesn't solve the issue either (you can see the 10 second
timeout here).

Feb 24 13:11:53 AW24-002133 kernel: usb 3-2.4: new full-speed USB
device number 16 using xhci_hcd
Feb 24 13:12:08 AW24-002133 kernel: xhci_hcd 0002:01:00.0: Abort
failed to stop command ring: -110
Feb 24 13:12:08 AW24-002133 kernel: xhci_hcd 0002:01:00.0: xHCI host
controller not responding, assume dead
Feb 24 13:12:08 AW24-002133 kernel: xhci_hcd 0002:01:00.0: HC died; cleaning up
Feb 24 13:12:08 AW24-002133 kernel: xhci_hcd 0002:01:00.0: Timeout
while waiting for setup device command
Feb 24 13:12:08 AW24-002133 kernel: usb 3-1: USB disconnect, device number 2
Feb 24 13:12:08 AW24-002133 kernel: usb 4-1: USB disconnect, device number 2
Feb 24 13:12:08 AW24-002133 kernel: usb 4-2: USB disconnect, device number 3
Feb 24 13:12:08 AW24-002133 kernel: usb 3-2: USB disconnect, device number 3
Feb 24 13:12:09 AW24-002133 kernel: usb 3-2.4: device not accepting
address 16, error -108
Feb 24 13:12:09 AW24-002133 kernel: usb 3-2-port4: couldn't allocate usb_device

Also 10 seconds with interrupts disabled causes its own problems (5
seconds is an eternity with interrupts off in itself...).

> Thanks
> -Mathias



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux