Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41065fba authored by Jarek Poplawski's avatar Jarek Poplawski Committed by David S. Miller
Browse files

pkt_sched: Fix sch_sfq vs tc_modify_qdisc oops



sch_sfq as a classful qdisc needs the .leaf handler. Otherwise, there
is an oops possible in tc_modify_qdisc()/check_loop().

Fixes commit 7d2681a6

Signed-off-by: default avatarJarek Poplawski <jarkao2@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 98a21ef0
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -508,6 +508,11 @@ static int sfq_dump(struct Qdisc *sch, struct sk_buff *skb)
	return -1;
	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)
static unsigned long sfq_get(struct Qdisc *sch, u32 classid)
{
{
	return 0;
	return 0;
@@ -575,6 +580,7 @@ static void sfq_walk(struct Qdisc *sch, struct qdisc_walker *arg)
}
}


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