]> 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)
commit3bae9847f33308271272b6de4de657de0cd4cb63
tree22796b798d2a4ed571c1bf4f48e1a7c8576ec0f3
parent0cb4c50bc85505d790871475b57d446ec55a9c05
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