mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-11 02:59:12 +00:00
drm/mediatek: fix OF sibling-node lookup
commitceff2f4dcd
upstream. Use the new of_get_compatible_child() helper to lookup the sibling instead of using of_find_compatible_node(), which searches the entire tree from a given start node and thus can return an unrelated (i.e. non-sibling) node. This also addresses a potential use-after-free (e.g. after probe deferral) as the tree-wide helper drops a reference to its first argument (i.e. the parent device node). While at it, also fix the related cec-node reference leak. Fixes:8f83f26891
("drm/mediatek: Add HDMI support") Cc: stable <stable@vger.kernel.org> # 4.8 Cc: Junzhi Zhao <junzhi.zhao@mediatek.com> Cc: Philipp Zabel <p.zabel@pengutronix.de> Cc: CK Hu <ck.hu@mediatek.com> Cc: David Airlie <airlied@linux.ie> Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6529dcce79
commit
5501b81206
1 changed files with 3 additions and 2 deletions
|
@ -1446,8 +1446,7 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi,
|
|||
}
|
||||
|
||||
/* The CEC module handles HDMI hotplug detection */
|
||||
cec_np = of_find_compatible_node(np->parent, NULL,
|
||||
"mediatek,mt8173-cec");
|
||||
cec_np = of_get_compatible_child(np->parent, "mediatek,mt8173-cec");
|
||||
if (!cec_np) {
|
||||
dev_err(dev, "Failed to find CEC node\n");
|
||||
return -EINVAL;
|
||||
|
@ -1457,8 +1456,10 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi,
|
|||
if (!cec_pdev) {
|
||||
dev_err(hdmi->dev, "Waiting for CEC device %pOF\n",
|
||||
cec_np);
|
||||
of_node_put(cec_np);
|
||||
return -EPROBE_DEFER;
|
||||
}
|
||||
of_node_put(cec_np);
|
||||
hdmi->cec_dev = &cec_pdev->dev;
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue