]> www.infradead.org Git - users/willy/xarray.git/commitdiff
netdevsim: Register devlink rate leaf objects per VF
authorDmytro Linkin <dlinkin@nvidia.com>
Wed, 2 Jun 2021 12:17:20 +0000 (15:17 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Jun 2021 21:08:36 +0000 (14:08 -0700)
Register devlink rate leaf objects per VF.

Co-developed-by: Vlad Buslov <vladbu@nvidia.com>
Signed-off-by: Vlad Buslov <vladbu@nvidia.com>
Signed-off-by: Dmytro Linkin <dlinkin@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/netdevsim/dev.c

index ed9ce083d0addabda488de0b9366c8379a568b7b..356287a2c320d99ad57fd311efb774bffa146227 100644 (file)
@@ -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);