Re: 3.14 tc oops

From: Cong Wang
Date: Mon Apr 07 2014 - 01:57:25 EST


On Thu, Apr 3, 2014 at 9:24 AM, Cong Wang <xiyou.wangcong@xxxxxxxxx> wrote:
> On Wed, Apr 2, 2014 at 7:24 AM, Kelly Anderson <kelly@xxxxxxxxx> wrote:
>> Hi,
>>
>> I hit a kernel oops when starting traffic control on my armv7 router, I don't
>> think the architecture is related, the same tc code worked perfectly with
>> earlier kernel versions, i.e. 3.13.x.
>>
>> I also attached an object dump with line numbers to make identifying the
>> problem a bit easier.
>>
>> Please cc me to keep me in the loop, I can test patches.
>
>
> Thanks for the report! Looks like it is caused by one of my patches,
> I will look into this shortly.
>

Which tc filter are you using on that htb qdisc? (tc filter show dev ....)

I suspect it's tcindex filter, if so please try the following patch:

diff --git a/net/sched/cls_tcindex.c b/net/sched/cls_tcindex.c
index eed8404..14618cc 100644
--- a/net/sched/cls_tcindex.c
+++ b/net/sched/cls_tcindex.c
@@ -298,8 +298,10 @@ tcindex_set_parms(struct net *net, struct
tcf_proto *tp, unsigned long base,
tcf_exts_change(tp, &cr.exts, &e);

tcf_tree_lock(tp);
- if (old_r && old_r != r)
+ if (old_r && old_r != r) {
memset(old_r, 0, sizeof(*old_r));
+ tcf_exts_init(&old_r->exts, TCA_TCINDEX_ACT,
TCA_TCINDEX_POLICE);
+ }

memcpy(p, &cp, sizeof(cp));
memcpy(r, &cr, sizeof(cr));
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/