]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit3c87e3bbfc78c73020d53031f34bcc8ea9229cb3
treee4e0dd19a54904b1b39244a7d3e9e341433f5814
parent36515f786c0c672c69fe2c6a1101b3953bd5bda8
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