summaryrefslogtreecommitdiff
path: root/drivers/staging/fsl-dpaa2
diff options
context:
space:
mode:
authorIoana Ciornei <ioana.ciornei@nxp.com>2019-08-13 15:43:06 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-08-14 16:46:25 +0200
commit18f1296f067e09f1aba8971a2b76b78734a5eb87 (patch)
tree8d0ec708cdcf004baac682b87679e8cd53074135 /drivers/staging/fsl-dpaa2
parent38fc21369eaaac937a3bbb0a445014731dd32566 (diff)
staging: fsl-dpaa2/ethsw: register_netdev only when ready
The register_netdev() call should be made only when ready to process any user request on the interface. Move the call to be the last one issued in the probe sequence. Reported-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Link: https://lore.kernel.org/r/1565700187-16048-10-git-send-email-ioana.ciornei@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/fsl-dpaa2')
-rw-r--r--drivers/staging/fsl-dpaa2/ethsw/ethsw.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
index 28da109aef5e..14a9eebf687e 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
@@ -1588,23 +1588,21 @@ static int ethsw_probe_port(struct ethsw_core *ethsw, u16 port_idx)
port_netdev->min_mtu = ETH_MIN_MTU;
port_netdev->max_mtu = ETHSW_MAX_FRAME_LENGTH;
+ err = ethsw_port_init(port_priv, port_idx);
+ if (err)
+ goto err_port_probe;
+
err = register_netdev(port_netdev);
if (err < 0) {
dev_err(dev, "register_netdev error %d\n", err);
- goto err_register_netdev;
+ goto err_port_probe;
}
ethsw->ports[port_idx] = port_priv;
- err = ethsw_port_init(port_priv, port_idx);
- if (err)
- goto err_ethsw_port_init;
-
return 0;
-err_ethsw_port_init:
- unregister_netdev(port_netdev);
-err_register_netdev:
+err_port_probe:
free_netdev(port_netdev);
return err;