netdevsim: Disable VFs on nsim_dev_reload_destroy() call
Move VFs disabling from device release() to nsim_dev_reload_destroy() to make VFs disabling and ports removal simultaneous. This is a requirement for VFs ports implemented in next patches. Signed-off-by: Dmytro Linkin <dlinkin@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d395381909
commit
32ac15d8fd
|
@ -37,7 +37,7 @@ static int nsim_bus_dev_vfs_enable(struct nsim_bus_dev *nsim_bus_dev,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void nsim_bus_dev_vfs_disable(struct nsim_bus_dev *nsim_bus_dev)
|
||||
void nsim_bus_dev_vfs_disable(struct nsim_bus_dev *nsim_bus_dev)
|
||||
{
|
||||
nsim_bus_dev->num_vfs = 0;
|
||||
}
|
||||
|
@ -233,9 +233,6 @@ static const struct attribute_group *nsim_bus_dev_attr_groups[] = {
|
|||
|
||||
static void nsim_bus_dev_release(struct device *dev)
|
||||
{
|
||||
struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev);
|
||||
|
||||
nsim_bus_dev_vfs_disable(nsim_bus_dev);
|
||||
}
|
||||
|
||||
static struct device_type nsim_bus_dev_type = {
|
||||
|
|
|
@ -1182,6 +1182,12 @@ static void nsim_dev_reload_destroy(struct nsim_dev *nsim_dev)
|
|||
if (devlink_is_reload_failed(devlink))
|
||||
return;
|
||||
debugfs_remove(nsim_dev->take_snapshot);
|
||||
|
||||
mutex_lock(&nsim_dev->nsim_bus_dev->vfs_lock);
|
||||
if (nsim_dev->nsim_bus_dev->num_vfs)
|
||||
nsim_bus_dev_vfs_disable(nsim_dev->nsim_bus_dev);
|
||||
mutex_unlock(&nsim_dev->nsim_bus_dev->vfs_lock);
|
||||
|
||||
nsim_dev_port_del_all(nsim_dev);
|
||||
nsim_dev_psample_exit(nsim_dev);
|
||||
nsim_dev_health_exit(nsim_dev);
|
||||
|
|
|
@ -276,6 +276,7 @@ ssize_t nsim_bus_dev_max_vfs_read(struct file *file,
|
|||
ssize_t nsim_bus_dev_max_vfs_write(struct file *file,
|
||||
const char __user *data,
|
||||
size_t count, loff_t *ppos);
|
||||
void nsim_bus_dev_vfs_disable(struct nsim_bus_dev *nsim_bus_dev);
|
||||
|
||||
#if IS_ENABLED(CONFIG_XFRM_OFFLOAD)
|
||||
void nsim_ipsec_init(struct netdevsim *ns);
|
||||
|
|
Loading…
Reference in New Issue