From: Patrick McHardy <kaber@trash.net>
To: Thomas Graf <tgraf@suug.ch>
Cc: davem@davemloft.net, netdev@oss.sgi.com, spam@crocom.com.pl,
kuznet@ms2.inr.ac.ru, jmorris@redhat.com
Subject: Re: [PATCH] PKT_SCHED: Initialize list field in dummy qdiscs
Date: Fri, 05 Nov 2004 17:12:26 +0100 [thread overview]
Message-ID: <418BA66A.60804@trash.net> (raw)
In-Reply-To: <20041105141640.GQ19714@rei.reeler.org>
Thomas Graf wrote:
>- if (dev) {
>- struct Qdisc *q, **qp;
>- for (qp = &qdisc->dev->qdisc_list; (q=*qp) != NULL; qp = &q->next) {
>- if (q == qdisc) {
>- *qp = q->next;
>- break;
>- }
>- }
>- }
>+ list_del(&qdisc->list);
>
>Nice cleanup, although it assumes that everyone calling qdisc_destroy provides a
>Qdisc which is actually linked or at least has an initialized list node. This
>was not the true for noqueue and noop dummy qdiscs.
>
Nice catch. I can't understand how you triggered that oops,
though. The noop- and noqueue-qdiscs used without qdisc_create_*
are not refcounted, so I would expect:
void qdisc_destroy(struct Qdisc *qdisc)
{
if (!atomic_dec_and_test(&qdisc->refcnt))
return;
to underflow and return until refcnt finally reaches 0 again.
Can you explain, please ?
Regards
Patrick
>Signed-off-by: Thomas Graf <tgraf@suug.ch>
>
>--- linux-2.6.10-rc1-bk14.orig/net/sched/sch_generic.c 2004-11-05 01:11:17.000000000 +0100
>+++ linux-2.6.10-rc1-bk14/net/sched/sch_generic.c 2004-11-05 15:05:54.000000000 +0100
>@@ -280,6 +280,7 @@
> .dequeue = noop_dequeue,
> .flags = TCQ_F_BUILTIN,
> .ops = &noop_qdisc_ops,
>+ .list = LIST_HEAD_INIT(noop_qdisc.list),
> };
>
> struct Qdisc_ops noqueue_qdisc_ops = {
>@@ -298,6 +299,7 @@
> .dequeue = noop_dequeue,
> .flags = TCQ_F_BUILTIN,
> .ops = &noqueue_qdisc_ops,
>+ .list = LIST_HEAD_INIT(noqueue_qdisc.list),
> };
>
>
>
>
next prev parent reply other threads:[~2004-11-05 16:12 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-05 9:48 PROBLEM: IProute hangs after running traffic shaping scripts Szymon Miotk
2004-11-05 11:54 ` Thomas Graf
2004-11-05 14:16 ` [PATCH] PKT_SCHED: Initialize list field in dummy qdiscs Thomas Graf
2004-11-05 16:12 ` Patrick McHardy [this message]
2004-11-05 16:39 ` Thomas Graf
2004-11-05 17:26 ` Patrick McHardy
2004-11-05 17:58 ` Thomas Graf
2004-11-05 18:18 ` Patrick McHardy
2004-11-05 19:43 ` Thomas Graf
2004-11-06 1:18 ` Thomas Graf
2004-11-06 1:47 ` Patrick McHardy
2004-11-06 1:59 ` Thomas Graf
2004-11-06 14:50 ` Thomas Graf
2004-11-07 8:57 ` Patrick McHardy
2004-11-07 14:00 ` Thomas Graf
2004-11-07 16:19 ` Patrick McHardy
2004-11-07 16:33 ` Thomas Graf
2004-11-07 17:02 ` Patrick McHardy
2004-11-07 17:49 ` Thomas Graf
2004-11-07 18:22 ` Patrick McHardy
2004-11-07 19:08 ` Thomas Graf
2004-11-06 0:36 ` David S. Miller
2004-11-07 22:22 ` PROBLEM: IProute hangs after running traffic shaping scripts Patrick McHardy
2004-11-08 1:40 ` Patrick McHardy
2004-11-08 13:54 ` Thomas Graf
2004-11-08 16:12 ` Patrick McHardy
2004-11-08 18:33 ` Thomas Graf
2004-11-08 19:46 ` Patrick McHardy
2004-11-08 20:15 ` Thomas Graf
2004-11-10 0:18 ` David S. Miller
2004-11-10 0:40 ` Patrick McHardy
2004-11-10 0:55 ` Patrick McHardy
2004-11-10 6:13 ` David S. Miller
2004-11-10 12:08 ` Szymon Miotk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=418BA66A.60804@trash.net \
--to=kaber@trash.net \
--cc=davem@davemloft.net \
--cc=jmorris@redhat.com \
--cc=kuznet@ms2.inr.ac.ru \
--cc=netdev@oss.sgi.com \
--cc=spam@crocom.com.pl \
--cc=tgraf@suug.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.