From: Eric Biggers <ebiggers@kernel.org>
To: linux-crypto@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, Ard Biesheuvel <ardb@kernel.org>,
"Jason A . Donenfeld" <Jason@zx2c4.com>,
Herbert Xu <herbert@gondor.apana.org.au>,
x86@kernel.org, Eric Biggers <ebiggers@kernel.org>
Subject: [PATCH 1/3] lib/crypto: x86/aes: Set RNDKEY in aes_cbc_encrypt_aesni()
Date: Wed, 30 Sep 2026 10:05:40 -0700 [thread overview]
Message-ID: <20260930170542.140403-2-ebiggers@kernel.org> (raw)
In-Reply-To: <20260930170542.140403-1-ebiggers@kernel.org>
Make aes_cbc_encrypt_aesni() set the RNDKEY register alias explicitly,
rather than reusing the alias left by the previous function (which
worked by chance).
Also consistently comment the register aliases needed by _do_aes.
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
---
lib/crypto/x86/aes-aesni.S | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/lib/crypto/x86/aes-aesni.S b/lib/crypto/x86/aes-aesni.S
index cbc0cc23f63e..6795e82c34c8 100644
--- a/lib/crypto/x86/aes-aesni.S
+++ b/lib/crypto/x86/aes-aesni.S
@@ -444,13 +444,14 @@ SYM_FUNC_START(aes_cbc_encrypt_aesni)
// Other local variables
#ifdef __x86_64__
- .set RNDKEY_PTR, %r9
+ .set RNDKEY_PTR, %r9 // Temporary register for _do_aes
#else
- .set RNDKEY_PTR, IV_PTR // IV_PTR is clobbered and reloaded later
+ .set RNDKEY_PTR, IV_PTR // IV_PTR is clobbered and reloaded later
#endif
- .set NROUNDS, TMP_32
+ .set NROUNDS, TMP_32 // Temporary register for _do_aes
.set AESDATA0, %xmm0
.set PTEXT, %xmm1
+ .set RNDKEY, %xmm2 // Temporary register for _do_aes
_prologue uses_arg3=2, uses_arg4=2
movdqu (IV_PTR), AESDATA0
@@ -484,16 +485,16 @@ SYM_FUNC_START(aes_cbc_decrypt_aesni)
// Other local variables
#ifdef __x86_64__
- .set RNDKEY_PTR, %r9
+ .set RNDKEY_PTR, %r9 // Temporary register for _do_aes
#else
- .set RNDKEY_PTR, IV_PTR // IV_PTR is clobbered and reloaded later
+ .set RNDKEY_PTR, IV_PTR // IV_PTR is clobbered and reloaded later
#endif
- .set NROUNDS, TMP_32
+ .set NROUNDS, TMP_32 // Temporary register for _do_aes
.set AESDATA0, %xmm0
.set AESDATA1, %xmm1
.set AESDATA2, %xmm2
.set AESDATA3, %xmm3
- .set RNDKEY, %xmm4
+ .set RNDKEY, %xmm4 // Temporary register for _do_aes
.set IV, %xmm5
.set CTEXT0, %xmm6
.set CTEXT1, %xmm7
@@ -575,7 +576,7 @@ SYM_FUNC_END(aes_cbc_decrypt_aesni)
.set LSHIFT_MASK, %xmm1 // [0x80, 0x80, ...] + range(PN_LEN)
.set AESDATA0, %xmm2
.set AESDATA1, %xmm3
- .set RNDKEY, %xmm4 // Temporary register for _do_aes
+ .set RNDKEY, %xmm4 // Temporary register for _do_aes
.set IV, %xmm5
_prologue uses_arg3=2, uses_arg4=2
@@ -674,7 +675,7 @@ SYM_FUNC_START(aes_ctr64_crypt_aesni)
.set LE_CTR, %xmm4 // Current 128-bit little endian counter
.set LE_CTR_INC, %xmm5 // Initialized to (u64[])[1, 0]
.set BSWAP_MASK, %xmm6
- .set RNDKEY, %xmm7
+ .set RNDKEY, %xmm7 // Temporary register for _do_aes
.set RNDKEY_PTR, LE_CTR_PTR // Temporary register for _do_aes
.set NROUNDS, TMP_32 // Temporary register for _do_aes
@@ -795,17 +796,17 @@ SYM_FUNC_END(aes_ctr64_crypt_aesni)
// Other local variables
#ifdef __x86_64__
- .set RNDKEY_PTR, %r9
+ .set RNDKEY_PTR, %r9 // Temporary register for _do_aes
#else
.set RNDKEY_PTR, TWEAK_PTR // TWEAK_PTR is clobbered and reloaded later.
#endif
- .set NROUNDS, TMP_32
+ .set NROUNDS, TMP_32 // Temporary register for _do_aes
.set AESDATA0, %xmm0
.set AESDATA1, %xmm1
.set AESDATA2, %xmm2
.set AESDATA3, %xmm3
.set GF_POLY, %xmm4
- .set RNDKEY, %xmm5
+ .set RNDKEY, %xmm5 // Temporary register for _do_aes
.set TWEAK, %xmm6
.set SAVED_TWEAK0, %xmm7
#ifdef __x86_64__
--
2.55.0
next prev parent reply other threads:[~2026-09-30 17:07 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-30 17:05 [PATCH 0/3] AES library fixups Eric Biggers
2026-09-30 17:05 ` Eric Biggers [this message]
2026-09-30 17:05 ` [PATCH 2/3] crypto: aes - Boost priority of encryption modes further Eric Biggers
2026-09-30 17:05 ` [PATCH 3/3] crypto: x86/aesni-intel - Add transitional selections Eric Biggers
2026-10-02 21:42 ` [PATCH 0/3] AES library fixups Eric Biggers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260930170542.140403-2-ebiggers@kernel.org \
--to=ebiggers@kernel.org \
--cc=Jason@zx2c4.com \
--cc=ardb@kernel.org \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.