Kernel patch for cls_u32.c

Thierry Coutelier
2001-10-10T12:02:29Z

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;
}

---

Thierry.Coutelier@linux.lu