[ovs-dev] [PATCH 17/19] datapath: dp_sysfs_add_dp() needs RTNL lock.
Jesse Gross
jesse at nicira.com
Thu Dec 9 06:14:15 UTC 2010
We currently drop RTNL before adding a new datapath to sysfs but
then access the dp data structures. This moves the call to
dp_sysfs_add_dp() before we drop the locks to prevent a potential
race. All other calls to sysfs functions already hold RTNL.
Found with lockdep.
Signed-off-by: Jesse Gross <jesse at nicira.com>
---
datapath/datapath.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/datapath/datapath.c b/datapath/datapath.c
index 65d25c2..08e7450 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -267,11 +267,11 @@ static int create_dp(int dp_idx, const char __user *devnamep)
goto err_destroy_local_port;
rcu_assign_pointer(dps[dp_idx], dp);
+ dp_sysfs_add_dp(dp);
+
mutex_unlock(&dp_mutex);
rtnl_unlock();
- dp_sysfs_add_dp(dp);
-
return 0;
err_destroy_local_port:
--
1.7.1
More information about the dev
mailing list