* [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 0/6] move more drivers to gem_free_object_unlocked
@ 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
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
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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).