diff --git a/devices/e1000/e1000_main-4.4-ethercat.c b/devices/e1000/e1000_main-4.4-ethercat.c index 2f85bfbd..3d6f0ccb 100644 --- a/devices/e1000/e1000_main-4.4-ethercat.c +++ b/devices/e1000/e1000_main-4.4-ethercat.c @@ -528,9 +528,7 @@ static void e1000_down_and_stop(struct e1000_adapter *adapter) { set_bit(__E1000_DOWN, &adapter->flags); - if (!adapter->ecdev) { - cancel_delayed_work_sync(&adapter->watchdog_task); - } + cancel_delayed_work_sync(&adapter->watchdog_task); /* * Since the watchdog task can reschedule other tasks, we should cancel @@ -1329,12 +1327,14 @@ static void e1000_remove(struct pci_dev *pdev) struct e1000_hw *hw = &adapter->hw; bool disable_dev; + if (adapter->ecdev) + irq_work_sync(&adapter->ec_watchdog_kicker); + e1000_down_and_stop(adapter); e1000_release_manageability(adapter); if (adapter->ecdev) { ecdev_close(adapter->ecdev); - irq_work_sync(&adapter->ec_watchdog_kicker); ecdev_withdraw(adapter->ecdev); } else { unregister_netdev(netdev); diff --git a/devices/e1000/e1000_main-5.10-ethercat.c b/devices/e1000/e1000_main-5.10-ethercat.c index 641e038d..7dd7b2db 100644 --- a/devices/e1000/e1000_main-5.10-ethercat.c +++ b/devices/e1000/e1000_main-5.10-ethercat.c @@ -497,9 +497,7 @@ static void e1000_down_and_stop(struct e1000_adapter *adapter) { set_bit(__E1000_DOWN, &adapter->flags); - if (!adapter->ecdev) { - cancel_delayed_work_sync(&adapter->watchdog_task); - } + cancel_delayed_work_sync(&adapter->watchdog_task); /* * Since the watchdog task can reschedule other tasks, we should cancel @@ -1310,12 +1308,14 @@ static void e1000_remove(struct pci_dev *pdev) struct e1000_hw *hw = &adapter->hw; bool disable_dev; + if (adapter->ecdev) + irq_work_sync(&adapter->ec_watchdog_kicker); + e1000_down_and_stop(adapter); e1000_release_manageability(adapter); if (adapter->ecdev) { ecdev_close(adapter->ecdev); - irq_work_sync(&adapter->ec_watchdog_kicker); ecdev_withdraw(adapter->ecdev); } else { unregister_netdev(netdev); diff --git a/devices/e1000/e1000_main-5.14-ethercat.c b/devices/e1000/e1000_main-5.14-ethercat.c index f00b3601..b31c9ff3 100644 --- a/devices/e1000/e1000_main-5.14-ethercat.c +++ b/devices/e1000/e1000_main-5.14-ethercat.c @@ -497,9 +497,7 @@ static void e1000_down_and_stop(struct e1000_adapter *adapter) { set_bit(__E1000_DOWN, &adapter->flags); - if (!adapter->ecdev) { - cancel_delayed_work_sync(&adapter->watchdog_task); - } + cancel_delayed_work_sync(&adapter->watchdog_task); /* * Since the watchdog task can reschedule other tasks, we should cancel @@ -1310,12 +1308,14 @@ static void e1000_remove(struct pci_dev *pdev) struct e1000_hw *hw = &adapter->hw; bool disable_dev; + if (adapter->ecdev) + irq_work_sync(&adapter->ec_watchdog_kicker); + e1000_down_and_stop(adapter); e1000_release_manageability(adapter); if (adapter->ecdev) { ecdev_close(adapter->ecdev); - irq_work_sync(&adapter->ec_watchdog_kicker); ecdev_withdraw(adapter->ecdev); } else { unregister_netdev(netdev); diff --git a/devices/e1000/e1000_main-5.15-ethercat.c b/devices/e1000/e1000_main-5.15-ethercat.c index 0efa8501..fb18874a 100644 --- a/devices/e1000/e1000_main-5.15-ethercat.c +++ b/devices/e1000/e1000_main-5.15-ethercat.c @@ -497,9 +497,7 @@ static void e1000_down_and_stop(struct e1000_adapter *adapter) { set_bit(__E1000_DOWN, &adapter->flags); - if (!adapter->ecdev) { - cancel_delayed_work_sync(&adapter->watchdog_task); - } + cancel_delayed_work_sync(&adapter->watchdog_task); /* * Since the watchdog task can reschedule other tasks, we should cancel @@ -1310,12 +1308,14 @@ static void e1000_remove(struct pci_dev *pdev) struct e1000_hw *hw = &adapter->hw; bool disable_dev; + if (adapter->ecdev) + irq_work_sync(&adapter->ec_watchdog_kicker); + e1000_down_and_stop(adapter); e1000_release_manageability(adapter); if (adapter->ecdev) { ecdev_close(adapter->ecdev); - irq_work_sync(&adapter->ec_watchdog_kicker); ecdev_withdraw(adapter->ecdev); } else { unregister_netdev(netdev); diff --git a/devices/e1000/e1000_main-6.1-ethercat.c b/devices/e1000/e1000_main-6.1-ethercat.c index 345cde6a..e9514e51 100644 --- a/devices/e1000/e1000_main-6.1-ethercat.c +++ b/devices/e1000/e1000_main-6.1-ethercat.c @@ -497,9 +497,7 @@ static void e1000_down_and_stop(struct e1000_adapter *adapter) { set_bit(__E1000_DOWN, &adapter->flags); - if (!adapter->ecdev) { - cancel_delayed_work_sync(&adapter->watchdog_task); - } + cancel_delayed_work_sync(&adapter->watchdog_task); /* * Since the watchdog task can reschedule other tasks, we should cancel @@ -1310,12 +1308,14 @@ static void e1000_remove(struct pci_dev *pdev) struct e1000_hw *hw = &adapter->hw; bool disable_dev; + if (adapter->ecdev) + irq_work_sync(&adapter->ec_watchdog_kicker); + e1000_down_and_stop(adapter); e1000_release_manageability(adapter); if (adapter->ecdev) { ecdev_close(adapter->ecdev); - irq_work_sync(&adapter->ec_watchdog_kicker); ecdev_withdraw(adapter->ecdev); } else { unregister_netdev(netdev);