diff options
author | Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com> | 2015-08-19 11:47:05 -0300 |
---|---|---|
committer | James Bottomley <JBottomley@Odin.com> | 2015-08-28 13:14:53 -0700 |
commit | 3cb4fc1fcae9647c594bc2b8fda1b818f4fb757f (patch) | |
tree | ab6d87b73a17324e00486d3a37568164aff27de3 /drivers/scsi | |
parent | c75683ca13d12a700531864bcd3118e94bc9eaa0 (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.c | 6 |
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, (!ipr_is_gscsi(res) || scsi_cmd->cmnd[0] == IPR_QUERY_RSRC_STATE)) { ioarcb->cmd_pkt.request_type = IPR_RQTYPE_IOACMD; } - if (res->raw_mode && ipr_is_af_dasd_device(res)) + if (res->raw_mode && ipr_is_af_dasd_device(res)) { ioarcb->cmd_pkt.request_type = IPR_RQTYPE_PIPE; + if (scsi_cmd->underflow == 0) + ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_ULEN_CHK; + } + if (ioa_cfg->sis64) rc = ipr_build_ioadl64(ioa_cfg, ipr_cmd); else |