Subject: [PATCH 1/2 (resend)] Fix TBF class reporting (tc class show)

From: Dmitry Torokhov <[email-masked]>
Date: Tue, 23 Mar 2004 01:08:08 -0500

Hi,

The patch below fixes issue with "tc class show dev <dev>" not showing any
classes when TBF qdisc is present in the chain. PLease copnsider for
inclusion.

-- 
Dmitry

===================================================================

[email-masked], 2004-03-05 01:02:36-05:00, [email-masked]
  NET: Fix class reporting in TBF qdisc

 sch_tbf.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

===================================================================

diff -Nru a/net/sched/sch_tbf.c b/net/sched/sch_tbf.c
--- a/net/sched/sch_tbf.c	Fri Mar  5 01:26:33 2004
+++ b/net/sched/sch_tbf.c	Fri Mar  5 01:26:33 2004
@@ -434,8 +434,7 @@
 	if (cl != 1) 	/* only one class */ 
 		return -ENOENT;
     
-	tcm->tcm_parent = TC_H_ROOT;
-	tcm->tcm_handle = 1;
+	tcm->tcm_handle |= TC_H_MIN(1);
 	tcm->tcm_info = q->qdisc->handle;
 
 	return 0;
@@ -486,11 +485,9 @@
 
 static void tbf_walk(struct Qdisc *sch, struct qdisc_walker *walker)
 {
-	struct tbf_sched_data *q = (struct tbf_sched_data *)sch->data;
-
 	if (!walker->stop) {
-		if (walker->count >= walker->skip) 
-			if (walker->fn(sch, (unsigned long)q, walker) < 0) { 
+		if (walker->count >= walker->skip)
+			if (walker->fn(sch, 1, walker) < 0) {
 				walker->stop = 1;
 				return;
 			}