To solve a problem while listing filters you may add this patch.
It works for all kernel versions from 2.4.6 to 2.4.11
It wold be cool to have it in the next kernel release.
---
diff -ur 2.4.6/linux/net/sched/cls_u32.c linux/net/sched/cls_u32.c
--- 2.4.6/linux/net/sched/cls_u32.c Thu Feb 1 23:06:10 2001
+++ linux/net/sched/cls_u32.c Wed Jul 11 23:55:23 2001
@@ -613,7 +613,8 @@
for (ht = tp_c->hlist; ht; ht = ht->next) {
if (arg->count >= arg->skip) {
- if (arg->fn(tp, (unsigned long)ht, arg) < 0) {
+ if (ht == tp->root &&
+ arg->fn(tp, (unsigned long)ht, arg) < 0) {
arg->stop = 1;
return;
}
@@ -625,7 +626,8 @@
arg->count++;
continue;
}
- if (arg->fn(tp, (unsigned long)n, arg) < 0) {
+ if (ht == tp->root &&
+ arg->fn(tp, (unsigned long)n, arg) < 0) {
arg->stop = 1;
return;
}
---
[email protected]
http://www.linux.lu
From: Thierry Coutelier <[email protected]>
Date: Wed, 10 Oct 2001 14:06:03 +0200
To solve a problem while listing filters you may add this patch.
It works for all kernel versions from 2.4.6 to 2.4.11
It wold be cool to have it in the next kernel release.
What is the "problem"? Why should it only call the walker function
on entries which equal tp->root? This change doesn't make any sense
to me.
You need to describe the problem and how your changes solve
that problem.
Franks a lot,
David S. Miller
[email protected]
On Wed, Oct 10, 2001 at 02:06:03PM +0200, Thierry Coutelier wrote:
> To solve a problem while listing filters you may add this patch.
> It works for all kernel versions from 2.4.6 to 2.4.11
> It wold be cool to have it in the next kernel release.
>
> ---
> diff -ur 2.4.6/linux/net/sched/cls_u32.c linux/net/sched/cls_u32.c
> --- 2.4.6/linux/net/sched/cls_u32.c Thu Feb 1 23:06:10 2001
> +++ linux/net/sched/cls_u32.c Wed Jul 11 23:55:23 2001
> @@ -613,7 +613,8 @@
>
> for (ht = tp_c->hlist; ht; ht = ht->next) {
> if (arg->count >= arg->skip) {
> - if (arg->fn(tp, (unsigned long)ht, arg) < 0) {
> + if (ht == tp->root &&
> + arg->fn(tp, (unsigned long)ht, arg) < 0) {
> arg->stop = 1;
> return;
> }
> @@ -625,7 +626,8 @@
> arg->count++;
> continue;
> }
> - if (arg->fn(tp, (unsigned long)n, arg) < 0) {
> + if (ht == tp->root &&
> + arg->fn(tp, (unsigned long)n, arg) < 0) {
> arg->stop = 1;
> return;
> }
Yeuch! The author of this code REALLY needs to read
Documentation/CodingStyle
Indentation by 1 (!) single space is by far the ugliest thing I've seen
so far.
/David Weinehall
_ _
// David Weinehall <[email protected]> /> Northern lights wander \\
// Project MCA Linux hacker // Dance across the winter sky //
\> http://www.acc.umu.se/~tao/ </ Full colour fire </