net/mlx5: Disable SRIOV before PF removal
Virtual functions depend on physical function for device access (for example firmware host PAGE management), so make sure to disable SR-IOV once PF is gone. This will prevent also the below warning if PF has gone before disabling SR-IOV. "driver left SR-IOV enabled after remove" Next patch from this series will rely on that when the VF may need to access safely the PF 'driver data'. Link: https://lore.kernel.org/all/20220224142024.147653-4-yishaih@nvidia.com Signed-off-by: Yishai Hadas <yishaih@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
This commit is contained in:
Родитель
6ebd25b80c
Коммит
143a41d762
|
@ -1620,6 +1620,7 @@ static void remove_one(struct pci_dev *pdev)
|
|||
struct devlink *devlink = priv_to_devlink(dev);
|
||||
|
||||
devlink_unregister(devlink);
|
||||
mlx5_sriov_disable(pdev);
|
||||
mlx5_crdump_disable(dev);
|
||||
mlx5_drain_health_wq(dev);
|
||||
mlx5_uninit_one(dev);
|
||||
|
|
|
@ -164,6 +164,7 @@ void mlx5_sriov_cleanup(struct mlx5_core_dev *dev);
|
|||
int mlx5_sriov_attach(struct mlx5_core_dev *dev);
|
||||
void mlx5_sriov_detach(struct mlx5_core_dev *dev);
|
||||
int mlx5_core_sriov_configure(struct pci_dev *dev, int num_vfs);
|
||||
void mlx5_sriov_disable(struct pci_dev *pdev);
|
||||
int mlx5_core_sriov_set_msix_vec_count(struct pci_dev *vf, int msix_vec_count);
|
||||
int mlx5_core_enable_hca(struct mlx5_core_dev *dev, u16 func_id);
|
||||
int mlx5_core_disable_hca(struct mlx5_core_dev *dev, u16 func_id);
|
||||
|
|
|
@ -161,7 +161,7 @@ static int mlx5_sriov_enable(struct pci_dev *pdev, int num_vfs)
|
|||
return err;
|
||||
}
|
||||
|
||||
static void mlx5_sriov_disable(struct pci_dev *pdev)
|
||||
void mlx5_sriov_disable(struct pci_dev *pdev)
|
||||
{
|
||||
struct mlx5_core_dev *dev = pci_get_drvdata(pdev);
|
||||
int num_vfs = pci_num_vf(dev->pdev);
|
||||
|
|
Загрузка…
Ссылка в новой задаче