FAILED: patch "[PATCH] drm/mediatek: fix OF sibling-node lookup" failed to apply to 4.9-stable tree
Subsystems (4)
[email protected]
maintainerThe patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
ceff2f4dcd44abf35864d9a99f85ac619e89a01dMon Sep 17 00:00:00 2001
From: Johan Hovold <[email protected]>
Date: Mon, 27 Aug 2018 10:21:46 +0200
Subject: [PATCH] drm/mediatek: fix OF sibling-node lookup
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.
drivers/gpu/drm/mediatek/mtk_hdmi.c +3 -2
@@ -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;/*
Quoted 5 lines · Greg Kroah-Hartman
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
This one also depends on
36156f9241cb ("of: add helper to lookup compatible child node")
Johan
Quoted 53 lines
------------------ original commit in Linus's tree ------------------
From
ceff2f4dcd44abf35864d9a99f85ac619e89a01dMon Sep 17 00:00:00 2001
From: Johan Hovold <[email protected]>
Date: Mon, 27 Aug 2018 10:21:46 +0200
Subject: [PATCH] drm/mediatek: fix OF sibling-node lookupUse the new
of_get_compatible_child()helper to lookup the sibling instead of usingof_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 8f83f26891e1 ("drm/mediatek: Add HDMI support")Cc stable <[email protected]> # 4.8Cc Junzhi Zhao <[email protected]>Cc Philipp Zabel <[email protected]>Cc CK Hu <[email protected]>Cc David Airlie <[email protected]>Signed-off-by Johan Hovold <[email protected]>Signed-off-by Rob Herring <[email protected]>drivers/gpu/drm/mediatek/mtk_hdmi.c +3
-2@@ -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;/*
Sasha Levin
maintainerQuoted 10 lines · Johan Hovold
Quoted 5 lines · Greg Kroah-Hartman
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This one also depends on
36156f9241cb("of: add helper to lookup compatible child node")
It seems to have more dependencies for 4.9.
--
Thanks,
Sasha
Quoted 8 lines · Sasha Levin
Quoted 7 lines · Johan Hovold
Quoted 5 lines · Greg Kroah-Hartman
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Quoted 5 lines
Quoted 3 lines
This one also depends on
36156f9241cb("of: add helper to lookup compatible child node")It seems to have more dependencies for 4.9.
Apparently just a trivial context change due to 4bf99144d2b4 ("drm:
Convert to using %pOF instead of full_name").
Compile-tested backport below.
Johan
Quoted 1 line
From
25904658b8a0975376a9118cfc07f5f3ebb1ea34Mon Sep 17 00:00:00 2001
From: Johan Hovold <[email protected]>
Date: Mon, 27 Aug 2018 10:21:46 +0200
Subject: [PATCH] drm/mediatek: fix OF sibling-node lookup
commit ceff2f4dcd44abf35864d9a99f85ac619e89a01d 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.
--- drivers/gpu/drm/mediatek/mtk_hdmi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/gpu/drm/mediatek/mtk_hdmi.c +3 -2
@@ -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 %s\n" , cec_np->full_name); +of_node_put (cec_np);return -EPROBE_DEFER ; } +of_node_put (cec_np); hdmi->cec_dev = &cec_pdev->dev;/*
Signature · 1 line
2.19.2
Greg KH
maintainerQuoted 11 lines · Johan Hovold
Quoted 10 lines · Sasha Levin
Quoted 9 lines · Johan Hovold
Quoted 5 lines · Greg Kroah-Hartman
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This one also depends on
Quoted 8 lines
Quoted 3 lines
Quoted 1 line
36156f9241cb("of: add helper to lookup compatible child node")It seems to have more dependencies for 4.9.
Apparently just a trivial context change due to
4bf99144d2b4("drm:
Convert to using %pOF instead offull_name").Compile-tested backport below.
Now applied, thanks.
greg k-h