linux/drivers/net/ethernet/intel
Jacob Keller 622a2ef538 ixgbe: check for Tx timestamp timeouts during watchdog
The ixgbe driver has logic to handle only one Tx timestamp at a time,
using a state bit lock to avoid multiple requests at once.

It may be possible, if incredibly unlikely, that a Tx timestamp event is
requested but never completes. Since we use an interrupt scheme to
determine when the Tx timestamp occurred we would never clear the state
bit in this case.

Add an ixgbe_ptp_tx_hang() function similar to the already existing
ixgbe_ptp_rx_hang() function. This function runs in the watchdog routine
and makes sure we eventually recover from this case instead of
permanently disabling Tx timestamps.

Note: there is no currently known way to cause this without hacking the
driver code to force it.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-06-13 16:11:48 -07:00
..
e1000 e1000: Omit private ndo_get_stats function 2017-04-20 16:18:45 -07:00
e1000e e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails 2017-06-07 20:45:58 -07:00
fm10k net: propagate tc filter chain index down the ndo_setup_tc call 2017-06-08 09:55:53 -04:00
i40e net: propagate tc filter chain index down the ndo_setup_tc call 2017-06-08 09:55:53 -04:00
i40evf Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-06-06 22:20:08 -04:00
igb igb: make a few local functions static 2017-06-07 19:05:42 -07:00
igbvf igbvf: Use net_device_stats from struct net_device 2017-04-20 16:32:45 -07:00
ixgb ixgb: Omit private ndo_get_stats function 2017-04-20 16:18:45 -07:00
ixgbe ixgbe: check for Tx timestamp timeouts during watchdog 2017-06-13 16:11:48 -07:00
ixgbevf ixgbevf: Resolve warnings for -Wimplicit-fallthrough 2017-05-31 04:46:44 -07:00
e100.c net/{mii, smsc}: Make mii_ethtool_get_link_ksettings and smc_netdev_get_ecmd return void 2017-06-05 11:00:42 -04:00
Kconfig i40evf: Add support for Adaptive Virtual Function 2017-06-01 14:30:02 -07:00
Makefile