diff options
author | Eric Dumazet <edumazet@google.com> | 2018-05-02 10:03:30 -0700 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2018-10-21 08:45:52 +0100 |
commit | 461b95b34d30f69008d9126f25a58a0a36dab7d7 (patch) | |
tree | d67226af2aceb80c2717b56bfa7d98ccc15ee422 /net/hsr | |
parent | 78216b0b66ba87b2f90a0c02d5eb1a4c5f5a0e03 (diff) | |
download | linux-stable-461b95b34d30f69008d9126f25a58a0a36dab7d7.tar.gz linux-stable-461b95b34d30f69008d9126f25a58a0a36dab7d7.tar.bz2 linux-stable-461b95b34d30f69008d9126f25a58a0a36dab7d7.zip |
net_sched: fq: take care of throttled flows before reuse
commit 7df40c2673a1307c3260aab6f9d4b9bf97ca8fd7 upstream.
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 fc59d5bdf1e3 ("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: fc59d5bdf1e3 ("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: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'net/hsr')
0 files changed, 0 insertions, 0 deletions