Re: System hangs when using USB 3.0 HD with on Ubuntu

Alan Stern
2010-05-12T18:48:07Z

On Wed, 12 May 2010, James Bottomley wrote:

> > This sounds like it is a bug in the SCSI midlayer, not in usb-storage.
>
> I don't think so ... we'll return sense if sense is present (i.e. the
> device returned CHECK CONDITION).

> Sense data is never returned in the absence of CHECK CONDITION. This is
> what SAT says has to happen if you set CK_COND in ATA(12/16):
>
> The CK_COND (Check Condition) bit may be used to request the
> SATL to
> return a copy of ATA register information in the sense data upon
> command completion. If the CK_COND bit is set to one the SATL
> shall
> return a status of CHECK CONDITION when the ATA command
> completes,
> even if the command completes successfully, and return the ATA
> Normal Output fields (see ATA8-ACS) in the sense data using the
> ATA Return descriptor (see 12.2.6). If the CK_COND bit is set to
> zero, then the SATL shall terminate the command with CHECK
> CONDITION status only if an error occurs in processing the
> command. See clause 11 for a description of ATA error
> conditions.

That's right. Since the command in question did have CK_COND set, the
device should have returned CHECK CONDITION status instead of GOOD
status.

Therefore this indicates a bug in the device, not in the kernel.
hdparm could work around it here by issuing an explicit REQUEST SENSE
command, but in general it will cause trouble.

Alan Stern