diff options
Diffstat (limited to 'arch/arm64/crypto/ghash-ce-glue.c')
-rw-r--r-- | arch/arm64/crypto/ghash-ce-glue.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm64/crypto/ghash-ce-glue.c b/arch/arm64/crypto/ghash-ce-glue.c index b92baf3f68c7..833ec1e3f3e9 100644 --- a/arch/arm64/crypto/ghash-ce-glue.c +++ b/arch/arm64/crypto/ghash-ce-glue.c | |||
@@ -67,11 +67,12 @@ static int ghash_update(struct shash_desc *desc, const u8 *src, | |||
67 | blocks = len / GHASH_BLOCK_SIZE; | 67 | blocks = len / GHASH_BLOCK_SIZE; |
68 | len %= GHASH_BLOCK_SIZE; | 68 | len %= GHASH_BLOCK_SIZE; |
69 | 69 | ||
70 | kernel_neon_begin_partial(6); | 70 | kernel_neon_begin_partial(8); |
71 | pmull_ghash_update(blocks, ctx->digest, src, key, | 71 | pmull_ghash_update(blocks, ctx->digest, src, key, |
72 | partial ? ctx->buf : NULL); | 72 | partial ? ctx->buf : NULL); |
73 | kernel_neon_end(); | 73 | kernel_neon_end(); |
74 | src += blocks * GHASH_BLOCK_SIZE; | 74 | src += blocks * GHASH_BLOCK_SIZE; |
75 | partial = 0; | ||
75 | } | 76 | } |
76 | if (len) | 77 | if (len) |
77 | memcpy(ctx->buf + partial, src, len); | 78 | memcpy(ctx->buf + partial, src, len); |
@@ -88,7 +89,7 @@ static int ghash_final(struct shash_desc *desc, u8 *dst) | |||
88 | 89 | ||
89 | memset(ctx->buf + partial, 0, GHASH_BLOCK_SIZE - partial); | 90 | memset(ctx->buf + partial, 0, GHASH_BLOCK_SIZE - partial); |
90 | 91 | ||
91 | kernel_neon_begin_partial(6); | 92 | kernel_neon_begin_partial(8); |
92 | pmull_ghash_update(1, ctx->digest, ctx->buf, key, NULL); | 93 | pmull_ghash_update(1, ctx->digest, ctx->buf, key, NULL); |
93 | kernel_neon_end(); | 94 | kernel_neon_end(); |
94 | } | 95 | } |