ipv6: remove RTNL protection from inet6_dump_addr()
authorEric Dumazet <edumazet@google.com>
Wed, 6 Mar 2024 15:51:44 +0000 (15:51 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Mar 2024 11:15:36 +0000 (11:15 +0000)
We can now remove RTNL acquisition while running
inet6_dump_addr(), inet6_dump_ifmcaddr()
and inet6_dump_ifacaddr().

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/addrconf.c

index 4359e49102490e08d1c2398fe7c8be0e7d1da6b9..247bd4d8ee45a66a391b99e8e5f2ca56b55ec404 100644 (file)
@@ -7454,15 +7454,18 @@ int __init addrconf_init(void)
                goto errout;
        err = rtnl_register_module(THIS_MODULE, PF_INET6, RTM_GETADDR,
                                   inet6_rtm_getaddr, inet6_dump_ifaddr,
-                                  RTNL_FLAG_DOIT_UNLOCKED);
+                                  RTNL_FLAG_DOIT_UNLOCKED |
+                                  RTNL_FLAG_DUMP_UNLOCKED);
        if (err < 0)
                goto errout;
        err = rtnl_register_module(THIS_MODULE, PF_INET6, RTM_GETMULTICAST,
-                                  NULL, inet6_dump_ifmcaddr, 0);
+                                  NULL, inet6_dump_ifmcaddr,
+                                  RTNL_FLAG_DUMP_UNLOCKED);
        if (err < 0)
                goto errout;
        err = rtnl_register_module(THIS_MODULE, PF_INET6, RTM_GETANYCAST,
-                                  NULL, inet6_dump_ifacaddr, 0);
+                                  NULL, inet6_dump_ifacaddr,
+                                  RTNL_FLAG_DUMP_UNLOCKED);
        if (err < 0)
                goto errout;
        err = rtnl_register_module(THIS_MODULE, PF_INET6, RTM_GETNETCONF,