On 2018/8/14 14:39, Daniel Lezcano wrote: > On 09/08/2018 15:40, zhong jiang wrote: >> Device node iterators will get the return node. Meawhile, It is >> also put the previous device node. An explicit put will cause >> a double put. > What about: > > Subject: drivers/thermal/tegra: Fix a double free on the device node > > "The function 'for_each_child_of_node' iterates over the node list by > dropping the of_node reference of the previous node. > > Calling of_node_put() on the iterator is pointless and leads to an > inconsistent refcounting in addition to a double free. Remove it." Hi, Daniel
Have you picked up the patch or should I repost the patch with above commit message that you have suggested? Thanks, zhong jiang >> Signed-off-by: zhong jiang <zhongji...@huawei.com> >> --- >> drivers/thermal/tegra/soctherm.c | 1 - >> 1 file changed, 1 deletion(-) >> >> diff --git a/drivers/thermal/tegra/soctherm.c >> b/drivers/thermal/tegra/soctherm.c >> index ed28110..3aa55c9 100644 >> --- a/drivers/thermal/tegra/soctherm.c >> +++ b/drivers/thermal/tegra/soctherm.c >> @@ -980,7 +980,6 @@ static void soctherm_init_hw_throt_cdev(struct >> platform_device *pdev) >> tcd = thermal_of_cooling_device_register(np_stcc, >> (char *)name, ts, >> &throt_cooling_ops); >> - of_node_put(np_stcc); >> if (IS_ERR_OR_NULL(tcd)) { >> dev_err(dev, >> "throttle-cfg: %s: failed to register cooling >> device\n", >> >