Skip to content

Commit

Permalink
loongarch/crc32: expose CRC32 functions through lib
Browse files Browse the repository at this point in the history
Move the loongarch CRC32 assembly code into the lib directory and wire
it up to the library interface.  This allows it to be used without going
through the crypto API.  It remains usable via the crypto API too via
the shash algorithms that use the library interface.  Thus all the
arch-specific "shash" code becomes unnecessary and is removed.

Note: to see the diff from arch/loongarch/crypto/crc32-loongarch.c to
arch/loongarch/lib/crc32-loongarch.c, view this commit with
'git show -M10'.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: WangYuli <wangyuli@uniontech.com>
Link: https://lore.kernel.org/r/20241202010844.144356-7-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
  • Loading branch information
Eric Biggers committed Dec 2, 2024
1 parent 1e1b6db commit 72f51a4
Show file tree
Hide file tree
Showing 7 changed files with 138 additions and 312 deletions.
1 change: 1 addition & 0 deletions arch/loongarch/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ config LOONGARCH
select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
select ARCH_HAS_CPU_FINALIZE_INIT
select ARCH_HAS_CRC32
select ARCH_HAS_CURRENT_STACK_POINTER
select ARCH_HAS_DEBUG_VM_PGTABLE
select ARCH_HAS_FAST_MULTIPLIER
Expand Down
1 change: 0 additions & 1 deletion arch/loongarch/configs/loongson3_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1040,7 +1040,6 @@ CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
CONFIG_CRYPTO_CRC32_LOONGARCH=m
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_DMA_CMA=y
CONFIG_DMA_NUMA_CMA=y
Expand Down
9 changes: 0 additions & 9 deletions arch/loongarch/crypto/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,4 @@

menu "Accelerated Cryptographic Algorithms for CPU (loongarch)"

config CRYPTO_CRC32_LOONGARCH
tristate "CRC32c and CRC32"
select CRC32
select CRYPTO_HASH
help
CRC32c and CRC32 CRC algorithms

Architecture: LoongArch with CRC32 instructions

endmenu
2 changes: 0 additions & 2 deletions arch/loongarch/crypto/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,3 @@
#
# Makefile for LoongArch crypto files..
#

obj-$(CONFIG_CRYPTO_CRC32_LOONGARCH) += crc32-loongarch.o
300 changes: 0 additions & 300 deletions arch/loongarch/crypto/crc32-loongarch.c

This file was deleted.

2 changes: 2 additions & 0 deletions arch/loongarch/lib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ obj-$(CONFIG_ARCH_SUPPORTS_INT128) += tishift.o
obj-$(CONFIG_CPU_HAS_LSX) += xor_simd.o xor_simd_glue.o

obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o

obj-$(CONFIG_CRC32_ARCH) += crc32-loongarch.o
Loading

0 comments on commit 72f51a4

Please sign in to comment.