diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2016-12-02 14:45:26 +0100 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-12-14 20:21:26 +0100 |
commit | 17069d32a3408e69d257a3fe26f08de0336d958d (patch) | |
tree | f3ba33f25fce3d6f3aae7900ba29bc277a15a68c /drivers/infiniband | |
parent | IB/multicast: Check ib_find_pkey() return value (diff) | |
download | linux-17069d32a3408e69d257a3fe26f08de0336d958d.tar.xz 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.c | 2 |
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) { |