diff options
author | Anand Kumar Santhanam <AnandKumar.Santhanam@pmcs.com> | 2013-09-17 05:07:14 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-10-25 04:58:14 -0400 |
commit | cb993e5d50dd82e3d675225e2eff3c77951682b0 (patch) | |
tree | d50e3a5e45e17f16e9108494a775a6bf8f3c9941 /drivers/scsi/pm8001 | |
parent | a9a923e55ede94ddbf5b870b0f057da8b7cee1b9 (diff) |
[SCSI] pm80xx: Indirect SMP request fix.
Fix for indirect data transfer mode in case of SMP request.
Signed-off-by: Anandkumar.Santhanam@pmcs.com
Reviewed-by: Jack Wang <jinpu.wang@profitbricks.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/pm8001')
-rw-r--r-- | drivers/scsi/pm8001/pm80xx_hwi.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c index 6f836d18f269..8bac5aeaa804 100644 --- a/drivers/scsi/pm8001/pm80xx_hwi.c +++ b/drivers/scsi/pm8001/pm80xx_hwi.c | |||
@@ -3492,8 +3492,6 @@ static int pm80xx_chip_smp_req(struct pm8001_hba_info *pm8001_ha, | |||
3492 | else | 3492 | else |
3493 | pm8001_ha->smp_exp_mode = SMP_INDIRECT; | 3493 | pm8001_ha->smp_exp_mode = SMP_INDIRECT; |
3494 | 3494 | ||
3495 | /* DIRECT MODE support only in spcv/ve */ | ||
3496 | pm8001_ha->smp_exp_mode = SMP_DIRECT; | ||
3497 | 3495 | ||
3498 | tmp_addr = cpu_to_le64((u64)sg_dma_address(&task->smp_task.smp_req)); | 3496 | tmp_addr = cpu_to_le64((u64)sg_dma_address(&task->smp_task.smp_req)); |
3499 | preq_dma_addr = (char *)phys_to_virt(tmp_addr); | 3497 | preq_dma_addr = (char *)phys_to_virt(tmp_addr); |
@@ -3509,7 +3507,7 @@ static int pm80xx_chip_smp_req(struct pm8001_hba_info *pm8001_ha, | |||
3509 | /* exclude top 4 bytes for SMP req header */ | 3507 | /* exclude top 4 bytes for SMP req header */ |
3510 | smp_cmd.long_smp_req.long_req_addr = | 3508 | smp_cmd.long_smp_req.long_req_addr = |
3511 | cpu_to_le64((u64)sg_dma_address | 3509 | cpu_to_le64((u64)sg_dma_address |
3512 | (&task->smp_task.smp_req) - 4); | 3510 | (&task->smp_task.smp_req) + 4); |
3513 | /* exclude 4 bytes for SMP req header and CRC */ | 3511 | /* exclude 4 bytes for SMP req header and CRC */ |
3514 | smp_cmd.long_smp_req.long_req_size = | 3512 | smp_cmd.long_smp_req.long_req_size = |
3515 | cpu_to_le32((u32)sg_dma_len(&task->smp_task.smp_req)-8); | 3513 | cpu_to_le32((u32)sg_dma_len(&task->smp_task.smp_req)-8); |