summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/nx/nx-sha256.c
diff options
context:
space:
mode:
authorMarcelo Cerri <mhcerri@linux.vnet.ibm.com>2013-08-29 16:36:40 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2013-09-02 12:32:56 +0200
commit069fa0453f9dc86fd97dd5b3f5fda4724ed5ff69 (patch)
tree7ceed83003c64dd51c5a99fafef144bf8320e124 /drivers/crypto/nx/nx-sha256.c
parentcrypto: nx - fix GCM for zero length messages (diff)
downloadlinux-069fa0453f9dc86fd97dd5b3f5fda4724ed5ff69.tar.xz
linux-069fa0453f9dc86fd97dd5b3f5fda4724ed5ff69.zip
crypto: nx - fix SHA-2 for chunks bigger than block size
Each call to the co-processor, with exception of the last call, needs to send data that is multiple of block size. As consequence, any remaining data is kept in the internal NX context. This patch fixes a bug in the driver that causes it to save incorrect data into the context when data is bigger than the block size. Reviewed-by: Joy Latten <jmlatten@linux.vnet.ibm.com> Signed-off-by: Marcelo Cerri <mhcerri@linux.vnet.ibm.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/nx/nx-sha256.c')
-rw-r--r--drivers/crypto/nx/nx-sha256.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/crypto/nx/nx-sha256.c b/drivers/crypto/nx/nx-sha256.c
index 6547a7104bf6..da0b24a7633f 100644
--- a/drivers/crypto/nx/nx-sha256.c
+++ b/drivers/crypto/nx/nx-sha256.c
@@ -129,7 +129,7 @@ static int nx_sha256_update(struct shash_desc *desc, const u8 *data,
NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION;
total -= to_process;
- data += to_process;
+ data += to_process - sctx->count;
sctx->count = 0;
in_sg = nx_ctx->in_sg;
} while (leftover >= SHA256_BLOCK_SIZE);