On 09/11, Xiao Zhang wrote: >Use rte_cio_wmb instead of rte_wmb when writing TX descriptor since it's >CIO memory. >Replace rte_io_wmb and E1000_PCI_REG_WRITE_RELAXED with >E1000_PCI_REG_WRITE since it has rte_io_wmb inside, which will be more >clear. > >Fixes: 1fc9701238ed ("net/e1000: fix i219 hang on reset/close") >Cc: sta...@dpdk.org > >Signed-off-by: Xiao Zhang <xiao.zh...@intel.com> >--- > drivers/net/e1000/em_rxtx.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > >diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c >index 5925e49..49c5371 100644 >--- a/drivers/net/e1000/em_rxtx.c >+++ b/drivers/net/e1000/em_rxtx.c >@@ -2049,13 +2049,12 @@ e1000_flush_tx_ring(struct rte_eth_dev *dev) > tx_desc->lower.data = rte_cpu_to_le_32(txd_lower | size); > tx_desc->upper.data = 0; > >- rte_wmb(); >+ rte_cio_wmb(); > txq->tx_tail++; > if (txq->tx_tail == txq->nb_tx_desc) > txq->tx_tail = 0; >- rte_io_wmb(); > tdt_reg_addr = E1000_PCI_REG_ADDR(hw, E1000_TDT(i)); >- E1000_PCI_REG_WRITE_RELAXED(tdt_reg_addr, txq->tx_tail); >+ E1000_PCI_REG_WRITE(tdt_reg_addr, txq->tx_tail); > usec_delay(250); > } > } >-- >2.7.4 >
Reviewed-by: Xiaolong Ye <xiaolong...@intel.com> Applied to dpdk-next-net-intel with Gavin's reviewed-by tag.