]> Git Repo - linux.git/commitdiff
net: mvpp2: cleanup probed ports in the probe error path
authorAntoine Tenart <[email protected]>
Tue, 28 Nov 2017 13:19:49 +0000 (14:19 +0100)
committerDavid S. Miller <[email protected]>
Tue, 28 Nov 2017 15:09:50 +0000 (10:09 -0500)
This patches fixes the probe error path by cleaning up probed ports, to
avoid leaving registered net devices when the driver failed to probe.

Fixes: 3f518509dedc ("ethernet: Add new driver for Marvell Armada 375 network unit")
Signed-off-by: Antoine Tenart <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
drivers/net/ethernet/marvell/mvpp2.c

index 79f01cd80dd7f7426744fa67fa1ee3c36eb7bc1f..afae4fe00965b0ae73a394bd7657ead81fc698c5 100644 (file)
@@ -8329,7 +8329,7 @@ static int mvpp2_probe(struct platform_device *pdev)
        for_each_available_child_of_node(dn, port_node) {
                err = mvpp2_port_probe(pdev, port_node, priv, i);
                if (err < 0)
-                       goto err_mg_clk;
+                       goto err_port_probe;
                i++;
        }
 
@@ -8345,12 +8345,19 @@ static int mvpp2_probe(struct platform_device *pdev)
        priv->stats_queue = create_singlethread_workqueue(priv->queue_name);
        if (!priv->stats_queue) {
                err = -ENOMEM;
-               goto err_mg_clk;
+               goto err_port_probe;
        }
 
        platform_set_drvdata(pdev, priv);
        return 0;
 
+err_port_probe:
+       i = 0;
+       for_each_available_child_of_node(dn, port_node) {
+               if (priv->port_list[i])
+                       mvpp2_port_remove(priv->port_list[i]);
+               i++;
+       }
 err_mg_clk:
        clk_disable_unprepare(priv->axi_clk);
        if (priv->hw_version == MVPP22)
This page took 0.066619 seconds and 4 git commands to generate.