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.t...@jp.fujitsu.com>
---
 drivers/net/fjes/fjes_main.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/fjes/fjes_main.c b/drivers/net/fjes/fjes_main.c
index f2327d8..e785d89 100644
--- a/drivers/net/fjes/fjes_main.c
+++ b/drivers/net/fjes/fjes_main.c
@@ -668,7 +668,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;
                        hw->ep_shm_info[dest_epid].ep_stats
                                                  .tx_dropped_version_mismatch 
+= 1;
@@ -678,9 +678,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;
                        hw->ep_shm_info[dest_epid].ep_stats
                                                  
.tx_dropped_buffer_size_discrepancy += 1;
 
@@ -715,10 +715,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;
@@ -737,10 +737,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;
                                }
 
-- 
2.4.3

Reply via email to