]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: mvsas: Fix dma_unmap_sg() nents value
authorThomas Fourier <fourier.thomas@gmail.com>
Fri, 27 Jun 2025 13:48:18 +0000 (15:48 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 15 Jul 2025 00:57:18 +0000 (20:57 -0400)
The dma_unmap_sg() functions should be called with the same nents as the
dma_map_sg(), not the value the map function returned.

Fixes: b5762948263d ("[SCSI] mvsas: Add Marvell 6440 SAS/SATA driver")
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
Link: https://lore.kernel.org/r/20250627134822.234813-2-fourier.thomas@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mvsas/mv_sas.c

index 6c46654b9cd928738bcd4bd6cd90641d9168a487..15b3d9d55a4b6994640348a626a3fbbca163b363 100644 (file)
@@ -818,7 +818,7 @@ err_out:
        dev_printk(KERN_ERR, mvi->dev, "mvsas prep failed[%d]!\n", rc);
        if (!sas_protocol_ata(task->task_proto))
                if (n_elem)
-                       dma_unmap_sg(mvi->dev, task->scatter, n_elem,
+                       dma_unmap_sg(mvi->dev, task->scatter, task->num_scatter,
                                     task->data_dir);
 prep_out:
        return rc;
@@ -864,7 +864,7 @@ static void mvs_slot_task_free(struct mvs_info *mvi, struct sas_task *task,
        if (!sas_protocol_ata(task->task_proto))
                if (slot->n_elem)
                        dma_unmap_sg(mvi->dev, task->scatter,
-                                    slot->n_elem, task->data_dir);
+                                    task->num_scatter, task->data_dir);
 
        switch (task->task_proto) {
        case SAS_PROTOCOL_SMP: