]> git.baikalelectronics.ru Git - kernel.git/commit
mptcp: free acked data before waiting for more memory
authorFlorian Westphal <fw@strlen.de>
Tue, 25 Aug 2020 23:31:05 +0000 (01:31 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Aug 2020 22:48:44 +0000 (15:48 -0700)
commit1cec170d458b1d18f6f1654ca84c0804a701c5ef
treef81177ef63d19aad1a1521f17db4261b846cd9e7
parent09e31cf0c528dac3358a081dc4e773d1b3de1bc9
mptcp: free acked data before waiting for more memory

After subflow lock is dropped, more wmem might have been made available.

This fixes a deadlock in mptcp_connect.sh 'mmap' mode: wmem is exhausted.
But as the mptcp socket holds on to already-acked data (for retransmit)
no wakeup will occur.

Using 'goto restart' calls mptcp_clean_una(sk) which will free pages
that have been acked completely in the mean time.

Fixes: fb529e62d3f3 ("mptcp: break and restart in case mptcp sndbuf is full")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mptcp/protocol.c