fjes: fix incorrect statistics information in fjes_xmit_frame()
authorTaku Izumi <izumi.taku@jp.fujitsu.com>
Fri, 15 Apr 2016 02:25:27 +0000 (11:25 +0900)
committerDavid S. Miller <davem@davemloft.net>
Sun, 17 Apr 2016 01:51:01 +0000 (21:51 -0400)
There are bugs of acounting statistics in fjes_xmit_frame().
Accounting self stats is wrong. accounting stats of other
EPs to be transmitted  is right.
This patch fixes this bug.

Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/fjes/fjes_main.c

index 061b4af4ee62265b80aa6c8c6cb23878f90310f2..05bdd8bfee00b23865ce7d1490c684d3dee57a9a 100644 (file)
@@ -653,7 +653,7 @@ fjes_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
                                &adapter->hw.ep_shm_info[dest_epid].rx, 0)) {
                        /* version is NOT 0 */
                        adapter->stats64.tx_carrier_errors += 1;
-                       hw->ep_shm_info[my_epid].net_stats
+                       hw->ep_shm_info[dest_epid].net_stats
                                                .tx_carrier_errors += 1;
 
                        ret = NETDEV_TX_OK;
@@ -661,9 +661,9 @@ fjes_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
                                &adapter->hw.ep_shm_info[dest_epid].rx,
                                netdev->mtu)) {
                        adapter->stats64.tx_dropped += 1;
-                       hw->ep_shm_info[my_epid].net_stats.tx_dropped += 1;
+                       hw->ep_shm_info[dest_epid].net_stats.tx_dropped += 1;
                        adapter->stats64.tx_errors += 1;
-                       hw->ep_shm_info[my_epid].net_stats.tx_errors += 1;
+                       hw->ep_shm_info[dest_epid].net_stats.tx_errors += 1;
 
                        ret = NETDEV_TX_OK;
                } else if (vlan &&
@@ -694,10 +694,10 @@ fjes_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
                                            (long)adapter->tx_start_jiffies) >=
                                            FJES_TX_RETRY_TIMEOUT) {
                                        adapter->stats64.tx_fifo_errors += 1;
-                                       hw->ep_shm_info[my_epid].net_stats
+                                       hw->ep_shm_info[dest_epid].net_stats
                                                                .tx_fifo_errors += 1;
                                        adapter->stats64.tx_errors += 1;
-                                       hw->ep_shm_info[my_epid].net_stats
+                                       hw->ep_shm_info[dest_epid].net_stats
                                                                .tx_errors += 1;
 
                                        ret = NETDEV_TX_OK;
@@ -714,10 +714,10 @@ fjes_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
                        } else {
                                if (!is_multi) {
                                        adapter->stats64.tx_packets += 1;
-                                       hw->ep_shm_info[my_epid].net_stats
+                                       hw->ep_shm_info[dest_epid].net_stats
                                                                .tx_packets += 1;
                                        adapter->stats64.tx_bytes += len;
-                                       hw->ep_shm_info[my_epid].net_stats
+                                       hw->ep_shm_info[dest_epid].net_stats
                                                                .tx_bytes += len;
                                }