Thread (16 messages) 16 messages, 2 authors, 2021-03-06

Re: [xhci] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci_hcd

From: Sedat Dilek <hidden>
Date: 2021-03-06 19:31:39
Also in: lkml

Possibly related (same subject, not in this thread)

On Sat, Mar 6, 2021 at 5:58 PM Alan Stern [off-list ref] wrote:
On Sat, Mar 06, 2021 at 07:42:30AM +0100, Sedat Dilek wrote:
quoted
No, with Debian-Kernel 5.10.19-1 there are no xhci-resets:
Is the kernel the only thing that is different?  The rest of the
operating system and environment is exactly the same?
The kernel is the only change.
quoted
But I see there is already a quirk enabled and matches my ASmedia USB
3.0 controller (as I have *no* usb-storage-quirks enabled):

root# LC_ALL=C dmesg -T | grep -i quirks | egrep '174c|55aa'
[Sat Mar  6 06:52:41 2021] usb-storage 4-1:1.0: Quirks match for vid
174c pid 55aa: 400000
Yes, this is because that type of device already has a quirk entry built
into the kernel.  You can find it by searching for "174c" in the kernel
source file drivers/usb/storage/unusual_devs.h.
OK, will look into it.
quoted
Thanks Alan for all the hints and tips in the topic "usb-storage and
quirks" and your patience.
You can try building a 5.11 kernel with the patch below.  I don't know
whether it will show anything in the dmesg log when one of these resets
occurs, but it might.

If that doesn't work out, another possibility is to use git bisect to
find the commit between 5.10 and 5.11 which caused the problem to start.
This is with Linux v5.12-rc2 - not v5.11.y.
I look if I can apply the patch.

- Sedat -
quoted hunk ↗ jump to hunk
--- usb-devel.orig/block/scsi_ioctl.c
+++ usb-devel/block/scsi_ioctl.c
@@ -258,8 +258,11 @@ static int blk_complete_sghdr_rq(struct
        hdr->host_status = host_byte(req->result);
        hdr->driver_status = driver_byte(req->result);
        hdr->info = 0;
-       if (hdr->masked_status || hdr->host_status || hdr->driver_status)
+       if (hdr->masked_status || hdr->host_status || hdr->driver_status) {
                hdr->info |= SG_INFO_CHECK;
+               printk(KERN_INFO "SCSI ioctl error, cmd %02X, prog %s\n",
+                               req->cmd[0], current->comm);
+       }
        hdr->resid = req->resid_len;
        hdr->sb_len_wr = 0;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help