]> 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)
commita911092a2ebe9c588178754538d20edcc84487c8
treef81177ef63d19aad1a1521f17db4261b846cd9e7
parent1b8a69e02dff0e1a64447dfe0d11ff371d52eeb1
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: 37b496f4b17e ("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