diff options
-rw-r--r-- | net/tls/tls_sw.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index 461734a27297..fd19047fa6c6 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -1775,14 +1775,10 @@ int tls_sw_recvmsg(struct sock *sk, skb = tls_wait_data(sk, psock, flags & MSG_DONTWAIT, timeo, &err); if (!skb) { if (psock) { - int ret = sk_msg_recvmsg(sk, psock, msg, len, - flags); - - if (ret > 0) { - decrypted += ret; - len -= ret; - continue; - } + chunk = sk_msg_recvmsg(sk, psock, msg, len, + flags); + if (chunk > 0) + goto leave_on_list; } goto recv_end; } |