linux/drivers/net/ethernet/intel/igb
Jacob Keller e5f36ad14c igb: check for Tx timestamp timeouts during watchdog
The igb 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 igb_ptp_tx_hang() function similar to the already existing
igb_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: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-06-06 01:03:17 -07:00
..
e1000_82575.c igb: Explicitly select page 0 at initialization 2017-06-06 00:49:20 -07:00
e1000_82575.h igb: support RX flow classification by ethertype 2016-08-18 22:27:48 -07:00
e1000_defines.h igb: Enable reading of wake up packet 2017-04-20 16:32:45 -07:00
e1000_hw.h
e1000_i210.c igb: Fix hw_dbg logging in igb_update_flash_i210 2017-01-06 02:23:22 -08:00
e1000_i210.h
e1000_mac.c igb: Realign bad indentation 2017-01-06 02:18:49 -08:00
e1000_mac.h
e1000_mbx.c
e1000_mbx.h igb/igbvf: Add VF MAC filter request capabilities 2017-04-20 16:32:44 -07:00
e1000_nvm.c
e1000_nvm.h
e1000_phy.c scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
e1000_phy.h
e1000_regs.h igb: correct register comments 2017-01-06 02:18:50 -08:00
igb_ethtool.c igb: add statistic indicating number of skipped Tx timestamps 2017-06-06 01:02:05 -07:00
igb_hwmon.c
igb_main.c igb: check for Tx timestamp timeouts during watchdog 2017-06-06 01:03:17 -07:00
igb_ptp.c igb: check for Tx timestamp timeouts during watchdog 2017-06-06 01:03:17 -07:00
igb.h igb: check for Tx timestamp timeouts during watchdog 2017-06-06 01:03:17 -07:00
Makefile