diff options
author | Willem de Bruijn <willemb@google.com> | 2013-08-20 00:40:22 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-09-14 17:54:55 +0400 |
commit | fc26e4cf6f6be400ea7b5442982c58e76b6beda4 (patch) | |
tree | 4f4eb8c97a48cfb114a1a100223ecc8ba080eae5 /net/packet | |
parent | f3f905389f1aaae9e091a28d018c66e08c85eddd (diff) | |
download | linux-fc26e4cf6f6be400ea7b5442982c58e76b6beda4.tar.xz |
packet: restore packet statistics tp_packets to include drops
[ Upstream commit 8bcdeaff5ed544704a9a691d4aef0adb3f9c5b8f ]
getsockopt PACKET_STATISTICS returns tp_packets + tp_drops. Commit
ee80fbf301 ("packet: account statistics only in tpacket_stats_u")
cleaned up the getsockopt PACKET_STATISTICS code.
This also changed semantics. Historically, tp_packets included
tp_drops on return. The commit removed the line that adds tp_drops
into tp_packets.
This patch reinstates the old semantics.
Signed-off-by: Willem de Bruijn <willemb@google.com>
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/packet')
-rw-r--r-- | net/packet/af_packet.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 20a1bd0e6549..a6895ab597c2 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -3259,9 +3259,11 @@ static int packet_getsockopt(struct socket *sock, int level, int optname, if (po->tp_version == TPACKET_V3) { lv = sizeof(struct tpacket_stats_v3); + st.stats3.tp_packets += st.stats3.tp_drops; data = &st.stats3; } else { lv = sizeof(struct tpacket_stats); + st.stats1.tp_packets += st.stats1.tp_drops; data = &st.stats1; } |