Commit 8ea0f2ba authored by Alexey Khoroshilov's avatar Alexey Khoroshilov Committed by Mauro Carvalho Chehab

media: mtk-vcodec: Release device nodes in mtk_vcodec_init_enc_pm()

of_parse_phandle() returns the device node with refcount incremented.
There are two nodes that are used temporary in mtk_vcodec_init_enc_pm(),
but their refcounts are not decremented.

The patch adds one of_node_put() and fixes returning error codes.

Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 56281021
...@@ -41,25 +41,27 @@ int mtk_vcodec_init_enc_pm(struct mtk_vcodec_dev *mtkdev) ...@@ -41,25 +41,27 @@ int mtk_vcodec_init_enc_pm(struct mtk_vcodec_dev *mtkdev)
node = of_parse_phandle(dev->of_node, "mediatek,larb", 0); node = of_parse_phandle(dev->of_node, "mediatek,larb", 0);
if (!node) { if (!node) {
mtk_v4l2_err("no mediatek,larb found"); mtk_v4l2_err("no mediatek,larb found");
return -1; return -ENODEV;
} }
pdev = of_find_device_by_node(node); pdev = of_find_device_by_node(node);
of_node_put(node);
if (!pdev) { if (!pdev) {
mtk_v4l2_err("no mediatek,larb device found"); mtk_v4l2_err("no mediatek,larb device found");
return -1; return -ENODEV;
} }
pm->larbvenc = &pdev->dev; pm->larbvenc = &pdev->dev;
node = of_parse_phandle(dev->of_node, "mediatek,larb", 1); node = of_parse_phandle(dev->of_node, "mediatek,larb", 1);
if (!node) { if (!node) {
mtk_v4l2_err("no mediatek,larb found"); mtk_v4l2_err("no mediatek,larb found");
return -1; return -ENODEV;
} }
pdev = of_find_device_by_node(node); pdev = of_find_device_by_node(node);
of_node_put(node);
if (!pdev) { if (!pdev) {
mtk_v4l2_err("no mediatek,larb device found"); mtk_v4l2_err("no mediatek,larb device found");
return -1; return -ENODEV;
} }
pm->larbvenclt = &pdev->dev; pm->larbvenclt = &pdev->dev;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment