crypto: marvell - Don't copy IV vectors from the _process op for ciphers
authorRomain Perier <romain.perier@free-electrons.com>
Thu, 28 Jul 2016 09:59:43 +0000 (11:59 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 29 Jul 2016 10:30:17 +0000 (18:30 +0800)
The IV output vectors should only be copied from the _complete operation
and not from the _process operation, i.e only from the operation that is
designed to copy the result of the request to the right location. This
copy is already done in the _complete operation, so this commit removes
the duplicated code in the _process op.

Fixes: 3610d6cd5231 ("crypto: marvell - Add a complete...")
Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/marvell/cipher.c

index 8391aba04f2b8cf00ee83a3ed38bb0e0aa815594..d19dc9614e6e42aab67fbd5b952db9abe4b568de 100644 (file)
@@ -139,20 +139,11 @@ static int mv_cesa_ablkcipher_process(struct crypto_async_request *req,
        struct ablkcipher_request *ablkreq = ablkcipher_request_cast(req);
        struct mv_cesa_ablkcipher_req *creq = ablkcipher_request_ctx(ablkreq);
        struct mv_cesa_req *basereq = &creq->base;
-       unsigned int ivsize;
-       int ret;
 
        if (mv_cesa_req_get_type(basereq) == CESA_STD_REQ)
                return mv_cesa_ablkcipher_std_process(ablkreq, status);
 
-       ret = mv_cesa_dma_process(basereq, status);
-       if (ret)
-               return ret;
-
-       ivsize = crypto_ablkcipher_ivsize(crypto_ablkcipher_reqtfm(ablkreq));
-       memcpy_fromio(ablkreq->info, basereq->chain.last->data, ivsize);
-
-       return 0;
+       return mv_cesa_dma_process(basereq, status);
 }
 
 static void mv_cesa_ablkcipher_step(struct crypto_async_request *req)