lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <174265463028.356712.15016385543007330124.stgit@pro.pro>
Date: Sat, 22 Mar 2025 17:43:50 +0300
From: Kirill Tkhai <tkhai@...ru>
To: netdev@...r.kernel.org,
	linux-kernel@...r.kernel.org
Cc: tkhai@...ru
Subject: [PATCH NET-PREV 48/51] default_device: Call dev_change_net_namespace() under nd_lock

We want to provide "nd_lock is locked" context during
NETDEV_REGISTER (and later for NETDEV_UNREGISTER)
events. When calling from __register_netdevice(),
notifiers are already in that context, and we do the
same for dev_change_net_namespace() here.

Signed-off-by: Kirill Tkhai <tkhai@...ru>
---
 net/core/dev.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/net/core/dev.c b/net/core/dev.c
index f0f93b5a2819..c477b39d08b9 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -12357,6 +12357,7 @@ static void __net_exit default_device_exit_net(struct net *net)
 {
 	struct netdev_name_node *name_node, *tmp;
 	struct net_device *dev, *aux;
+	struct nd_lock *nd_lock;
 	/*
 	 * Push all migratable network devices back to the
 	 * initial network namespace
@@ -12383,7 +12384,9 @@ static void __net_exit default_device_exit_net(struct net *net)
 			if (netdev_name_in_use(&init_net, name_node->name))
 				__netdev_name_node_alt_destroy(name_node);
 
+		lock_netdev(dev, &nd_lock);
 		err = dev_change_net_namespace(dev, &init_net, fb_name);
+		unlock_netdev(nd_lock);
 		if (err) {
 			pr_emerg("%s: failed to move %s to init_net: %d\n",
 				 __func__, dev->name, err);


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ