aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ipr.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/ipr.c')
-rw-r--r--drivers/scsi/ipr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 341191952155..b62836ddbbee 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -4555,7 +4555,7 @@ static ssize_t ipr_store_raw_mode(struct device *dev,
4555 spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); 4555 spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags);
4556 res = (struct ipr_resource_entry *)sdev->hostdata; 4556 res = (struct ipr_resource_entry *)sdev->hostdata;
4557 if (res) { 4557 if (res) {
4558 if (ioa_cfg->sis64 && ipr_is_af_dasd_device(res)) { 4558 if (ipr_is_af_dasd_device(res)) {
4559 res->raw_mode = simple_strtoul(buf, NULL, 10); 4559 res->raw_mode = simple_strtoul(buf, NULL, 10);
4560 len = strlen(buf); 4560 len = strlen(buf);
4561 if (res->sdev) 4561 if (res->sdev)
@@ -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