linux/drivers/net/ethernet/intel
Venkatesh Srinivas 583cf7be75 e1000: Use dma_wmb() instead of wmb() before doorbell writes
e1000 writes to doorbells to post transmit descriptors and fill the
receive ring. After writing descriptors to memory but before
writing to doorbells, use dma_wmb() rather than wmb(). wmb() is more
heavyweight than necessary for a device to see descriptor writes.

On x86, this avoids SFENCEs before doorbell writes in both the
Tx and Rx paths. On ARM, this converts DSB ST -> DMB OSHST.

Tested: 82576EB / x86; QEMU (qemu emulates an 8257x)

Signed-off-by: Venkatesh Srinivas <venkateshs@google.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2019-06-28 15:59:43 -07:00
..
e1000 e1000: Use dma_wmb() instead of wmb() before doorbell writes 2019-06-28 15:59:43 -07:00
e1000e e1000e: Increase pause and refresh time 2019-06-28 14:54:11 -07:00
fm10k Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
i40e i40e/i40e_virtchnl_pf: Use struct_size() in kzalloc() 2019-06-26 09:18:54 -07:00
iavf iavf: allow null RX descriptors 2019-06-17 15:39:26 -07:00
ice ice: Use struct_size() helper 2019-06-28 14:54:11 -07:00
igb igb: mark expected switch fall-through 2019-05-28 15:52:37 -07:00
igbvf drivers: Remove explicit invocations of mmiowb() 2019-04-08 12:01:02 +01:00
igc igc: Cleanup the redundant code 2019-05-28 16:15:55 -07:00
ixgb cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
ixgbe ixgbe: fix potential u32 overflow on shift 2019-06-28 15:59:38 -07:00
ixgbevf ixgbevf: fix possible divide by zero in ixgbevf_update_itr 2019-06-26 09:18:54 -07:00
e100.c intel: correct return from set features callback 2019-03-19 14:18:49 -07:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile