Commit 037db6ea authored by Paolo Abeni's avatar Paolo Abeni Committed by David S. Miller

mptcp: cleanup writer wake-up

After commit 5cf92bba ("mptcp: re-enable sndbuf autotune"), the
MPTCP_NOSPACE bit is redundant: it is always set and cleared together with
SOCK_NOSPACE.

Let's drop the first and always relay on the latter, dropping a bunch
of useless code.
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Reviewed-by: default avatarMat Martineau <martineau@kernel.org>
Signed-off-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 26b5df99
...@@ -1692,15 +1692,6 @@ static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk, bool ...@@ -1692,15 +1692,6 @@ static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk, bool
} }
} }
static void mptcp_set_nospace(struct sock *sk)
{
/* enable autotune */
set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
/* will be cleared on avail space */
set_bit(MPTCP_NOSPACE, &mptcp_sk(sk)->flags);
}
static int mptcp_disconnect(struct sock *sk, int flags); static int mptcp_disconnect(struct sock *sk, int flags);
static int mptcp_sendmsg_fastopen(struct sock *sk, struct msghdr *msg, static int mptcp_sendmsg_fastopen(struct sock *sk, struct msghdr *msg,
...@@ -1874,7 +1865,7 @@ static int mptcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) ...@@ -1874,7 +1865,7 @@ static int mptcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
continue; continue;
wait_for_memory: wait_for_memory:
mptcp_set_nospace(sk); set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
__mptcp_push_pending(sk, msg->msg_flags); __mptcp_push_pending(sk, msg->msg_flags);
ret = sk_stream_wait_memory(sk, &timeo); ret = sk_stream_wait_memory(sk, &timeo);
if (ret) if (ret)
...@@ -3945,8 +3936,8 @@ static __poll_t mptcp_check_writeable(struct mptcp_sock *msk) ...@@ -3945,8 +3936,8 @@ static __poll_t mptcp_check_writeable(struct mptcp_sock *msk)
if (sk_stream_is_writeable(sk)) if (sk_stream_is_writeable(sk))
return EPOLLOUT | EPOLLWRNORM; return EPOLLOUT | EPOLLWRNORM;
mptcp_set_nospace(sk); set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
smp_mb__after_atomic(); /* msk->flags is changed by write_space cb */ smp_mb__after_atomic(); /* NOSPACE is changed by mptcp_write_space() */
if (sk_stream_is_writeable(sk)) if (sk_stream_is_writeable(sk))
return EPOLLOUT | EPOLLWRNORM; return EPOLLOUT | EPOLLWRNORM;
......
...@@ -113,10 +113,9 @@ ...@@ -113,10 +113,9 @@
#define MPTCP_RST_TRANSIENT BIT(0) #define MPTCP_RST_TRANSIENT BIT(0)
/* MPTCP socket atomic flags */ /* MPTCP socket atomic flags */
#define MPTCP_NOSPACE 1 #define MPTCP_WORK_RTX 1
#define MPTCP_WORK_RTX 2 #define MPTCP_FALLBACK_DONE 2
#define MPTCP_FALLBACK_DONE 4 #define MPTCP_WORK_CLOSE_SUBFLOW 3
#define MPTCP_WORK_CLOSE_SUBFLOW 5
/* MPTCP socket release cb flags */ /* MPTCP socket release cb flags */
#define MPTCP_PUSH_PENDING 1 #define MPTCP_PUSH_PENDING 1
...@@ -810,12 +809,9 @@ static inline bool mptcp_data_fin_enabled(const struct mptcp_sock *msk) ...@@ -810,12 +809,9 @@ static inline bool mptcp_data_fin_enabled(const struct mptcp_sock *msk)
static inline void mptcp_write_space(struct sock *sk) static inline void mptcp_write_space(struct sock *sk)
{ {
if (sk_stream_is_writeable(sk)) { /* pairs with memory barrier in mptcp_poll */
/* pairs with memory barrier in mptcp_poll */ smp_mb();
smp_mb(); sk_stream_write_space(sk);
if (test_and_clear_bit(MPTCP_NOSPACE, &mptcp_sk(sk)->flags))
sk_stream_write_space(sk);
}
} }
static inline void __mptcp_sync_sndbuf(struct sock *sk) static inline void __mptcp_sync_sndbuf(struct sock *sk)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment