Commit cff20ba2 authored by Daniel Vetter's avatar Daniel Vetter

drm: Amend connector list locking rules

Now that dp mst hotplug takes all locks we can amend the locking rules
for the iterators. This is needed before we can roll these out in the
atomic code to avoid getting burried in WARNINGs.

v2: Rebase onto the extracted list locking assert and add a comment to
explain the rules.

v3: Fixup German->English translation fail in the comment.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
parent 2ee6bcdc
...@@ -1592,7 +1592,15 @@ static inline struct drm_property *drm_property_find(struct drm_device *dev, ...@@ -1592,7 +1592,15 @@ static inline struct drm_property *drm_property_find(struct drm_device *dev,
static inline void static inline void
assert_drm_connector_list_read_locked(struct drm_mode_config *mode_config) assert_drm_connector_list_read_locked(struct drm_mode_config *mode_config)
{ {
WARN_ON(!mutex_is_locked(&mode_config->mutex)); /*
* The connector hotadd/remove code currently grabs both locks when
* updating lists. Hence readers need only hold either of them to be
* safe and the check amounts to
*
* WARN_ON(not_holding(A) && not_holding(B)).
*/
WARN_ON(!mutex_is_locked(&mode_config->mutex) &&
!drm_modeset_is_locked(&mode_config->connection_mutex));
} }
#define drm_for_each_connector(connector, dev) \ #define drm_for_each_connector(connector, dev) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment