summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Blum <thorsten.blum@linux.dev>2026-03-30 20:39:25 +0300
committerHerbert Xu <herbert@gondor.apana.org.au>2026-04-12 11:46:29 +0300
commit3787fb7697a942baa25361bfc3390575e5659db8 (patch)
treebed8cab85993931fb3f42a89c54200dad971c6a0
parent1ee57ab93b75eb59f426aef37b5498a7ffc28278 (diff)
downloadlinux-3787fb7697a942baa25361bfc3390575e5659db8.tar.xz
crypto: qce - simplify qce_xts_swapiv()
Declare 'swap' as zero-initialized and use a single index variable to simplify the byte-swapping loop in qce_xts_swapiv(). Add a comment for clarity. Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> Reviewed-by: Bjorn Andersson <andersson@kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/qce/common.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/crypto/qce/common.c b/drivers/crypto/qce/common.c
index 04253a8d3340..54a78a57f630 100644
--- a/drivers/crypto/qce/common.c
+++ b/drivers/crypto/qce/common.c
@@ -280,17 +280,17 @@ static u32 qce_encr_cfg(unsigned long flags, u32 aes_key_size)
#ifdef CONFIG_CRYPTO_DEV_QCE_SKCIPHER
static void qce_xts_swapiv(__be32 *dst, const u8 *src, unsigned int ivsize)
{
- u8 swap[QCE_AES_IV_LENGTH];
- u32 i, j;
+ u8 swap[QCE_AES_IV_LENGTH] = {0};
+ unsigned int i, offset;
if (ivsize > QCE_AES_IV_LENGTH)
return;
- memset(swap, 0, QCE_AES_IV_LENGTH);
+ offset = QCE_AES_IV_LENGTH - ivsize;
- for (i = (QCE_AES_IV_LENGTH - ivsize), j = ivsize - 1;
- i < QCE_AES_IV_LENGTH; i++, j--)
- swap[i] = src[j];
+ /* Reverse and right-align IV bytes. */
+ for (i = 0; i < ivsize; i++)
+ swap[offset + i] = src[ivsize - 1 - i];
qce_cpu_to_be32p_array(dst, swap, QCE_AES_IV_LENGTH);
}