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:
@@ -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:
|
||||
|
Reference in New Issue
Block a user