]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: ibmvscsi_tgt: Fix dma_unmap_sg() nents value
authorThomas Fourier <fourier.thomas@gmail.com>
Mon, 30 Jun 2025 11:18:02 +0000 (13:18 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 15 Jul 2025 00:56:49 +0000 (20:56 -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: 88a678bbc34c ("ibmvscsis: Initial commit of IBM VSCSI Tgt Driver")
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
Link: https://lore.kernel.org/r/20250630111803.94389-2-fourier.thomas@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ibmvscsi_tgt/libsrp.c

index 8a0e28aec928e4735fc3789ed040ef185460c66d..0ecad398ed3db0988ddbd6bacb8a693b59a37f64 100644 (file)
@@ -184,7 +184,8 @@ static int srp_direct_data(struct ibmvscsis_cmd *cmd, struct srp_direct_buf *md,
        err = rdma_io(cmd, sg, nsg, md, 1, dir, len);
 
        if (dma_map)
-               dma_unmap_sg(iue->target->dev, sg, nsg, DMA_BIDIRECTIONAL);
+               dma_unmap_sg(iue->target->dev, sg, cmd->se_cmd.t_data_nents,
+                            DMA_BIDIRECTIONAL);
 
        return err;
 }
@@ -256,7 +257,8 @@ rdma:
        err = rdma_io(cmd, sg, nsg, md, nmd, dir, len);
 
        if (dma_map)
-               dma_unmap_sg(iue->target->dev, sg, nsg, DMA_BIDIRECTIONAL);
+               dma_unmap_sg(iue->target->dev, sg, cmd->se_cmd.t_data_nents,
+                            DMA_BIDIRECTIONAL);
 
 free_mem:
        if (token && dma_map) {