diff options
author | Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com> | 2015-08-19 14:47:05 (GMT) |
---|---|---|
committer | James Bottomley <JBottomley@Odin.com> | 2015-08-28 20:14:53 (GMT) |
commit | 3cb4fc1fcae9647c594bc2b8fda1b818f4fb757f (patch) | |
tree | ab6d87b73a17324e00486d3a37568164aff27de3 /drivers/scsi | |
parent | c75683ca13d12a700531864bcd3118e94bc9eaa0 (diff) | |
download | linux-3cb4fc1fcae9647c594bc2b8fda1b818f4fb757f.tar.xz |
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 3411919..ba16dd7 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 |