android_kernel_oneplus_msm8998/net/sched
Eric Dumazet 541d81ab68 net_sched: fq: take care of throttled flows before reuse
[ Upstream commit 7df40c2673a1307c3260aab6f9d4b9bf97ca8fd7 ]

Normally, a socket can not be freed/reused unless all its TX packets
left qdisc and were TX-completed. However connect(AF_UNSPEC) allows
this to happen.

With commit fc59d5bdf1 ("pkt_sched: fq: clear time_next_packet for
reused flows") we cleared f->time_next_packet but took no special
action if the flow was still in the throttled rb-tree.

Since f->time_next_packet is the key used in the rb-tree searches,
blindly clearing it might break rb-tree integrity. We need to make
sure the flow is no longer in the rb-tree to avoid this problem.

Fixes: fc59d5bdf1 ("pkt_sched: fq: clear time_next_packet for reused flows")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-05-26 08:48:47 +02:00
..
act_api.c net sched actions: fix dumping which requires several messages to user space 2018-04-13 19:50:27 +02:00
act_bpf.c net/sched: fix NULL dereference in the error path of tcf_bpf_init() 2018-04-13 19:50:25 +02:00
act_connmark.c
act_csum.c sched: act_csum: don't mangle TCP and UDP GSO packets 2018-03-22 09:23:22 +01:00
act_gact.c
act_ipt.c net: sched: fix NULL pointer dereference when action calls some targets 2017-08-30 10:19:21 +02:00
act_mirred.c
act_nat.c
act_pedit.c
act_police.c
act_simple.c
act_skbedit.c
act_vlan.c
cls_api.c
cls_basic.c
cls_bpf.c
cls_cgroup.c
cls_flow.c
cls_flower.c
cls_fw.c
cls_route.c
cls_rsvp.c
cls_rsvp.h
cls_rsvp6.c
cls_tcindex.c
cls_u32.c
em_canid.c
em_cmp.c
em_ipset.c
em_meta.c
em_nbyte.c
em_text.c
em_u32.c
ematch.c
Kconfig
Makefile
sch_api.c
sch_atm.c
sch_blackhole.c
sch_cbq.c
sch_choke.c net_sched: red: Avoid illegal values 2018-02-25 11:03:40 +01:00
sch_codel.c
sch_drr.c
sch_dsmark.c sch_dsmark: fix invalid skb_cow() usage 2017-12-25 14:22:10 +01:00
sch_fifo.c
sch_fq.c net_sched: fq: take care of throttled flows before reuse 2018-05-26 08:48:47 +02:00
sch_fq_codel.c
sch_generic.c
sch_gred.c net_sched: red: Avoid illegal values 2018-02-25 11:03:40 +01:00
sch_hfsc.c
sch_hhf.c
sch_htb.c
sch_ingress.c
sch_mq.c
sch_mqprio.c
sch_multiq.c
sch_netem.c
sch_pie.c
sch_plug.c
sch_prio.c
sch_qfq.c
sch_red.c net_sched: red: Avoid illegal values 2018-02-25 11:03:40 +01:00
sch_sfb.c
sch_sfq.c net_sched: red: Avoid illegal values 2018-02-25 11:03:40 +01:00
sch_tbf.c
sch_teql.c