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 <jacob.e.keller@intel.com>
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
Przemek Kitszel 2025-04-04 12:23:18 +02:00 committed by Tony Nguyen
parent 099418da91
commit ecb4cd0461

View File

@ -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 @@ static void iavf_watchdog_task(struct work_struct *work)
/* 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,