Skip to content

Commit

Permalink
pkt_sched: Fix sch_sfq vs tc_modify_qdisc oops
Browse files Browse the repository at this point in the history
sch_sfq as a classful qdisc needs the .leaf handler. Otherwise, there
is an oops possible in tc_modify_qdisc()/check_loop().

Fixes commit 7d2681a

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jarek Poplawski authored and davem330 committed Aug 11, 2010
1 parent 98a21ef commit 41065fb
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions net/sched/sch_sfq.c
Expand Up @@ -508,6 +508,11 @@ static int sfq_dump(struct Qdisc *sch, struct sk_buff *skb)
return -1;
}

static struct Qdisc *sfq_leaf(struct Qdisc *sch, unsigned long arg)
{
return NULL;
}

static unsigned long sfq_get(struct Qdisc *sch, u32 classid)
{
return 0;
Expand Down Expand Up @@ -575,6 +580,7 @@ static void sfq_walk(struct Qdisc *sch, struct qdisc_walker *arg)
}

static const struct Qdisc_class_ops sfq_class_ops = {
.leaf = sfq_leaf,
.get = sfq_get,
.put = sfq_put,
.tcf_chain = sfq_find_tcf,
Expand Down

0 comments on commit 41065fb

Please sign in to comment.