aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorGabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>2015-08-19 10:47:05 -0400
committerJames Bottomley <JBottomley@Odin.com>2015-08-28 16:14:53 -0400
commit3cb4fc1fcae9647c594bc2b8fda1b818f4fb757f (patch)
treeab6d87b73a17324e00486d3a37568164aff27de3 /drivers/scsi
parentc75683ca13d12a700531864bcd3118e94bc9eaa0 (diff)
ipr: Inhibit underlength data check for AFDASD in raw mode.
Disable underlength error verification based on count of bytes actually transferred for AF DASD devices when SIS pipe mode is enabled. This avoids unexpected underlength errors when issuing some commands in raw mode. Signed-off-by: Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com> Reviewed-by: Wen Xiong <wenxiong@linux.vnet.ibm.com> Acked-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <JBottomley@Odin.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/ipr.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 341191952155..ba16dd79f451 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -6383,9 +6383,13 @@ static int ipr_queuecommand(struct Scsi_Host *shost,
6383 (!ipr_is_gscsi(res) || scsi_cmd->cmnd[0] == IPR_QUERY_RSRC_STATE)) { 6383 (!ipr_is_gscsi(res) || scsi_cmd->cmnd[0] == IPR_QUERY_RSRC_STATE)) {
6384 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_IOACMD; 6384 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_IOACMD;
6385 } 6385 }
6386 if (res->raw_mode && ipr_is_af_dasd_device(res)) 6386 if (res->raw_mode && ipr_is_af_dasd_device(res)) {
6387 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_PIPE; 6387 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_PIPE;
6388 6388
6389 if (scsi_cmd->underflow == 0)
6390 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_ULEN_CHK;
6391 }
6392
6389 if (ioa_cfg->sis64) 6393 if (ioa_cfg->sis64)
6390 rc = ipr_build_ioadl64(ioa_cfg, ipr_cmd); 6394 rc = ipr_build_ioadl64(ioa_cfg, ipr_cmd);
6391 else 6395 else