mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
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:
parent
099418da91
commit
ecb4cd0461
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user