diff options
Diffstat (limited to 'net/tls/tls_sw.c')
| -rw-r--r-- | net/tls/tls_sw.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index 95ab5545a931..845c628ac1b2 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -1295,6 +1295,12 @@ static struct sk_buff *tls_wait_data(struct sock *sk, struct sk_psock *psock,  			return NULL;  		} +		if (!skb_queue_empty(&sk->sk_receive_queue)) { +			__strp_unpause(&ctx->strp); +			if (ctx->recv_pkt) +				return ctx->recv_pkt; +		} +  		if (sk->sk_shutdown & RCV_SHUTDOWN)  			return NULL; @@ -1913,7 +1919,7 @@ pick_next_record:  			 * another message type  			 */  			msg->msg_flags |= MSG_EOR; -			if (ctx->control != TLS_RECORD_TYPE_DATA) +			if (control != TLS_RECORD_TYPE_DATA)  				goto recv_end;  		} else {  			break; | 
