forked from luck/tmp_suning_uos_patched
myri10ge: fix stop/go mmio ordering
Use mmiowb() to ensure "stop" and "go" commands are sent in order on ia64. Signed-off-by: Brice Goglin <brice@myri.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
parent
ce39a800ea
commit
6824a105d4
|
@ -75,7 +75,7 @@
|
|||
#include "myri10ge_mcp.h"
|
||||
#include "myri10ge_mcp_gen_header.h"
|
||||
|
||||
#define MYRI10GE_VERSION_STR "1.4.3-1.371"
|
||||
#define MYRI10GE_VERSION_STR "1.4.3-1.375"
|
||||
|
||||
MODULE_DESCRIPTION("Myricom 10G driver (10GbE)");
|
||||
MODULE_AUTHOR("Maintainer: help@myri.com");
|
||||
|
@ -1393,6 +1393,7 @@ myri10ge_tx_done(struct myri10ge_slice_state *ss, int mcp_index)
|
|||
if (tx->req == tx->done) {
|
||||
tx->queue_active = 0;
|
||||
put_be32(htonl(1), tx->send_stop);
|
||||
mmiowb();
|
||||
}
|
||||
__netif_tx_unlock(dev_queue);
|
||||
}
|
||||
|
@ -2864,6 +2865,7 @@ static int myri10ge_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
if ((mgp->dev->real_num_tx_queues > 1) && tx->queue_active == 0) {
|
||||
tx->queue_active = 1;
|
||||
put_be32(htonl(1), tx->send_go);
|
||||
mmiowb();
|
||||
}
|
||||
tx->pkt_start++;
|
||||
if ((avail - count) < MXGEFW_MAX_SEND_DESC) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user