Message ID | alpine.LFD.2.20.1612021439450.3570@schleppi (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On 12/2/2016 8:45 AM, Sebastian Ott wrote: > __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> > --- > drivers/infiniband/core/umem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c > index 84b4eff..1e62a5f 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) { > Thanks, applied.
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c index 84b4eff..1e62a5f 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) {