From: Luca Ceresoli Date: Fri, 1 Aug 2025 17:05:29 +0000 (+0200) Subject: drm/bridge: get the bridge returned by drm_bridge_get_next_bridge() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=61aa4f7a600871f9ad96a0ad355b483b0ac4b67d;p=thirdparty%2Fkernel%2Flinux.git drm/bridge: get the bridge returned by drm_bridge_get_next_bridge() drm_bridge_get_next_bridge() returns a bridge pointer that the caller could hold for a long time. Increment the refcount of the returned bridge and document it must be put by the caller. Reviewed-by: Maxime Ripard Link: https://lore.kernel.org/r/20250801-drm-bridge-alloc-getput-drm_bridge_get_next_bridge-v2-7-888912b0be13@bootlin.com Signed-off-by: Luca Ceresoli --- diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index d1aba4e25d354..0ff7ab4aa8689 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1362,6 +1362,13 @@ drm_bridge_get_current_state(struct drm_bridge *bridge) * drm_bridge_get_next_bridge() - Get the next bridge in the chain * @bridge: bridge object * + * The caller is responsible of having a reference to @bridge via + * drm_bridge_get() or equivalent. This function leaves the refcount of + * @bridge unmodified. + * + * The refcount of the returned bridge is incremented. Use drm_bridge_put() + * when done with it. + * * RETURNS: * the next bridge in the chain after @bridge, or NULL if @bridge is the last. */ @@ -1371,7 +1378,7 @@ drm_bridge_get_next_bridge(struct drm_bridge *bridge) if (list_is_last(&bridge->chain_node, &bridge->encoder->bridge_chain)) return NULL; - return list_next_entry(bridge, chain_node); + return drm_bridge_get(list_next_entry(bridge, chain_node)); } /**