[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080818.210806.00895939.davem@davemloft.net>
Date: Mon, 18 Aug 2008 21:08:06 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: jarkao2@...il.com
Cc: netdev@...r.kernel.org, denys@...p.net.lb
Subject: Re: [PATCH]: Schedule correct qdisc in watchdog.
From: David Miller <davem@...emloft.net>
Date: Mon, 18 Aug 2008 20:51:53 -0700 (PDT)
> From: Jarek Poplawski <jarkao2@...il.com>
> Date: Mon, 18 Aug 2008 11:06:25 +0000
>
> > On Mon, Aug 18, 2008 at 10:43:56AM +0000, Jarek Poplawski wrote:
> > ...
> > > Sooory!!! Forget this all: it looks like your patch is damn right!
> >
> > So, I guess, you could merge this patch to net-2.6, so Denys could
> > test this all later without additional patching?!
>
> Here is the final patch I put into net-2.6, thanks.
>
> pkt_sched: Never schedule non-root qdiscs.
Sorry, I posted the wrong patch, which ommitted the sch_cbq.c
part, here is the correct one:
pkt_sched: Never schedule non-root qdiscs.
Based upon initial discovery and patch by Jarek Poplawski.
The qdisc watchdogs can be attached to any qdisc, not just the root,
so make sure we schedule the correct one.
CBQ has a similar bug.
Signed-off-by: David S. Miller <davem@...emloft.net>
---
net/sched/sch_api.c | 2 +-
net/sched/sch_cbq.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index c8dc72e..98c0084 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -426,7 +426,7 @@ static enum hrtimer_restart qdisc_watchdog(struct hrtimer *timer)
wd->qdisc->flags &= ~TCQ_F_THROTTLED;
smp_wmb();
- __netif_schedule(wd->qdisc);
+ __netif_schedule(qdisc_root(wd->qdisc));
return HRTIMER_NORESTART;
}
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
index 4e261ce..47ef492 100644
--- a/net/sched/sch_cbq.c
+++ b/net/sched/sch_cbq.c
@@ -654,7 +654,7 @@ static enum hrtimer_restart cbq_undelay(struct hrtimer *timer)
}
sch->flags &= ~TCQ_F_THROTTLED;
- __netif_schedule(sch);
+ __netif_schedule(qdisc_root(sch));
return HRTIMER_NORESTART;
}
--
1.5.6.5.GIT
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists