media: rga: fix possible memory leak in rga_probe
authorHangyu Hua <hbh25y@gmail.com>
Thu, 24 Mar 2022 08:37:24 +0000 (09:37 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:22:37 +0000 (10:22 +0200)
[ Upstream commit a71eb6025305192e646040cd76ccacb5bd48a1b5 ]

rga->m2m_dev needs to be freed when rga_probe fails.

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/rockchip/rga/rga.c

index d99ea8973b6788353d164c197efb00d82014f04d..e3246344fb7240975f9f7e04012197a8d09744fe 100644 (file)
@@ -868,7 +868,7 @@ static int rga_probe(struct platform_device *pdev)
 
        ret = pm_runtime_resume_and_get(rga->dev);
        if (ret < 0)
-               goto rel_vdev;
+               goto rel_m2m;
 
        rga->version.major = (rga_read(rga, RGA_VERSION_INFO) >> 24) & 0xFF;
        rga->version.minor = (rga_read(rga, RGA_VERSION_INFO) >> 20) & 0x0F;
@@ -884,7 +884,7 @@ static int rga_probe(struct platform_device *pdev)
                                           DMA_ATTR_WRITE_COMBINE);
        if (!rga->cmdbuf_virt) {
                ret = -ENOMEM;
-               goto rel_vdev;
+               goto rel_m2m;
        }
 
        rga->src_mmu_pages =
@@ -921,6 +921,8 @@ free_src_pages:
 free_dma:
        dma_free_attrs(rga->dev, RGA_CMDBUF_SIZE, rga->cmdbuf_virt,
                       rga->cmdbuf_phy, DMA_ATTR_WRITE_COMBINE);
+rel_m2m:
+       v4l2_m2m_release(rga->m2m_dev);
 rel_vdev:
        video_device_release(vfd);
 unreg_v4l2_dev: