diff options
| author | Martin K. Petersen <martin.petersen@oracle.com> | 2012-08-28 14:29:36 -0400 | 
|---|---|---|
| committer | James Bottomley <JBottomley@Parallels.com> | 2012-09-24 12:11:00 +0400 | 
| commit | 9b5cd13249af3eb023ee7ba9ff63c16c25488d03 (patch) | |
| tree | 3fc598ed27cc2dde4e76df26364c32f2407a107a /drivers/scsi/mpt2sas/mpt2sas_scsih.c | |
| parent | d974e4265dbd35db118c318176727ecb7f469de3 (diff) | |
| download | olio-linux-3.10-9b5cd13249af3eb023ee7ba9ff63c16c25488d03.tar.xz olio-linux-3.10-9b5cd13249af3eb023ee7ba9ff63c16c25488d03.zip  | |
[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>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_scsih.c')
| -rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_scsih.c | 14 | 
1 files changed, 2 insertions, 12 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c index 7d774c5ffce..bfda0ecd960 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c @@ -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;  }  |