Commit 6a659cd0616299e3444db701820b5a35ae054e0e

Authored by Jiri Pirko
Committed by David S. Miller
1 parent 3fe6b49e2f

net_sched: cls_flow: remove faulty use of list_for_each_entry_rcu

rcu variant is not correct here. The code is called by updater (rtnl
lock is held), not by reader (no rcu_read_lock is held).

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff

net/sched/cls_flow.c
... ... @@ -578,7 +578,7 @@
578 578 struct flow_head *head = rtnl_dereference(tp->root);
579 579 struct flow_filter *f;
580 580  
581   - list_for_each_entry_rcu(f, &head->filters, list)
  581 + list_for_each_entry(f, &head->filters, list)
582 582 if (f->handle == handle)
583 583 return (unsigned long)f;
584 584 return 0;
... ... @@ -654,7 +654,7 @@
654 654 struct flow_head *head = rtnl_dereference(tp->root);
655 655 struct flow_filter *f;
656 656  
657   - list_for_each_entry_rcu(f, &head->filters, list) {
  657 + list_for_each_entry(f, &head->filters, list) {
658 658 if (arg->count < arg->skip)
659 659 goto skip;
660 660 if (arg->fn(tp, (unsigned long)f, arg) < 0) {