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)
dma_sync_sg_for_cpu(a->dev, a->table->sgl, a->table->nents, direction); }continue;
regards, dan carpenter