linux_dsm_epyc7002/drivers/net/ethernet/intel/e1000
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_ethtool.c cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
e1000_hw.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_hw.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_main.c e1000: Use dma_wmb() instead of wmb() before doorbell writes 2019-06-28 15:59:43 -07:00
e1000_osdep.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_param.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
Makefile net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00