Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

amd-xgbe: add support for rx alignment errors

Add the support to read the rx alignment errors and update
them in the standard rtnl_link_stats64 structure.

Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20260129111520.1567097-1-Raju.Rangoju@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Raju Rangoju and committed by
Jakub Kicinski
43dc088c 820990d6

+13
+3
drivers/net/ethernet/amd/xgbe/xgbe-common.h
··· 598 598 #define MMC_RXVLANFRAMES_GB_LO 0x0998 599 599 #define MMC_RXVLANFRAMES_GB_HI 0x099c 600 600 #define MMC_RXWATCHDOGERROR 0x09a0 601 + #define MMC_RXALIGNMENTERROR 0x09bc 601 602 602 603 /* MMC register entry bit positions and sizes */ 603 604 #define MMC_CR_CR_INDEX 0 ··· 659 658 #define MMC_RISR_RXVLANFRAMES_GB_WIDTH 1 660 659 #define MMC_RISR_RXWATCHDOGERROR_INDEX 22 661 660 #define MMC_RISR_RXWATCHDOGERROR_WIDTH 1 661 + #define MMC_RISR_RXALIGNMENTERROR_INDEX 27 662 + #define MMC_RISR_RXALIGNMENTERROR_WIDTH 1 662 663 #define MMC_TIER_ALL_INTERRUPTS_INDEX 0 663 664 #define MMC_TIER_ALL_INTERRUPTS_WIDTH 18 664 665 #define MMC_TISR_TXOCTETCOUNT_GB_INDEX 0
+8
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
··· 2794 2794 case MMC_RXUNDERSIZE_G: 2795 2795 case MMC_RXOVERSIZE_G: 2796 2796 case MMC_RXWATCHDOGERROR: 2797 + case MMC_RXALIGNMENTERROR: 2797 2798 read_hi = false; 2798 2799 break; 2799 2800 ··· 2998 2997 if (XGMAC_GET_BITS(mmc_isr, MMC_RISR, RXWATCHDOGERROR)) 2999 2998 stats->rxwatchdogerror += 3000 2999 xgbe_mmc_read(pdata, MMC_RXWATCHDOGERROR); 3000 + 3001 + if (XGMAC_GET_BITS(mmc_isr, MMC_RISR, RXALIGNMENTERROR)) 3002 + stats->rxalignmenterror += 3003 + xgbe_mmc_read(pdata, MMC_RXALIGNMENTERROR); 3001 3004 } 3002 3005 3003 3006 static void xgbe_read_mmc_stats(struct xgbe_prv_data *pdata) ··· 3133 3128 3134 3129 stats->rxwatchdogerror += 3135 3130 xgbe_mmc_read(pdata, MMC_RXWATCHDOGERROR); 3131 + 3132 + stats->rxalignmenterror += 3133 + xgbe_mmc_read(pdata, MMC_RXALIGNMENTERROR); 3136 3134 3137 3135 /* Un-freeze counters */ 3138 3136 XGMAC_IOWRITE_BITS(pdata, MMC_CR, MCF, 0);
+1
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
··· 1838 1838 s->rx_length_errors = pstats->rxlengtherror; 1839 1839 s->rx_crc_errors = pstats->rxcrcerror; 1840 1840 s->rx_over_errors = pstats->rxfifooverflow; 1841 + s->rx_frame_errors = pstats->rxalignmenterror; 1841 1842 1842 1843 s->tx_packets = pstats->txframecount_gb; 1843 1844 s->tx_bytes = pstats->txoctetcount_gb;
+1
drivers/net/ethernet/amd/xgbe/xgbe.h
··· 659 659 u64 rxfifooverflow; 660 660 u64 rxvlanframes_gb; 661 661 u64 rxwatchdogerror; 662 + u64 rxalignmenterror; 662 663 }; 663 664 664 665 struct xgbe_ext_stats {