Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [Medium] drm/verisilicon: reference leak of next bridge when 
devm_drm_bridge_alloc fails
--

commit 49db4512b47fdbbe2150c6b5f4f559940d0929cd
Author: Luca Ceresoli <[email protected]>

drm: verisilicon: stop using deprecated devm_drm_of_get_bridge()

devm_drm_of_get_bridge() is deprecated, switch to
of_drm_get_bridge_by_endpoint(). As of_drm_get_bridge_by_endpoint() returns
a refcounted bridge, ensure it is put by using bridge.next_bridge.

Link: https://lore.kernel.org/r/[email protected]

> diff --git a/drivers/gpu/drm/verisilicon/vs_bridge.c 
> b/drivers/gpu/drm/verisilicon/vs_bridge.c
> index dc7c85b07fe32..f1e8112f0ed25 100644
> --- a/drivers/gpu/drm/verisilicon/vs_bridge.c
> +++ b/drivers/gpu/drm/verisilicon/vs_bridge.c
[ ... ]
> @@ -303,8 +303,7 @@ struct vs_bridge *vs_bridge_init(struct drm_device 
> *drm_dev,
>               return NULL;
>       }
>  
> -     next = devm_drm_of_get_bridge(drm_dev->dev, drm_dev->dev->of_node,
> -                                   output, intf);
> +     next = of_drm_get_bridge_by_endpoint(drm_dev->dev->of_node, output, 
> intf);
>       if (IS_ERR(next)) {
>               ret = PTR_ERR(next);
>               if (ret != -EPROBE_DEFER)

[Severity: Medium]
Will this leak the refcounted bridge next on error paths?

Since of_drm_get_bridge_by_endpoint() returns a refcounted bridge, it
appears a reference leak will happen in vs_bridge_init() if the subsequent
allocation fails:

        bridge = devm_drm_bridge_alloc(drm_dev->dev, struct vs_bridge, base,
                                       bridge_funcs);
        if (IS_ERR(bridge))
                return ERR_PTR(PTR_ERR(bridge));

Does this error path need a call to drm_bridge_put(next) to properly release
the reference before returning?

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/20260929-drm-fix-of_get_bridge-build-regression-v1-0-ccb7e602d...@bootlin.com?part=2

Reply via email to