mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
media: cedrus: clean up media device on probe failure
cedrus_probe() initializes the media device before registering the video
device, the media controller, and the media device. If any of those later
steps fails, probe returns without calling media_device_cleanup(), so the
media device internals initialized by media_device_init() are left behind.
Add a media-device cleanup label to the probe unwind path and route video
registration failures through it as well.
Fixes: 50e761516f ("media: platform: Add Cedrus VPU decoder driver")
Cc: stable@vger.kernel.org
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
parent
24a63d4c9d
commit
2c869b6969
|
|
@ -508,7 +508,7 @@ static int cedrus_probe(struct platform_device *pdev)
|
|||
ret = video_register_device(vfd, VFL_TYPE_VIDEO, 0);
|
||||
if (ret) {
|
||||
v4l2_err(&dev->v4l2_dev, "Failed to register video device\n");
|
||||
goto err_m2m;
|
||||
goto err_media;
|
||||
}
|
||||
|
||||
v4l2_info(&dev->v4l2_dev,
|
||||
|
|
@ -534,7 +534,8 @@ static int cedrus_probe(struct platform_device *pdev)
|
|||
v4l2_m2m_unregister_media_controller(dev->m2m_dev);
|
||||
err_video:
|
||||
video_unregister_device(&dev->vfd);
|
||||
err_m2m:
|
||||
err_media:
|
||||
media_device_cleanup(&dev->mdev);
|
||||
v4l2_m2m_release(dev->m2m_dev);
|
||||
err_v4l2:
|
||||
v4l2_device_unregister(&dev->v4l2_dev);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user