Re: [PATCH] IB/core: fix unmap_sg argument

From: Doug Ledford
Date: Wed Dec 14 2016 - 14:22:15 EST


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@xxxxxxxxxxxxxxxxxx>
> ---
> 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.

--
Doug Ledford <dledford@xxxxxxxxxx>
GPG Key ID: 0E572FDD

Attachment: signature.asc
Description: OpenPGP digital signature