diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-02-10 21:24:55 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-02-10 21:24:55 -0800 |
commit | d5a1e7233d3fe74d6c85052b8aa7b8ef6a3e96f8 (patch) | |
tree | 74e1783e6852a43c1c4c337d30890d2b7fa028b8 /crypto | |
parent | 09079c19a2d0e249a69ab1e54925e56c4950cca1 (diff) | |
download | linux-crypto-d5a1e7233d3fe74d6c85052b8aa7b8ef6a3e96f8.tar.gz linux-crypto-d5a1e7233d3fe74d6c85052b8aa7b8ef6a3e96f8.zip |
crypto: Fix regressions caused by iov_iter changes.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | crypto/af_alg.c | 2 | ||||
-rw-r--r-- | crypto/algif_skcipher.c | 7 |
2 files changed, 4 insertions, 5 deletions
diff --git a/crypto/af_alg.c b/crypto/af_alg.c index eb78fe8a..5b11d645 100644 --- a/crypto/af_alg.c +++ b/crypto/af_alg.c @@ -348,7 +348,7 @@ int af_alg_make_sg(struct af_alg_sgl *sgl, struct iov_iter *iter, int len) if (n < 0) return n; - npages = PAGE_ALIGN(off + n); + npages = DIV_ROUND_UP(off + n, PAGE_SIZE); if (WARN_ON(npages == 0)) return -EINVAL; diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c index 37110fd6..0eb31a69 100644 --- a/crypto/algif_skcipher.c +++ b/crypto/algif_skcipher.c @@ -427,11 +427,11 @@ static int skcipher_recvmsg(struct kiocb *unused, struct socket *sock, struct skcipher_sg_list *sgl; struct scatterlist *sg; int err = -EAGAIN; - int used; long copied = 0; lock_sock(sk); while (iov_iter_count(&msg->msg_iter)) { + int used; sgl = list_first_entry(&ctx->tsgl, struct skcipher_sg_list, list); sg = sgl->sg; @@ -439,14 +439,13 @@ static int skcipher_recvmsg(struct kiocb *unused, struct socket *sock, while (!sg->length) sg++; - used = ctx->used; - if (!used) { + if (!ctx->used) { err = skcipher_wait_for_data(sk, flags); if (err) goto unlock; } - used = min_t(unsigned long, used, iov_iter_count(&msg->msg_iter)); + used = min_t(unsigned long, ctx->used, iov_iter_count(&msg->msg_iter)); used = af_alg_make_sg(&ctx->rsgl, &msg->msg_iter, used); err = used; |