From: Geliang Tang <[email protected]>

tls_sw_recvmsg() doesn't work in nonblock mode, it returns -EAGAIN in
that case. This patch fixes it, always wait for receiving the next skb
for sk_redirect.

Signed-off-by: Geliang Tang <[email protected]>
---
 net/tls/tls_sw.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index 305a412785f5..d2558856ceeb 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -2099,6 +2099,8 @@ int tls_sw_recvmsg(struct sock *sk,
                                        rxm->full_len = 0;
                                        if (err == __SK_DROP)
                                                consume_skb(skb);
+                                       if (err == __SK_REDIRECT && flags & 
MSG_DONTWAIT)
+                                               tls_rx_rec_wait(sk, psock, 
false, released);
                                        continue;
                                }
                        }
-- 
2.43.0


Reply via email to