OSDN Git Service

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)
committerDavid S. Miller <davem@davemloft.net>
Mon, 10 May 2021 21:47:23 +0000 (14:47 -0700)
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>
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

index ec706d6..b48c088 100644 (file)
@@ -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])