Эх сурвалжийг харах

qlcnic: add wmb() call in transmit data path.

Call wmb() to ensure writes are complete before
hardware fetches updated Tx descriptors.

Signed-off-by: Sony Chacko <sony.chacko@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Sony Chacko 9 жил өмнө
parent
commit
9216a97a12

+ 2 - 0
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c

@@ -772,6 +772,8 @@ netdev_tx_t qlcnic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
 	tx_ring->tx_stats.tx_bytes += skb->len;
 	tx_ring->tx_stats.tx_bytes += skb->len;
 	tx_ring->tx_stats.xmit_called++;
 	tx_ring->tx_stats.xmit_called++;
 
 
+	/* Ensure writes are complete before HW fetches Tx descriptors */
+	wmb();
 	qlcnic_update_cmd_producer(tx_ring);
 	qlcnic_update_cmd_producer(tx_ring);
 
 
 	return NETDEV_TX_OK;
 	return NETDEV_TX_OK;