]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/atomic: use drm_for_each_bridge_in_chain_scoped()
authorLuca Ceresoli <luca.ceresoli@bootlin.com>
Fri, 8 Aug 2025 14:49:12 +0000 (16:49 +0200)
committerLuca Ceresoli <luca.ceresoli@bootlin.com>
Tue, 16 Sep 2025 13:02:41 +0000 (15:02 +0200)
Use drm_for_each_bridge_in_chain_scoped() instead of
drm_for_each_bridge_in_chain() to ensure the bridge being looped on is
refcounted.

Reviewed-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250808-drm-bridge-alloc-getput-for_each_bridge-v2-5-edb6ee81edf1@bootlin.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
drivers/gpu/drm/drm_atomic.c

index cd15cf52f0c9144711da5879da57884674aea9e4..ed5359a71f7e2cd8fa52b993e62ee65f8fed4537 100644 (file)
@@ -1308,7 +1308,6 @@ drm_atomic_add_encoder_bridges(struct drm_atomic_state *state,
                               struct drm_encoder *encoder)
 {
        struct drm_bridge_state *bridge_state;
-       struct drm_bridge *bridge;
 
        if (!encoder)
                return 0;
@@ -1317,7 +1316,7 @@ drm_atomic_add_encoder_bridges(struct drm_atomic_state *state,
                       "Adding all bridges for [encoder:%d:%s] to %p\n",
                       encoder->base.id, encoder->name, state);
 
-       drm_for_each_bridge_in_chain(encoder, bridge) {
+       drm_for_each_bridge_in_chain_scoped(encoder, bridge) {
                /* Skip bridges that don't implement the atomic state hooks. */
                if (!bridge->funcs->atomic_duplicate_state)
                        continue;