Module Name: src
Committed By: riastradh
Date: Sun Dec 19 11:36:25 UTC 2021
Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_prime.c
Log Message:
drm prime: Plug leak and tidy up.
To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/drm2/dist/drm/drm_prime.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/dist/drm/drm_prime.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.17 src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.18
--- src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.17 Sun Dec 19 11:34:56 2021
+++ src/sys/external/bsd/drm2/dist/drm/drm_prime.c Sun Dec 19 11:36:25 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: drm_prime.c,v 1.17 2021/12/19 11:34:56 riastradh Exp $ */
+/* $NetBSD: drm_prime.c,v 1.18 2021/12/19 11:36:25 riastradh Exp $ */
/*
* Copyright © 2012 Red Hat
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drm_prime.c,v 1.17 2021/12/19 11:34:56 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_prime.c,v 1.18 2021/12/19 11:36:25 riastradh Exp $");
#include <linux/export.h>
#include <linux/dma-buf.h>
@@ -308,6 +308,8 @@ void drm_prime_remove_buf_handle_locked(
if (member != NULL) {
rb_tree_remove_node(&prime_fpriv->handles.rbr_tree, member);
rb_tree_remove_node(&prime_fpriv->dmabufs.rbr_tree, member);
+ dma_buf_put(dma_buf);
+ kfree(member);
}
#else
struct rb_node *rb;
@@ -335,11 +337,7 @@ void drm_prime_remove_buf_handle_locked(
void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv)
{
-#ifdef __NetBSD__
- linux_mutex_init(&prime_fpriv->lock);
-#else
mutex_init(&prime_fpriv->lock);
-#endif
#ifdef __NetBSD__
rb_tree_init(&prime_fpriv->dmabufs.rbr_tree, &dmabuf_ops);
rb_tree_init(&prime_fpriv->handles.rbr_tree, &handle_ops);
@@ -351,11 +349,10 @@ void drm_prime_init_file_private(struct
void drm_prime_destroy_file_private(struct drm_prime_file_private *prime_fpriv)
{
-#ifdef __NetBSD__ /* XXX post-merge linux doesn't destroy it's lock now? */
- linux_mutex_destroy(&prime_fpriv->lock);
-#endif
+ mutex_destroy(&prime_fpriv->lock);
/* by now drm_gem_release should've made sure the list is empty */
WARN_ON(!RB_EMPTY_ROOT(&prime_fpriv->dmabufs));
+ WARN_ON(!RB_EMPTY_ROOT(&prime_fpriv->handles));
}
/**