|
@@ -125,6 +125,10 @@ static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg,
|
|
|
/* AIO operation */
|
|
|
sock_hold(sk);
|
|
|
areq->iocb = msg->msg_iocb;
|
|
|
+
|
|
|
+ /* Remember output size that will be generated. */
|
|
|
+ areq->outlen = len;
|
|
|
+
|
|
|
skcipher_request_set_callback(&areq->cra_u.skcipher_req,
|
|
|
CRYPTO_TFM_REQ_MAY_SLEEP,
|
|
|
af_alg_async_cb, areq);
|
|
@@ -133,12 +137,8 @@ static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg,
|
|
|
crypto_skcipher_decrypt(&areq->cra_u.skcipher_req);
|
|
|
|
|
|
/* AIO operation in progress */
|
|
|
- if (err == -EINPROGRESS || err == -EBUSY) {
|
|
|
- /* Remember output size that will be generated. */
|
|
|
- areq->outlen = len;
|
|
|
-
|
|
|
+ if (err == -EINPROGRESS || err == -EBUSY)
|
|
|
return -EIOCBQUEUED;
|
|
|
- }
|
|
|
|
|
|
sock_put(sk);
|
|
|
} else {
|