net: mvpp2: cleanup probed ports in the probe error path
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: 3f518509de
("ethernet: Add new driver for Marvell Armada 375 network unit")
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ba2d8d887d
commit
26146b0e6b
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue