summaryrefslogtreecommitdiff
path: root/crypto/chacha20_generic.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>2018-12-20 15:35:07 +0100
committerBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>2018-12-20 15:35:07 +0100
commit6e603ea6e028001e3d56dc56822cb9c1cf2908f9 (patch)
treeecde2ff65bcb3ef7f0379d9ccc5eb30d6033f8f3 /crypto/chacha20_generic.c
parent50d4fb1dc129955ab571c1dd7bf14cd07cc5984d (diff)
parent7271e588c712517a184f75744b6e94d05c8251a4 (diff)
downloadlinux-crypto-6e603ea6e028001e3d56dc56822cb9c1cf2908f9.tar.gz
linux-crypto-6e603ea6e028001e3d56dc56822cb9c1cf2908f9.zip
Merge tag 'v4.20-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into fbdev-for-next
Linux 4.20-rc7 Sync with upstream (which now contains fbdev-v4.20 changes) to prepare a base for fbdev-v4.21 changes.
Diffstat (limited to 'crypto/chacha20_generic.c')
-rw-r--r--crypto/chacha20_generic.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/crypto/chacha20_generic.c b/crypto/chacha20_generic.c
index e451c3cb..3ae96587 100644
--- a/crypto/chacha20_generic.c
+++ b/crypto/chacha20_generic.c
@@ -18,20 +18,21 @@
static void chacha20_docrypt(u32 *state, u8 *dst, const u8 *src,
unsigned int bytes)
{
- u32 stream[CHACHA20_BLOCK_WORDS];
+ /* aligned to potentially speed up crypto_xor() */
+ u8 stream[CHACHA20_BLOCK_SIZE] __aligned(sizeof(long));
if (dst != src)
memcpy(dst, src, bytes);
while (bytes >= CHACHA20_BLOCK_SIZE) {
chacha20_block(state, stream);
- crypto_xor(dst, (const u8 *)stream, CHACHA20_BLOCK_SIZE);
+ crypto_xor(dst, stream, CHACHA20_BLOCK_SIZE);
bytes -= CHACHA20_BLOCK_SIZE;
dst += CHACHA20_BLOCK_SIZE;
}
if (bytes) {
chacha20_block(state, stream);
- crypto_xor(dst, (const u8 *)stream, bytes);
+ crypto_xor(dst, stream, bytes);
}
}