Commit 6da26237 authored by Sasha Neftin's avatar Sasha Neftin Committed by Tony Nguyen
Browse files

igc: reinit_locked() should be called with rtnl_lock



This commit applies to the igc_reset_task the same changes that
were applied to the igb driver in commit 024a8168 ("igb:
reinit_locked() should be called with rtnl_lock")
and fix possible race in reset subtask.

Fixes: 0507ef8a ("igc: Add transmit and receive fastpath and interrupt handlers")
Suggested-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarSasha Neftin <sasha.neftin@intel.com>
Tested-by: default avatarDvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent 47142ed6
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -3831,10 +3831,19 @@ static void igc_reset_task(struct work_struct *work)

	adapter = container_of(work, struct igc_adapter, reset_task);

	rtnl_lock();
	/* If we're already down or resetting, just bail */
	if (test_bit(__IGC_DOWN, &adapter->state) ||
	    test_bit(__IGC_RESETTING, &adapter->state)) {
		rtnl_unlock();
		return;
	}

	igc_rings_dump(adapter);
	igc_regs_dump(adapter);
	netdev_err(adapter->netdev, "Reset adapter\n");
	igc_reinit_locked(adapter);
	rtnl_unlock();
}

/**