diff options
Diffstat (limited to 'drivers/scsi/ipr.c')
-rw-r--r-- | drivers/scsi/ipr.c | 8 |
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 |