aboutsummaryrefslogtreecommitdiff
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorGravatar Sebastian Ott <sebott@linux.vnet.ibm.com> 2016-12-02 14:45:26 +0100
committerGravatar Doug Ledford <dledford@redhat.com> 2016-12-14 14:21:26 -0500
commit17069d32a3408e69d257a3fe26f08de0336d958d (patch)
treef3ba33f25fce3d6f3aae7900ba29bc277a15a68c /drivers/infiniband
parentIB/multicast: Check ib_find_pkey() return value (diff)
downloadlinux-17069d32a3408e69d257a3fe26f08de0336d958d.tar.gz
linux-17069d32a3408e69d257a3fe26f08de0336d958d.tar.bz2
linux-17069d32a3408e69d257a3fe26f08de0336d958d.zip
IB/core: fix unmap_sg argument
__ib_umem_release calls dma_unmap_sg with a different number of sg_entries than ib_umem_get uses for dma_map_sg. This might cause trouble for implementations that merge sglist entries and results in the following dma debug complaint: DMA-API: device driver frees DMA sg list with different entry count [map count=2] [unmap count=1] Fix it by using the correct value. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/core/umem.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
index 224ad274ea0b..0120e7ff449f 100644
--- a/drivers/infiniband/core/umem.c
+++ b/drivers/infiniband/core/umem.c
@@ -51,7 +51,7 @@ static void __ib_umem_release(struct ib_device *dev, struct ib_umem *umem, int d
if (umem->nmap > 0)
ib_dma_unmap_sg(dev, umem->sg_head.sgl,
- umem->nmap,
+ umem->npages,
DMA_BIDIRECTIONAL);
for_each_sg(umem->sg_head.sgl, sg, umem->npages, i) {