--- x/net/tls/tls_sw.c +++ y/net/tls/tls_sw.c @@ -544,7 +544,7 @@ static int tls_do_encryption(struct sock atomic_inc(&ctx->encrypt_pending); rc = crypto_aead_encrypt(aead_req); - if (!rc || rc != -EINPROGRESS) { + if (rc && rc != -EINPROGRESS) { atomic_dec(&ctx->encrypt_pending); sge->offset -= prot->prepend_size; sge->length += prot->prepend_size;