1
0
Fork 0
alistair23-linux/drivers/net/ethernet/intel/i40e
Jacob Keller 69077577af i40e: avoid permanent lock of *_PTP_TX_IN_PROGRESS
The i40e driver uses a bit lock to indicate when a Tx timestamp is in
progress to avoid attempting to timestamp multiple packets at once. This
is required because hardware only has registers to handle one request at
a time.

There is a corner case where we failed to cleanup the bit lock after
a failed transmit. This can potentially result in a state bit being
locked forever.

Add some cleanup code to i40e_xmit_frame_ring to check and make sure we
cleanup incase of these failures. We also modify i40e_tx_map to return
an error code indication DMA failure.

Reported-by: Reported-by: David Mirabito <davidm@metamako.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-05-31 03:08:09 -07:00
..
Makefile i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00
i40e.h i40e: remove hw_disabled_flags in favor of using separate flag bits 2017-04-30 04:53:58 -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_adminq_cmd.h i40e: new AQ commands 2017-04-19 17:04:06 -07:00
i40e_alloc.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
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.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_dcb_nl.c i40e: Change some messages from info to debug only 2015-10-15 01:58:41 -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: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_diag.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_ethtool.c i40e: remove hw_disabled_flags in favor of using separate flag bits 2017-04-30 04:53:58 -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: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_hmc.c i40e: fix an uninitialized variable bug 2016-05-14 00:21:51 -07:00
i40e_hmc.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
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/i40evf: Big endian fixes for handling HMC 2014-06-26 04:44:57 -07:00
i40e_main.c i40e: remove hw_disabled_flags in favor of using separate flag bits 2017-04-30 04:53:58 -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: fix race condition with PTP_TX_IN_PROGRESS bits 2017-05-31 03:03:33 -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: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_trace.h i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00
i40e_txrx.c i40e: avoid permanent lock of *_PTP_TX_IN_PROGRESS 2017-05-31 03:08:09 -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.h i40e/i40evf: Add capability exchange for outer checksum 2017-04-06 20:14:51 -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