]> Gentwo Git Trees - linux/.git/commit
lib/crypto: chacha: Consolidate into single module
authorEric Biggers <ebiggers@kernel.org>
Wed, 27 Aug 2025 15:11:25 +0000 (08:11 -0700)
committerEric Biggers <ebiggers@kernel.org>
Fri, 29 Aug 2025 16:50:19 +0000 (09:50 -0700)
commit13cecc526d8fe7eeb9b136159738688a1a10cd82
tree4499f5fb8bada21d451533734e89aa771d7adf06
parent1ae46b6eb5b9a97978fe12a71f5de53ab977297f
lib/crypto: chacha: Consolidate into single module

Consolidate the ChaCha code into a single module (excluding
chacha-block-generic.c which remains always built-in for random.c),
similar to various other algorithms:

- Each arch now provides a header file lib/crypto/$(SRCARCH)/chacha.h,
  replacing lib/crypto/$(SRCARCH)/chacha*.c.  The header defines
  chacha_crypt_arch() and hchacha_block_arch().  It is included by
  lib/crypto/chacha.c, and thus the code gets built into the single
  libchacha module, with improved inlining in some cases.

- Whether arch-optimized ChaCha is buildable is now controlled centrally
  by lib/crypto/Kconfig instead of by lib/crypto/$(SRCARCH)/Kconfig.
  The conditions for enabling it remain the same as before, and it
  remains enabled by default.

- Any additional arch-specific translation units for the optimized
  ChaCha code, such as assembly files, are now compiled by
  lib/crypto/Makefile instead of lib/crypto/$(SRCARCH)/Makefile.

This removes the last use for the Makefile and Kconfig files in the
arm64, mips, powerpc, riscv, and s390 subdirectories of lib/crypto/.  So
also remove those files and the references to them.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250827151131.27733-7-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
25 files changed:
include/crypto/chacha.h
lib/crypto/Kconfig
lib/crypto/Makefile
lib/crypto/arm/Kconfig
lib/crypto/arm/Makefile
lib/crypto/arm/chacha.h [moved from lib/crypto/arm/chacha-glue.c with 79% similarity]
lib/crypto/arm64/Kconfig [deleted file]
lib/crypto/arm64/Makefile [deleted file]
lib/crypto/arm64/chacha.h [moved from lib/crypto/arm64/chacha-neon-glue.c with 78% similarity]
lib/crypto/chacha.c
lib/crypto/mips/Kconfig [deleted file]
lib/crypto/mips/Makefile [deleted file]
lib/crypto/mips/chacha.h [moved from lib/crypto/mips/chacha-glue.c with 55% similarity]
lib/crypto/powerpc/Kconfig [deleted file]
lib/crypto/powerpc/Makefile [deleted file]
lib/crypto/powerpc/chacha.h [moved from lib/crypto/powerpc/chacha-p10-glue.c with 66% similarity]
lib/crypto/riscv/Kconfig [deleted file]
lib/crypto/riscv/Makefile [deleted file]
lib/crypto/riscv/chacha.h [moved from lib/crypto/riscv/chacha-riscv64-glue.c with 61% similarity]
lib/crypto/s390/Kconfig [deleted file]
lib/crypto/s390/Makefile [deleted file]
lib/crypto/s390/chacha.h [moved from lib/crypto/s390/chacha-glue.c with 55% similarity]
lib/crypto/x86/Kconfig
lib/crypto/x86/Makefile
lib/crypto/x86/chacha.h [moved from lib/crypto/x86/chacha_glue.c with 87% similarity]