Commit 44691f53 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by David S. Miller
Browse files

net: hinic: Open device for the user access when it is ready



Move devlink registration to be the last command in device activation,
so it opens the driver to accept such devlink commands from the user
when it is fully initialized.

Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bbb9ae25
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -754,11 +754,9 @@ static int init_pfhwdev(struct hinic_pfhwdev *pfhwdev)
		return err;
	}

	hinic_devlink_register(hwdev->devlink_dev);
	err = hinic_func_to_func_init(hwdev);
	if (err) {
		dev_err(&hwif->pdev->dev, "Failed to init mailbox\n");
		hinic_devlink_unregister(hwdev->devlink_dev);
		hinic_pf_to_mgmt_free(&pfhwdev->pf_to_mgmt);
		return err;
	}
@@ -781,7 +779,7 @@ static int init_pfhwdev(struct hinic_pfhwdev *pfhwdev)
	}

	hinic_set_pf_action(hwif, HINIC_PF_MGMT_ACTIVE);

	hinic_devlink_register(hwdev->devlink_dev);
	return 0;
}

@@ -793,6 +791,7 @@ static void free_pfhwdev(struct hinic_pfhwdev *pfhwdev)
{
	struct hinic_hwdev *hwdev = &pfhwdev->hwdev;

	hinic_devlink_unregister(hwdev->devlink_dev);
	hinic_set_pf_action(hwdev->hwif, HINIC_PF_MGMT_INIT);

	if (!HINIC_IS_VF(hwdev->hwif)) {
@@ -810,8 +809,6 @@ static void free_pfhwdev(struct hinic_pfhwdev *pfhwdev)

	hinic_func_to_func_free(hwdev);

	hinic_devlink_unregister(hwdev->devlink_dev);

	hinic_pf_to_mgmt_free(&pfhwdev->pf_to_mgmt);
}