linux/net/mptcp
Paolo Abeni e9d09baca6 mptcp: avoid atomic bit manipulation when possible
Currently the msk->flags bitmask carries both state for the
mptcp_release_cb() - mostly touched under the mptcp data lock
- and others state info touched even outside such lock scope.

As a consequence, msk->flags is always manipulated with
atomic operations.

This change splits such bitmask in two separate fields, so
that we use plain bit operations when touching the
cb-related info.

The MPTCP_PUSH_PENDING bit needs additional care, as it is the
only CB related field currently accessed either under the mptcp
data lock or the mptcp socket lock.
Let's add another mask just for such bit's sake.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-01-07 11:27:07 +00: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: faster active backup recovery 2021-08-14 11:37:25 +01:00
diag.c mptcp: allow dumping subflow context to userspace 2020-03-29 22:14:48 -07:00
Kconfig kunit: mptcp: adhere to KUNIT formatting standard 2021-04-16 17:10:40 -07:00
Makefile kunit: mptcp: adhere to KUNIT formatting standard 2021-04-16 17:10:40 -07:00
mib.c mptcp: use batch snmp operations in mptcp_seq_show() 2021-09-30 14:17:10 +01:00
mib.h mptcp: add the mibs for MP_FAIL 2021-08-25 11:02:35 +01:00
mptcp_diag.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-09-30 14:49:21 -07:00
options.c mptcp: clean-up MPJ option writing 2022-01-07 11:27:07 +00:00
pm.c mptcp: do not block subflows creation on errors 2022-01-07 11:27:07 +00:00
pm_netlink.c mptcp: cleanup MPJ subflow list handling 2022-01-07 11:27:07 +00:00
protocol.c mptcp: avoid atomic bit manipulation when possible 2022-01-07 11:27:07 +00:00
protocol.h mptcp: avoid atomic bit manipulation when possible 2022-01-07 11:27:07 +00:00
sockopt.c mptcp: cleanup MPJ subflow list handling 2022-01-07 11:27:07 +00:00
subflow.c mptcp: avoid atomic bit manipulation when possible 2022-01-07 11:27:07 +00: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