]> www.infradead.org Git - users/dwmw2/linux.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:53:26 +0000 (16:53 +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 491bcfd36ac254a4598086bb7c40ae067cb6cab0..7857ebff92e82f6e0743e5257acf5eb9a14785f9 100644 (file)
@@ -5910,6 +5910,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])