diff mbox series

[ovs-dev,22/23] datapath: use hlist_for_each_entry_rcu instead of hlist_for_each_entry

Message ID 1597963790-12362-23-git-send-email-gvrose8192@gmail.com
State Superseded
Headers show
Series Add support for Linux kernels up to 5.9.x | expand

Commit Message

Gregory Rose Aug. 20, 2020, 10:49 p.m. UTC
From: Tonghao Zhang <xiangxia.m.yue@gmail.com>

Upstream commit:
    commit 64948427a63f49dd0ce403388d232f22cc1971a8
    Author: Tonghao Zhang <xiangxia.m.yue@gmail.com>
    Date:   Thu Mar 26 04:27:24 2020 +0800

    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: Tonghao Zhang <xiangxia.m.yue@gmail.com>
    Tested-by: Greg Rose <gvrose8192@gmail.com>
    Reviewed-by: Greg Rose <gvrose8192@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

Compat fixup - OVS doesn't support lockdep_ovsl_is_held() yet

Cc: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Signed-off-by: Greg Rose <gvrose8192@gmail.com>
---
 datapath/flow_table.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Tonghao Zhang Aug. 25, 2020, 4:01 a.m. UTC | #1
On Fri, Aug 21, 2020 at 6:50 AM Greg Rose <gvrose8192@gmail.com> wrote:
>
> From: Tonghao Zhang <xiangxia.m.yue@gmail.com>
>
> Upstream commit:
>     commit 64948427a63f49dd0ce403388d232f22cc1971a8
>     Author: Tonghao Zhang <xiangxia.m.yue@gmail.com>
>     Date:   Thu Mar 26 04:27:24 2020 +0800
>
>     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: Tonghao Zhang <xiangxia.m.yue@gmail.com>
>     Tested-by: Greg Rose <gvrose8192@gmail.com>
>     Reviewed-by: Greg Rose <gvrose8192@gmail.com>
>     Signed-off-by: David S. Miller <davem@davemloft.net>
>
> Compat fixup - OVS doesn't support lockdep_ovsl_is_held() yet
>
> Cc: Tonghao Zhang <xiangxia.m.yue@gmail.com>
> Signed-off-by: Greg Rose <gvrose8192@gmail.com>
Reviewed-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
> ---
>  datapath/flow_table.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/datapath/flow_table.c b/datapath/flow_table.c
> index bd05dd3..650338f 100644
> --- a/datapath/flow_table.c
> +++ b/datapath/flow_table.c
> @@ -485,12 +485,12 @@ 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])
>                                 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])
>                                 table_instance_insert(new, flow);
>         }
>
> --
> 1.8.3.1
>
diff mbox series

Patch

diff --git a/datapath/flow_table.c b/datapath/flow_table.c
index bd05dd3..650338f 100644
--- a/datapath/flow_table.c
+++ b/datapath/flow_table.c
@@ -485,12 +485,12 @@  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])
 				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])
 				table_instance_insert(new, flow);
 	}