| From 8fadd8522cb48116ce85da59510f20248a95fecf Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 17 Sep 2024 23:04:46 +0200 |
| Subject: r8169: add tally counter fields added with RTL8125 |
| |
| From: Heiner Kallweit <hkallweit1@gmail.com> |
| |
| [ Upstream commit ced8e8b8f40accfcce4a2bbd8b150aa76d5eff9a ] |
| |
| RTL8125 added fields to the tally counter, what may result in the chip |
| dma'ing these new fields to unallocated memory. Therefore make sure |
| that the allocated memory area is big enough to hold all of the |
| tally counter values, even if we use only parts of it. |
| |
| Fixes: f1bce4ad2f1c ("r8169: add support for RTL8125") |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> |
| Reviewed-by: Simon Horman <horms@kernel.org> |
| Link: https://patch.msgid.link/741d26a9-2b2b-485d-91d9-ecb302e345b5@gmail.com |
| Signed-off-by: Paolo Abeni <pabeni@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/realtek/r8169_main.c | 27 +++++++++++++++++++++++ |
| 1 file changed, 27 insertions(+) |
| |
| diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c |
| index 6017682536e0e..e9296d63450d8 100644 |
| --- a/drivers/net/ethernet/realtek/r8169_main.c |
| +++ b/drivers/net/ethernet/realtek/r8169_main.c |
| @@ -570,6 +570,33 @@ struct rtl8169_counters { |
| __le32 rx_multicast; |
| __le16 tx_aborted; |
| __le16 tx_underrun; |
| + /* new since RTL8125 */ |
| + __le64 tx_octets; |
| + __le64 rx_octets; |
| + __le64 rx_multicast64; |
| + __le64 tx_unicast64; |
| + __le64 tx_broadcast64; |
| + __le64 tx_multicast64; |
| + __le32 tx_pause_on; |
| + __le32 tx_pause_off; |
| + __le32 tx_pause_all; |
| + __le32 tx_deferred; |
| + __le32 tx_late_collision; |
| + __le32 tx_all_collision; |
| + __le32 tx_aborted32; |
| + __le32 align_errors32; |
| + __le32 rx_frame_too_long; |
| + __le32 rx_runt; |
| + __le32 rx_pause_on; |
| + __le32 rx_pause_off; |
| + __le32 rx_pause_all; |
| + __le32 rx_unknown_opcode; |
| + __le32 rx_mac_error; |
| + __le32 tx_underrun32; |
| + __le32 rx_mac_missed; |
| + __le32 rx_tcam_dropped; |
| + __le32 tdu; |
| + __le32 rdu; |
| }; |
| |
| struct rtl8169_tc_offsets { |
| -- |
| 2.43.0 |
| |