diff options
| author | Chris J Arges <carges@cloudflare.com> | 2026-04-08 22:10:47 +0300 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-04-12 19:05:02 +0300 |
| commit | b258cba1e05df758e4e99a0e374da3e044618475 (patch) | |
| tree | 282a92474d48ae0d24bf80e383d64d83dd9ac8a5 | |
| parent | cea470a6944f6e0b07780ec9d9d3d8b97279b2c3 (diff) | |
| download | linux-b258cba1e05df758e4e99a0e374da3e044618475.tar.xz | |
net: Add net_cookie to Dead loop messages
Network devices can have the same name within different network namespaces.
To help distinguish these devices, add the net_cookie value which can be
used to identify the netns.
Signed-off-by: Chris J Arges <carges@cloudflare.com>
Link: https://patch.msgid.link/20260408191056.1036330-1-carges@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
| -rw-r--r-- | net/core/dev.c | 5 | ||||
| -rw-r--r-- | net/ipv4/ip_tunnel_core.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index e7bc95cbd1fa..ccc4418b3163 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4894,8 +4894,9 @@ int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) } else { /* Recursion is detected! It is possible unfortunately. */ recursion_alert: - net_crit_ratelimited("Dead loop on virtual device %s, fix it urgently!\n", - dev->name); + net_crit_ratelimited("Dead loop on virtual device %s (net %llu), fix it urgently!\n", + dev->name, dev_net(dev)->net_cookie); + rc = -ENETDOWN; } diff --git a/net/ipv4/ip_tunnel_core.c b/net/ipv4/ip_tunnel_core.c index f430d6f0463e..2667f53482bd 100644 --- a/net/ipv4/ip_tunnel_core.c +++ b/net/ipv4/ip_tunnel_core.c @@ -60,8 +60,8 @@ void iptunnel_xmit(struct sock *sk, struct rtable *rt, struct sk_buff *skb, if (unlikely(dev_recursion_level() > IP_TUNNEL_RECURSION_LIMIT)) { if (dev) { - net_crit_ratelimited("Dead loop on virtual device %s, fix it urgently!\n", - dev->name); + net_crit_ratelimited("Dead loop on virtual device %s (net %llu), fix it urgently!\n", + dev->name, dev_net(dev)->net_cookie); DEV_STATS_INC(dev, tx_errors); } ip_rt_put(rt); |
