dpaa2-eth: Register devlink instance at the end of probe
Move devlink_register to be the last command in the initialization sequence. Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8d44b5cf60
commit
bbb9ae25fc
@ -189,7 +189,7 @@ static const struct devlink_ops dpaa2_eth_devlink_ops = {
|
||||
.trap_group_action_set = dpaa2_eth_dl_trap_group_action_set,
|
||||
};
|
||||
|
||||
int dpaa2_eth_dl_register(struct dpaa2_eth_priv *priv)
|
||||
int dpaa2_eth_dl_alloc(struct dpaa2_eth_priv *priv)
|
||||
{
|
||||
struct net_device *net_dev = priv->net_dev;
|
||||
struct device *dev = net_dev->dev.parent;
|
||||
@ -203,15 +203,23 @@ int dpaa2_eth_dl_register(struct dpaa2_eth_priv *priv)
|
||||
}
|
||||
dl_priv = devlink_priv(priv->devlink);
|
||||
dl_priv->dpaa2_priv = priv;
|
||||
|
||||
devlink_register(priv->devlink);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void dpaa2_eth_dl_free(struct dpaa2_eth_priv *priv)
|
||||
{
|
||||
devlink_free(priv->devlink);
|
||||
}
|
||||
|
||||
|
||||
void dpaa2_eth_dl_register(struct dpaa2_eth_priv *priv)
|
||||
{
|
||||
devlink_register(priv->devlink);
|
||||
}
|
||||
|
||||
void dpaa2_eth_dl_unregister(struct dpaa2_eth_priv *priv)
|
||||
{
|
||||
devlink_unregister(priv->devlink);
|
||||
devlink_free(priv->devlink);
|
||||
}
|
||||
|
||||
int dpaa2_eth_dl_port_add(struct dpaa2_eth_priv *priv)
|
||||
|
@ -4431,7 +4431,7 @@ static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev)
|
||||
if (err)
|
||||
goto err_connect_mac;
|
||||
|
||||
err = dpaa2_eth_dl_register(priv);
|
||||
err = dpaa2_eth_dl_alloc(priv);
|
||||
if (err)
|
||||
goto err_dl_register;
|
||||
|
||||
@ -4453,6 +4453,7 @@ static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev)
|
||||
dpaa2_dbg_add(priv);
|
||||
#endif
|
||||
|
||||
dpaa2_eth_dl_register(priv);
|
||||
dev_info(dev, "Probed interface %s\n", net_dev->name);
|
||||
return 0;
|
||||
|
||||
@ -4461,7 +4462,7 @@ err_netdev_reg:
|
||||
err_dl_port_add:
|
||||
dpaa2_eth_dl_traps_unregister(priv);
|
||||
err_dl_trap_register:
|
||||
dpaa2_eth_dl_unregister(priv);
|
||||
dpaa2_eth_dl_free(priv);
|
||||
err_dl_register:
|
||||
dpaa2_eth_disconnect_mac(priv);
|
||||
err_connect_mac:
|
||||
@ -4508,6 +4509,8 @@ static int dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
|
||||
net_dev = dev_get_drvdata(dev);
|
||||
priv = netdev_priv(net_dev);
|
||||
|
||||
dpaa2_eth_dl_unregister(priv);
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
dpaa2_dbg_remove(priv);
|
||||
#endif
|
||||
@ -4519,7 +4522,7 @@ static int dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
|
||||
|
||||
dpaa2_eth_dl_port_del(priv);
|
||||
dpaa2_eth_dl_traps_unregister(priv);
|
||||
dpaa2_eth_dl_unregister(priv);
|
||||
dpaa2_eth_dl_free(priv);
|
||||
|
||||
if (priv->do_link_poll)
|
||||
kthread_stop(priv->poll_thread);
|
||||
|
@ -725,7 +725,10 @@ void dpaa2_eth_set_rx_taildrop(struct dpaa2_eth_priv *priv,
|
||||
|
||||
extern const struct dcbnl_rtnl_ops dpaa2_eth_dcbnl_ops;
|
||||
|
||||
int dpaa2_eth_dl_register(struct dpaa2_eth_priv *priv);
|
||||
int dpaa2_eth_dl_alloc(struct dpaa2_eth_priv *priv);
|
||||
void dpaa2_eth_dl_free(struct dpaa2_eth_priv *priv);
|
||||
|
||||
void dpaa2_eth_dl_register(struct dpaa2_eth_priv *priv);
|
||||
void dpaa2_eth_dl_unregister(struct dpaa2_eth_priv *priv);
|
||||
|
||||
int dpaa2_eth_dl_port_add(struct dpaa2_eth_priv *priv);
|
||||
|
Loading…
x
Reference in New Issue
Block a user