* [PATCH] drm/exynos: fix missed calling of drm_prime_gem_destroy()
@ 2015-09-16 5:14 Joonyoung Shim
2015-09-21 16:05 ` Gustavo Padovan
0 siblings, 1 reply; 2+ messages in thread
From: Joonyoung Shim @ 2015-09-16 5:14 UTC (permalink / raw)
To: dri-devel; +Cc: sw0312.kim
When obj->import_attach is existed, code calling drm_prime_gem_destroy()
was removed from commit 67e93c808b48 ("drm/exynos: stop copying sg
table"), and it's a fault.
The drm_prime_gem_destroy() is cleanup function which GEM drivers need
to call when they use drm_gem_prime_import() to import dma-bufs, so
exynos-drm driver using drm_gem_prime_import() needs calling
drm_prime_gem_destroy().
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
---
drivers/gpu/drm/exynos/exynos_drm_gem.c | 9 +++++----
drivers/gpu/drm/exynos/exynos_drm_gem.h | 2 ++
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
index a4fb78e..ce05f13 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
@@ -157,11 +157,10 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem_obj *exynos_gem_obj)
* once dmabuf's refcount becomes 0.
*/
if (obj->import_attach)
- goto out;
-
- exynos_drm_free_buf(exynos_gem_obj);
+ drm_prime_gem_destroy(obj, exynos_gem_obj->sgt);
+ else
+ exynos_drm_free_buf(exynos_gem_obj);
-out:
drm_gem_free_mmap_offset(obj);
/* release file pointer to gem object. */
@@ -589,6 +588,8 @@ exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
if (ret < 0)
goto err_free_large;
+ exynos_gem_obj->sgt = sgt;
+
if (sgt->nents == 1) {
/* always physically continuous memory if sgt->nents is 1. */
exynos_gem_obj->flags |= EXYNOS_BO_CONTIG;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exynos/exynos_drm_gem.h
index cd62f84..97bb48b 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gem.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h
@@ -39,6 +39,7 @@
* - this address could be physical address without IOMMU and
* device address with IOMMU.
* @pages: Array of backing pages.
+ * @sgt: Imported sg_table.
*
* P.S. this object would be transferred to user as kms_bo.handle so
* user can access the buffer through kms_bo.handle.
@@ -52,6 +53,7 @@ struct exynos_drm_gem_obj {
dma_addr_t dma_addr;
struct dma_attrs dma_attrs;
struct page **pages;
+ struct sg_table *sgt;
};
struct page **exynos_gem_get_pages(struct drm_gem_object *obj, gfp_t gfpmask);
--
1.9.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] drm/exynos: fix missed calling of drm_prime_gem_destroy()
2015-09-16 5:14 [PATCH] drm/exynos: fix missed calling of drm_prime_gem_destroy() Joonyoung Shim
@ 2015-09-21 16:05 ` Gustavo Padovan
0 siblings, 0 replies; 2+ messages in thread
From: Gustavo Padovan @ 2015-09-21 16:05 UTC (permalink / raw)
To: Joonyoung Shim; +Cc: sw0312.kim, dri-devel
HI Joonyoung,
2015-09-16 Joonyoung Shim <jy0922.shim@samsung.com>:
> When obj->import_attach is existed, code calling drm_prime_gem_destroy()
> was removed from commit 67e93c808b48 ("drm/exynos: stop copying sg
> table"), and it's a fault.
>
> The drm_prime_gem_destroy() is cleanup function which GEM drivers need
> to call when they use drm_gem_prime_import() to import dma-bufs, so
> exynos-drm driver using drm_gem_prime_import() needs calling
> drm_prime_gem_destroy().
>
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> ---
> drivers/gpu/drm/exynos/exynos_drm_gem.c | 9 +++++----
> drivers/gpu/drm/exynos/exynos_drm_gem.h | 2 ++
> 2 files changed, 7 insertions(+), 4 deletions(-)
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Gustavo
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-09-21 16:05 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-16 5:14 [PATCH] drm/exynos: fix missed calling of drm_prime_gem_destroy() Joonyoung Shim
2015-09-21 16:05 ` Gustavo Padovan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.