]> git.hungrycats.org Git - linux/commitdiff
media: platform: fix some double free in meson-ge2d and mtk-jpeg and s5p-mfc
authorHangyu Hua <hbh25y@gmail.com>
Tue, 16 Aug 2022 08:58:19 +0000 (10:58 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Oct 2022 07:58:23 +0000 (09:58 +0200)
[ Upstream commit c65c3f3a2cbf21ed429d9b9c725bdb5dc6abf4cf ]

video_unregister_device will release device internally. There is no need to
call video_device_release after video_unregister_device.

Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/amlogic/meson-ge2d/ge2d.c
drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c

index 5e7b319f300dff2ec8042b9ae318315301e3f6ec..142d421a8d769f8e86369a5f1518396ad3095099 100644 (file)
@@ -1030,7 +1030,6 @@ static int ge2d_remove(struct platform_device *pdev)
 
        video_unregister_device(ge2d->vfd);
        v4l2_m2m_release(ge2d->m2m_dev);
-       video_device_release(ge2d->vfd);
        v4l2_device_unregister(&ge2d->v4l2_dev);
        clk_disable_unprepare(ge2d->clk);
 
index bc5b0a0168ec0012b04ae460ac6482f16d20b84d..6aa73f1cde18857bb32f9f39db9deb8aea33ada2 100644 (file)
@@ -1411,7 +1411,6 @@ static int mtk_jpeg_remove(struct platform_device *pdev)
 
        pm_runtime_disable(&pdev->dev);
        video_unregister_device(jpeg->vdev);
-       video_device_release(jpeg->vdev);
        v4l2_m2m_release(jpeg->m2m_dev);
        v4l2_device_unregister(&jpeg->v4l2_dev);
 
index 761341934925e7a1becdaf51622e3ee12bdaa84e..f85d1eebafaceb5633806ac436ede5ae70391eed 100644 (file)
@@ -1399,6 +1399,7 @@ static int s5p_mfc_probe(struct platform_device *pdev)
 /* Deinit MFC if probe had failed */
 err_enc_reg:
        video_unregister_device(dev->vfd_dec);
+       dev->vfd_dec = NULL;
 err_dec_reg:
        video_device_release(dev->vfd_enc);
 err_enc_alloc:
@@ -1444,8 +1445,6 @@ static int s5p_mfc_remove(struct platform_device *pdev)
 
        video_unregister_device(dev->vfd_enc);
        video_unregister_device(dev->vfd_dec);
-       video_device_release(dev->vfd_enc);
-       video_device_release(dev->vfd_dec);
        v4l2_device_unregister(&dev->v4l2_dev);
        s5p_mfc_unconfigure_dma_memory(dev);