mirror_ubuntu-kernels/drivers/net/ethernet/intel/i40e
Jacob Keller 0bc0706b46 i40e: check for Tx timestamp timeouts during watchdog
The i40e 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 i40e_ptp_tx_hang() function similar to the already existing
i40e_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>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-05-31 03:12:06 -07:00
..
i40e_adminq_cmd.h i40e: new AQ commands 2017-04-19 17:04:06 -07:00
i40e_adminq.c i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_adminq.h i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_alloc.h
i40e_client.c i40e: use DECLARE_BITMAP for state fields 2017-04-30 04:48:13 -07:00
i40e_client.h i40e: KISS the client interface 2017-03-15 01:57:08 -07:00
i40e_common.c i40e: new AQ commands 2017-04-19 17:04:06 -07:00
i40e_dcb_nl.c i40e: Change some messages from info to debug only 2015-10-15 01:58:41 -07:00
i40e_dcb.c i40e: refactor DCB function 2016-02-16 19:04:08 -08:00
i40e_dcb.h i40e: Add parsing for CEE DCBX TLVs 2015-10-08 15:11:38 -07:00
i40e_debugfs.c i40e: use DECLARE_BITMAP for state fields 2017-04-30 04:48:13 -07:00
i40e_devids.h i40e: Add support for 25G devices 2016-12-06 20:59:43 -08:00
i40e_diag.c
i40e_diag.h
i40e_ethtool.c i40e: add statistic indicating number of skipped Tx timestamps 2017-05-31 03:09:14 -07:00
i40e_fcoe.c i40e: store MAC/VLAN filters in a hash with the MAC Address as key 2016-10-31 14:26:40 -07:00
i40e_fcoe.h
i40e_hmc.c i40e: fix an uninitialized variable bug 2016-05-14 00:21:51 -07:00
i40e_hmc.h
i40e_lan_hmc.c i40e: use explicit cast from u16 to u8 2015-12-12 21:08:26 -08:00
i40e_lan_hmc.h
i40e_main.c i40e: check for Tx timestamp timeouts during watchdog 2017-05-31 03:12:06 -07:00
i40e_nvm.c i40e: Acquire NVM lock before reads on all devices 2017-03-14 17:52:32 -07:00
i40e_osdep.h i40e: Drop FCoE code from core driver files 2017-03-27 16:47:43 -07:00
i40e_prototype.h i40e: new AQ commands 2017-04-19 17:04:06 -07:00
i40e_ptp.c i40e: check for Tx timestamp timeouts during watchdog 2017-05-31 03:12:06 -07:00
i40e_register.h i40e: Expose some registers to program parser, FD and RSS logic 2016-02-18 23:49:31 -08:00
i40e_status.h
i40e_trace.h i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00
i40e_txrx.c i40e: check for Tx timestamp timeouts during watchdog 2017-05-31 03:12:06 -07:00
i40e_txrx.h i40e/i40evf: Add support for padding start of frames 2017-04-08 02:53:51 -07:00
i40e_type.h i40e: new AQ commands 2017-04-19 17:04:06 -07:00
i40e_virtchnl_pf.c i40e: use DECLARE_BITMAP for state fields 2017-04-30 04:48:13 -07:00
i40e_virtchnl_pf.h i40e: make use of i40e_reset_all_vfs when initializing new VFs 2017-04-30 04:05:20 -07:00
i40e_virtchnl.h i40e/i40evf: Add capability exchange for outer checksum 2017-04-06 20:14:51 -07:00
i40e.h i40e: check for Tx timestamp timeouts during watchdog 2017-05-31 03:12:06 -07:00
Makefile i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00