Message ID | 20220324083724.42654-1-hbh25y@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: rga: fix possible memory leak in rga_probe | expand |
Gentle ping. On 2022/3/24 16:37, Hangyu Hua wrote: > rga->m2m_dev needs to be freed when rga_probe fails. > > Signed-off-by: Hangyu Hua <hbh25y@gmail.com> > --- > drivers/media/platform/rockchip/rga/rga.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/platform/rockchip/rga/rga.c b/drivers/media/platform/rockchip/rga/rga.c > index 4de5e8d2b261..c2ce4fdcdb7f 100644 > --- a/drivers/media/platform/rockchip/rga/rga.c > +++ b/drivers/media/platform/rockchip/rga/rga.c > @@ -865,7 +865,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; > @@ -881,7 +881,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 = > @@ -918,6 +918,8 @@ static int rga_probe(struct platform_device *pdev) > 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:
diff --git a/drivers/media/platform/rockchip/rga/rga.c b/drivers/media/platform/rockchip/rga/rga.c index 4de5e8d2b261..c2ce4fdcdb7f 100644 --- a/drivers/media/platform/rockchip/rga/rga.c +++ b/drivers/media/platform/rockchip/rga/rga.c @@ -865,7 +865,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; @@ -881,7 +881,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 = @@ -918,6 +918,8 @@ static int rga_probe(struct platform_device *pdev) 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:
rga->m2m_dev needs to be freed when rga_probe fails. Signed-off-by: Hangyu Hua <hbh25y@gmail.com> --- drivers/media/platform/rockchip/rga/rga.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)