|
@@ -278,6 +278,7 @@ static void ixgbe_check_minimum_link(struct ixgbe_adapter *adapter,
|
|
|
static void ixgbe_service_event_schedule(struct ixgbe_adapter *adapter)
|
|
|
{
|
|
|
if (!test_bit(__IXGBE_DOWN, &adapter->state) &&
|
|
|
+ !test_bit(__IXGBE_REMOVING, &adapter->state) &&
|
|
|
!test_and_set_bit(__IXGBE_SERVICE_SCHED, &adapter->state))
|
|
|
schedule_work(&adapter->service_task);
|
|
|
}
|
|
@@ -5874,8 +5875,9 @@ static void ixgbe_check_hang_subtask(struct ixgbe_adapter *adapter)
|
|
|
u64 eics = 0;
|
|
|
int i;
|
|
|
|
|
|
- /* If we're down or resetting, just bail */
|
|
|
+ /* If we're down, removing or resetting, just bail */
|
|
|
if (test_bit(__IXGBE_DOWN, &adapter->state) ||
|
|
|
+ test_bit(__IXGBE_REMOVING, &adapter->state) ||
|
|
|
test_bit(__IXGBE_RESETTING, &adapter->state))
|
|
|
return;
|
|
|
|
|
@@ -6122,8 +6124,9 @@ static void ixgbe_spoof_check(struct ixgbe_adapter *adapter)
|
|
|
**/
|
|
|
static void ixgbe_watchdog_subtask(struct ixgbe_adapter *adapter)
|
|
|
{
|
|
|
- /* if interface is down do nothing */
|
|
|
+ /* if interface is down, removing or resetting, do nothing */
|
|
|
if (test_bit(__IXGBE_DOWN, &adapter->state) ||
|
|
|
+ test_bit(__IXGBE_REMOVING, &adapter->state) ||
|
|
|
test_bit(__IXGBE_RESETTING, &adapter->state))
|
|
|
return;
|
|
|
|
|
@@ -6341,8 +6344,9 @@ static void ixgbe_reset_subtask(struct ixgbe_adapter *adapter)
|
|
|
|
|
|
adapter->flags2 &= ~IXGBE_FLAG2_RESET_REQUESTED;
|
|
|
|
|
|
- /* If we're already down or resetting, just bail */
|
|
|
+ /* If we're already down, removing or resetting, just bail */
|
|
|
if (test_bit(__IXGBE_DOWN, &adapter->state) ||
|
|
|
+ test_bit(__IXGBE_REMOVING, &adapter->state) ||
|
|
|
test_bit(__IXGBE_RESETTING, &adapter->state))
|
|
|
return;
|
|
|
|
|
@@ -8210,7 +8214,7 @@ static void ixgbe_remove(struct pci_dev *pdev)
|
|
|
|
|
|
ixgbe_dbg_adapter_exit(adapter);
|
|
|
|
|
|
- set_bit(__IXGBE_DOWN, &adapter->state);
|
|
|
+ set_bit(__IXGBE_REMOVING, &adapter->state);
|
|
|
cancel_work_sync(&adapter->service_task);
|
|
|
|
|
|
|