Commit 34ad34bf authored by Michal Schmidt's avatar Michal Schmidt Committed by Jakub Kicinski
Browse files

iavf: rely on netdev's own registered state



The information whether a netdev has been registered is already present
in the netdev itself. There's no need for a driver flag with the same
meaning.

Signed-off-by: default avatarMichal Schmidt <mschmidt@redhat.com>
Reviewed-by: default avatarWojciech Drewek <wojciech.drewek@intel.com>
Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/r/20231027175941.1340255-6-jacob.e.keller@intel.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 54584b17
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -377,7 +377,6 @@ struct iavf_adapter {
	unsigned long crit_section;

	struct delayed_work watchdog_task;
	bool netdev_registered;
	bool link_up;
	enum virtchnl_link_speed link_speed;
	/* This is only populated if the VIRTCHNL_VF_CAP_ADV_LINK_SPEED is set
+3 −6
Original line number Diff line number Diff line
@@ -2021,7 +2021,7 @@ static void iavf_finish_config(struct work_struct *work)
	mutex_lock(&adapter->crit_lock);

	if ((adapter->flags & IAVF_FLAG_SETUP_NETDEV_FEATURES) &&
	    adapter->netdev_registered &&
	    adapter->netdev->reg_state == NETREG_REGISTERED &&
	    !test_bit(__IAVF_IN_REMOVE_TASK, &adapter->crit_section)) {
		netdev_update_features(adapter->netdev);
		adapter->flags &= ~IAVF_FLAG_SETUP_NETDEV_FEATURES;
@@ -2029,7 +2029,7 @@ static void iavf_finish_config(struct work_struct *work)

	switch (adapter->state) {
	case __IAVF_DOWN:
		if (!adapter->netdev_registered) {
		if (adapter->netdev->reg_state != NETREG_REGISTERED) {
			err = register_netdevice(adapter->netdev);
			if (err) {
				dev_err(&adapter->pdev->dev, "Unable to register netdev (%d)\n",
@@ -2043,7 +2043,6 @@ static void iavf_finish_config(struct work_struct *work)
						  __IAVF_INIT_CONFIG_ADAPTER);
				goto out;
			}
			adapter->netdev_registered = true;
		}

		/* Set the real number of queues when reset occurs while
@@ -5169,10 +5168,8 @@ static void iavf_remove(struct pci_dev *pdev)
	cancel_work_sync(&adapter->finish_config);

	rtnl_lock();
	if (adapter->netdev_registered) {
	if (netdev->reg_state == NETREG_REGISTERED)
		unregister_netdevice(netdev);
		adapter->netdev_registered = false;
	}
	rtnl_unlock();

	if (CLIENT_ALLOWED(adapter)) {