--- v8
+++ v10
@@ -1,15 +1,15 @@
+Sorry for the noise, rebasing on top of drm-misc-next. Please ignore the
+v9 series.
+
Hi,
-Seems that Intel-gfx CI still doesn't like what's going on, so I updated
-the series to remove more recursive locking again.
+I updated the patch set with some suggestions by Daniel Vetter, and
+dropped the patches after patch 4 so that we can stick the landing for
+avoiding races with modesetting rights before dealing with the tricky
+spinlock.
-Note: patch 5 touches a number of files, including the Intel and VMware
-drivers, but most changes are simply switching a function call to the
-appropriate locked/unlocked version.
-
-Overall, this series fixes races with modesetting rights, converts
-drm_device.master_mutex into master_rwsem, and removes
-drm_file.master_lookup_lock.
+Overall, this series fixes races with modesetting rights, and converts
+drm_device.master_mutex into master_rwsem.
- Patch 1: Fix a potential null ptr dereference in drm_master_release
@@ -20,31 +20,31 @@
- Patch 4: Plug races with drm modesetting rights
-- Patch 5: Modify drm_mode_object_find to fix potential recursive
-locking of master_rwsem and lock inversions between modeset_mutex and
-master_rwsem
+v9 -> v10:
+- Rebase on top of drm-misc-next, caught by Intel-gfx CI
-- Patch 6: Remove remaining potential recursive locking of master_rwsem
-and lock inversions between modeset_mutex and master_rwsem from calling
-drm_lease_held
-
-- Patch 7: Replace master_lookup_lock with master_rwsem
+v8 -> v9 (suggested by Daniel Vetter):
+- Drop patches 5-7 to handle it in another series
+- Add the appropriate Fixes: tag for the null ptr dereference fix
+(patch 1)
+- Create a locked_ioctl bool to clarify locking/unlocking patterns in
+the ioctl handler (patch 3)
+- Clarify the kernel doc for master_rwsem (patch 4)
v7 -> v8:
- Avoid calling drm_lease_held in drm_mode_setcrtc and
-drm_wait_vblank_ioctl, caught by Intel-gfx CI (patch 6)
+drm_wait_vblank_ioctl, caught by Intel-gfx CI
v6 -> v7:
- Export __drm_mode_object_find for loadable modules, caught by the
-Intel-gfx CI (patch 5)
+Intel-gfx CI
v5 -> v6:
- Fix recursive locking on master_rwsem, caught by the Intel-gfx CI
-(patch 5 & 6)
v4 -> v5:
- Avoid calling drm_file_get_master while holding on to the modeset
-mutex, caught by the Intel-gfx CI (patch 5 & 6)
+mutex, caught by the Intel-gfx CI
v3 -> v4 (suggested by Daniel Vetter):
- Drop a patch that added an unnecessary master_lookup_lock in
@@ -86,42 +86,22 @@
Best wishes,
Desmond
-Desmond Cheong Zhi Xi (7):
+Desmond Cheong Zhi Xi (4):
drm: fix null ptr dereference in drm_master_release
drm: convert drm_device.master_mutex into a rwsem
drm: lock drm_global_mutex earlier in the ioctl handler
drm: avoid races with modesetting rights
- drm: avoid circular locks in drm_mode_object_find
- drm: avoid circular locks in drm_lease_held
- drm: remove drm_file.master_lookup_lock
- drivers/gpu/drm/drm_atomic_uapi.c | 7 +-
- drivers/gpu/drm/drm_auth.c | 57 ++++++------
- drivers/gpu/drm/drm_color_mgmt.c | 2 +-
- drivers/gpu/drm/drm_crtc.c | 9 +-
- drivers/gpu/drm/drm_debugfs.c | 4 +-
- drivers/gpu/drm/drm_drv.c | 3 +-
- drivers/gpu/drm/drm_encoder.c | 7 +-
- drivers/gpu/drm/drm_file.c | 7 +-
- drivers/gpu/drm/drm_framebuffer.c | 2 +-
- drivers/gpu/drm/drm_internal.h | 1 +
- drivers/gpu/drm/drm_ioctl.c | 48 ++++++----
- drivers/gpu/drm/drm_lease.c | 94 ++++++++++----------
- drivers/gpu/drm/drm_mode_object.c | 28 +++++-
- drivers/gpu/drm/drm_plane.c | 26 ++++--
- drivers/gpu/drm/drm_property.c | 6 +-
- drivers/gpu/drm/i915/display/intel_overlay.c | 2 +-
- drivers/gpu/drm/i915/display/intel_sprite.c | 2 +-
- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +-
- include/drm/drm_auth.h | 6 +-
- include/drm/drm_connector.h | 23 +++++
- include/drm/drm_crtc.h | 22 +++++
- include/drm/drm_device.h | 15 +++-
- include/drm/drm_file.h | 17 ++--
- include/drm/drm_lease.h | 2 +
- include/drm/drm_mode_object.h | 3 +
- include/drm/drm_plane.h | 20 +++++
- 26 files changed, 270 insertions(+), 145 deletions(-)
+ drivers/gpu/drm/drm_auth.c | 39 ++++++++++++++++------------
+ drivers/gpu/drm/drm_debugfs.c | 4 +--
+ drivers/gpu/drm/drm_drv.c | 3 +--
+ drivers/gpu/drm/drm_file.c | 6 ++---
+ drivers/gpu/drm/drm_ioctl.c | 49 ++++++++++++++++++++++-------------
+ drivers/gpu/drm/drm_lease.c | 35 +++++++++++++++++--------
+ include/drm/drm_auth.h | 6 ++---
+ include/drm/drm_device.h | 16 +++++++++---
+ include/drm/drm_file.h | 12 ++++-----
+ 9 files changed, 104 insertions(+), 66 deletions(-)
--
2.25.1