[9732.160783] usb-storage 2-1:1.0: Abort srbs: ffff8804255c1980
ffff8804255c1980
[9732.160791] usb-storage 2-1:1.0: Calling stop_transport
[9732.160836] usb-storage 2-1:1.0: Starting port reset
[9732.267771] usb 2-1: reset SuperSpeed USB device number 4 using xhci_hcd
[9732.281100] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with
disabled ep ffff880392201b00
[9732.281108] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with
disabled ep ffff880392201b40
[9732.281736] usb-storage 2-1:1.0: Reset completed: 0
[9732.281782] usb-storage 2-1:1.0: Abort completed
[9756.464027] usb 2-2: USB disconnect, device number 2
[9756.465225] sd 7:0:0:0: [sde] Synchronizing SCSI cache
[9756.465356] sd 7:0:0:0: [sde]
[9756.465364] Result: hostbyte=0x01 driverbyte=0x00
[9763.119860 x100] usb-storage: Error in queuecommand_lck: us->srb =
ffff8804255c1980
I don't recall accessing the affected stick within the hour of the bug's
occurrence. However, I did plug in another (unaffected) stick, seen as
sde here. I had never done that when the bug happened the other times
before, though.
On 17.03.2014 15:44, Alan Stern wrote:
On Sun, 16 Mar 2014, Andreas Reis wrote:
I finally managed to get an usbmon trace. It's available on the kernel
bugzilla page.
Andreas Reis
On 19.02.2014 18:10, Alan Stern wrote:> On Wed, 19 Feb 2014, Andreas
Reis wrote:
>
>> Hi,
>>
>> this is an updated copy of my report at:
>> https://bugzilla.kernel.org/show_bug.cgi?id=70781
>>
>> The two dmesg reports can be found there.
>>
>> Regards,
>> Andreas Reis
Everything looks more or less normal except perhaps for the Link Power
Management. The xhci-hcd maintainers should look at that.
Still, there's one more thing we ought to check. The patch below will
add some extra messages to the dmesg log. Let's see what they show.
Alan Stern
Index: usb-3.14/drivers/usb/storage/transport.c
===================================================================
--- usb-3.14.orig/drivers/usb/storage/transport.c
+++ usb-3.14/drivers/usb/storage/transport.c
@@ -1324,6 +1324,8 @@ int usb_stor_port_reset(struct us_data *
{
int result;
+ dev_info(&us->pusb_intf->dev, "Starting port reset\n");
+
/*for these devices we must use the class specific method */
if (us->pusb_dev->quirks & USB_QUIRK_RESET)
return -EPERM;
@@ -1344,5 +1346,6 @@ int usb_stor_port_reset(struct us_data *
}
usb_unlock_device(us->pusb_dev);
}
+ dev_info(&us->pusb_intf->dev, "Reset completed: %d\n", result);
return result;
}
Index: usb-3.14/drivers/usb/storage/scsiglue.c
===================================================================
--- usb-3.14.orig/drivers/usb/storage/scsiglue.c
+++ usb-3.14/drivers/usb/storage/scsiglue.c
@@ -357,6 +357,7 @@ static int command_abort(struct scsi_cmn
struct us_data *us = host_to_us(srb->device->host);
usb_stor_dbg(us, "%s called\n", __func__);
+ dev_info(&us->pusb_intf->dev, "Abort srbs: %p %p\n", srb, us->srb);
/* us->srb together with the TIMED_OUT, RESETTING, and ABORTING
* bits are protected by the host lock. */
@@ -377,12 +378,14 @@ static int command_abort(struct scsi_cmn
set_bit(US_FLIDX_TIMED_OUT, &us->dflags);
if (!test_bit(US_FLIDX_RESETTING, &us->dflags)) {
set_bit(US_FLIDX_ABORTING, &us->dflags);
+ dev_info(&us->pusb_intf->dev, "Calling stop_transport\n");
usb_stor_stop_transport(us);
}
scsi_unlock(us_to_host(us));
/* Wait for the aborted command to finish */
wait_for_completion(&us->notify);
+ dev_info(&us->pusb_intf->dev, "Abort completed\n");
return SUCCESS;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html