Skip to content

Commit

Permalink
[SCSI] mpt2sas: Return the correct sense key for DIF errors
Browse files Browse the repository at this point in the history
Only a target device should return ABORTED COMMAND when a PI error is
discovered. The HBA should always set the sense key to ILLEGAL REQUEST.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Acked-by: "Sreekanth Reddy" <Sreekanth.reddy@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
  • Loading branch information
Martin K. Petersen authored and James Bottomley committed Sep 24, 2012
1 parent d974e42 commit 9b5cd13
Showing 1 changed file with 2 additions and 12 deletions.
14 changes: 2 additions & 12 deletions drivers/scsi/mpt2sas/mpt2sas_scsih.c
Original file line number Diff line number Diff line change
Expand Up @@ -3772,8 +3772,6 @@ static void
_scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status)
{
u8 ascq;
u8 sk;
u8 host_byte;

switch (ioc_status) {
case MPI2_IOCSTATUS_EEDP_GUARD_ERROR:
Expand All @@ -3790,16 +3788,8 @@ _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status)
break;
}

if (scmd->sc_data_direction == DMA_TO_DEVICE) {
sk = ILLEGAL_REQUEST;
host_byte = DID_ABORT;
} else {
sk = ABORTED_COMMAND;
host_byte = DID_OK;
}

scsi_build_sense_buffer(0, scmd->sense_buffer, sk, 0x10, ascq);
scmd->result = DRIVER_SENSE << 24 | (host_byte << 16) |
scsi_build_sense_buffer(0, scmd->sense_buffer, ILLEGAL_REQUEST, 0x10, ascq);
scmd->result = DRIVER_SENSE << 24 | (DID_ABORT << 16) |
SAM_STAT_CHECK_CONDITION;
}

Expand Down

0 comments on commit 9b5cd13

Please sign in to comment.