drm/rockchip: Fix an error handling path rockchip_dp_probe()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 18 Jun 2022 17:08:05 +0000 (19:08 +0200)
committerHeiko Stuebner <heiko@sntech.de>
Sat, 2 Jul 2022 11:03:12 +0000 (13:03 +0200)
Should component_add() fail, we should call analogix_dp_remove() in the
error handling path, as already done in the remove function.

Fixes: 152cce0006ab ("drm/bridge: analogix_dp: Split bind() into probe() and real bind()")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/b719d9061bb97eb85145fbd3c5e63f4549f2e13e.1655572071.git.christophe.jaillet@wanadoo.fr
drivers/gpu/drm/rockchip/analogix_dp-rockchip.c

index 70be64c..ad2d3ae 100644 (file)
@@ -408,7 +408,15 @@ static int rockchip_dp_probe(struct platform_device *pdev)
        if (IS_ERR(dp->adp))
                return PTR_ERR(dp->adp);
 
-       return component_add(dev, &rockchip_dp_component_ops);
+       ret = component_add(dev, &rockchip_dp_component_ops);
+       if (ret)
+               goto err_dp_remove;
+
+       return 0;
+
+err_dp_remove:
+       analogix_dp_remove(dp->adp);
+       return ret;
 }
 
 static int rockchip_dp_remove(struct platform_device *pdev)