Commit 82465bec authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Jakub Kicinski
Browse files

devlink: Delete reload enable/disable interface



Commit a0c76345 ("devlink: disallow reload operation during device
cleanup") added devlink_reload_{enable,disable}() APIs to prevent reload
operation from racing with device probe/dismantle.

After recent changes to move devlink_register() to the end of device
probe and devlink_unregister() to the beginning of device dismantle,
these races can no longer happen. Reload operations will be denied if
the devlink instance is unregistered and devlink_unregister() will block
until all in-flight operations are done.

Therefore, remove these devlink_reload_{enable,disable}() APIs.

Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 96869f19
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -121,7 +121,6 @@ int hclge_devlink_init(struct hclge_dev *hdev)

	devlink_set_features(devlink, DEVLINK_F_RELOAD);
	devlink_register(devlink);
	devlink_reload_enable(devlink);
	return 0;
}

@@ -129,8 +128,6 @@ void hclge_devlink_uninit(struct hclge_dev *hdev)
{
	struct devlink *devlink = hdev->devlink;

	devlink_reload_disable(devlink);

	devlink_unregister(devlink);

	devlink_free(devlink);
+0 −3
Original line number Diff line number Diff line
@@ -123,7 +123,6 @@ int hclgevf_devlink_init(struct hclgevf_dev *hdev)

	devlink_set_features(devlink, DEVLINK_F_RELOAD);
	devlink_register(devlink);
	devlink_reload_enable(devlink);
	return 0;
}

@@ -131,8 +130,6 @@ void hclgevf_devlink_uninit(struct hclgevf_dev *hdev)
{
	struct devlink *devlink = hdev->devlink;

	devlink_reload_disable(devlink);

	devlink_unregister(devlink);

	devlink_free(devlink);
+0 −2
Original line number Diff line number Diff line
@@ -4027,7 +4027,6 @@ static int mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
	pci_save_state(pdev);
	devlink_set_features(devlink, DEVLINK_F_RELOAD);
	devlink_register(devlink);
	devlink_reload_enable(devlink);
	return 0;

err_params_unregister:
@@ -4136,7 +4135,6 @@ static void mlx4_remove_one(struct pci_dev *pdev)
	struct devlink *devlink = priv_to_devlink(priv);
	int active_vfs = 0;

	devlink_reload_disable(devlink);
	devlink_unregister(devlink);

	if (mlx4_is_slave(dev))
+0 −3
Original line number Diff line number Diff line
@@ -1538,8 +1538,6 @@ static int probe_one(struct pci_dev *pdev, const struct pci_device_id *id)

	pci_save_state(pdev);
	devlink_register(devlink);
	if (!mlx5_core_is_mp_slave(dev))
		devlink_reload_enable(devlink);
	return 0;

err_init_one:
@@ -1559,7 +1557,6 @@ static void remove_one(struct pci_dev *pdev)
	struct mlx5_core_dev *dev  = pci_get_drvdata(pdev);
	struct devlink *devlink = priv_to_devlink(dev);

	devlink_reload_disable(devlink);
	devlink_unregister(devlink);
	mlx5_crdump_disable(dev);
	mlx5_drain_health_wq(dev);
+1 −4
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ static int mlx5_sf_dev_probe(struct auxiliary_device *adev, const struct auxilia
		goto init_one_err;
	}
	devlink_register(devlink);
	devlink_reload_enable(devlink);
	return 0;

init_one_err:
@@ -62,10 +61,8 @@ static int mlx5_sf_dev_probe(struct auxiliary_device *adev, const struct auxilia
static void mlx5_sf_dev_remove(struct auxiliary_device *adev)
{
	struct mlx5_sf_dev *sf_dev = container_of(adev, struct mlx5_sf_dev, adev);
	struct devlink *devlink;
	struct devlink *devlink = priv_to_devlink(sf_dev->mdev);

	devlink = priv_to_devlink(sf_dev->mdev);
	devlink_reload_disable(devlink);
	devlink_unregister(devlink);
	mlx5_uninit_one(sf_dev->mdev);
	iounmap(sf_dev->mdev->iseg);
Loading