[PATCH 00/25] dev->struct_mutex crusade (cont'd)
Daniel Vetter
daniel.vetter at ffwll.ch
Thu Oct 15 00:36:16 PDT 2015
Hi all,
So I hoped to get through more drivers, but it's not yet all of them. Anyway,
this gets rid of dev->struct_mutex in a lot more places. Big thing is that core
gem is now completely struct_mutex free, the only reason we still lock it is
that some drivers need it in their ->free_gem_object hook. The plan for that is
to have a ->free_gem_object_unlocked hook for all the drivers which don't need
the lock at all (which are most of them really).
Of the modern drivers the big holdouts are i915, msm and omapdrm. Plus udl still
uses some struct_mutex, but it has overall totally broken locking anyway. All
other drivers are now struct_mutex free, yay!
All per-driver bits are fully independent in this series, so can be pulled into
driver trees without issues.
Cheers, Daniel
Daniel Vetter (25):
drm/armada: Plug leak in dumb_map_offset
drm/armada: Don't grab dev->struct_mutex for in mmap offset ioctl
drm/armada: Drop struct_mutex from cursor paths
drm/armada: Use a private mutex to protect priv->linear
drm/tegra: don't take dev->struct_mutex in mmap offset ioctl
drm/tegra: Use drm_gem_object_reference_unlocked
drm/vgem: Drop vgem_drm_gem_mmap
drm/gem: Drop struct_mutex requirement from drm_gem_mmap_obj
drm/gem: Check locking in drm_gem_object_unreference
drm/gem: Use container_of in drm_gem_object_free
drm/gem: Use kref_get_unless_zero for the weak mmap references
drm/gma500: Use correct unref in the gem bo create function
drm/gma500: Drop dev->struct_mutex from modeset code
drm/gma500: Drop dev->struct_mutex from fbdev init/teardown code
drm/gma500: Drop dev->struct_mutex from mmap offset function
drm/gma500: Add driver private mutex for the fault handler
drm/nouveau: Drop dev->struct_mutex from fbdev init
drm/radeon: Use rdev->gem.mutex to protect hyperz/cmask owners
drm/exynos: Drop dev->struct_mutex from mmap offset function
drm/exynos: drop struct_mutex from exynos_gem_map_sgt_with_dma
drm/exynos: drop struct_mutex from exynos_drm_gem_get_ioctl
drm/exynos: drop struct_mutex from fbdev setup
drm/vgem: Simplify dum_map
drm/vgem: Move get_pages to gem_create
drm/vgem: Drop dev->struct_mutex
drivers/gpu/drm/armada/armada_crtc.c | 6 +-
drivers/gpu/drm/armada/armada_debugfs.c | 4 +-
drivers/gpu/drm/armada/armada_drm.h | 3 +-
drivers/gpu/drm/armada/armada_drv.c | 1 +
drivers/gpu/drm/armada/armada_gem.c | 21 +++----
drivers/gpu/drm/drm_gem.c | 76 ++++++++++++++-----------
drivers/gpu/drm/drm_gem_cma_helper.c | 2 -
drivers/gpu/drm/drm_vma_manager.c | 40 ++++---------
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 22 +++-----
drivers/gpu/drm/exynos/exynos_drm_gem.c | 15 +----
drivers/gpu/drm/gma500/framebuffer.c | 12 +---
drivers/gpu/drm/gma500/gem.c | 19 ++-----
drivers/gpu/drm/gma500/gma_display.c | 13 +----
drivers/gpu/drm/gma500/gtt.c | 1 +
drivers/gpu/drm/gma500/psb_drv.h | 2 +
drivers/gpu/drm/msm/msm_fbdev.c | 5 --
drivers/gpu/drm/msm/msm_gem_prime.c | 2 -
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 5 --
drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 2 -
drivers/gpu/drm/radeon/radeon_kms.c | 10 +++-
drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 2 -
drivers/gpu/drm/tegra/drm.c | 4 +-
drivers/gpu/drm/tegra/gem.c | 13 +----
drivers/gpu/drm/vgem/vgem_drv.c | 87 ++++-------------------------
include/drm/drm_gem.h | 2 +
include/drm/drm_vma_manager.h | 22 ++------
26 files changed, 121 insertions(+), 270 deletions(-)
--
2.5.1
More information about the dri-devel
mailing list