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 <[email protected]>
> ---
>  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 <[email protected]>
    GPG Key ID: 0E572FDD

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to