Skip to content

Commit b7535cf

Browse files
Paolo Abenikuba-moo
authored andcommitted
mptcp: drop legacy code around RX EOF
Thanks to the previous patch -- "mptcp: consolidate fallback and non fallback state machine" -- we can finally drop the "temporary hack" used to detect rx eof. Signed-off-by: Paolo Abeni <[email protected]> Reviewed-by: Mat Martineau <[email protected]> Signed-off-by: Matthieu Baerts <[email protected]> Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 81c1d02 commit b7535cf

File tree

2 files changed

+1
-53
lines changed

2 files changed

+1
-53
lines changed

net/mptcp/protocol.c

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -894,49 +894,6 @@ bool mptcp_schedule_work(struct sock *sk)
894894
return false;
895895
}
896896

897-
void mptcp_subflow_eof(struct sock *sk)
898-
{
899-
if (!test_and_set_bit(MPTCP_WORK_EOF, &mptcp_sk(sk)->flags))
900-
mptcp_schedule_work(sk);
901-
}
902-
903-
static void mptcp_check_for_eof(struct mptcp_sock *msk)
904-
{
905-
struct mptcp_subflow_context *subflow;
906-
struct sock *sk = (struct sock *)msk;
907-
int receivers = 0;
908-
909-
mptcp_for_each_subflow(msk, subflow)
910-
receivers += !subflow->rx_eof;
911-
if (receivers)
912-
return;
913-
914-
if (!(sk->sk_shutdown & RCV_SHUTDOWN)) {
915-
/* hopefully temporary hack: propagate shutdown status
916-
* to msk, when all subflows agree on it
917-
*/
918-
WRITE_ONCE(sk->sk_shutdown, sk->sk_shutdown | RCV_SHUTDOWN);
919-
920-
smp_mb__before_atomic(); /* SHUTDOWN must be visible first */
921-
sk->sk_data_ready(sk);
922-
}
923-
924-
switch (sk->sk_state) {
925-
case TCP_ESTABLISHED:
926-
inet_sk_state_store(sk, TCP_CLOSE_WAIT);
927-
break;
928-
case TCP_FIN_WAIT1:
929-
inet_sk_state_store(sk, TCP_CLOSING);
930-
break;
931-
case TCP_FIN_WAIT2:
932-
inet_sk_state_store(sk, TCP_CLOSE);
933-
break;
934-
default:
935-
return;
936-
}
937-
mptcp_close_wake_up(sk);
938-
}
939-
940897
static struct sock *mptcp_subflow_recv_lookup(const struct mptcp_sock *msk)
941898
{
942899
struct mptcp_subflow_context *subflow;
@@ -2161,9 +2118,6 @@ static int mptcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
21612118
break;
21622119
}
21632120

2164-
if (test_and_clear_bit(MPTCP_WORK_EOF, &msk->flags))
2165-
mptcp_check_for_eof(msk);
2166-
21672121
if (sk->sk_shutdown & RCV_SHUTDOWN) {
21682122
/* race breaker: the shutdown could be after the
21692123
* previous receive queue check
@@ -2681,9 +2635,6 @@ static void mptcp_worker(struct work_struct *work)
26812635

26822636
mptcp_pm_nl_work(msk);
26832637

2684-
if (test_and_clear_bit(MPTCP_WORK_EOF, &msk->flags))
2685-
mptcp_check_for_eof(msk);
2686-
26872638
mptcp_check_send_data_fin(sk);
26882639
mptcp_check_data_fin_ack(sk);
26892640
mptcp_check_data_fin(sk);

net/mptcp/protocol.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@
113113
/* MPTCP socket atomic flags */
114114
#define MPTCP_NOSPACE 1
115115
#define MPTCP_WORK_RTX 2
116-
#define MPTCP_WORK_EOF 3
117116
#define MPTCP_FALLBACK_DONE 4
118117
#define MPTCP_WORK_CLOSE_SUBFLOW 5
119118

@@ -476,14 +475,13 @@ struct mptcp_subflow_context {
476475
send_mp_fail : 1,
477476
send_fastclose : 1,
478477
send_infinite_map : 1,
479-
rx_eof : 1,
480478
remote_key_valid : 1, /* received the peer key from */
481479
disposable : 1, /* ctx can be free at ulp release time */
482480
stale : 1, /* unable to snd/rcv data, do not use for xmit */
483481
local_id_valid : 1, /* local_id is correctly initialized */
484482
valid_csum_seen : 1, /* at least one csum validated */
485483
is_mptfo : 1, /* subflow is doing TFO */
486-
__unused : 8;
484+
__unused : 9;
487485
enum mptcp_data_avail data_avail;
488486
u32 remote_nonce;
489487
u64 thmac;
@@ -720,7 +718,6 @@ static inline u64 mptcp_expand_seq(u64 old_seq, u64 cur_seq, bool use_64bit)
720718
void __mptcp_check_push(struct sock *sk, struct sock *ssk);
721719
void __mptcp_data_acked(struct sock *sk);
722720
void __mptcp_error_report(struct sock *sk);
723-
void mptcp_subflow_eof(struct sock *sk);
724721
bool mptcp_update_rcv_data_fin(struct mptcp_sock *msk, u64 data_fin_seq, bool use_64bit);
725722
static inline bool mptcp_data_fin_enabled(const struct mptcp_sock *msk)
726723
{

0 commit comments

Comments
 (0)