diff mbox series

[net-next,RFC,09/12] nfp: register devlink port for VF/PF representors

Message ID 20180322105522.8186-10-jiri@resnulli.us
State RFC, archived
Delegated to: David Miller
Headers show
Series devlink: introduce port flavours and common phys_port_name generation | expand

Commit Message

Jiri Pirko March 22, 2018, 10:55 a.m. UTC
From: Jiri Pirko <jiri@mellanox.com>

Drivers should always register devlink port instance for all their
ports. So fix nfp and register devlink port for VF and PF representors.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
---
 drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 8 ++++++++
 1 file changed, 8 insertions(+)
diff mbox series

Patch

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
index e6445f6707cb..eff07e9a175d 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
@@ -270,6 +270,8 @@  const struct net_device_ops nfp_repr_netdev_ops = {
 
 static void nfp_repr_clean(struct nfp_repr *repr)
 {
+	if (repr->port)
+		nfp_devlink_port_unregister(repr->port);
 	unregister_netdev(repr->netdev);
 	nfp_app_repr_clean(repr->app, repr->netdev);
 	dst_release((struct dst_entry *)repr->dst);
@@ -330,8 +332,14 @@  int nfp_repr_init(struct nfp_app *app, struct net_device *netdev,
 
 	/* This is incorrect - the id has to be figured out differently */
 	port->eth_id = cmsg_port_id;
+	err = nfp_devlink_port_register(app, port);
+	if (err)
+		goto err_netdev_clean;
+
 	return 0;
 
+err_netdev_clean:
+	unregister_netdev(netdev);
 err_repr_clean:
 	nfp_app_repr_clean(app, netdev);
 err_clean: