summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2025-01-22 19:55:08 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2025-01-22 19:55:08 -0800
commit37b33c68b00089a574ebd0a856a5d554eb3001b7 (patch)
treef773baa072cde798833cc9a733f7f51b40a63afa
parent9cb2bf599b2ce832127fa61fb430cc00a724d371 (diff)
parent72914faebaabd77d8a471af4662ca0b938011c49 (diff)
downloadlinux-37b33c68b00089a574ebd0a856a5d554eb3001b7.tar.gz
linux-37b33c68b00089a574ebd0a856a5d554eb3001b7.tar.bz2
linux-37b33c68b00089a574ebd0a856a5d554eb3001b7.zip
Merge tag 'crc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux
Pull CRC updates from Eric Biggers: - Reorganize the architecture-optimized CRC32 and CRC-T10DIF code to be directly accessible via the library API, instead of requiring the crypto API. This is much simpler and more efficient. - Convert some users such as ext4 to use the CRC32 library API instead of the crypto API. More conversions like this will come later. - Add a KUnit test that tests and benchmarks multiple CRC variants. Remove older, less-comprehensive tests that are made redundant by this. - Add an entry to MAINTAINERS for the kernel's CRC library code. I'm volunteering to maintain it. I have additional cleanups and optimizations planned for future cycles. * tag 'crc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux: (31 commits) MAINTAINERS: add entry for CRC library powerpc/crc: delete obsolete crc-vpmsum_test.c lib/crc32test: delete obsolete crc32test.c lib/crc16_kunit: delete obsolete crc16_kunit.c lib/crc_kunit.c: add KUnit test suite for CRC library functions powerpc/crc-t10dif: expose CRC-T10DIF function through lib arm64/crc-t10dif: expose CRC-T10DIF function through lib arm/crc-t10dif: expose CRC-T10DIF function through lib x86/crc-t10dif: expose CRC-T10DIF function through lib crypto: crct10dif - expose arch-optimized lib function lib/crc-t10dif: add support for arch overrides lib/crc-t10dif: stop wrapping the crypto API scsi: target: iscsi: switch to using the crc32c library f2fs: switch to using the crc32 library jbd2: switch to using the crc32c library ext4: switch to using the crc32c library lib/crc32: make crc32c() go directly to lib bcachefs: Explicitly select CRYPTO from BCACHEFS_FS x86/crc32: expose CRC32 functions through lib x86/crc32: update prototype for crc32_pclmul_le_16() ...
-rw-r--r--MAINTAINERS11
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/configs/milbeaut_m10v_defconfig1
-rw-r--r--arch/arm/configs/multi_v7_defconfig1
-rw-r--r--arch/arm/crypto/Kconfig25
-rw-r--r--arch/arm/crypto/Makefile4
-rw-r--r--arch/arm/crypto/crc32-ce-glue.c247
-rw-r--r--arch/arm/crypto/crct10dif-ce-glue.c124
-rw-r--r--arch/arm/lib/Makefile6
-rw-r--r--arch/arm/lib/crc-t10dif-core.S (renamed from arch/arm/crypto/crct10dif-ce-core.S)0
-rw-r--r--arch/arm/lib/crc-t10dif-glue.c80
-rw-r--r--arch/arm/lib/crc32-core.S (renamed from arch/arm/crypto/crc32-ce-core.S)5
-rw-r--r--arch/arm/lib/crc32-glue.c123
-rw-r--r--arch/arm64/Kconfig2
-rw-r--r--arch/arm64/configs/defconfig1
-rw-r--r--arch/arm64/crypto/Kconfig10
-rw-r--r--arch/arm64/crypto/Makefile3
-rw-r--r--arch/arm64/crypto/crct10dif-ce-glue.c132
-rw-r--r--arch/arm64/lib/Makefile6
-rw-r--r--arch/arm64/lib/crc-t10dif-core.S (renamed from arch/arm64/crypto/crct10dif-ce-core.S)0
-rw-r--r--arch/arm64/lib/crc-t10dif-glue.c81
-rw-r--r--arch/arm64/lib/crc32-glue.c25
-rw-r--r--arch/loongarch/Kconfig1
-rw-r--r--arch/loongarch/configs/loongson3_defconfig1
-rw-r--r--arch/loongarch/crypto/Kconfig9
-rw-r--r--arch/loongarch/crypto/Makefile2
-rw-r--r--arch/loongarch/crypto/crc32-loongarch.c300
-rw-r--r--arch/loongarch/lib/Makefile2
-rw-r--r--arch/loongarch/lib/crc32-loongarch.c135
-rw-r--r--arch/m68k/configs/amiga_defconfig1
-rw-r--r--arch/m68k/configs/apollo_defconfig1
-rw-r--r--arch/m68k/configs/atari_defconfig1
-rw-r--r--arch/m68k/configs/bvme6000_defconfig1
-rw-r--r--arch/m68k/configs/hp300_defconfig1
-rw-r--r--arch/m68k/configs/mac_defconfig1
-rw-r--r--arch/m68k/configs/multi_defconfig1
-rw-r--r--arch/m68k/configs/mvme147_defconfig1
-rw-r--r--arch/m68k/configs/mvme16x_defconfig1
-rw-r--r--arch/m68k/configs/q40_defconfig1
-rw-r--r--arch/m68k/configs/sun3_defconfig1
-rw-r--r--arch/m68k/configs/sun3x_defconfig1
-rw-r--r--arch/mips/Kconfig5
-rw-r--r--arch/mips/configs/eyeq5_defconfig1
-rw-r--r--arch/mips/configs/eyeq6_defconfig1
-rw-r--r--arch/mips/configs/generic/32r6.config2
-rw-r--r--arch/mips/configs/generic/64r6.config1
-rw-r--r--arch/mips/crypto/Kconfig9
-rw-r--r--arch/mips/crypto/Makefile2
-rw-r--r--arch/mips/crypto/crc32-mips.c354
-rw-r--r--arch/mips/lib/Makefile2
-rw-r--r--arch/mips/lib/crc32-mips.c192
-rw-r--r--arch/powerpc/Kconfig2
-rw-r--r--arch/powerpc/configs/powernv_defconfig2
-rw-r--r--arch/powerpc/configs/ppc64_defconfig3
-rw-r--r--arch/powerpc/crypto/Kconfig33
-rw-r--r--arch/powerpc/crypto/Makefile5
-rw-r--r--arch/powerpc/crypto/crc-vpmsum_test.c133
-rw-r--r--arch/powerpc/crypto/crc32c-vpmsum_glue.c173
-rw-r--r--arch/powerpc/lib/Makefile6
-rw-r--r--arch/powerpc/lib/crc-t10dif-glue.c (renamed from arch/powerpc/crypto/crct10dif-vpmsum_glue.c)69
-rw-r--r--arch/powerpc/lib/crc32-glue.c92
-rw-r--r--arch/powerpc/lib/crc32-vpmsum_core.S (renamed from arch/powerpc/crypto/crc32-vpmsum_core.S)0
-rw-r--r--arch/powerpc/lib/crc32c-vpmsum_asm.S (renamed from arch/powerpc/crypto/crc32c-vpmsum_asm.S)0
-rw-r--r--arch/powerpc/lib/crct10dif-vpmsum_asm.S (renamed from arch/powerpc/crypto/crct10dif-vpmsum_asm.S)0
-rw-r--r--arch/riscv/Kconfig1
-rw-r--r--arch/riscv/lib/Makefile3
-rw-r--r--arch/riscv/lib/crc32-riscv.c (renamed from arch/riscv/lib/crc32.c)25
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/s390/configs/debug_defconfig2
-rw-r--r--arch/s390/configs/defconfig1
-rw-r--r--arch/s390/crypto/Kconfig12
-rw-r--r--arch/s390/crypto/Makefile2
-rw-r--r--arch/s390/crypto/crc32-vx.c306
-rw-r--r--arch/s390/lib/Makefile3
-rw-r--r--arch/s390/lib/crc32-glue.c92
-rw-r--r--arch/s390/lib/crc32-vx.h (renamed from arch/s390/crypto/crc32-vx.h)0
-rw-r--r--arch/s390/lib/crc32be-vx.c (renamed from arch/s390/crypto/crc32be-vx.c)0
-rw-r--r--arch/s390/lib/crc32le-vx.c (renamed from arch/s390/crypto/crc32le-vx.c)0
-rw-r--r--arch/sparc/Kconfig1
-rw-r--r--arch/sparc/crypto/Kconfig10
-rw-r--r--arch/sparc/crypto/Makefile4
-rw-r--r--arch/sparc/crypto/crc32c_glue.c184
-rw-r--r--arch/sparc/lib/Makefile2
-rw-r--r--arch/sparc/lib/crc32_glue.c93
-rw-r--r--arch/sparc/lib/crc32c_asm.S (renamed from arch/sparc/crypto/crc32c_asm.S)2
-rw-r--r--arch/x86/Kconfig2
-rw-r--r--arch/x86/crypto/Kconfig32
-rw-r--r--arch/x86/crypto/Makefile10
-rw-r--r--arch/x86/crypto/crc32-pclmul_glue.c202
-rw-r--r--arch/x86/crypto/crc32c-intel_glue.c250
-rw-r--r--arch/x86/crypto/crct10dif-pclmul_glue.c143
-rw-r--r--arch/x86/lib/Makefile7
-rw-r--r--arch/x86/lib/crc-t10dif-glue.c51
-rw-r--r--arch/x86/lib/crc32-glue.c124
-rw-r--r--arch/x86/lib/crc32-pclmul.S (renamed from arch/x86/crypto/crc32-pclmul_asm.S)19
-rw-r--r--arch/x86/lib/crc32c-3way.S (renamed from arch/x86/crypto/crc32c-pcl-intel-asm_64.S)63
-rw-r--r--arch/x86/lib/crct10dif-pcl-asm_64.S (renamed from arch/x86/crypto/crct10dif-pcl-asm_64.S)0
-rw-r--r--crypto/Kconfig1
-rw-r--r--crypto/Makefile3
-rw-r--r--crypto/crc32_generic.c8
-rw-r--r--crypto/crc32c_generic.c12
-rw-r--r--crypto/crct10dif_common.c82
-rw-r--r--crypto/crct10dif_generic.c82
-rw-r--r--drivers/target/iscsi/Kconfig4
-rw-r--r--drivers/target/iscsi/iscsi_target.c153
-rw-r--r--drivers/target/iscsi/iscsi_target_login.c50
-rw-r--r--drivers/target/iscsi/iscsi_target_login.h1
-rw-r--r--drivers/target/iscsi/iscsi_target_nego.c21
-rw-r--r--fs/bcachefs/Kconfig1
-rw-r--r--fs/ext4/Kconfig3
-rw-r--r--fs/ext4/ext4.h25
-rw-r--r--fs/ext4/super.c15
-rw-r--r--fs/f2fs/Kconfig3
-rw-r--r--fs/f2fs/f2fs.h20
-rw-r--r--fs/f2fs/super.c15
-rw-r--r--fs/jbd2/Kconfig2
-rw-r--r--fs/jbd2/journal.c30
-rw-r--r--include/linux/crc-t10dif.h28
-rw-r--r--include/linux/crc32.h50
-rw-r--r--include/linux/crc32c.h7
-rw-r--r--include/linux/jbd2.h33
-rw-r--r--include/target/iscsi/iscsi_target_core.h3
-rw-r--r--lib/Kconfig121
-rw-r--r--lib/Kconfig.debug29
-rw-r--r--lib/Makefile4
-rw-r--r--lib/crc-t10dif.c156
-rw-r--r--lib/crc16_kunit.c155
-rw-r--r--lib/crc32.c24
-rw-r--r--lib/crc32test.c</