[ Upstream commit 21816364715f508c10da1e087e352bc1e326614f ] The device node iterators perform an of_node_get on each iteration, so a jump out of the loop requires an of_node_put. The semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; iterator name for_each_child_of_node; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child + of_node_put(child); ? break; ... } ... when != child // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
---|---|---|
.. | ||
bcm | ||
berlin | ||
freescale | ||
intel | ||
mediatek | ||
meson | ||
mvebu | ||
nomadik | ||
qcom | ||
samsung | ||
sh-pfc | ||
sirf | ||
spear | ||
sunxi | ||
uniphier | ||
vt8500 | ||
core.c | ||
core.h | ||
devicetree.c | ||
devicetree.h | ||
Kconfig | ||
Makefile | ||
pinconf-generic.c | ||
pinconf.c | ||
pinconf.h | ||
pinctrl-adi2-bf54x.c | ||
pinctrl-adi2-bf60x.c | ||
pinctrl-adi2.c | ||
pinctrl-adi2.h | ||
pinctrl-amd.c | ||
pinctrl-amd.h | ||
pinctrl-as3722.c | ||
pinctrl-at91-pio4.c | ||
pinctrl-at91.c | ||
pinctrl-at91.h | ||
pinctrl-coh901.c | ||
pinctrl-coh901.h | ||
pinctrl-digicolor.c | ||
pinctrl-falcon.c | ||
pinctrl-lantiq.c | ||
pinctrl-lantiq.h | ||
pinctrl-lpc18xx.c | ||
pinctrl-palmas.c | ||
pinctrl-pistachio.c | ||
pinctrl-rockchip.c | ||
pinctrl-single.c | ||
pinctrl-st.c | ||
pinctrl-tb10x.c | ||
pinctrl-tegra-xusb.c | ||
pinctrl-tegra.c | ||
pinctrl-tegra.h | ||
pinctrl-tegra20.c | ||
pinctrl-tegra30.c | ||
pinctrl-tegra114.c | ||
pinctrl-tegra124.c | ||
pinctrl-tegra210.c | ||
pinctrl-tz1090-pdc.c | ||
pinctrl-tz1090.c | ||
pinctrl-u300.c | ||
pinctrl-utils.c | ||
pinctrl-utils.h | ||
pinctrl-xway.c | ||
pinctrl-zynq.c | ||
pinmux.c | ||
pinmux.h |