]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/exynos: remove bridge when component_add fails
authorOsama Abdelkader <osama.abdelkader@gmail.com>
Thu, 23 Apr 2026 20:06:20 +0000 (22:06 +0200)
committerLuca Ceresoli <luca.ceresoli@bootlin.com>
Tue, 5 May 2026 14:50:42 +0000 (16:50 +0200)
Use devm_drm_bridge_add() so the bridge is released if probe fails after
registration, and drop the manual drm_bridge_remove() in remove().

Check the return value of devm_drm_bridge_add().

Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Fixes: 576d72fbfb45 ("drm/exynos: mic: add a bridge at probe")
Cc: stable@vger.kernel.org
Reviewed-by: Raphaƫl Gallais-Pou <rgallaispou@gmail.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20260423200622.325076-2-osama.abdelkader@gmail.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
drivers/gpu/drm/exynos/exynos_drm_mic.c

index 29a8366513fa70655c6ceec9a09db0158e7bb169..e68c954ec3e614c870fac1b697778affeb986f5c 100644 (file)
@@ -423,7 +423,9 @@ static int exynos_mic_probe(struct platform_device *pdev)
 
        mic->bridge.of_node = dev->of_node;
 
-       drm_bridge_add(&mic->bridge);
+       ret = devm_drm_bridge_add(dev, &mic->bridge);
+       if (ret)
+               goto err;
 
        pm_runtime_enable(dev);
 
@@ -443,12 +445,8 @@ err:
 
 static void exynos_mic_remove(struct platform_device *pdev)
 {
-       struct exynos_mic *mic = platform_get_drvdata(pdev);
-
        component_del(&pdev->dev, &exynos_mic_component_ops);
        pm_runtime_disable(&pdev->dev);
-
-       drm_bridge_remove(&mic->bridge);
 }
 
 static const struct of_device_id exynos_mic_of_match[] = {