Re: Regression xhci_hcd cmd failed due to incorrect slot or ep state

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

 



On 7.4.2019 13.32, Bernhard Gebetsberger wrote:
When using  the kernel version 4.20 or above my usb wifi stick doesn't
work until I reboot my system, dmesg shows this message when the issue
occurs:

xhci_hcd 0000:15:00.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state

I've found that the problem is caused by this commit:

commit f8f80be501aa2f10669585c3e328fad079d8cb3a
Author: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx  <mailto:mathias.nyman@xxxxxxxxxxxxxxx>>
Date:   Thu Sep 20 19:13:37 2018 +0300

     xhci: Use soft retry to recover faster from transaction errors

It looks like it only affects wifi sticks(various models) on specific
hardware configurations(I have this issue on my Ryzen pc, my Intel pc
isn´t affected, but someone in the kernel bug tracker mentioned that he
has this issue on an Intel notebook as well (only with USB 3.0 ports
though)).

Thanks for the report.

I can see how these would be related, setting a new Transfer Ring dequeue pointer
requires the ep ring to be in Error or stopped state, otherwise you see the above message.

The soft retry patch will automatically restart a ring from stopped to running state.

But to know the details where the issue exactly is, or how we ended up there, I would need to
look at logs and traces.

Logs and traces can be taken with:

mount -t debugfs none /sys/kernel/debug
echo 'module xhci_hcd =p' >/sys/kernel/debug/dynamic_debug/control
echo 'module usbcore =p' >/sys/kernel/debug/dynamic_debug/control
echo 81920 > /sys/kernel/debug/tracing/buffer_size_kb
echo 1 > /sys/kernel/debug/tracing/events/xhci-hcd/enable

< trigger failure >

Send output of dmesg to me, and
copy /sys/kernel/debug/tracing/trace to me.

-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