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)); } /**