diff options
author | Eric Biggers <ebiggers@google.com> | 2025-05-07 10:09:01 -0700 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2025-05-08 09:36:45 +0800 |
commit | 4e0146a94c516e0ce119cd34743108c7652497bd (patch) | |
tree | b9d8647933e7bc0891f80874c18460b71e2318c1 | |
parent | 3bbc902ece47198825d682c8579214306fd0748c (diff) |
crypto: arm64/sha256 - fix build when CONFIG_PREEMPT_VOLUNTARY=y
Fix the build of sha256-ce.S when CONFIG_PREEMPT_VOLUNTARY=y by passing
the correct label to the cond_yield macro. Also adjust the code to
execute only one branch instruction when CONFIG_PREEMPT_VOLUNTARY=n.
Fixes: 6e36be511d28 ("crypto: arm64/sha256 - implement library instead of shash")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202505071811.yYpLUbav-lkp@intel.com/
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | arch/arm64/lib/crypto/sha256-ce.S | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm64/lib/crypto/sha256-ce.S b/arch/arm64/lib/crypto/sha256-ce.S index a8461d6dad63..f3e21c6d87d2 100644 --- a/arch/arm64/lib/crypto/sha256-ce.S +++ b/arch/arm64/lib/crypto/sha256-ce.S @@ -123,10 +123,11 @@ CPU_LE( rev32 v19.16b, v19.16b ) add dgav.4s, dgav.4s, dg0v.4s add dgbv.4s, dgbv.4s, dg1v.4s + /* return early if voluntary preemption is needed */ + cond_yield 1f, x5, x6 + /* handled all input blocks? */ - cbz x2, 1f - cond_yield 3f, x5, x6 - b 0b + cbnz x2, 0b /* store new state */ 1: st1 {dgav.4s, dgbv.4s}, [x0] |