[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191211162107.4326-1-ptalbert@redhat.com>
Date: Wed, 11 Dec 2019 17:21:07 +0100
From: Patrick Talbert <ptalbert@...hat.com>
To: netdev@...r.kernel.org
Cc: ptalbert@...hat.com
Subject: [PATCH net-next] net: Use rx_nohandler for unhandled packets
Since caf586e5f23c ("net: add a core netdev->rx_dropped counter") incoming
packets which do not have a handler cause a counter named rx_dropped to be
incremented. This can lead to confusion as some see a non-zero "drop"
counter as cause for concern.
To avoid any confusion, instead use the existing rx_nohandler counter. Its
name more closely aligns with the activity being tracked here.
Signed-off-by: Patrick Talbert <ptalbert@...hat.com>
---
include/linux/netdevice.h | 5 +++--
net/core/dev.c | 15 +++++++--------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 9ef20389622d..3d194cea9859 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1618,8 +1618,9 @@ enum netdev_priv_flags {
* do not use this in drivers
* @tx_dropped: Dropped packets by core network,
* do not use this in drivers
- * @rx_nohandler: nohandler dropped packets by core network on
- * inactive devices, do not use this in drivers
+ * @rx_nohandler: Dropped packets by core network when they were not handled
+ * by any protocol/socket or the device was inactive,
+ * do not use this in drivers.
* @carrier_up_count: Number of times the carrier has been up
* @carrier_down_count: Number of times the carrier has been down
*
diff --git a/net/core/dev.c b/net/core/dev.c
index 2c277b8aba38..11e500f8ffa3 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5123,20 +5123,19 @@ static int __netif_receive_skb_core(struct sk_buff *skb, bool pfmemalloc,
goto drop;
*ppt_prev = pt_prev;
} else {
-drop:
- if (!deliver_exact)
- atomic_long_inc(&skb->dev->rx_dropped);
- else
- atomic_long_inc(&skb->dev->rx_nohandler);
+ /* We have not delivered the skb anywhere */
+ atomic_long_inc(&skb->dev->rx_nohandler);
kfree_skb(skb);
- /* Jamal, now you will not able to escape explaining
- * me how you were going to use this. :-)
- */
ret = NET_RX_DROP;
}
out:
return ret;
+drop:
+ atomic_long_inc(&skb->dev->rx_dropped);
+ kfree_skb(skb);
+ ret = NET_RX_DROP;
+ goto out;
}
static int __netif_receive_skb_one_core(struct sk_buff *skb, bool pfmemalloc)
--
2.18.1
Powered by blists - more mailing lists