| From 96aca8a36e00282d6a4bf65994eb49c98ee418ab Mon Sep 17 00:00:00 2001 |
| From: Julia Lawall <Julia.Lawall@lip6.fr> |
| Date: Sat, 23 Feb 2019 14:20:42 +0100 |
| Subject: ARM: OMAP2+: add missing of_node_put after of_device_is_available |
| |
| [ Upstream commit 30645307e5d2c8a4caf978558c66121ac91ad17e ] |
| |
| Add an of_node_put when a tested device node is not available. |
| |
| The semantic patch that fixes this problem is as follows |
| (http://coccinelle.lip6.fr): |
| |
| // <smpl> |
| @@ |
| identifier f; |
| local idexpression e; |
| expression x; |
| @@ |
| |
| e = f(...); |
| ... when != of_node_put(e) |
| when != x = e |
| when != e = x |
| when any |
| if (<+...of_device_is_available(e)...+>) { |
| ... when != of_node_put(e) |
| ( |
| return e; |
| | |
| + of_node_put(e); |
| return ...; |
| ) |
| } |
| // </smpl> |
| |
| Fixes: e0c827aca0730 ("drm/omap: Populate DSS children in omapdss driver") |
| Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> |
| Signed-off-by: Tony Lindgren <tony@atomide.com> |
| Signed-off-by: Sasha Levin (Microsoft) <sashal@kernel.org> |
| --- |
| arch/arm/mach-omap2/display.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c |
| index 1444b4b4bd9f..439e143cad7b 100644 |
| --- a/arch/arm/mach-omap2/display.c |
| +++ b/arch/arm/mach-omap2/display.c |
| @@ -250,8 +250,10 @@ static int __init omapdss_init_of(void) |
| if (!node) |
| return 0; |
| |
| - if (!of_device_is_available(node)) |
| + if (!of_device_is_available(node)) { |
| + of_node_put(node); |
| return 0; |
| + } |
| |
| pdev = of_find_device_by_node(node); |
| |
| -- |
| 2.20.1 |
| |