aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/aacraid/aachba.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 24b1ba06ece4..fdc7d9935aeb 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -2693,8 +2693,22 @@ static void aac_srb_callback(void *context, struct fib * fibptr)
2693 scsicmd->cmnd[0], 2693 scsicmd->cmnd[0],
2694 le32_to_cpu(srbreply->scsi_status)); 2694 le32_to_cpu(srbreply->scsi_status));
2695#endif 2695#endif
2696 scsicmd->result = DID_ERROR << 16 | COMMAND_COMPLETE << 8; 2696 if ((scsicmd->cmnd[0] == ATA_12)
2697 break; 2697 || (scsicmd->cmnd[0] == ATA_16)) {
2698 if (scsicmd->cmnd[2] & (0x01 << 5)) {
2699 scsicmd->result = DID_OK << 16
2700 | COMMAND_COMPLETE << 8;
2701 break;
2702 } else {
2703 scsicmd->result = DID_ERROR << 16
2704 | COMMAND_COMPLETE << 8;
2705 break;
2706 }
2707 } else {
2708 scsicmd->result = DID_ERROR << 16
2709 | COMMAND_COMPLETE << 8;
2710 break;
2711 }
2698 } 2712 }
2699 if (le32_to_cpu(srbreply->scsi_status) == SAM_STAT_CHECK_CONDITION) { 2713 if (le32_to_cpu(srbreply->scsi_status) == SAM_STAT_CHECK_CONDITION) {
2700 int len; 2714 int len;