media: rga: fix possible memory leak in rga_probe
[ 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>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
f9413b9023
commit
8ddc89437c
@@ -868,7 +868,7 @@ static int rga_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
ret = pm_runtime_resume_and_get(rga->dev);
|
ret = pm_runtime_resume_and_get(rga->dev);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto rel_vdev;
|
goto rel_m2m;
|
||||||
|
|
||||||
rga->version.major = (rga_read(rga, RGA_VERSION_INFO) >> 24) & 0xFF;
|
rga->version.major = (rga_read(rga, RGA_VERSION_INFO) >> 24) & 0xFF;
|
||||||
rga->version.minor = (rga_read(rga, RGA_VERSION_INFO) >> 20) & 0x0F;
|
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);
|
DMA_ATTR_WRITE_COMBINE);
|
||||||
if (!rga->cmdbuf_virt) {
|
if (!rga->cmdbuf_virt) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto rel_vdev;
|
goto rel_m2m;
|
||||||
}
|
}
|
||||||
|
|
||||||
rga->src_mmu_pages =
|
rga->src_mmu_pages =
|
||||||
@@ -921,6 +921,8 @@ free_src_pages:
|
|||||||
free_dma:
|
free_dma:
|
||||||
dma_free_attrs(rga->dev, RGA_CMDBUF_SIZE, rga->cmdbuf_virt,
|
dma_free_attrs(rga->dev, RGA_CMDBUF_SIZE, rga->cmdbuf_virt,
|
||||||
rga->cmdbuf_phy, DMA_ATTR_WRITE_COMBINE);
|
rga->cmdbuf_phy, DMA_ATTR_WRITE_COMBINE);
|
||||||
|
rel_m2m:
|
||||||
|
v4l2_m2m_release(rga->m2m_dev);
|
||||||
rel_vdev:
|
rel_vdev:
|
||||||
video_device_release(vfd);
|
video_device_release(vfd);
|
||||||
unreg_v4l2_dev:
|
unreg_v4l2_dev:
|
||||||
|
Reference in New Issue
Block a user