diff options
author | Andy Shevchenko <andy.shevchenko@gmail.com> | 2021-05-10 12:58:05 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-05-10 14:47:23 -0700 |
commit | 71f0891c84dfdc448736082ab0a00acd29853896 (patch) | |
tree | 413bad284d2e9f0e6aef448e562f351b4c69e3a9 /drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | |
parent | a100243d95a60d74ae9bb9df1f5f2192e9aed6a7 (diff) | |
download | linux-71f0891c84dfdc448736082ab0a00acd29853896.tar.gz linux-71f0891c84dfdc448736082ab0a00acd29853896.tar.bz2 linux-71f0891c84dfdc448736082ab0a00acd29853896.zip |
net: mvpp2: Put fwnode in error case during ->probe()
In each iteration fwnode_for_each_available_child_node() bumps a reference
counting of a loop variable followed by dropping in on a next iteration,
Since in error case the loop is broken, we have to drop a reference count
by ourselves. Do it for port_fwnode in error case during ->probe().
Fixes: 248122212f68 ("net: mvpp2: use device_*/fwnode_* APIs instead of of_*")
Cc: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c')
-rw-r--r-- | drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index ec706d614cac..b48c08829a31 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -7552,6 +7552,8 @@ static int mvpp2_probe(struct platform_device *pdev) return 0; err_port_probe: + fwnode_handle_put(port_fwnode); + i = 0; fwnode_for_each_available_child_node(fwnode, port_fwnode) { if (priv->port_list[i]) |