]> git.baikalelectronics.ru Git - kernel.git/commit
i40e: prevent overlapping tx_timeout recover
authorAlan Brady <alan.brady@intel.com>
Mon, 29 Oct 2018 18:27:21 +0000 (11:27 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 14 Nov 2018 18:56:34 +0000 (10:56 -0800)
commitadc22480afba1a547b6f288b8952173baa2a66f2
tree319e38ef420619753b59fbb993014a8e89781752
parent4c85244d23405ce4ca9d311b5350d3269b18527e
i40e: prevent overlapping tx_timeout recover

If a TX hang occurs, we attempt to recover by incrementally resetting.
If we're starved for CPU time, it's possible the reset doesn't actually
complete (or even fire) before another tx_timeout fires causing us to
fly through the different resets without actually doing them.

This adds a bit to set and check if a timeout recovery is already
pending and, if so, bail out of tx_timeout.  The bit will get cleared at
the end of i40e_rebuild when reset is complete.

Signed-off-by: Alan Brady <alan.brady@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/i40e/i40e_main.c