[PATCH v2] media: platform: mtk-mdp3: Fix resource leaks in mdp_get_subsys_id()

Lu Hongfei luhongfei at vivo.com
Mon Jun 12 19:55:06 PDT 2023


Add a put_device() call for the release of the object
which was determined by a of_find_device_by_node() call.

Signed-off-by: Lu Hongfei <luhongfei at vivo.com>
---
The modifications made compared to the previous version are as follows:
1. Modified the patch subject
2. Modified the commit message to make it easier to understand.
3. Use an additional label "put_device". Increase the usage of the variable "ret".

 drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
index a605e80c7dc3..ec39662a2282
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
@@ -892,13 +892,16 @@ static int mdp_get_subsys_id(struct mdp_dev *mdp, struct device *dev,
 	ret = cmdq_dev_get_client_reg(&comp_pdev->dev, &cmdq_reg, index);
 	if (ret != 0) {
 		dev_err(&comp_pdev->dev, "cmdq_dev_get_subsys fail!\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto put_device;
 	}
 
 	comp->subsys_id = cmdq_reg.subsys;
 	dev_dbg(&comp_pdev->dev, "subsys id=%d\n", cmdq_reg.subsys);
 
-	return 0;
+put_device:
+	put_device(&comp_pdev->dev);
+	return ret;
 }
 
 static void __mdp_comp_init(struct mdp_dev *mdp, struct device_node *node,
-- 
2.39.0




More information about the linux-arm-kernel mailing list