On Tue, Apr 14, 2020 at 04:18:47PM +0200, Ørjan Eide wrote:
> @@ -238,6 +242,10 @@ static void ion_unmap_dma_buf(struct dma_buf_attachment 
> *attachment,
>                             struct sg_table *table,
>                             enum dma_data_direction direction)
>  {
> +     struct ion_dma_buf_attachment *a = attachment->priv;
> +
> +     a->mapped = false;

Possibly a stupid question but here we're not holding a lock.  Is
concurrency an issue?

> +
>       dma_unmap_sg(attachment->dev, table->sgl, table->nents, direction);
>  }
>  
> @@ -297,6 +305,8 @@ static int ion_dma_buf_begin_cpu_access(struct dma_buf 
> *dmabuf,
>  
>       mutex_lock(&buffer->lock);
>       list_for_each_entry(a, &buffer->attachments, list) {
> +             if (!a->mapped)
> +                     continue;
>               dma_sync_sg_for_cpu(a->dev, a->table->sgl, a->table->nents,
>                                   direction);
>       }

regards,
dan carpenter


_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to