Toshiba USB disk stopped working in 3.10.3
My Toshiba 1TB Stor.e basics does not work anymore since 3.10.3. I have another USB3 disk which works fine. The kernel keeps writing this stuff in the logs:
Aug 4 16:11:27 wc1 kernel: [ 286.384162] usb 4-4: Successful evaluate context command Aug 4 16:11:27 wc1 kernel: [ 286.495466] usb 4-4: reset SuperSpeed USB device number 2 using xhci_hcd Aug 4 16:11:27 wc1 kernel: [ 286.513937] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff880215ea3400 Aug 4 16:11:27 wc1 kernel: [ 286.513943] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff880215ea3440 Aug 4 16:11:27 wc1 kernel: [ 286.514026] usb 4-4: Successful Endpoint Configure command Aug 4 16:11:27 wc1 kernel: [ 286.514203] usb 4-4: Successful evaluate context command Aug 4 16:11:27 wc1 kernel: [ 286.514376] usb 4-4: Successful evaluate context command
and /lib/udev/ata_id stays blocked in D state.
The change that causes the problem (below) looks fine, so I'm not sure reverting it is the right fix.
drivers/scsi/scsi.c +4 -4
@@ -1070,8 +1070,8 @@ EXPORT_SYMBOL_GPL(scsi_get_vpd_page);* @opcode: opcode for command to look up * * Uses the REPORT SUPPORTED OPERATION CODES to look up the given -* opcode. Returns 0 if RSOC fails or if the command opcode is -* unsupported. Returns 1 if the device claims to support the command. +* opcode. Returns -EINVAL if RSOC fails, 0 if the command opcode is +* unsupported and 1 if the device claims to support the command. */ int scsi_report_opcode (struct scsi_device *sdev,unsigned char *buffer,unsigned int len,unsigned char opcode)
@@ -1081,7 +1081,7 @@ int scsi_report_opcode(struct scsi_device *sdev, unsigned char *buffer,int result;if (sdev->no_report_opcodes || sdev->scsi_level <SCSI_SPC_3 ) -return 0 ; +return -EINVAL ;memset (cmd,0 ,16 ); cmd[0 ] =MAINTENANCE_IN ;
@@ -1097,7 +1097,7 @@ int scsi_report_opcode(struct scsi_device *sdev, unsigned char *buffer,if (result &&scsi_sense_valid (&sshdr) && sshdr.sense_key ==ILLEGAL_REQUEST && (sshdr.asc ==0x20 || sshdr.asc ==0x24 ) && sshdr.ascq ==0x00 ) -return 0 ; +return -EINVAL ;if ((buffer[1 ] &3 ) ==3 )/* Command supported */ return 1 ;
Signature · 1 line
Giuliano.
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Giuliano" == Giuliano Pochini <[email protected]> writes:
Giuliano,
Giuliano> My Toshiba 1TB Stor.e basics does not work anymore since Giuliano> 3.10.3. I have another USB3 disk which works fine.
Do the following two patches fix your problem?
http://marc.info/?l=linux-scsi&m=137523956310061&w=2
http://marc.info/?l=linux-scsi&m=137536767805820&w=2
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering
Quoted 11 lines · On Mon, 05 Aug 2013 22:59:11 -0400 "Martin K. Petersen"…
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Giuliano" == Giuliano Pochini <[email protected]> writes:
Giuliano,
Giuliano> My Toshiba 1TB Stor.e basics does not work anymore since Giuliano> 3.10.3. I have another USB3 disk which works fine.
Do the following two patches fix your problem?
http://marc.info/?l=linux-scsi&m=137523956310061&w=2
http://marc.info/?l=linux-scsi&m=137536767805820&w=2
Yes, the first patch fixes it. Thanks for your time.
Signature · 1 line
Giuliano.