[PATCH v2 0/6] omapdrm: struct_mutex removal

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri May 25 16:39:19 UTC 2018


This patch series removes the usage of struct_mutex from the omapdrm driver in
order to switch to gem_free_object_unlocked(). The series is inspired by
Daniel Vetter's recent gem_free_object_unlocked() patches (starting with
"[PATCH 1/5] staging/vboxvideo: Use gem_free_object_unlocked") and
includes patches "[PATCH 4/5] drm/omapdrm: Fix mm_list locking" and
"[PATCH] drm/omapdrm: Switch to gem_free_object_unlocked" (the latter
modified due to the rebase).

When reviewing Daniel's patches I noticed a potential issue in lock handling
which prompted me to go and remove all usage of struct_mutex from the omapdrm
driver. Instead of replacing it with a device-wide lock, I have decided to
create per-GEM object locks as there is no need, as far as I can see, to
serialize operations across separate GEM objects.

The series starts with a bit of cleanup in the form of renaming (1/6) and
refactoring (2/6), followed by removal of struct_mutex (3/6 and 4/6). It then
ends with Daniel's patches that switch to gem_free_object_unlocked().

The patches are based on top of the latest drm-misc. They have been tested on
a Pandaboard.

Daniel Vetter (2):
  drm/omap: gem: Fix mm_list locking
  drm/omap: gem: Switch to gem_free_object_unlocked()

Laurent Pinchart (4):
  drm/omap: gem: Rename GEM function with omap_gem_* prefix
  drm/omap: gem: Merge __omap_gem_get_pages() and
  drm/omap: gem: Don't take struct_mutex to get GEM object mmap offset
  drm/omap: gem: Replace struct_mutex usage with omap_obj private lock

 drivers/gpu/drm/omapdrm/omap_debugfs.c |   9 +-
 drivers/gpu/drm/omapdrm/omap_drv.c     |   4 +-
 drivers/gpu/drm/omapdrm/omap_drv.h     |   2 +-
 drivers/gpu/drm/omapdrm/omap_fbdev.c   |   8 +-
 drivers/gpu/drm/omapdrm/omap_gem.c     | 236 +++++++++++++++++----------------
 5 files changed, 131 insertions(+), 128 deletions(-)


Laurent Pinchart

More information about the dri-devel mailing list