diff options
author | qctecmdr <qctecmdr@localhost> | 2023-03-06 06:30:20 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2023-03-06 06:30:19 -0800 |
commit | f900d903dbe93e6000b044a9a2c0aeb9b05abc26 (patch) | |
tree | e5c758852b8be5a2741c82530d3a0e5df4726926 | |
parent | 37cbee3a0328d8982157398349fd52a41686a6c7 (diff) | |
parent | d0f7fc0412b8769039f1e88db393823b2f5be7ed (diff) | |
download | graphics-f900d903dbe93e6000b044a9a2c0aeb9b05abc26.tar.gz |
Merge "Revert "msm: kgsl: Call dma_buf_unmap_attachment() early""
-rw-r--r-- | kgsl.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -332,6 +332,7 @@ static void kgsl_destroy_ion(struct kgsl_memdesc *memdesc) if (metadata != NULL) { remove_dmabuf_list(metadata); + dma_buf_unmap_attachment(metadata->attach, memdesc->sgt, DMA_BIDIRECTIONAL); dma_buf_detach(metadata->dmabuf, metadata->attach); dma_buf_put(metadata->dmabuf); kfree(metadata); @@ -3289,7 +3290,7 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device, { int ret = 0; struct scatterlist *s; - struct sg_table *sg_table; + struct sg_table *sg_table = NULL; struct dma_buf_attachment *attach = NULL; struct kgsl_dma_buf_meta *metadata; @@ -3331,8 +3332,6 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device, goto out; } - dma_buf_unmap_attachment(attach, sg_table, DMA_BIDIRECTIONAL); - metadata->table = sg_table; entry->priv_data = metadata; entry->memdesc.sgt = sg_table; @@ -3355,6 +3354,9 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device, out: if (ret) { + if (!IS_ERR_OR_NULL(sg_table)) + dma_buf_unmap_attachment(attach, sg_table, DMA_BIDIRECTIONAL); + if (!IS_ERR_OR_NULL(attach)) dma_buf_detach(dmabuf, attach); |