]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: mvpp2: Put fwnode in error case during ->probe()
authorAndy Shevchenko <andy.shevchenko@gmail.com>
Mon, 10 May 2021 09:58:05 +0000 (12:58 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jul 2021 14:59:45 +0000 (16:59 +0200)
[ Upstream commit 71f0891c84dfdc448736082ab0a00acd29853896 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

index 6c81e4f175ac6318c82ebea7f2b0ea3454398172..bf06f2d785db6db8712deef4c369c2ae190b2784 100644 (file)
@@ -7589,6 +7589,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])