Commit 885dfe12 authored by Dmytro Linkin's avatar Dmytro Linkin Committed by David S. Miller
Browse files

netdevsim: Register devlink rate leaf objects per VF



Register devlink rate leaf objects per VF.

Co-developed-by: default avatarVlad Buslov <vladbu@nvidia.com>
Signed-off-by: default avatarVlad Buslov <vladbu@nvidia.com>
Signed-off-by: default avatarDmytro Linkin <dlinkin@nvidia.com>
Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4677efc4
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1055,11 +1055,20 @@ static int __nsim_dev_port_add(struct nsim_dev *nsim_dev, enum nsim_dev_port_typ
		goto err_port_debugfs_exit;
	}

	if (nsim_dev_port_is_vf(nsim_dev_port)) {
		err = devlink_rate_leaf_create(&nsim_dev_port->devlink_port,
					       nsim_dev_port);
		if (err)
			goto err_nsim_destroy;
	}

	devlink_port_type_eth_set(devlink_port, nsim_dev_port->ns->netdev);
	list_add(&nsim_dev_port->list, &nsim_dev->port_list);

	return 0;

err_nsim_destroy:
	nsim_destroy(nsim_dev_port->ns);
err_port_debugfs_exit:
	nsim_dev_port_debugfs_exit(nsim_dev_port);
err_dl_port_unregister:
@@ -1074,6 +1083,8 @@ static void __nsim_dev_port_del(struct nsim_dev_port *nsim_dev_port)
	struct devlink_port *devlink_port = &nsim_dev_port->devlink_port;

	list_del(&nsim_dev_port->list);
	if (nsim_dev_port_is_vf(nsim_dev_port))
		devlink_rate_leaf_destroy(&nsim_dev_port->devlink_port);
	devlink_port_type_clear(devlink_port);
	nsim_destroy(nsim_dev_port->ns);
	nsim_dev_port_debugfs_exit(nsim_dev_port);