diff options
Diffstat (limited to 'drivers/net/qlcnic/qlcnic_main.c')
| -rw-r--r-- | drivers/net/qlcnic/qlcnic_main.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index 665e8e56b6a8..fc721564e69e 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c | |||
| @@ -118,6 +118,7 @@ qlcnic_update_cmd_producer(struct qlcnic_adapter *adapter, | |||
| 118 | if (qlcnic_tx_avail(tx_ring) <= TX_STOP_THRESH) { | 118 | if (qlcnic_tx_avail(tx_ring) <= TX_STOP_THRESH) { |
| 119 | netif_stop_queue(adapter->netdev); | 119 | netif_stop_queue(adapter->netdev); |
| 120 | smp_mb(); | 120 | smp_mb(); |
| 121 | adapter->stats.xmit_off++; | ||
| 121 | } | 122 | } |
| 122 | } | 123 | } |
| 123 | 124 | ||
| @@ -1385,6 +1386,7 @@ qlcnic_tso_check(struct net_device *netdev, | |||
| 1385 | int copied, offset, copy_len, hdr_len = 0, tso = 0, vlan_oob = 0; | 1386 | int copied, offset, copy_len, hdr_len = 0, tso = 0, vlan_oob = 0; |
| 1386 | struct cmd_desc_type0 *hwdesc; | 1387 | struct cmd_desc_type0 *hwdesc; |
| 1387 | struct vlan_ethhdr *vh; | 1388 | struct vlan_ethhdr *vh; |
| 1389 | struct qlcnic_adapter *adapter = netdev_priv(netdev); | ||
| 1388 | 1390 | ||
| 1389 | if (protocol == cpu_to_be16(ETH_P_8021Q)) { | 1391 | if (protocol == cpu_to_be16(ETH_P_8021Q)) { |
| 1390 | 1392 | ||
| @@ -1494,6 +1496,7 @@ qlcnic_tso_check(struct net_device *netdev, | |||
| 1494 | 1496 | ||
| 1495 | tx_ring->producer = producer; | 1497 | tx_ring->producer = producer; |
| 1496 | barrier(); | 1498 | barrier(); |
| 1499 | adapter->stats.lso_frames++; | ||
| 1497 | } | 1500 | } |
| 1498 | 1501 | ||
| 1499 | static int | 1502 | static int |
| @@ -1573,6 +1576,7 @@ qlcnic_xmit_frame(struct sk_buff *skb, struct net_device *netdev) | |||
| 1573 | 1576 | ||
| 1574 | if (unlikely(no_of_desc + 2 > qlcnic_tx_avail(tx_ring))) { | 1577 | if (unlikely(no_of_desc + 2 > qlcnic_tx_avail(tx_ring))) { |
| 1575 | netif_stop_queue(netdev); | 1578 | netif_stop_queue(netdev); |
| 1579 | adapter->stats.xmit_off++; | ||
| 1576 | return NETDEV_TX_BUSY; | 1580 | return NETDEV_TX_BUSY; |
| 1577 | } | 1581 | } |
| 1578 | 1582 | ||
| @@ -1880,6 +1884,7 @@ static int qlcnic_process_cmd_ring(struct qlcnic_adapter *adapter) | |||
| 1880 | if (qlcnic_tx_avail(tx_ring) > TX_STOP_THRESH) { | 1884 | if (qlcnic_tx_avail(tx_ring) > TX_STOP_THRESH) { |
| 1881 | netif_wake_queue(netdev); | 1885 | netif_wake_queue(netdev); |
| 1882 | adapter->tx_timeo_cnt = 0; | 1886 | adapter->tx_timeo_cnt = 0; |
| 1887 | adapter->stats.xmit_on++; | ||
| 1883 | } | 1888 | } |
| 1884 | __netif_tx_unlock(tx_ring->txq); | 1889 | __netif_tx_unlock(tx_ring->txq); |
| 1885 | } | 1890 | } |
