All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] move more drivers to gem_free_object_unlocked
@ 2018-03-22 10:51 Daniel Vetter
  2018-03-22 10:51 ` [PATCH 1/6] drm/tinydrm: Use gem_free_object_unlocked Daniel Vetter
  0 siblings, 1 reply; 5+ messages in thread
From: Daniel Vetter @ 2018-03-22 10:51 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter

Hi all,

Random drive-by crusade against dev->struct_mutex usage. The only two
leftover drivers still relying on gem_free_object and the magic lifetime
rule that hodling dev->struct_mutex will prevent gem object destruction
are msm and gma500. Both actually need this, and don't look like they can
be fixed with an easy patch.

But the less this pattern is in the tree the more we can hopefully avoid
copypasta-spreading it more.

Cheers, Daniel

Daniel Vetter (6):
  drm/tinydrm: Use gem_free_object_unlocked
  staging/vboxvideo: Use gem_free_object_unlocked
  drm/rockchip: fixup comment for gem_free_object_unlocked
  drm/udl: Get rid of dev->struct_mutex usage
  drm/omapdrm: Fix mm_list locking
  drm/omapdrm: Switch to gem_free_object_unlocked

 drivers/gpu/drm/omapdrm/omap_debugfs.c      |  2 ++
 drivers/gpu/drm/omapdrm/omap_drv.c          |  4 ++--
 drivers/gpu/drm/omapdrm/omap_drv.h          |  2 +-
 drivers/gpu/drm/omapdrm/omap_gem.c          | 11 +++++++----
 drivers/gpu/drm/rockchip/rockchip_drm_gem.c |  4 ++--
 drivers/gpu/drm/tinydrm/core/tinydrm-core.c |  2 +-
 drivers/gpu/drm/udl/udl_dmabuf.c            |  5 +++--
 drivers/gpu/drm/udl/udl_drv.c               |  2 +-
 drivers/gpu/drm/udl/udl_drv.h               |  2 ++
 drivers/gpu/drm/udl/udl_gem.c               |  5 +++--
 drivers/gpu/drm/udl/udl_main.c              |  2 ++
 drivers/staging/vboxvideo/vbox_drv.c        |  2 +-
 include/drm/tinydrm/tinydrm.h               |  2 +-
 13 files changed, 28 insertions(+), 17 deletions(-)

-- 
2.16.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/6] drm/tinydrm: Use gem_free_object_unlocked
  2018-03-22 10:51 [PATCH 0/6] move more drivers to gem_free_object_unlocked Daniel Vetter
@ 2018-03-22 10:51 ` Daniel Vetter
  2018-03-22 13:46   ` Noralf Trønnes
  0 siblings, 1 reply; 5+ messages in thread
From: Daniel Vetter @ 2018-03-22 10:51 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Daniel Vetter

tinydrm doesn't use dev->struct_mutex and therefore has no need to use
gem_free_object.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: "Noralf Trønnes" <noralf@tronnes.org>
---
 drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 2 +-
 include/drm/tinydrm/tinydrm.h               | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
index 4c6616278c48..24a33bf862fa 100644
--- a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
+++ b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
@@ -91,7 +91,7 @@ EXPORT_SYMBOL(tinydrm_gem_cma_prime_import_sg_table);
  * GEM object state and frees the memory used to store the object itself using
  * drm_gem_cma_free_object(). It also handles PRIME buffers which has the kernel
  * virtual address set by tinydrm_gem_cma_prime_import_sg_table(). Drivers
- * can use this as their &drm_driver->gem_free_object callback.
+ * can use this as their &drm_driver->gem_free_object_unlocked callback.
  */
 void tinydrm_gem_cma_free_object(struct drm_gem_object *gem_obj)
 {
diff --git a/include/drm/tinydrm/tinydrm.h b/include/drm/tinydrm/tinydrm.h
index 07a9a11fe19d..77a93ec577fd 100644
--- a/include/drm/tinydrm/tinydrm.h
+++ b/include/drm/tinydrm/tinydrm.h
@@ -41,7 +41,7 @@ pipe_to_tinydrm(struct drm_simple_display_pipe *pipe)
  * the &drm_driver structure.
  */
 #define TINYDRM_GEM_DRIVER_OPS \
-	.gem_free_object	= tinydrm_gem_cma_free_object, \
+	.gem_free_object_unlocked = tinydrm_gem_cma_free_object, \
 	.gem_print_info		= drm_gem_cma_print_info, \
 	.gem_vm_ops		= &drm_gem_cma_vm_ops, \
 	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd, \
-- 
2.16.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/6] drm/tinydrm: Use gem_free_object_unlocked
  2018-03-22 10:51 ` [PATCH 1/6] drm/tinydrm: Use gem_free_object_unlocked Daniel Vetter
@ 2018-03-22 13:46   ` Noralf Trønnes
  2018-03-27  8:19     ` Daniel Vetter
  0 siblings, 1 reply; 5+ messages in thread
From: Noralf Trønnes @ 2018-03-22 13:46 UTC (permalink / raw)
  To: Daniel Vetter, DRI Development; +Cc: Daniel Vetter


Den 22.03.2018 11.51, skrev Daniel Vetter:
> tinydrm doesn't use dev->struct_mutex and therefore has no need to use
> gem_free_object.
>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: "Noralf Trønnes" <noralf@tronnes.org>
> ---

Acked-by: Noralf Trønnes <noralf@tronnes.org>

>   drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 2 +-
>   include/drm/tinydrm/tinydrm.h               | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
> index 4c6616278c48..24a33bf862fa 100644
> --- a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
> +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
> @@ -91,7 +91,7 @@ EXPORT_SYMBOL(tinydrm_gem_cma_prime_import_sg_table);
>    * GEM object state and frees the memory used to store the object itself using
>    * drm_gem_cma_free_object(). It also handles PRIME buffers which has the kernel
>    * virtual address set by tinydrm_gem_cma_prime_import_sg_table(). Drivers
> - * can use this as their &drm_driver->gem_free_object callback.
> + * can use this as their &drm_driver->gem_free_object_unlocked callback.
>    */
>   void tinydrm_gem_cma_free_object(struct drm_gem_object *gem_obj)
>   {
> diff --git a/include/drm/tinydrm/tinydrm.h b/include/drm/tinydrm/tinydrm.h
> index 07a9a11fe19d..77a93ec577fd 100644
> --- a/include/drm/tinydrm/tinydrm.h
> +++ b/include/drm/tinydrm/tinydrm.h
> @@ -41,7 +41,7 @@ pipe_to_tinydrm(struct drm_simple_display_pipe *pipe)
>    * the &drm_driver structure.
>    */
>   #define TINYDRM_GEM_DRIVER_OPS \
> -	.gem_free_object	= tinydrm_gem_cma_free_object, \
> +	.gem_free_object_unlocked = tinydrm_gem_cma_free_object, \
>   	.gem_print_info		= drm_gem_cma_print_info, \
>   	.gem_vm_ops		= &drm_gem_cma_vm_ops, \
>   	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd, \

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/6] drm/tinydrm: Use gem_free_object_unlocked
  2018-03-22 13:46   ` Noralf Trønnes
@ 2018-03-27  8:19     ` Daniel Vetter
  0 siblings, 0 replies; 5+ messages in thread
From: Daniel Vetter @ 2018-03-27  8:19 UTC (permalink / raw)
  To: Noralf Trønnes; +Cc: Daniel Vetter, DRI Development, Daniel Vetter

On Thu, Mar 22, 2018 at 02:46:45PM +0100, Noralf Trønnes wrote:
> 
> Den 22.03.2018 11.51, skrev Daniel Vetter:
> > tinydrm doesn't use dev->struct_mutex and therefore has no need to use
> > gem_free_object.
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > Cc: "Noralf Trønnes" <noralf@tronnes.org>
> > ---
> 
> Acked-by: Noralf Trønnes <noralf@tronnes.org>

Thanks for your ack, applied. Somehow something is wrong with my mailer
and ate the other 5 patches. Even in the resend. I'll try again.
-Daniel

> 
> >   drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 2 +-
> >   include/drm/tinydrm/tinydrm.h               | 2 +-
> >   2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
> > index 4c6616278c48..24a33bf862fa 100644
> > --- a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
> > +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
> > @@ -91,7 +91,7 @@ EXPORT_SYMBOL(tinydrm_gem_cma_prime_import_sg_table);
> >    * GEM object state and frees the memory used to store the object itself using
> >    * drm_gem_cma_free_object(). It also handles PRIME buffers which has the kernel
> >    * virtual address set by tinydrm_gem_cma_prime_import_sg_table(). Drivers
> > - * can use this as their &drm_driver->gem_free_object callback.
> > + * can use this as their &drm_driver->gem_free_object_unlocked callback.
> >    */
> >   void tinydrm_gem_cma_free_object(struct drm_gem_object *gem_obj)
> >   {
> > diff --git a/include/drm/tinydrm/tinydrm.h b/include/drm/tinydrm/tinydrm.h
> > index 07a9a11fe19d..77a93ec577fd 100644
> > --- a/include/drm/tinydrm/tinydrm.h
> > +++ b/include/drm/tinydrm/tinydrm.h
> > @@ -41,7 +41,7 @@ pipe_to_tinydrm(struct drm_simple_display_pipe *pipe)
> >    * the &drm_driver structure.
> >    */
> >   #define TINYDRM_GEM_DRIVER_OPS \
> > -	.gem_free_object	= tinydrm_gem_cma_free_object, \
> > +	.gem_free_object_unlocked = tinydrm_gem_cma_free_object, \
> >   	.gem_print_info		= drm_gem_cma_print_info, \
> >   	.gem_vm_ops		= &drm_gem_cma_vm_ops, \
> >   	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd, \
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/6] drm/tinydrm: Use gem_free_object_unlocked
  2018-03-26 15:43 [PATCH 0/6] move more drivers to gem_free_object_unlocked Daniel Vetter
@ 2018-03-26 15:43 ` Daniel Vetter
  0 siblings, 0 replies; 5+ messages in thread
From: Daniel Vetter @ 2018-03-26 15:43 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Laurent Pinchart, Daniel Vetter

tinydrm doesn't use dev->struct_mutex and therefore has no need to use
gem_free_object.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: "Noralf Trønnes" <noralf@tronnes.org>
---
 drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 2 +-
 include/drm/tinydrm/tinydrm.h               | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
index 4c6616278c48..24a33bf862fa 100644
--- a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
+++ b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
@@ -91,7 +91,7 @@ EXPORT_SYMBOL(tinydrm_gem_cma_prime_import_sg_table);
  * GEM object state and frees the memory used to store the object itself using
  * drm_gem_cma_free_object(). It also handles PRIME buffers which has the kernel
  * virtual address set by tinydrm_gem_cma_prime_import_sg_table(). Drivers
- * can use this as their &drm_driver->gem_free_object callback.
+ * can use this as their &drm_driver->gem_free_object_unlocked callback.
  */
 void tinydrm_gem_cma_free_object(struct drm_gem_object *gem_obj)
 {
diff --git a/include/drm/tinydrm/tinydrm.h b/include/drm/tinydrm/tinydrm.h
index 07a9a11fe19d..77a93ec577fd 100644
--- a/include/drm/tinydrm/tinydrm.h
+++ b/include/drm/tinydrm/tinydrm.h
@@ -41,7 +41,7 @@ pipe_to_tinydrm(struct drm_simple_display_pipe *pipe)
  * the &drm_driver structure.
  */
 #define TINYDRM_GEM_DRIVER_OPS \
-	.gem_free_object	= tinydrm_gem_cma_free_object, \
+	.gem_free_object_unlocked = tinydrm_gem_cma_free_object, \
 	.gem_print_info		= drm_gem_cma_print_info, \
 	.gem_vm_ops		= &drm_gem_cma_vm_ops, \
 	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd, \
-- 
2.16.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-03-27  8:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-22 10:51 [PATCH 0/6] move more drivers to gem_free_object_unlocked Daniel Vetter
2018-03-22 10:51 ` [PATCH 1/6] drm/tinydrm: Use gem_free_object_unlocked Daniel Vetter
2018-03-22 13:46   ` Noralf Trønnes
2018-03-27  8:19     ` Daniel Vetter
2018-03-26 15:43 [PATCH 0/6] move more drivers to gem_free_object_unlocked Daniel Vetter
2018-03-26 15:43 ` [PATCH 1/6] drm/tinydrm: Use gem_free_object_unlocked Daniel Vetter

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.