]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: qca8k: Add of_node_put() in qca8k_setup_mdio_bus()
authorNishka Dasgupta <nishkadg.linux@gmail.com>
Sun, 4 Aug 2019 15:30:18 +0000 (21:00 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 6 Aug 2019 21:35:13 +0000 (14:35 -0700)
commitbbe7fbbd88b5ce41b8ef480b31fdd1f15e882c74
treeeec432e5613dcf4d48a61c067f716bee990cd67e
parentdfdf34257f4ef3b386b021436fad12f7b2fc5d0d
net: dsa: qca8k: Add of_node_put() in qca8k_setup_mdio_bus()

Each iteration of for_each_available_child_of_node() puts the previous
node, but in the case of a return from the middle of the loop, there
is no put, thus causing a memory leak. Hence add an of_node_put() before
the return.
Additionally, the local variable ports in the function
qca8k_setup_mdio_bus() takes the return value of of_get_child_by_name(),
which gets a node but does not put it. If the function returns without
putting ports, it may cause a memory leak. Hence put ports before the
mid-loop return statement, and also outside the loop after its last usage
in this function.
Issues found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c