]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ipv6: ndisc: Remove __in6_dev_get() in pndisc_{constructor,destructor}().
authorKuniyuki Iwashima <kuniyu@google.com>
Wed, 2 Jul 2025 23:01:18 +0000 (16:01 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 9 Jul 2025 01:32:37 +0000 (18:32 -0700)
ipv6_dev_mc_{inc,dec}() has the same check.

Let's remove __in6_dev_get() from pndisc_constructor() and
pndisc_destructor().

Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20250702230210.3115355-2-kuni1840@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv6/ndisc.c

index f2299b61221b63cffea34f0fccc88326a2a25e27..28f35cbb65770b2ce983808f8de6cd6ec70025d9 100644 (file)
@@ -377,24 +377,25 @@ static int ndisc_constructor(struct neighbour *neigh)
 static int pndisc_constructor(struct pneigh_entry *n)
 {
        struct in6_addr *addr = (struct in6_addr *)&n->key;
-       struct in6_addr maddr;
        struct net_device *dev = n->dev;
+       struct in6_addr maddr;
 
-       if (!dev || !__in6_dev_get(dev))
+       if (!dev)
                return -EINVAL;
+
        addrconf_addr_solict_mult(addr, &maddr);
-       ipv6_dev_mc_inc(dev, &maddr);
-       return 0;
+       return ipv6_dev_mc_inc(dev, &maddr);
 }
 
 static void pndisc_destructor(struct pneigh_entry *n)
 {
        struct in6_addr *addr = (struct in6_addr *)&n->key;
-       struct in6_addr maddr;
        struct net_device *dev = n->dev;
+       struct in6_addr maddr;
 
-       if (!dev || !__in6_dev_get(dev))
+       if (!dev)
                return;
+
        addrconf_addr_solict_mult(addr, &maddr);
        ipv6_dev_mc_dec(dev, &maddr);
 }