summaryrefslogtreecommitdiffstats
path: root/drivers/net/netconsole.c
diff options
context:
space:
mode:
authorJacob Keller2017-05-03 19:28:56 +0200
committerJeff Kirsher2017-06-14 01:11:48 +0200
commit5fef124d9c75942dc5c2445a3faa8ad37cbf4c82 (patch)
tree70310ae7b4c1a3b28586e30d367789680e9b8554 /drivers/net/netconsole.c
parentixgbe: fix race condition with PTP_TX_IN_PROGRESS bits (diff)
downloadkernel-qcow2-linux-5fef124d9c75942dc5c2445a3faa8ad37cbf4c82.tar.gz
kernel-qcow2-linux-5fef124d9c75942dc5c2445a3faa8ad37cbf4c82.tar.xz
kernel-qcow2-linux-5fef124d9c75942dc5c2445a3faa8ad37cbf4c82.zip
ixgbe: avoid permanent lock of *_PTP_TX_IN_PROGRESS
The ixgbe driver uses a state bit lock to avoid handling more than one Tx timestamp request at once. This is required because hardware is limited to a single set of registers for Tx timestamps. The state bit lock is not properly cleaned up during ixgbe_xmit_frame_ring() if the transmit fails such as due to DMA or TSO failure. In some hardware this results in blocking timestamps until the service task times out. In other hardware this results in a permanent lock of the timestamp bit because we never receive an interrupt indicating the timestamp occurred, since indeed the packet was never transmitted. Fix this by checking for DMA and TSO errors in ixgbe_xmit_frame_ring() and properly cleaning up after ourselves when these occur. Reported-by: Reported-by: David Mirabito <davidm@metamako.com> 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>
Diffstat (limited to 'drivers/net/netconsole.c')
0 files changed, 0 insertions, 0 deletions