diff mbox

drm/prime: warn for non-empty handle lookup list during drm file release

Message ID 1366819497-8358-1-git-send-email-imre.deak@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Imre Deak April 24, 2013, 4:04 p.m. UTC
drm_gem_release should release all handles connected to the drm file and
so should also release the prime lookup entries of these handles. So
just WARN if this isn't the case.

Signed-off-by: Imre Deak <imre.deak@intel.com>
---

 drivers/gpu/drm/drm_prime.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

Comments

Daniel Vetter April 24, 2013, 5:07 p.m. UTC | #1
On Wed, Apr 24, 2013 at 07:04:57PM +0300, Imre Deak wrote:
> drm_gem_release should release all handles connected to the drm file and
> so should also release the prime lookup entries of these handles. So
> just WARN if this isn't the case.
> 
> Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
> 
>  drivers/gpu/drm/drm_prime.c |    7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
> index 71c7315..dcde352 100644
> --- a/drivers/gpu/drm/drm_prime.c
> +++ b/drivers/gpu/drm/drm_prime.c
> @@ -488,11 +488,8 @@ EXPORT_SYMBOL(drm_prime_init_file_private);
>  
>  void drm_prime_destroy_file_private(struct drm_prime_file_private *prime_fpriv)
>  {
> -	struct drm_prime_member *member, *safe;
> -	list_for_each_entry_safe(member, safe, &prime_fpriv->head, entry) {
> -		list_del(&member->entry);
> -		kfree(member);
> -	}
> +	/* by now drm_gem_release should've made sure the list is empty */
> +	WARN_ON(!list_empty(&prime_fpriv->head));
>  }
>  EXPORT_SYMBOL(drm_prime_destroy_file_private);
>  
> -- 
> 1.7.10.4
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
index 71c7315..dcde352 100644
--- a/drivers/gpu/drm/drm_prime.c
+++ b/drivers/gpu/drm/drm_prime.c
@@ -488,11 +488,8 @@  EXPORT_SYMBOL(drm_prime_init_file_private);
 
 void drm_prime_destroy_file_private(struct drm_prime_file_private *prime_fpriv)
 {
-	struct drm_prime_member *member, *safe;
-	list_for_each_entry_safe(member, safe, &prime_fpriv->head, entry) {
-		list_del(&member->entry);
-		kfree(member);
-	}
+	/* by now drm_gem_release should've made sure the list is empty */
+	WARN_ON(!list_empty(&prime_fpriv->head));
 }
 EXPORT_SYMBOL(drm_prime_destroy_file_private);