summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/realtek/r8169.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index d6d39df5b3dc..24dcbe62412a 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -754,7 +754,6 @@ struct rtl8169_tc_offsets {
bool inited;
__le64 tx_errors;
__le32 tx_multi_collision;
- __le32 rx_multicast;
__le16 tx_aborted;
};
@@ -2326,7 +2325,6 @@ static bool rtl8169_init_counter_offsets(struct net_device *dev)
tp->tc_offset.tx_errors = tp->counters.tx_errors;
tp->tc_offset.tx_multi_collision = tp->counters.tx_multi_collision;
- tp->tc_offset.rx_multicast = tp->counters.rx_multicast;
tp->tc_offset.tx_aborted = tp->counters.tx_aborted;
tp->tc_offset.inited = true;
@@ -7480,6 +7478,9 @@ process_pkt:
tp->rx_stats.packets++;
tp->rx_stats.bytes += pkt_size;
u64_stats_update_end(&tp->rx_stats.syncp);
+
+ if (skb->pkt_type == PACKET_MULTICAST)
+ dev->stats.multicast++;
}
release_descriptor:
desc->opts2 = 0;
@@ -7790,7 +7791,6 @@ rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
stats->rx_bytes = tp->rx_stats.bytes;
} while (u64_stats_fetch_retry_irq(&tp->rx_stats.syncp, start));
-
do {
start = u64_stats_fetch_begin_irq(&tp->tx_stats.syncp);
stats->tx_packets = tp->tx_stats.packets;
@@ -7804,6 +7804,7 @@ rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
stats->rx_crc_errors = dev->stats.rx_crc_errors;
stats->rx_fifo_errors = dev->stats.rx_fifo_errors;
stats->rx_missed_errors = dev->stats.rx_missed_errors;
+ stats->multicast = dev->stats.multicast;
/*
* Fetch additonal counter values missing in stats collected by driver
@@ -7819,8 +7820,6 @@ rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
le64_to_cpu(tp->tc_offset.tx_errors);
stats->collisions = le32_to_cpu(tp->counters.tx_multi_collision) -
le32_to_cpu(tp->tc_offset.tx_multi_collision);
- stats->multicast = le32_to_cpu(tp->counters.rx_multicast) -
- le32_to_cpu(tp->tc_offset.rx_multicast);
stats->tx_aborted_errors = le16_to_cpu(tp->counters.tx_aborted) -
le16_to_cpu(tp->tc_offset.tx_aborted);