From: Jarek Poplawski <jarkao2@gmail.com>
To: Minoru Usui <usui@mxm.nes.nec.co.jp>
Cc: netdev@vger.kernel.org, containers@lists.linux-foundation.org,
Jamal Hadi Salim <hadi@cyberus.ca>
Subject: Re: [BUG] net_cls: Panic occured when net_cls subsystem use
Date: Fri, 29 May 2009 07:48:12 +0000 [thread overview]
Message-ID: <20090529074812.GA5483@ff.dom.local> (raw)
In-Reply-To: <20090529141830.8ba30a24.usui@mxm.nes.nec.co.jp>
On 29-05-2009 07:18, Minoru Usui wrote:
> Hi,
>
> On Thu, 21 May 2009 09:22:56 +0900
> Minoru Usui <usui@mxm.nes.nec.co.jp> wrote:
>
>> Hi
Hi,
>>
>> Unfortunately this is only panic report.
>>
>> I used cgroup net_cls subsystem, then kernel panic occured.
>> I attach panic message and kernel config in this mail's last paragraph.
>> If my operation is wrong, could you tell me how to use net_cls and
>> where the documentation is.
>>
>> # But I think panic is very bad even if my operation is wrong.
>
> I investigated this problem, and I found a bug in tc_ctl_tfilter() in net/sched/cls_api.c.
>
> When 'tc filter add' command is executed and proto-tcf does not exist,
> tcf_ctl_tfilter() allocates, initializes and chanins proto-tcf(tp) to
> cops->tcf_chain()'s chain before calling tp->ops->change().
>
> If tp->ops->change() returns an error, tcf_ctl_tfilter() returns an error
> too, but proto-tcf(tp) is not unchained yet.
>
> I think tcf_ctl_tfilter() shouldn't chain proto-tcf to the chain before it returns
> an error.
I didn't verify this too much, so I might be wrong, but it looks like
cls_cgroup_classify() does things a bit different than others (doesn't
check the 'head' etc. for NULL), so maybe you should consider fixing
it instead? (Btw., the tc classifier maintainer added to Cc).
Cheers,
Jarek P.
>
> Signed-off-by: Minoru Usui <usui@mxm.nes.nec.co.jp>
>
> diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
> index 0759f32..756148b 100644
> --- a/net/sched/cls_api.c
> +++ b/net/sched/cls_api.c
> @@ -266,11 +266,6 @@ replay:
> goto errout;
> }
>
> - spin_lock_bh(root_lock);
> - tp->next = *back;
> - *back = tp;
> - spin_unlock_bh(root_lock);
> -
> } else if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], tp->ops->kind))
> goto errout;
>
> @@ -314,8 +309,17 @@ replay:
> }
>
> err = tp->ops->change(tp, cl, t->tcm_handle, tca, &fh);
> - if (err == 0)
> - tfilter_notify(skb, n, tp, fh, RTM_NEWTFILTER);
> + if (err) {
> + tcf_destroy(tp);
> + goto errout;
> + }
> +
> + spin_lock_bh(root_lock);
> + tp->next = *back;
> + *back = tp;
> + spin_unlock_bh(root_lock);
> +
> + tfilter_notify(skb, n, tp, fh, RTM_NEWTFILTER);
>
> errout:
> if (cl)
>
next prev parent reply other threads:[~2009-05-29 7:48 UTC|newest]
Thread overview: 109+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-21 0:22 [BUG] net_cls: Panic occured when net_cls subsystem use Minoru Usui
2009-05-29 5:18 ` Minoru Usui
2009-05-29 7:48 ` Jarek Poplawski [this message]
[not found] ` <20090529074812.GA5483-8HppEYmqbBCE+EvaaNYduQ@public.gmane.org>
2009-05-29 8:03 ` Jarek Poplawski
2009-05-29 8:03 ` Jarek Poplawski
[not found] ` <20090529080330.GB5483-8HppEYmqbBCE+EvaaNYduQ@public.gmane.org>
2009-05-29 10:22 ` Jarek Poplawski
2009-05-29 10:22 ` Jarek Poplawski
[not found] ` <20090529102232.GA6279-8HppEYmqbBCE+EvaaNYduQ@public.gmane.org>
2009-05-29 13:15 ` jamal
[not found] ` <20090529141830.8ba30a24.usui-vEbCzmPPqHe45+QrQBaojngSJqDPrsil@public.gmane.org>
2009-05-29 7:48 ` Jarek Poplawski
2009-05-29 13:46 ` jamal
2009-05-29 13:46 ` jamal
[not found] ` <1243604796.3966.21.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-29 13:54 ` jamal
2009-06-01 5:25 ` Minoru Usui
2009-05-29 13:54 ` jamal
2009-05-29 22:59 ` Jarek Poplawski
[not found] ` <20090529225929.GD2753-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-05-30 11:17 ` Minoru Usui
2009-05-30 11:45 ` Jarek Poplawski
[not found] ` <20090530114506.GA3166-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-05-30 11:56 ` jamal
2009-05-30 11:56 ` jamal
[not found] ` <1243684594.3966.89.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-30 12:07 ` Jarek Poplawski
[not found] ` <20090530120750.GB3166-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-05-30 12:31 ` jamal
[not found] ` <1243686683.3966.117.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-30 12:45 ` Jarek Poplawski
2009-05-30 12:45 ` Jarek Poplawski
2009-05-30 13:03 ` jamal
2009-05-30 13:20 ` Jarek Poplawski
2009-05-30 13:31 ` jamal
[not found] ` <1243690297.3966.135.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-30 14:00 ` Jarek Poplawski
2009-05-30 14:00 ` Jarek Poplawski
2009-05-30 23:08 ` jamal
[not found] ` <1243724933.3966.158.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-31 7:55 ` Jarek Poplawski
[not found] ` <20090531075528.GA2756-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-05-31 13:17 ` jamal
2009-05-31 13:17 ` jamal
[not found] ` <1243775830.3966.231.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-31 20:33 ` Jarek Poplawski
2009-05-31 20:33 ` Jarek Poplawski
[not found] ` <20090530140006.GE3166-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-05-30 22:38 ` Minoru Usui
2009-05-30 23:34 ` jamal
2009-05-31 1:45 ` Minoru Usui
[not found] ` <1243726492.3966.178.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-31 1:45 ` Minoru Usui
[not found] ` <b10243b50905301538o2716855ag21fbc95b37c8da22-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-05-30 23:34 ` jamal
2009-05-31 8:15 ` Jarek Poplawski
2009-05-31 8:15 ` Jarek Poplawski
2009-05-30 23:08 ` jamal
[not found] ` <20090530132047.GD3166-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-05-30 13:31 ` jamal
[not found] ` <1243688628.3966.126.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-30 13:20 ` Jarek Poplawski
2009-05-30 22:22 ` Minoru Usui
2009-05-30 22:22 ` Minoru Usui
[not found] ` <b10243b50905301522t42aafaffxbf5934388af3df93-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-05-30 23:13 ` jamal
2009-05-30 23:13 ` jamal
2009-05-31 8:07 ` Jarek Poplawski
[not found] ` <1243725194.3966.162.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-31 8:07 ` Jarek Poplawski
[not found] ` <20090530124554.GC3166-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-05-30 13:03 ` jamal
[not found] ` <b10243b50905300417v3e208ad8s78936f106175e51-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-05-30 11:45 ` Jarek Poplawski
2009-05-30 11:50 ` jamal
[not found] ` <1243684218.3966.83.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-31 8:12 ` Jarek Poplawski
2009-05-31 8:12 ` Jarek Poplawski
[not found] ` <20090531081213.GC2756-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-05-31 13:24 ` jamal
2009-05-31 13:24 ` jamal
2009-05-31 13:43 ` jamal
[not found] ` <1243777427.3966.243.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-31 21:12 ` Jarek Poplawski
[not found] ` <1243776293.3966.241.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-31 13:43 ` jamal
2009-05-31 19:55 ` Jarek Poplawski
2009-05-31 19:55 ` Jarek Poplawski
[not found] ` <20090531195557.GA2777-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-05-31 23:40 ` jamal
[not found] ` <1243813216.3966.254.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-06-01 6:06 ` Jarek Poplawski
2009-06-01 6:06 ` Jarek Poplawski
[not found] ` <20090601060638.GA4256-8HppEYmqbBCE+EvaaNYduQ@public.gmane.org>
2009-06-01 13:03 ` jamal
2009-06-01 13:03 ` jamal
[not found] ` <1243861410.3966.268.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-06-01 13:34 ` Minoru Usui
2009-06-01 20:49 ` Jarek Poplawski
2009-06-01 13:34 ` Minoru Usui
2009-06-01 20:49 ` Jarek Poplawski
2009-06-01 21:55 ` Jarek Poplawski
[not found] ` <20090601204957.GA2760-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-06-01 21:55 ` Jarek Poplawski
2009-06-01 22:06 ` jamal
2009-06-01 22:06 ` jamal
[not found] ` <1243893963.3966.325.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-06-02 6:26 ` Jarek Poplawski
2009-06-02 13:16 ` jamal
2009-06-02 21:10 ` Jarek Poplawski
2009-06-03 11:27 ` Jarek Poplawski
2009-06-10 11:58 ` jamal
[not found] ` <20090603112746.GA7000-8HppEYmqbBCE+EvaaNYduQ@public.gmane.org>
2009-06-10 11:58 ` jamal
[not found] ` <20090602211031.GA2850-dUp/P3zyUuaNj9Bq2fkWzw@public.gmane.org>
2009-06-03 11:27 ` Jarek Poplawski
[not found] ` <1243948587.3966.393.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-06-02 21:10 ` Jarek Poplawski
[not found] ` <20090602062623.GA4239-8HppEYmqbBCE+EvaaNYduQ@public.gmane.org>
2009-06-02 13:16 ` jamal
2009-06-02 6:59 ` Minoru Usui
2009-06-02 6:59 ` Minoru Usui
2009-06-02 7:24 ` Jarek Poplawski
[not found] ` <20090602072436.GB4239-8HppEYmqbBCE+EvaaNYduQ@public.gmane.org>
2009-06-02 8:29 ` Minoru Usui
2009-06-02 8:29 ` Minoru Usui
[not found] ` <20090602155919.da89c08e.usui-vEbCzmPPqHe45+QrQBaojngSJqDPrsil@public.gmane.org>
2009-06-02 7:24 ` Jarek Poplawski
2009-06-02 13:19 ` jamal
2009-06-04 4:41 ` Minoru Usui
2009-06-04 6:34 ` Jarek Poplawski
2009-06-04 8:37 ` Jarek Poplawski
[not found] ` <20090604063445.GA2683-8HppEYmqbBCE+EvaaNYduQ@public.gmane.org>
2009-06-04 8:37 ` Jarek Poplawski
[not found] ` <20090604134133.dde9ddc6.usui-vEbCzmPPqHe45+QrQBaojngSJqDPrsil@public.gmane.org>
2009-06-04 6:34 ` Jarek Poplawski
[not found] ` <1243948765.3966.397.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-06-04 4:41 ` Minoru Usui
[not found] ` <1243605269.3966.28.camel-A00voryUPPswpNmlq7E/ZAC/G2K4zDHf@public.gmane.org>
2009-05-29 22:59 ` Jarek Poplawski
2009-06-01 5:25 ` Minoru Usui
[not found] ` <20090521092256.d33717b9.usui-vEbCzmPPqHe45+QrQBaojngSJqDPrsil@public.gmane.org>
2009-05-29 5:18 ` Minoru Usui
2009-06-01 9:12 ` Minoru Usui
2009-06-01 9:12 ` Minoru Usui
[not found] ` <20090601181201.ca1c2832.usui-vEbCzmPPqHe45+QrQBaojngSJqDPrsil@public.gmane.org>
2009-06-08 6:39 ` Minoru Usui
2009-06-08 6:39 ` Minoru Usui
[not found] ` <20090608153951.dfa4b162.usui-vEbCzmPPqHe45+QrQBaojngSJqDPrsil@public.gmane.org>
2009-06-08 7:48 ` Jarek Poplawski
2009-06-08 7:48 ` Jarek Poplawski
2009-06-09 0:02 ` Minoru Usui
[not found] ` <20090608074814.GA4972-8HppEYmqbBCE+EvaaNYduQ@public.gmane.org>
2009-06-09 0:02 ` Minoru Usui
-- strict thread matches above, loose matches on Subject: below --
2009-05-21 0:22 Minoru Usui
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=20090529074812.GA5483@ff.dom.local \
--to=jarkao2@gmail.com \
--cc=containers@lists.linux-foundation.org \
--cc=hadi@cyberus.ca \
--cc=netdev@vger.kernel.org \
--cc=usui@mxm.nes.nec.co.jp \
/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.