From: Fernando Fernandez Mancera Date: Mon, 30 Mar 2026 12:10:33 +0000 (+0200) Subject: net: vxlan: check ipv6_mod_enabled() on neigh_reduce() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58e416e283284c15b8daf0b2b425f43242f62b0a;p=thirdparty%2Fkernel%2Flinux.git net: vxlan: check ipv6_mod_enabled() on neigh_reduce() IPv6 must be enabled or otherwise neigh_reduce() might cause a kernel panic. This was prevented by a check on in6_dev. Use ipv6_mod_enabled() instead as it is cleaner and also consistent with the code at route_shortcircuit(). Signed-off-by: Fernando Fernandez Mancera Reviewed-by: Ido Schimmel Link: https://patch.msgid.link/20260330121033.4479-1-fmancera@suse.de Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c index b5fbd03418b6..b3b692c4b628 100644 --- a/drivers/net/vxlan/vxlan_core.c +++ b/drivers/net/vxlan/vxlan_core.c @@ -2027,13 +2027,11 @@ static int neigh_reduce(struct net_device *dev, struct sk_buff *skb, __be32 vni) struct vxlan_dev *vxlan = netdev_priv(dev); const struct in6_addr *daddr; const struct ipv6hdr *iphdr; - struct inet6_dev *in6_dev; struct neighbour *n; struct nd_msg *msg; rcu_read_lock(); - in6_dev = __in6_dev_get(dev); - if (!in6_dev) + if (unlikely(!ipv6_mod_enabled())) goto out; iphdr = ipv6_hdr(skb);