On Tue, 26 May 2015, Gary Dalmadge wrote:

> Please see below. Please let me know if you need additional information.

Here's the problem, from right near the start of your trace:

> ffff8800cf87c000 2445467361 S Bo:1:004:2 -115 31 = 55534243 d2000000 00000000 
> 00000a35 00000000 00000000 00000000 000000

0x35 is a SYNCHRONIZE CACHE command, telling the drive to write the 
contents of its internal cache out to the physical medium.

> ffff8800cf87c000 2445467440 C Bo:1:004:2 0 31 >
> ffff8800cf87c000 2445467445 S Bi:1:004:8 -115 13 <
> ffff8800cf87c000 2445467659 C Bi:1:004:8 0 13 = 55534253 d2000000 00000000 01
> ffff8800cf87c000 2445467682 S Bo:1:004:2 -115 31 = 55534243 d3000000 12000000 
> 80000603 00000012 00000000 00000000 000000
> ffff8800cf87c000 2445467811 C Bo:1:004:2 0 31 >
> ffff8800bd45c6c0 2445468603 S Bi:1:004:8 -115 18 <
> ffff8800bd45c6c0 2445468688 C Bi:1:004:8 0 18 = 70000500 0000000a 00000000 
> 20000000 0000
> ffff8800cf87c000 2445468695 S Bi:1:004:8 -115 13 <
> ffff8800cf87c000 2445468811 C Bi:1:004:8 0 13 = 55534253 d3000000 00000000 00

The drive replied with an error status, saying that this was an illegal
request with an invalid operation code.  Obviously it wasn't, and just
as obviously, your drive does not handle the SYNCHRONIZE CACHE command
properly.

It makes sense that this would trigger the error-detection code added
in commit 89fb4cd1f717 (scsi: handle flush errors properly).  After
all, it really was an error in the data-flushing path.

You wrote that the error appears with several different brands and 
types of USB drives.  Almost certainly these drivers share a bug in the 
component that bridges the USB bus to the internal SATA bus.

The real question is what to do about it.

James, do you have any suggestions?

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to