net_sched: make qdisc_tree_decrease_qlen() work for non mq
authorEric Dumazet <edumazet@google.com>
Tue, 15 Dec 2015 17:43:12 +0000 (09:43 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Dec 2015 18:41:52 +0000 (13:41 -0500)
commit225734de70cd0a9e0b978f3583a4a87939271d5e
tree6b40737db8493f7887bd6fdc439e91150d040fdf
parent58ab367b85f45a9714af2f8bf122463285f80f5b
net_sched: make qdisc_tree_decrease_qlen() work for non mq

Stas Nichiporovich reported a regression in his HFSC qdisc setup
on a non multi queue device.

It turns out I mistakenly added a TCQ_F_NOPARENT flag on all qdisc
allocated in qdisc_create() for non multi queue devices, which was
rather buggy. I was clearly mislead by the TCQ_F_ONETXQUEUE that is
also set here for no good reason, since it only matters for the root
qdisc.

Fixes: 4eaf3b84f288 ("net_sched: fix qdisc_tree_decrease_qlen() races")
Reported-by: Stas Nichiporovich <stasn77@gmail.com>
Tested-by: Stas Nichiporovich <stasn77@gmail.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_api.c