diff options
author | Ashish Shah <ashish.n.shah@intel.com> | 2014-08-01 16:27:12 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-08-02 22:41:14 -0400 |
commit | d3e2edb70ecf877b4e5f42314449fc648b18627b (patch) | |
tree | e2fc43939614944bd1da0d41ee0ad65bfd15b9e0 /drivers/net/ethernet/intel/i40evf/i40evf_main.c | |
parent | fd35886ad38a5b7c71a2105a7d0cac079c735111 (diff) |
i40evf: do not re-arm watchdog after remove
Add in an adapter state check to prevent re-arming watchdog timer after
i40evf_remove has been called and timer has been deleted.
Change-ID: I636ba7c6322be8cbf053231959f90c0a2d8d803a
Signed-off-by: Ashish Shah <ashish.n.shah@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/intel/i40evf/i40evf_main.c')
-rw-r--r-- | drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c index 4c01079fc2ff..2aca9cf45119 100644 --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c | |||
@@ -1403,6 +1403,8 @@ static void i40evf_watchdog_task(struct work_struct *work) | |||
1403 | watchdog_done: | 1403 | watchdog_done: |
1404 | clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); | 1404 | clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); |
1405 | restart_watchdog: | 1405 | restart_watchdog: |
1406 | if (adapter->state == __I40EVF_REMOVE) | ||
1407 | return; | ||
1406 | if (adapter->aq_required) | 1408 | if (adapter->aq_required) |
1407 | mod_timer(&adapter->watchdog_timer, | 1409 | mod_timer(&adapter->watchdog_timer, |
1408 | jiffies + msecs_to_jiffies(20)); | 1410 | jiffies + msecs_to_jiffies(20)); |