]> git.baikalelectronics.ru Git - kernel.git/commit
mptcp: use mptcp release_cb for delayed tasks
authorPaolo Abeni <pabeni@redhat.com>
Fri, 27 Nov 2020 10:10:27 +0000 (11:10 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 1 Dec 2020 01:55:23 +0000 (17:55 -0800)
commit5b096ef79bdd74c60f9b8a2c2faaae7820c90386
tree22796b798d2a4ed571c1bf4f48e1a7c8576ec0f3
parent9d1dd46134d60ad1569cd250f91ec28576eceaae
mptcp: use mptcp release_cb for delayed tasks

We have some tasks triggered by the subflow receive path
which require to access the msk socket status, specifically:
mptcp_clean_una() and mptcp_push_pending()

We have almost everything in place to defer to the msk
release_cb such tasks when the msk sock is owned.

Since the worker is no more used to clean the acked data,
for fallback sockets we need to explicitly flush them.

As an added bonus we can move the wake-up code in __mptcp_clean_una(),
simplify a lot mptcp_poll() and move the timer update under
the data lock.

The worker is now used only to process and send DATA_FIN
packets and do the mptcp-level retransmissions.

Acked-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/options.c
net/mptcp/protocol.c
net/mptcp/protocol.h
net/mptcp/subflow.c