diff options
Diffstat (limited to 'crypto/algif_skcipher.c')
-rw-r--r-- | crypto/algif_skcipher.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c index 6fb595cd63ac..baef9bfccdda 100644 --- a/crypto/algif_skcipher.c +++ b/crypto/algif_skcipher.c | |||
@@ -125,6 +125,10 @@ static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg, | |||
125 | /* AIO operation */ | 125 | /* AIO operation */ |
126 | sock_hold(sk); | 126 | sock_hold(sk); |
127 | areq->iocb = msg->msg_iocb; | 127 | areq->iocb = msg->msg_iocb; |
128 | |||
129 | /* Remember output size that will be generated. */ | ||
130 | areq->outlen = len; | ||
131 | |||
128 | skcipher_request_set_callback(&areq->cra_u.skcipher_req, | 132 | skcipher_request_set_callback(&areq->cra_u.skcipher_req, |
129 | CRYPTO_TFM_REQ_MAY_SLEEP, | 133 | CRYPTO_TFM_REQ_MAY_SLEEP, |
130 | af_alg_async_cb, areq); | 134 | af_alg_async_cb, areq); |
@@ -133,12 +137,8 @@ static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg, | |||
133 | crypto_skcipher_decrypt(&areq->cra_u.skcipher_req); | 137 | crypto_skcipher_decrypt(&areq->cra_u.skcipher_req); |
134 | 138 | ||
135 | /* AIO operation in progress */ | 139 | /* AIO operation in progress */ |
136 | if (err == -EINPROGRESS || err == -EBUSY) { | 140 | if (err == -EINPROGRESS || err == -EBUSY) |
137 | /* Remember output size that will be generated. */ | ||
138 | areq->outlen = len; | ||
139 | |||
140 | return -EIOCBQUEUED; | 141 | return -EIOCBQUEUED; |
141 | } | ||
142 | 142 | ||
143 | sock_put(sk); | 143 | sock_put(sk); |
144 | } else { | 144 | } else { |