@@ -137,7 +137,7 @@ static int bnxt_set_coalesce(struct net_device *dev,
137
137
return rc ;
138
138
}
139
139
140
- static const char * const bnxt_ring_stats_str [] = {
140
+ static const char * const bnxt_ring_rx_stats_str [] = {
141
141
"rx_ucast_packets" ,
142
142
"rx_mcast_packets" ,
143
143
"rx_bcast_packets" ,
@@ -146,6 +146,9 @@ static const char * const bnxt_ring_stats_str[] = {
146
146
"rx_ucast_bytes" ,
147
147
"rx_mcast_bytes" ,
148
148
"rx_bcast_bytes" ,
149
+ };
150
+
151
+ static const char * const bnxt_ring_tx_stats_str [] = {
149
152
"tx_ucast_packets" ,
150
153
"tx_mcast_packets" ,
151
154
"tx_bcast_packets" ,
@@ -306,6 +309,11 @@ static struct {
306
309
{0 , "tx_total_discard_pkts" },
307
310
};
308
311
312
+ #define NUM_RING_RX_SW_STATS ARRAY_SIZE(bnxt_rx_sw_stats_str)
313
+ #define NUM_RING_CMN_SW_STATS ARRAY_SIZE(bnxt_cmn_sw_stats_str)
314
+ #define NUM_RING_RX_HW_STATS ARRAY_SIZE(bnxt_ring_rx_stats_str)
315
+ #define NUM_RING_TX_HW_STATS ARRAY_SIZE(bnxt_ring_tx_stats_str)
316
+
309
317
static const struct {
310
318
long offset ;
311
319
char string [ETH_GSTRING_LEN ];
@@ -485,13 +493,13 @@ static int bnxt_get_num_tpa_ring_stats(struct bnxt *bp)
485
493
486
494
static int bnxt_get_num_ring_stats (struct bnxt * bp )
487
495
{
488
- int num_stats ;
496
+ int rx , tx , cmn ;
489
497
490
- num_stats = ARRAY_SIZE ( bnxt_ring_stats_str ) +
491
- ARRAY_SIZE ( bnxt_rx_sw_stats_str ) +
492
- ARRAY_SIZE ( bnxt_cmn_sw_stats_str ) +
493
- bnxt_get_num_tpa_ring_stats ( bp ) ;
494
- return num_stats * bp -> cp_nr_rings ;
498
+ rx = NUM_RING_RX_HW_STATS + NUM_RING_RX_SW_STATS +
499
+ bnxt_get_num_tpa_ring_stats ( bp );
500
+ tx = NUM_RING_TX_HW_STATS ;
501
+ cmn = NUM_RING_CMN_SW_STATS ;
502
+ return ( rx + tx + cmn ) * bp -> cp_nr_rings ;
495
503
}
496
504
497
505
static int bnxt_get_num_stats (struct bnxt * bp )
@@ -537,7 +545,7 @@ static void bnxt_get_ethtool_stats(struct net_device *dev,
537
545
{
538
546
u32 i , j = 0 ;
539
547
struct bnxt * bp = netdev_priv (dev );
540
- u32 stat_fields = ARRAY_SIZE ( bnxt_ring_stats_str ) +
548
+ u32 stat_fields = NUM_RING_RX_HW_STATS + NUM_RING_TX_HW_STATS +
541
549
bnxt_get_num_tpa_ring_stats (bp );
542
550
543
551
if (!bp -> bnapi ) {
@@ -559,11 +567,11 @@ static void bnxt_get_ethtool_stats(struct net_device *dev,
559
567
buf [j ] = le64_to_cpu (hw_stats [k ]);
560
568
561
569
sw = (u64 * )& cpr -> sw_stats .rx ;
562
- for (k = 0 ; k < ARRAY_SIZE ( bnxt_rx_sw_stats_str ) ; j ++ , k ++ )
570
+ for (k = 0 ; k < NUM_RING_RX_SW_STATS ; j ++ , k ++ )
563
571
buf [j ] = sw [k ];
564
572
565
573
sw = (u64 * )& cpr -> sw_stats .cmn ;
566
- for (k = 0 ; k < ARRAY_SIZE ( bnxt_cmn_sw_stats_str ) ; j ++ , k ++ )
574
+ for (k = 0 ; k < NUM_RING_CMN_SW_STATS ; j ++ , k ++ )
567
575
buf [j ] = sw [k ];
568
576
569
577
bnxt_sw_func_stats [RX_TOTAL_DISCARDS ].counter +=
@@ -642,34 +650,39 @@ static void bnxt_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
642
650
switch (stringset ) {
643
651
case ETH_SS_STATS :
644
652
for (i = 0 ; i < bp -> cp_nr_rings ; i ++ ) {
645
- num_str = ARRAY_SIZE ( bnxt_ring_stats_str ) ;
653
+ num_str = NUM_RING_RX_HW_STATS ;
646
654
for (j = 0 ; j < num_str ; j ++ ) {
647
655
sprintf (buf , "[%d]: %s" , i ,
648
- bnxt_ring_stats_str [j ]);
656
+ bnxt_ring_rx_stats_str [j ]);
649
657
buf += ETH_GSTRING_LEN ;
650
658
}
651
- if (!BNXT_SUPPORTS_TPA (bp ))
659
+ num_str = NUM_RING_TX_HW_STATS ;
660
+ for (j = 0 ; j < num_str ; j ++ ) {
661
+ sprintf (buf , "[%d]: %s" , i ,
662
+ bnxt_ring_tx_stats_str [j ]);
663
+ buf += ETH_GSTRING_LEN ;
664
+ }
665
+ num_str = bnxt_get_num_tpa_ring_stats (bp );
666
+ if (!num_str )
652
667
goto skip_tpa_stats ;
653
668
654
- if (bp -> max_tpa_v2 ) {
655
- num_str = ARRAY_SIZE (bnxt_ring_tpa2_stats_str );
669
+ if (bp -> max_tpa_v2 )
656
670
str = bnxt_ring_tpa2_stats_str ;
657
- } else {
658
- num_str = ARRAY_SIZE (bnxt_ring_tpa_stats_str );
671
+ else
659
672
str = bnxt_ring_tpa_stats_str ;
660
- }
673
+
661
674
for (j = 0 ; j < num_str ; j ++ ) {
662
675
sprintf (buf , "[%d]: %s" , i , str [j ]);
663
676
buf += ETH_GSTRING_LEN ;
664
677
}
665
678
skip_tpa_stats :
666
- num_str = ARRAY_SIZE ( bnxt_rx_sw_stats_str ) ;
679
+ num_str = NUM_RING_RX_SW_STATS ;
667
680
for (j = 0 ; j < num_str ; j ++ ) {
668
681
sprintf (buf , "[%d]: %s" , i ,
669
682
bnxt_rx_sw_stats_str [j ]);
670
683
buf += ETH_GSTRING_LEN ;
671
684
}
672
- num_str = ARRAY_SIZE ( bnxt_cmn_sw_stats_str ) ;
685
+ num_str = NUM_RING_CMN_SW_STATS ;
673
686
for (j = 0 ; j < num_str ; j ++ ) {
674
687
sprintf (buf , "[%d]: %s" , i ,
675
688
bnxt_cmn_sw_stats_str [j ]);
0 commit comments