sungem, sunhme, sunvnet: Update drivers to use dma_wmb/rmb
This patch goes through and replaces wmb/rmb with dma_wmb/dma_rmb in cases where the barrier is being used to order writes or reads to just memory and doesn't involve any programmed I/O. Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
04abac5fd6
commit
b4468cc6f2
@@ -519,7 +519,7 @@ static int vnet_walk_rx_one(struct vnet_port *port,
|
||||
if (desc->hdr.state != VIO_DESC_READY)
|
||||
return 1;
|
||||
|
||||
rmb();
|
||||
dma_rmb();
|
||||
|
||||
viodbg(DATA, "vio_walk_rx_one desc[%02x:%02x:%08x:%08x:%llx:%llx]\n",
|
||||
desc->hdr.state, desc->hdr.ack,
|
||||
@@ -1380,7 +1380,7 @@ static int vnet_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
/* This has to be a non-SMP write barrier because we are writing
|
||||
* to memory which is shared with the peer LDOM.
|
||||
*/
|
||||
wmb();
|
||||
dma_wmb();
|
||||
|
||||
d->hdr.state = VIO_DESC_READY;
|
||||
|
||||
@@ -1395,7 +1395,7 @@ static int vnet_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
* is marked READY, but start_cons was false.
|
||||
* If so, vnet_ack() should send out the missed "start" trigger.
|
||||
*
|
||||
* Note that the wmb() above makes sure the cookies et al. are
|
||||
* Note that the dma_wmb() above makes sure the cookies et al. are
|
||||
* not globally visible before the VIO_DESC_READY, and that the
|
||||
* stores are ordered correctly by the compiler. The consumer will
|
||||
* not proceed until the VIO_DESC_READY is visible assuring that
|
||||
|
Reference in New Issue
Block a user