Message ID | 37b44c85-7090-48c8-a307-624244964405@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] r8169: Use improved RTL8125 hw stats | expand |
On 07.10.2024 22:23, Heiner Kallweit wrote: > The new hw stat fields partially duplicate existing fields, but with a > larger field size now. Use these new fields to reduce the risk of > overflows. > > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> > --- > drivers/net/ethernet/realtek/r8169_main.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c > index 6a9259d85..bd26b7b50 100644 > --- a/drivers/net/ethernet/realtek/r8169_main.c > +++ b/drivers/net/ethernet/realtek/r8169_main.c > @@ -1873,6 +1873,14 @@ static void rtl8169_get_ethtool_stats(struct net_device *dev, > data[10] = le32_to_cpu(counters->rx_multicast); > data[11] = le16_to_cpu(counters->tx_aborted); > data[12] = le16_to_cpu(counters->tx_underrun); > + > + if (rtl_is_8125(tp)) { > + data[4] = le32_to_cpu(counters->rx_mac_missed); > + data[5] = le32_to_cpu(counters->align_errors32); > + data[10] = le64_to_cpu(counters->rx_multicast64); > + data[11] = le32_to_cpu(counters->tx_aborted32); > + data[12] = le32_to_cpu(counters->tx_underrun32); > + } > } > > static void rtl8169_get_strings(struct net_device *dev, u32 stringset, u8 *data) When further testing I found an issue with an apparently incorrect counter value. I have to check this with Realtek. Please drop the patch for now.
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 6a9259d85..bd26b7b50 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -1873,6 +1873,14 @@ static void rtl8169_get_ethtool_stats(struct net_device *dev, data[10] = le32_to_cpu(counters->rx_multicast); data[11] = le16_to_cpu(counters->tx_aborted); data[12] = le16_to_cpu(counters->tx_underrun); + + if (rtl_is_8125(tp)) { + data[4] = le32_to_cpu(counters->rx_mac_missed); + data[5] = le32_to_cpu(counters->align_errors32); + data[10] = le64_to_cpu(counters->rx_multicast64); + data[11] = le32_to_cpu(counters->tx_aborted32); + data[12] = le32_to_cpu(counters->tx_underrun32); + } } static void rtl8169_get_strings(struct net_device *dev, u32 stringset, u8 *data)
The new hw stat fields partially duplicate existing fields, but with a larger field size now. Use these new fields to reduce the risk of overflows. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- drivers/net/ethernet/realtek/r8169_main.c | 8 ++++++++ 1 file changed, 8 insertions(+)