Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] drm/bridge_connector: refcount leak of hw_readout bridge on cleanup --
commit d10ad940eac7c7ab253337c97ac0dbff416cd941 Author: Maxime Ripard <[email protected]> drm/bridge_connector: Implement hw readout for connector This commit implements hardware state readout support for the generic bridge connector. It allows the last bridge in the chain that supports readout to fill the connector state from its own hardware state. > diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c > b/drivers/gpu/drm/display/drm_bridge_connector.c > --- a/drivers/gpu/drm/display/drm_bridge_connector.c > +++ b/drivers/gpu/drm/display/drm_bridge_connector.c [ ... ] > @@ -896,6 +927,10 @@ struct drm_connector *drm_bridge_connector_init(struct > drm_device *drm, > if (!bridge->ycbcr_420_allowed) > connector->ycbcr_420_allowed = false; > > + if (bridge->ops & DRM_BRIDGE_OP_CONNECTOR_HW_READOUT) { > + > drm_bridge_put(bridge_connector->bridge_connector_hw_readout); > + bridge_connector->bridge_connector_hw_readout = > drm_bridge_get(bridge); > + } [Severity: Medium] Does this leak the bridge reference when the connector is destroyed? In drm_bridge_connector_init(), a reference to the bridge implementing hardware readout is acquired using drm_bridge_get() and stored in bridge_connector->bridge_connector_hw_readout. The teardown of the other bridge references in this struct is managed by the action callback drm_bridge_connector_put_bridges(): drivers/gpu/drm/display/drm_bridge_connector.c:drm_bridge_connector_put_bridges() { struct drm_bridge_connector *bridge_connector = (struct drm_bridge_connector *)data; drm_bridge_put(bridge_connector->bridge_edid); drm_bridge_put(bridge_connector->bridge_hpd); drm_bridge_put(bridge_connector->bridge_detect); ... } However, it doesn't look like drm_bridge_connector_put_bridges() was updated to release the newly added bridge_connector_hw_readout reference when the connector is cleaned up. > /* > * Ensure the last bridge declares OP_EDID or OP_MODES or both. > */ -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=22
