2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-03 13:17:37 +00:00

datapath: dp_sysfs_add_dp() needs RTNL lock.

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@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
Jesse Gross
2010-12-08 12:02:42 -08:00
parent eb0e14ed3f
commit dad80ec308

View File

@@ -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: