[SCSI] mpt2sas: Return the correct sense key for DIF errors
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>
This commit is contained in:
parent
d974e4265d
commit
9b5cd13249
|
@ -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:
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue