OpenCloudOS-Kernel/net/mptcp
Mat Martineau d9fb797046 mptcp: Do not traverse the subflow connection list without lock
The MPTCP socket's conn_list (list of subflows) requires the socket lock
to access. The MP_FAIL timeout code added such an access, where it would
check the list of subflows both in timer context and (later) in workqueue
context where the socket lock is held.

Rather than check the list twice, remove the check in the timeout
handler and only depend on the check in the workqueue. Also remove the
MPTCP_FAIL_NO_RESPONSE flag, since mptcp_mp_fail_no_response() has
insignificant overhead and can be checked on each worker run.

Fixes: 49fa1919d6 ("mptcp: reset subflow when MP_FAIL doesn't respond")
Reported-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-05-19 20:05:07 -07:00
..
Kconfig kunit: mptcp: adhere to KUNIT formatting standard 2021-04-16 17:10:40 -07:00
Makefile mptcp: handle local addrs announced by userspace PMs 2022-05-04 10:49:31 +01:00
crypto.c kunit: mptcp: adhere to KUNIT formatting standard 2021-04-16 17:10:40 -07:00
crypto_test.c mptcp: move crypto test to KUNIT 2020-06-26 16:21:39 -07:00
ctrl.c mptcp: Add a per-namespace sysctl to set the default path manager type 2022-04-29 17:25:14 -07:00
diag.c mptcp: allow dumping subflow context to userspace 2020-03-29 22:14:48 -07:00
mib.c mptcp: add more offered MIBs counter 2022-05-05 19:00:16 -07:00
mib.h mptcp: add more offered MIBs counter 2022-05-05 19:00:16 -07:00
mptcp_diag.c net: inet: Retire port only listening_hash 2022-05-12 16:52:18 -07:00
options.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-05-19 11:23:59 -07:00
pm.c mptcp: Check for orphaned subflow before handling MP_FAIL timer 2022-05-19 20:05:07 -07:00
pm_netlink.c mptcp: netlink: allow userspace-driven subflow establishment 2022-05-04 10:49:32 +01:00
pm_userspace.c mptcp: netlink: allow userspace-driven subflow establishment 2022-05-04 10:49:32 +01:00
protocol.c mptcp: Do not traverse the subflow connection list without lock 2022-05-19 20:05:07 -07:00
protocol.h mptcp: Do not traverse the subflow connection list without lock 2022-05-19 20:05:07 -07:00
sockopt.c mptcp: sockopt: add TCP_DEFER_ACCEPT support 2022-05-16 13:11:31 -07:00
subflow.c mptcp: Check for orphaned subflow before handling MP_FAIL timer 2022-05-19 20:05:07 -07:00
syncookies.c mptcp: don't return sockets in foreign netns 2021-09-24 10:51:36 +01:00
token.c mptcp: full disconnect implementation 2022-01-07 11:27:06 +00:00
token_test.c mptcp: don't return sockets in foreign netns 2021-09-24 10:51:36 +01:00