mirror-linux/arch
Eric Biggers 73f315c15d lib/crypto: powerpc/ghash: Migrate optimized code into library
Remove the "p8_ghash" crypto_shash algorithm.  Move the corresponding
assembly code into lib/crypto/, and wire it up to the GHASH library.

This makes the GHASH library be optimized for POWER8.  It also greatly
reduces the amount of powerpc-specific glue code that is needed, and it
fixes the issue where this optimized GHASH code was disabled by default.

Note that previously the C code defined the POWER8 GHASH key format as
"u128 htable[16]", despite the assembly code only using four entries.
Fix the C code to use the correct key format.  To fulfill the library
API contract, also make the key preparation work in all contexts.

Note that the POWER8 assembly code takes the accumulator in GHASH
format, but it actually byte-reflects it to get it into POLYVAL format.
The library already works with POLYVAL natively.  For now, just wire up
this existing code by converting it to/from GHASH format in C code.
This should be cleaned up to eliminate the unnecessary conversion later.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20260319061723.1140720-12-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
2026-03-23 16:44:29 -07:00
..
alpha kbuild: Split .modinfo out from ELF_DETAILS 2026-02-26 11:50:19 -07:00
arc kbuild: Split .modinfo out from ELF_DETAILS 2026-02-26 11:50:19 -07:00
arm lib/crypto: arm/ghash: Migrate optimized code into library 2026-03-23 15:24:54 -07:00
arm64 crypto: arm64/aes-gcm - Rename struct ghash_key and make fixed-sized 2026-03-23 16:44:29 -07:00
csky kbuild: Split .modinfo out from ELF_DETAILS 2026-02-26 11:50:19 -07:00
hexagon kbuild: Split .modinfo out from ELF_DETAILS 2026-02-26 11:50:19 -07:00
loongarch Second round of Kbuild fixes for 7.0 2026-03-06 20:27:13 -08:00
m68k kbuild: Split .modinfo out from ELF_DETAILS 2026-02-26 11:50:19 -07:00
microblaze mm.git review status for linus..mm-stable 2026-02-12 11:32:37 -08:00
mips Second round of Kbuild fixes for 7.0 2026-03-06 20:27:13 -08:00
nios2 kbuild: Split .modinfo out from ELF_DETAILS 2026-02-26 11:50:19 -07:00
openrisc kbuild: Split .modinfo out from ELF_DETAILS 2026-02-26 11:50:19 -07:00
parisc parisc architecture fixes for kernel v7.0-rc3: 2026-03-07 12:38:16 -08:00
powerpc lib/crypto: powerpc/ghash: Migrate optimized code into library 2026-03-23 16:44:29 -07:00
riscv Second round of Kbuild fixes for 7.0 2026-03-06 20:27:13 -08:00
s390 Second round of Kbuild fixes for 7.0 2026-03-06 20:27:13 -08:00
sh kbuild: Split .modinfo out from ELF_DETAILS 2026-02-26 11:50:19 -07:00
sparc Second round of Kbuild fixes for 7.0 2026-03-06 20:27:13 -08:00
um Second round of Kbuild fixes for 7.0 2026-03-06 20:27:13 -08:00
x86 EFI fixes for v7.0 #2 2026-03-08 12:13:09 -07:00
xtensa Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
.gitignore
Kconfig sched: Move clock related paravirt code to kernel/sched 2026-01-12 15:39:14 +01:00