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