diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2024-10-28 15:55:48 -0700 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2024-10-28 15:55:48 -0700 |
| commit | 825199bf2017e4549586f038ede9acec68de883d (patch) | |
| tree | 797f92f5cfd258a8955d207c9c8e9a18e2840ef0 /net/mptcp/options.c | |
| parent | fbb26ecc550200afcc15b121218fe7ec29bae219 (diff) | |
| parent | 46a3282b87b1f9a88534eba59ecf852b2a21289c (diff) | |
Merge branch 'mptcp-various-small-improvements'
Matthieu Baerts says:
====================
mptcp: various small improvements
The following patches are not related to each other.
- Patch 1: Avoid sending advertisements on stale subflows, reducing
risks on loosing them.
- Patch 2: Annotate data-races around subflow->fully_established, using
READ/WRITE_ONCE().
- Patch 3: A small clean-up on the PM side, avoiding a bit of duplicated
code.
- Patch 4: Use "Middlebox interference" MP_TCPRST code in reaction to a
packet received without MPTCP options in the middle of a connection.
====================
Link: https://patch.msgid.link/20241021-net-next-mptcp-misc-6-13-v1-0-1ef02746504a@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/mptcp/options.c')
| -rw-r--r-- | net/mptcp/options.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 370c3836b771..1603b3702e22 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -461,7 +461,7 @@ static bool mptcp_established_options_mp(struct sock *sk, struct sk_buff *skb, return false; /* MPC/MPJ needed only on 3rd ack packet, DATA_FIN and TCP shutdown take precedence */ - if (subflow->fully_established || snd_data_fin_enable || + if (READ_ONCE(subflow->fully_established) || snd_data_fin_enable || subflow->snd_isn != TCP_SKB_CB(skb)->seq || sk->sk_state != TCP_ESTABLISHED) return false; @@ -930,7 +930,7 @@ static bool check_fully_established(struct mptcp_sock *msk, struct sock *ssk, /* here we can process OoO, in-window pkts, only in-sequence 4th ack * will make the subflow fully established */ - if (likely(subflow->fully_established)) { + if (likely(READ_ONCE(subflow->fully_established))) { /* on passive sockets, check for 3rd ack retransmission * note that msk is always set by subflow_syn_recv_sock() * for mp_join subflows |
