]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
dev: Use rtnl_net_dev_lock() in unregister_netdev().
authorKuniyuki Iwashima <kuniyu@amazon.com>
Mon, 17 Feb 2025 19:11:29 +0000 (11:11 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 19 Feb 2025 02:33:30 +0000 (18:33 -0800)
commitd4c6bfc83936cb61fac99e9891c406fbdd40f964
tree1e47db05f7a5332144f6f601fd7e5c778adb81b6
parent65161fb544aada499c912b6010a8f7d8e04f6130
dev: Use rtnl_net_dev_lock() in unregister_netdev().

The following sequence is basically illegal when dev was fetched
without lookup because dev_net(dev) might be different after holding
rtnl_net_lock():

  net = dev_net(dev);
  rtnl_net_lock(net);

Let's use rtnl_net_dev_lock() in unregister_netdev().

Note that there is no real bug in unregister_netdev() for now
because RTNL protects the scope even if dev_net(dev) is changed
before/after RTNL.

Fixes: 00fb9823939e ("dev: Hold per-netns RTNL in (un)?register_netdev().")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20250217191129.19967-4-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/dev.c