From: Xiang Chen <chenxian...@hisilicon.com>

For function dma_unmap_sg(), the <nents> parameter
should be number of elements in the scatterlist
prior to the mapping, not after the mapping.

Fix this usage.

Signed-off-by: Xiang Chen <chenxian...@hisilicon.com>
Signed-off-by: John Garry <john.ga...@huawei.com>
---
 drivers/scsi/hisi_sas/hisi_sas_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c 
b/drivers/scsi/hisi_sas/hisi_sas_main.c
index 359ec52..d842530 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -192,7 +192,8 @@ void hisi_sas_slot_task_free(struct hisi_hba *hisi_hba, 
struct sas_task *task,
 
                if (!sas_protocol_ata(task->task_proto))
                        if (slot->n_elem)
-                               dma_unmap_sg(dev, task->scatter, slot->n_elem,
+                               dma_unmap_sg(dev, task->scatter,
+                                            task->num_scatter,
                                             task->data_dir);
 
                if (sas_dev)
@@ -431,7 +432,8 @@ static int hisi_sas_task_prep(struct sas_task *task, struct 
hisi_sas_dq
        dev_err(dev, "task prep: failed[%d]!\n", rc);
        if (!sas_protocol_ata(task->task_proto))
                if (n_elem)
-                       dma_unmap_sg(dev, task->scatter, n_elem,
+                       dma_unmap_sg(dev, task->scatter,
+                                    task->num_scatter,
                                     task->data_dir);
 prep_out:
        return rc;
-- 
1.9.1

Reply via email to