Commit 64948427 authored by Tonghao Zhang's avatar Tonghao Zhang Committed by David S. Miller
Browse files

net: openvswitch: use hlist_for_each_entry_rcu instead of hlist_for_each_entry



The struct sw_flow is protected by RCU, when traversing them,
use hlist_for_each_entry_rcu.

Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
Tested-by: default avatarGreg Rose <gvrose8192@gmail.com>
Reviewed-by: default avatarGreg Rose <gvrose8192@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c427bfec
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -462,12 +462,14 @@ static void flow_table_copy_flows(struct table_instance *old,
		struct hlist_head *head = &old->buckets[i];

		if (ufid)
			hlist_for_each_entry(flow, head,
					     ufid_table.node[old_ver])
			hlist_for_each_entry_rcu(flow, head,
						 ufid_table.node[old_ver],
						 lockdep_ovsl_is_held())
				ufid_table_instance_insert(new, flow);
		else
			hlist_for_each_entry(flow, head,
					     flow_table.node[old_ver])
			hlist_for_each_entry_rcu(flow, head,
						 flow_table.node[old_ver],
						 lockdep_ovsl_is_held())
				table_instance_insert(new, flow);
	}