diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2016-12-02 16:45:26 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-12-14 22:21:26 +0300 |
commit | 17069d32a3408e69d257a3fe26f08de0336d958d (patch) | |
tree | f3ba33f25fce3d6f3aae7900ba29bc277a15a68c /drivers/infiniband/core | |
parent | d3a2418ee36a59bc02e9d454723f3175dcf4bfd9 (diff) | |
download | linux-17069d32a3408e69d257a3fe26f08de0336d958d.tar.xz |
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/core')
-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) { |