struct tls_sw_context_rx *ctx = tls_sw_ctx_rx(tls_ctx);
        struct tls_prot_info *prot = &tls_ctx->prot_info;
        struct sk_psock *psock;
-       int num_async, pending;
        unsigned char control = 0;
        ssize_t decrypted = 0;
        struct strp_msg *rxm;
        struct tls_msg *tlm;
        struct sk_buff *skb;
        ssize_t copied = 0;
+       bool async = false;
        int target, err = 0;
        long timeo;
        bool is_kvec = iov_iter_is_kvec(&msg->msg_iter);
        timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT);
 
        decrypted = 0;
-       num_async = 0;
        while (len && (decrypted + copied < target || ctx->recv_pkt)) {
                struct tls_decrypt_arg darg = {};
                bool retain_skb = false;
                int to_decrypt, chunk;
-               bool async;
 
                skb = tls_wait_data(sk, psock, flags & MSG_DONTWAIT, timeo, &err);
                if (!skb) {
                        goto recv_end;
                }
 
-               if (err == -EINPROGRESS) {
+               if (err == -EINPROGRESS)
                        async = true;
-                       num_async++;
-               }
 
                /* If the type of records being processed is not known yet,
                 * set it to record type just dequeued. If it is already known,
        }
 
 recv_end:
-       if (num_async) {
+       if (async) {
+               int pending;
+
                /* Wait for all previously submitted records to be decrypted */
                spin_lock_bh(&ctx->decrypt_compl_lock);
                reinit_completion(&ctx->async_wait.completion);