aha/net/sched
Patrick McHardy 23bcf634c8 net_sched: fix estimator lock selection for mq child qdiscs
When new child qdiscs are attached to the mq qdisc, they are actually
attached as root qdiscs to the device queues. The lock selection for
new estimators incorrectly picks the root lock of the existing and
to be replaced qdisc, which results in a use-after-free once the old
qdisc has been destroyed.

Mark mq qdisc instances with a new flag and treat qdiscs attached to
mq as children similar to regular root qdiscs.

Additionally prevent estimators from being attached to the mq qdisc
itself since it only updates its byte and packet counters during dumps.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-09-09 18:11:23 -07:00
..
act_api.c
act_gact.c
act_ipt.c
act_mirred.c
act_nat.c
act_pedit.c
act_police.c pkt_sched: Update drops stats in act_police 2009-06-17 18:56:45 -07:00
act_simple.c
act_skbedit.c
cls_api.c net_sched: reintroduce dev->qdisc for use by sch_api 2009-09-06 02:07:03 -07:00
cls_basic.c
cls_cgroup.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
cls_flow.c net: skb->dst accessors 2009-06-03 02:51:04 -07:00
cls_fw.c
cls_route.c net: skb->dst accessors 2009-06-03 02:51:04 -07:00
cls_rsvp.c
cls_rsvp.h
cls_rsvp6.c
cls_tcindex.c
cls_u32.c
em_cmp.c
em_meta.c net: correct off-by-one write allocations reports 2009-06-18 00:29:12 -07:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
Kconfig
Makefile net_sched: add classful multiqueue dummy scheduler 2009-09-06 02:07:05 -07:00
sch_api.c net_sched: fix estimator lock selection for mq child qdiscs 2009-09-09 18:11:23 -07:00
sch_atm.c net: restore gnet_stats_basic to previous definition 2009-08-17 21:33:49 -07:00
sch_blackhole.c
sch_cbq.c net_sched: remove some unnecessary checks in classful schedulers 2009-09-06 02:07:02 -07:00
sch_drr.c net: restore gnet_stats_basic to previous definition 2009-08-17 21:33:49 -07:00
sch_dsmark.c
sch_fifo.c net-sched: fix bfifo default limit 2009-05-06 16:45:07 -07:00
sch_generic.c net_sched: add classful multiqueue dummy scheduler 2009-09-06 02:07:05 -07:00
sch_gred.c
sch_hfsc.c net_sched: remove some unnecessary checks in classful schedulers 2009-09-06 02:07:02 -07:00
sch_htb.c net_sched: remove some unnecessary checks in classful schedulers 2009-09-06 02:07:02 -07:00
sch_ingress.c net_sched: make cls_ops->change and cls_ops->delete optional 2009-09-06 02:07:02 -07:00
sch_mq.c net_sched: fix estimator lock selection for mq child qdiscs 2009-09-09 18:11:23 -07:00
sch_multiq.c net_sched: remove some unnecessary checks in classful schedulers 2009-09-06 02:07:02 -07:00
sch_netem.c net: sch_netem: Fix an inconsistency in ingress netem timestamps. 2009-04-20 02:14:59 -07:00
sch_prio.c net_sched: remove some unnecessary checks in classful schedulers 2009-09-06 02:07:02 -07:00
sch_red.c net_sched: remove some unnecessary checks in classful schedulers 2009-09-06 02:07:02 -07:00
sch_sfq.c net_sched: make cls_ops->change and cls_ops->delete optional 2009-09-06 02:07:02 -07:00
sch_tbf.c net_sched: remove some unnecessary checks in classful schedulers 2009-09-06 02:07:02 -07:00
sch_teql.c netdev: convert pseudo-devices to netdev_tx_t 2009-09-01 01:13:07 -07:00