• Kurt Kanzenbach's avatar
    net: stmmac: Fix queue statistics reading · c296c77e
    Kurt Kanzenbach authored
    Correct queue statistics reading. All queue statistics are stored as unsigned
    long values. The retrieval for ethtool fetches these values as u64. However, on
    some systems the size of the counters are 32 bit. That yields wrong queue
    statistic counters e.g., on arm32 systems such as the stm32mp157. Fix it by
    using the correct data type.
    
    Tested on Olimex STMP157-OLinuXino-LIME2 by simple running linuxptp for a short
    period of time:
    
    Non-patched kernel:
    |root@st1:~# ethtool -S eth0 | grep q0
    |     q0_tx_pkt_n: 3775276254951 # ???
    |     q0_tx_irq_n: 879
    |     q0_rx_pkt_n: 1194000908909 # ???
    |     q0_rx_irq_n: 278
    
    Patched kernel:
    |root@st1:~# ethtool -S eth0 | grep q0
    |     q0_tx_pkt_n: 2434
    |     q0_tx_irq_n: 1274
    |     q0_rx_pkt_n: 1604
    |     q0_rx_irq_n: 846
    
    Fixes: 68e9c5de ("net: stmmac: add ethtool per-queue statistic framework")
    Signed-off-by: Kurt Kanzenbach's avatarKurt Kanzenbach <kurt@linutronix.de>
    Cc: Vijayakannan Ayyathurai <vijayakannan.ayyathurai@intel.com>
    Cc: Wong Vee Khee <vee.khee.wong@linux.intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c296c77e
stmmac_ethtool.c 32.8 KB