diff options
author | Christophe JAILLET <christophe.jaillet@wanadoo.fr> | 2022-06-18 20:08:05 +0300 |
---|---|---|
committer | Heiko Stuebner <heiko@sntech.de> | 2022-07-02 14:03:12 +0300 |
commit | 5074376822fe99fa4ce344b851c5016d00c0444f (patch) | |
tree | 9dcb14bf4e4d856430622be63a7aedba323b8e74 /drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | |
parent | 1449110b0dade8b638d2c17ab7c5b0ff696bfccb (diff) | |
download | linux-5074376822fe99fa4ce344b851c5016d00c0444f.tar.xz |
drm/rockchip: Fix an error handling path rockchip_dp_probe()
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
Diffstat (limited to 'drivers/gpu/drm/rockchip/analogix_dp-rockchip.c')
-rw-r--r-- | drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c index 70be64ca0a00..ad2d3ae7e621 100644 --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c @@ -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) |