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: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
56281021d6
commit
8ea0f2ba0f
|
@ -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);
|
||||
if (!node) {
|
||||
mtk_v4l2_err("no mediatek,larb found");
|
||||
return -1;
|
||||
return -ENODEV;
|
||||
}
|
||||
pdev = of_find_device_by_node(node);
|
||||
of_node_put(node);
|
||||
if (!pdev) {
|
||||
mtk_v4l2_err("no mediatek,larb device found");
|
||||
return -1;
|
||||
return -ENODEV;
|
||||
}
|
||||
pm->larbvenc = &pdev->dev;
|
||||
|
||||
node = of_parse_phandle(dev->of_node, "mediatek,larb", 1);
|
||||
if (!node) {
|
||||
mtk_v4l2_err("no mediatek,larb found");
|
||||
return -1;
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
pdev = of_find_device_by_node(node);
|
||||
of_node_put(node);
|
||||
if (!pdev) {
|
||||
mtk_v4l2_err("no mediatek,larb device found");
|
||||
return -1;
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
pm->larbvenclt = &pdev->dev;
|
||||
|
|
Loading…
Reference in New Issue