Commit f01bf5a4 authored by Thomas Graf's avatar Thomas Graf Committed by David S. Miller

[PKT_SCHED]: cls_fw: Break is not enough to stop walking

break is not enough to escape from the walking loops, since
multiple encapsulated loops are used to traverse the hash tables.
Signed-off-by: default avatarThomas Graf <tgraf@suug.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 59088b30
...@@ -338,7 +338,7 @@ static void fw_walk(struct tcf_proto *tp, struct tcf_walker *arg) ...@@ -338,7 +338,7 @@ static void fw_walk(struct tcf_proto *tp, struct tcf_walker *arg)
} }
if (arg->fn(tp, (unsigned long)f, arg) < 0) { if (arg->fn(tp, (unsigned long)f, arg) < 0) {
arg->stop = 1; arg->stop = 1;
break; return;
} }
arg->count++; arg->count++;
} }
......
...@@ -538,7 +538,7 @@ static void route4_walk(struct tcf_proto *tp, struct tcf_walker *arg) ...@@ -538,7 +538,7 @@ static void route4_walk(struct tcf_proto *tp, struct tcf_walker *arg)
} }
if (arg->fn(tp, (unsigned long)f, arg) < 0) { if (arg->fn(tp, (unsigned long)f, arg) < 0) {
arg->stop = 1; arg->stop = 1;
break; return;
} }
arg->count++; arg->count++;
} }
......
...@@ -601,7 +601,7 @@ static void rsvp_walk(struct tcf_proto *tp, struct tcf_walker *arg) ...@@ -601,7 +601,7 @@ static void rsvp_walk(struct tcf_proto *tp, struct tcf_walker *arg)
} }
if (arg->fn(tp, (unsigned long)f, arg) < 0) { if (arg->fn(tp, (unsigned long)f, arg) < 0) {
arg->stop = 1; arg->stop = 1;
break; return;
} }
arg->count++; arg->count++;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment