s2io: Update driver to use dma_wmb
authorAlexander Duyck <alexander.h.duyck@redhat.com>
Tue, 7 Apr 2015 23:55:21 +0000 (16:55 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Apr 2015 16:15:14 +0000 (12:15 -0400)
This change updates several spots where a wmb was being used to instead use
a dma_wmb to flush out writes before updating the control portion of the
descriptor.

Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/neterion/s2io.c

index 092dcae..1e0f72b 100644 (file)
@@ -2520,7 +2520,7 @@ static int fill_rx_buffers(struct s2io_nic *nic, struct ring_info *ring,
                        DBG_PRINT(INFO_DBG, "%s: Could not allocate skb\n",
                                  ring->dev->name);
                        if (first_rxdp) {
-                               wmb();
+                               dma_wmb();
                                first_rxdp->Control_1 |= RXD_OWN_XENA;
                        }
                        swstats->mem_alloc_fail_cnt++;
@@ -2634,7 +2634,7 @@ static int fill_rx_buffers(struct s2io_nic *nic, struct ring_info *ring,
                rxdp->Control_2 |= SET_RXD_MARKER;
                if (!(alloc_tab & ((1 << rxsync_frequency) - 1))) {
                        if (first_rxdp) {
-                               wmb();
+                               dma_wmb();
                                first_rxdp->Control_1 |= RXD_OWN_XENA;
                        }
                        first_rxdp = rxdp;
@@ -2649,7 +2649,7 @@ end:
         * and other fields are seen by adapter correctly.
         */
        if (first_rxdp) {
-               wmb();
+               dma_wmb();
                first_rxdp->Control_1 |= RXD_OWN_XENA;
        }
 
@@ -6950,7 +6950,7 @@ static  int rxd_owner_bit_reset(struct s2io_nic *sp)
                                }
 
                                set_rxd_buffer_size(sp, rxdp, size);
-                               wmb();
+                               dma_wmb();
                                /* flip the Ownership bit to Hardware */
                                rxdp->Control_1 |= RXD_OWN_XENA;
                        }