diff options
Diffstat (limited to 'drivers/net/netxen/netxen_nic_main.c')
-rw-r--r-- | drivers/net/netxen/netxen_nic_main.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index 5d79c19a6ec0..6a496b1909eb 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c | |||
@@ -809,6 +809,7 @@ netxen_nic_down(struct netxen_adapter *adapter, struct net_device *netdev) | |||
809 | { | 809 | { |
810 | netif_carrier_off(netdev); | 810 | netif_carrier_off(netdev); |
811 | netif_stop_queue(netdev); | 811 | netif_stop_queue(netdev); |
812 | smp_mb(); | ||
812 | netxen_napi_disable(adapter); | 813 | netxen_napi_disable(adapter); |
813 | 814 | ||
814 | if (adapter->stop_port) | 815 | if (adapter->stop_port) |
@@ -1340,7 +1341,7 @@ netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev) | |||
1340 | producer = tx_ring->producer; | 1341 | producer = tx_ring->producer; |
1341 | smp_mb(); | 1342 | smp_mb(); |
1342 | consumer = tx_ring->sw_consumer; | 1343 | consumer = tx_ring->sw_consumer; |
1343 | if ((no_of_desc+2) > find_diff_among(producer, consumer, num_txd)) { | 1344 | if ((no_of_desc+2) >= find_diff_among(producer, consumer, num_txd)) { |
1344 | netif_stop_queue(netdev); | 1345 | netif_stop_queue(netdev); |
1345 | smp_mb(); | 1346 | smp_mb(); |
1346 | return NETDEV_TX_BUSY; | 1347 | return NETDEV_TX_BUSY; |