OSDN Git Service

IB/iser: Pass the correct number of entries for dma mapped SGL
authorIsrael Rukshin <israelr@mellanox.com>
Thu, 17 Jan 2019 15:45:45 +0000 (15:45 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jan 2020 13:50:14 +0000 (14:50 +0100)
commit45cd0174ce436a7c82782edd8f745973d28f0ea2
treeb477ac8a64f6b9eb10813223ccb42f3f01dc895e
parentdade0283e581f4e1adc53bc6a4f1b16463feafe8
IB/iser: Pass the correct number of entries for dma mapped SGL

[ Upstream commit 57b26497fabe1b9379b59fbc7e35e608e114df16 ]

ib_dma_map_sg() augments the SGL into a 'dma mapped SGL'. This process may
change the number of entries and the lengths of each entry.

Code that touches dma_address is iterating over the 'dma mapped SGL' and
must use dma_nents which returned from ib_dma_map_sg().

ib_sg_to_pages() and ib_map_mr_sg() are using dma_address so they must use
dma_nents.

Fixes: 39405885005a ("IB/iser: Port to new fast registration API")
Fixes: bfe066e256d5 ("IB/iser: Reuse ib_sg_to_pages")
Signed-off-by: Israel Rukshin <israelr@mellanox.com>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Acked-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/ulp/iser/iser_memory.c