Fix child-node lookup during probe, which ended up searching the whole device tree depth-first starting at the parent rather than just matching on its children.
To make things worse, the parent mfd node was also prematurely freed, while the child backlight node was leaked.
Fixes: 47ec340cb8e2 ("mfd: max8925: Support dt for backlight") Cc: stable stable@vger.kernel.org # 3.9 Cc: Qing Xu qingx@marvell.com Cc: Haojian Zhuang haojian.zhuang@gmail.com Signed-off-by: Johan Hovold johan@kernel.org --- drivers/video/backlight/max8925_bl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/video/backlight/max8925_bl.c b/drivers/video/backlight/max8925_bl.c index 7b738d60ecc2..f3aa6088f1d9 100644 --- a/drivers/video/backlight/max8925_bl.c +++ b/drivers/video/backlight/max8925_bl.c @@ -116,7 +116,7 @@ static void max8925_backlight_dt_init(struct platform_device *pdev) if (!pdata) return;
- np = of_find_node_by_name(nproot, "backlight"); + np = of_get_child_by_name(nproot, "backlight"); if (!np) { dev_err(&pdev->dev, "failed to find backlight node\n"); return; @@ -125,6 +125,8 @@ static void max8925_backlight_dt_init(struct platform_device *pdev) if (!of_property_read_u32(np, "maxim,max8925-dual-string", &val)) pdata->dual_string = val;
+ of_node_put(np); + pdev->dev.platform_data = pdata; }
On 20/11/17 10:45, Johan Hovold wrote:
Fix child-node lookup during probe, which ended up searching the whole device tree depth-first starting at the parent rather than just matching on its children.
To make things worse, the parent mfd node was also prematurely freed, while the child backlight node was leaked.
Fixes: 47ec340cb8e2 ("mfd: max8925: Support dt for backlight") Cc: stable stable@vger.kernel.org # 3.9 Cc: Qing Xu qingx@marvell.com Cc: Haojian Zhuang haojian.zhuang@gmail.com Signed-off-by: Johan Hovold johan@kernel.org
Didn't I already ack this one?
Acked-by: Daniel Thompson daniel.thompson@linaro.org
drivers/video/backlight/max8925_bl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/video/backlight/max8925_bl.c b/drivers/video/backlight/max8925_bl.c index 7b738d60ecc2..f3aa6088f1d9 100644 --- a/drivers/video/backlight/max8925_bl.c +++ b/drivers/video/backlight/max8925_bl.c @@ -116,7 +116,7 @@ static void max8925_backlight_dt_init(struct platform_device *pdev) if (!pdata) return;
- np = of_find_node_by_name(nproot, "backlight");
- np = of_get_child_by_name(nproot, "backlight"); if (!np) { dev_err(&pdev->dev, "failed to find backlight node\n"); return;
@@ -125,6 +125,8 @@ static void max8925_backlight_dt_init(struct platform_device *pdev) if (!of_property_read_u32(np, "maxim,max8925-dual-string", &val)) pdata->dual_string = val;
- of_node_put(np);
- pdev->dev.platform_data = pdata; }
On Mon, 20 Nov 2017, Johan Hovold wrote:
Fix child-node lookup during probe, which ended up searching the whole device tree depth-first starting at the parent rather than just matching on its children.
To make things worse, the parent mfd node was also prematurely freed, while the child backlight node was leaked.
Fixes: 47ec340cb8e2 ("mfd: max8925: Support dt for backlight") Cc: stable stable@vger.kernel.org # 3.9 Cc: Qing Xu qingx@marvell.com Cc: Haojian Zhuang haojian.zhuang@gmail.com Signed-off-by: Johan Hovold johan@kernel.org
drivers/video/backlight/max8925_bl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Applied, thanks.
linux-stable-mirror@lists.linaro.org