[PATCH mptcp-next 3/3] tls: use recv_should_stop helper

Geliang Tang posted 3 patches 23 hours ago
[PATCH mptcp-next 3/3] tls: use recv_should_stop helper
Posted by Geliang Tang 23 hours ago
From: Geliang Tang <tanggeliang@kylinos.cn>

Use the newly added tcp_recv_should_stop() helper in tls_rx_rec_wait() to
check whether to stop receiving.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
 net/tls/tls_sw.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index 9937d4c810f2..26517c317ee7 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -1377,14 +1377,12 @@ tls_rx_rec_wait(struct sock *sk, struct sk_psock *psock, bool nonblock,
 				break;
 		}
 
-		if (sk->sk_shutdown & RCV_SHUTDOWN)
-			return 0;
-
-		if (sock_flag(sk, SOCK_DONE))
-			return 0;
-
-		if (!timeo)
-			return -EAGAIN;
+		ret = tcp_recv_should_stop(sk, timeo);
+		if (ret < 0) {
+			if (ret == -ENETDOWN || ret == -ESHUTDOWN)
+				ret = 0;
+			return ret;
+		}
 
 		released = true;
 		add_wait_queue(sk_sleep(sk), &wait);
@@ -1395,10 +1393,6 @@ tls_rx_rec_wait(struct sock *sk, struct sk_psock *psock, bool nonblock,
 				    &wait);
 		sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk);
 		remove_wait_queue(sk_sleep(sk), &wait);
-
-		/* Handle signals */
-		if (signal_pending(current))
-			return sock_intr_errno(timeo);
 	}
 
 	if (unlikely(!tls_strp_msg_load(&ctx->strp, released)))
-- 
2.51.0