Re: [xhci_hcd] reset SuperSpeed, xhci_drop_endpoint called with disabled ep, Error in queuecommand_lck: task blocked

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

 



[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




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

  Powered by Linux