Re: 3.14 tc oops

From: Daniel Borkmann
Date: Mon Apr 07 2014 - 05:09:09 EST


[Kelly, please also cc netdev]

On 04/07/2014 07:56 AM, Cong Wang wrote:
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/


--
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/