i40e/i40evf: Use dma_rmb where appropriate
authorAlexander Duyck <alexander.h.duyck@redhat.com>
Thu, 9 Apr 2015 01:49:43 +0000 (18:49 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 9 Apr 2015 18:25:26 +0000 (14:25 -0400)
Update i40e and i40evf to use dma_rmb.  This should improve performance by
decreasing the barrier overhead on strong ordered architectures.

Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/i40e/i40e_txrx.c
drivers/net/ethernet/intel/i40evf/i40e_txrx.c

index d8989f9..4bd3a80 100644 (file)
@@ -1554,7 +1554,7 @@ static int i40e_clean_rx_irq_ps(struct i40e_ring *rx_ring, int budget)
                 * any other fields out of the rx_desc until we know the
                 * DD bit is set.
                 */
-               rmb();
+               dma_rmb();
                if (i40e_rx_is_programming_status(qword)) {
                        i40e_clean_programming_status(rx_ring, rx_desc);
                        I40E_RX_INCREMENT(rx_ring, i);
@@ -1745,7 +1745,7 @@ static int i40e_clean_rx_irq_1buf(struct i40e_ring *rx_ring, int budget)
                 * any other fields out of the rx_desc until we know the
                 * DD bit is set.
                 */
-               rmb();
+               dma_rmb();
 
                if (i40e_rx_is_programming_status(qword)) {
                        i40e_clean_programming_status(rx_ring, rx_desc);
index e2ddb30..b077e02 100644 (file)
@@ -1034,7 +1034,7 @@ static int i40e_clean_rx_irq_ps(struct i40e_ring *rx_ring, int budget)
                 * any other fields out of the rx_desc until we know the
                 * DD bit is set.
                 */
-               rmb();
+               dma_rmb();
                rx_bi = &rx_ring->rx_bi[i];
                skb = rx_bi->skb;
                if (likely(!skb)) {
@@ -1213,7 +1213,7 @@ static int i40e_clean_rx_irq_1buf(struct i40e_ring *rx_ring, int budget)
                 * any other fields out of the rx_desc until we know the
                 * DD bit is set.
                 */
-               rmb();
+               dma_rmb();
 
                rx_bi = &rx_ring->rx_bi[i];
                skb = rx_bi->skb;