net: ethernet: ti: cpsw: Add of_node_put() before return and break
authorNishka Dasgupta <nishkadg.linux@gmail.com>
Tue, 16 Jul 2019 05:48:43 +0000 (11:18 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Jul 2019 19:37:30 +0000 (12:37 -0700)
commit3cd6e20f54d5003ea895717b67017397056749ce
treee4e0dd19a54904b1b39244a7d3e9e341433f5814
parent1d43d5e469d92601ed5b606998bdc7d450276636
net: ethernet: ti: cpsw: Add of_node_put() before return and break

Each iteration of for_each_available_child_of_node puts the previous
node, but in the case of a return or break from the middle of the loop,
there is no put, thus causing a memory leak.
Hence, for function cpsw_probe_dt, create an extra label err_node_put
that puts the last used node and returns ret; modify the return
statements in the loop to save the return value in ret and goto this new
label.
For function cpsw_remove_dt, add an of_node_put before the break.
Issue found with Coccinelle.

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