|
@@ -773,8 +773,14 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
|
|
|
* we already took a copy of the original into rq->errors which
|
|
|
* is what gets returned to the user
|
|
|
*/
|
|
|
- if (sense_valid && sshdr.sense_key == RECOVERED_ERROR) {
|
|
|
- if (!(req->cmd_flags & REQ_QUIET))
|
|
|
+ if (sense_valid && (sshdr.sense_key == RECOVERED_ERROR)) {
|
|
|
+ /* if ATA PASS-THROUGH INFORMATION AVAILABLE skip
|
|
|
+ * print since caller wants ATA registers. Only occurs on
|
|
|
+ * SCSI ATA PASS_THROUGH commands when CK_COND=1
|
|
|
+ */
|
|
|
+ if ((sshdr.asc == 0x0) && (sshdr.ascq == 0x1d))
|
|
|
+ ;
|
|
|
+ else if (!(req->cmd_flags & REQ_QUIET))
|
|
|
scsi_print_sense("", cmd);
|
|
|
result = 0;
|
|
|
/* BLOCK_PC may have set error */
|