myri10ge: fix stop/go mmio ordering
Subsystems (2)
PATCH RESEND 1/1 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 <[email protected]>
drivers/net/myri10ge/myri10ge.c +3 -1
@@ -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: [email protected]" );
@@ -1393,6 +1393,7 @@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 @@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 ) {
Jeff Garzik
AppliedQuoted 25 lines · Brice Goglin
Use
mmiowb()to ensure "stop" and "go" commands are sent in order on ia64.Signed-off-by Brice Goglin <[email protected]>drivers/net/myri10ge/myri10ge.c +2
-1@@ -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: [email protected]" );@@ -1393,6 +1393,7 @@if (tx->req == tx->done) { tx->queue_active =0 ;put_be32 (htonl (1 ), tx->send_stop); +mmiowb (); }__netif_tx_unlock (dev_queue); }
drivers/net/myri10ge/myri10ge.c line 2871
Quoted 7 lines
drivers/net/myri10ge/myri10ge.c +1
-0@@ -2864,6 +2865,7 @@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 ) {
applied