@@ -540,6 +540,25 @@ static void bnx2x_bmac_stats_update(struct bnx2x *bp)
540540 UPDATE_STAT64 (tx_stat_gterr ,
541541 tx_stat_dot3statsinternalmactransmiterrors );
542542 UPDATE_STAT64 (tx_stat_gtufl , tx_stat_mac_ufl );
543+
544+ /* collect PFC stats */
545+ DIFF_64 (diff .hi , new -> tx_stat_gtpp_hi ,
546+ pstats -> pfc_frames_tx_hi ,
547+ diff .lo , new -> tx_stat_gtpp_lo ,
548+ pstats -> pfc_frames_tx_lo );
549+ pstats -> pfc_frames_tx_hi = new -> tx_stat_gtpp_hi ;
550+ pstats -> pfc_frames_tx_lo = new -> tx_stat_gtpp_lo ;
551+ ADD_64 (pstats -> pfc_frames_tx_hi , diff .hi ,
552+ pstats -> pfc_frames_tx_lo , diff .lo );
553+
554+ DIFF_64 (diff .hi , new -> rx_stat_grpp_hi ,
555+ pstats -> pfc_frames_rx_hi ,
556+ diff .lo , new -> rx_stat_grpp_lo ,
557+ pstats -> pfc_frames_rx_lo );
558+ pstats -> pfc_frames_rx_hi = new -> rx_stat_grpp_hi ;
559+ pstats -> pfc_frames_rx_lo = new -> rx_stat_grpp_lo ;
560+ ADD_64 (pstats -> pfc_frames_rx_hi , diff .hi ,
561+ pstats -> pfc_frames_rx_lo , diff .lo );
543562 }
544563
545564 estats -> pause_frames_received_hi =
@@ -551,6 +570,15 @@ static void bnx2x_bmac_stats_update(struct bnx2x *bp)
551570 pstats -> mac_stx [1 ].tx_stat_outxoffsent_hi ;
552571 estats -> pause_frames_sent_lo =
553572 pstats -> mac_stx [1 ].tx_stat_outxoffsent_lo ;
573+
574+ estats -> pfc_frames_received_hi =
575+ pstats -> pfc_frames_rx_hi ;
576+ estats -> pfc_frames_received_lo =
577+ pstats -> pfc_frames_rx_lo ;
578+ estats -> pfc_frames_sent_hi =
579+ pstats -> pfc_frames_tx_hi ;
580+ estats -> pfc_frames_sent_lo =
581+ pstats -> pfc_frames_tx_lo ;
554582}
555583
556584static void bnx2x_mstat_stats_update (struct bnx2x * bp )
@@ -571,6 +599,11 @@ static void bnx2x_mstat_stats_update(struct bnx2x *bp)
571599 ADD_STAT64 (stats_tx .tx_gtxpf , tx_stat_outxoffsent );
572600 ADD_STAT64 (stats_tx .tx_gtxpf , tx_stat_flowcontroldone );
573601
602+ /* collect pfc stats */
603+ ADD_64 (pstats -> pfc_frames_tx_hi , new -> stats_tx .tx_gtxpp_hi ,
604+ pstats -> pfc_frames_tx_lo , new -> stats_tx .tx_gtxpp_lo );
605+ ADD_64 (pstats -> pfc_frames_rx_hi , new -> stats_rx .rx_grxpp_hi ,
606+ pstats -> pfc_frames_rx_lo , new -> stats_rx .rx_grxpp_lo );
574607
575608 ADD_STAT64 (stats_tx .tx_gt64 , tx_stat_etherstatspkts64octets );
576609 ADD_STAT64 (stats_tx .tx_gt127 ,
@@ -628,6 +661,15 @@ static void bnx2x_mstat_stats_update(struct bnx2x *bp)
628661 pstats -> mac_stx [1 ].tx_stat_outxoffsent_hi ;
629662 estats -> pause_frames_sent_lo =
630663 pstats -> mac_stx [1 ].tx_stat_outxoffsent_lo ;
664+
665+ estats -> pfc_frames_received_hi =
666+ pstats -> pfc_frames_rx_hi ;
667+ estats -> pfc_frames_received_lo =
668+ pstats -> pfc_frames_rx_lo ;
669+ estats -> pfc_frames_sent_hi =
670+ pstats -> pfc_frames_tx_hi ;
671+ estats -> pfc_frames_sent_lo =
672+ pstats -> pfc_frames_tx_lo ;
631673}
632674
633675static void bnx2x_emac_stats_update (struct bnx2x * bp )
@@ -740,7 +782,7 @@ static int bnx2x_hw_stats_update(struct bnx2x *bp)
740782 estats -> brb_drop_hi = pstats -> brb_drop_hi ;
741783 estats -> brb_drop_lo = pstats -> brb_drop_lo ;
742784
743- pstats -> host_port_stats_start = ++ pstats -> host_port_stats_end ;
785+ pstats -> host_port_stats_counter ++ ;
744786
745787 if (!BP_NOMCP (bp )) {
746788 u32 nig_timer_max =
0 commit comments