aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/iavf/iavf_main.c
diff options
context:
space:
mode:
authorPrzemek Kitszel <[email protected]>2025-04-04 10:23:18 +0000
committerTony Nguyen <[email protected]>2025-06-03 16:48:03 +0000
commitecb4cd0461accc446d20a7a167f39ed2fd5e9b0e (patch)
treef1e158754af700b917d54968359311fbedf836a6 /drivers/net/ethernet/intel/iavf/iavf_main.c
parentiavf: centralize watchdog requeueing itself (diff)
downloadkernel-ecb4cd0461accc446d20a7a167f39ed2fd5e9b0e.tar.gz
kernel-ecb4cd0461accc446d20a7a167f39ed2fd5e9b0e.zip
iavf: simplify watchdog_task in terms of adminq task scheduling
Simplify the decision whether to schedule adminq task. The condition is the same, but it is executed in more scenarios. Note that movement of watchdog_done label makes this commit a bit surprising. (Hence not squashing it to anything bigger). Reviewed-by: Jacob Keller <[email protected]> Signed-off-by: Przemek Kitszel <[email protected]> Tested-by: Rafal Romanowski <[email protected]> Signed-off-by: Tony Nguyen <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/iavf/iavf_main.c')
-rw-r--r--drivers/net/ethernet/intel/iavf/iavf_main.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c
index 2c6e033c7341..5efe44724d11 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_main.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
@@ -2934,6 +2934,7 @@ static void iavf_watchdog_task(struct work_struct *work)
return;
}
+ msec_delay = 20;
goto restart_watchdog;
}
@@ -3053,10 +3054,13 @@ static void iavf_watchdog_task(struct work_struct *work)
adapter->current_op = VIRTCHNL_OP_UNKNOWN;
dev_err(&adapter->pdev->dev, "Hardware reset detected\n");
iavf_schedule_reset(adapter, IAVF_FLAG_RESET_PENDING);
- msec_delay = 2000;
- goto watchdog_done;
}
+ if (adapter->aq_required)
+ msec_delay = 20;
+ else
+ msec_delay = 2000;
+watchdog_done:
mutex_unlock(&adapter->crit_lock);
restart_watchdog:
netdev_unlock(netdev);
@@ -3064,15 +3068,6 @@ restart_watchdog:
/* note that we schedule a different task */
if (adapter->state >= __IAVF_DOWN)
queue_work(adapter->wq, &adapter->adminq_task);
- if (adapter->aq_required)
- msec_delay = 20;
- else
- msec_delay = 2000;
- goto skip_unlock;
-watchdog_done:
- mutex_unlock(&adapter->crit_lock);
- netdev_unlock(netdev);
-skip_unlock:
if (msec_delay != IAVF_NO_RESCHED)
queue_delayed_work(adapter->wq, &adapter->watchdog_task,