]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: stm32: dcmi: unregister notifier on probe failure
authorMyeonghun Pak <mhun512@gmail.com>
Sun, 26 Apr 2026 12:43:49 +0000 (21:43 +0900)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Tue, 5 May 2026 14:57:03 +0000 (16:57 +0200)
dcmi_graph_init() registers the async notifier before dcmi_probe() toggles
the reset line. If reset_control_assert() or reset_control_deassert()
fails afterwards, probe returns through err_cleanup and the driver core
will not call dcmi_remove().

Unregister the notifier before cleaning it up on that error path,
matching the successful remove path and the V4L2 async notifier lifetime
rules.

Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Fixes: d079f94c9046 ("media: platform: Switch to v4l2_async_notifier_add_subdev")
Cc: stable@vger.kernel.org
[hverkuil: added Fixes tag]

drivers/media/platform/st/stm32/stm32-dcmi.c

index e5663fbe64220ede5d1122395b0e0996d9a1345c..eeb0199864dd14db93b83cba7daec379540e7410 100644 (file)
@@ -2195,6 +2195,7 @@ static int dcmi_probe(struct platform_device *pdev)
        return 0;
 
 err_cleanup:
+       v4l2_async_nf_unregister(&dcmi->notifier);
        v4l2_async_nf_cleanup(&dcmi->notifier);
 err_media_entity_cleanup:
        media_entity_cleanup(&dcmi->vdev->entity);