mirror-linux/drivers/crypto
Linus Torvalds ee6740fd34 CRC updates for 6.15
Another set of improvements to the kernel's CRC (cyclic redundancy
 check) code:
 
 - Rework the CRC64 library functions to be directly optimized, like what
   I did last cycle for the CRC32 and CRC-T10DIF library functions.
 
 - Rewrite the x86 PCLMULQDQ-optimized CRC code, and add VPCLMULQDQ
   support and acceleration for crc64_be and crc64_nvme.
 
 - Rewrite the riscv Zbc-optimized CRC code, and add acceleration for
   crc_t10dif, crc64_be, and crc64_nvme.
 
 - Remove crc_t10dif and crc64_rocksoft from the crypto API, since they
   are no longer needed there.
 
 - Rename crc64_rocksoft to crc64_nvme, as the old name was incorrect.
 
 - Add kunit test cases for crc64_nvme and crc7.
 
 - Eliminate redundant functions for calculating the Castagnoli CRC32,
   settling on just crc32c().
 
 - Remove unnecessary prompts from some of the CRC kconfig options.
 
 - Further optimize the x86 crc32c code.
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYIADIWIQSacvsUNc7UX4ntmEPzXCl4vpKOKwUCZ+CGGhQcZWJpZ2dlcnNA
 Z29vZ2xlLmNvbQAKCRDzXCl4vpKOK3wRAP4tbnzawUmlIHIF0hleoADXehUgAhMt
 NZn15mGvyiuwIQEA8W9qvnLdFXZkdxhxAEvDDFjyrRauL6eGtr/GvCx4AQY=
 =wmKG
 -----END PGP SIGNATURE-----

Merge tag 'crc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux

Pull CRC updates from Eric Biggers:
 "Another set of improvements to the kernel's CRC (cyclic redundancy
  check) code:

   - Rework the CRC64 library functions to be directly optimized, like
     what I did last cycle for the CRC32 and CRC-T10DIF library
     functions

   - Rewrite the x86 PCLMULQDQ-optimized CRC code, and add VPCLMULQDQ
     support and acceleration for crc64_be and crc64_nvme

   - Rewrite the riscv Zbc-optimized CRC code, and add acceleration for
     crc_t10dif, crc64_be, and crc64_nvme

   - Remove crc_t10dif and crc64_rocksoft from the crypto API, since
     they are no longer needed there

   - Rename crc64_rocksoft to crc64_nvme, as the old name was incorrect

   - Add kunit test cases for crc64_nvme and crc7

   - Eliminate redundant functions for calculating the Castagnoli CRC32,
     settling on just crc32c()

   - Remove unnecessary prompts from some of the CRC kconfig options

   - Further optimize the x86 crc32c code"

* tag 'crc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux: (36 commits)
  x86/crc: drop the avx10_256 functions and rename avx10_512 to avx512
  lib/crc: remove unnecessary prompt for CONFIG_CRC64
  lib/crc: remove unnecessary prompt for CONFIG_LIBCRC32C
  lib/crc: remove unnecessary prompt for CONFIG_CRC8
  lib/crc: remove unnecessary prompt for CONFIG_CRC7
  lib/crc: remove unnecessary prompt for CONFIG_CRC4
  lib/crc7: unexport crc7_be_syndrome_table
  lib/crc_kunit.c: update comment in crc_benchmark()
  lib/crc_kunit.c: add test and benchmark for crc7_be()
  x86/crc32: optimize tail handling for crc32c short inputs
  riscv/crc64: add Zbc optimized CRC64 functions
  riscv/crc-t10dif: add Zbc optimized CRC-T10DIF function
  riscv/crc32: reimplement the CRC32 functions using new template
  riscv/crc: add "template" for Zbc optimized CRC functions
  x86/crc: add ANNOTATE_NOENDBR to suppress objtool warnings
  x86/crc32: improve crc32c_arch() code generation with clang
  x86/crc64: implement crc64_be and crc64_nvme using new template
  x86/crc-t10dif: implement crc_t10dif using new template
  x86/crc32: implement crc32_le using new template
  x86/crc: add "template" for [V]PCLMULQDQ based CRC functions
  ...
2025-03-25 18:33:04 -07:00
..
allwinner This update includes the following changes: 2024-11-19 10:28:41 -08:00
amcc crypto: crypto4xx - use devm in probe 2024-10-19 08:44:30 +08:00
amlogic crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
aspeed crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
axis crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
bcm crypto: bcm - Drop unused setting of local 'ptr' variable 2025-01-14 11:31:13 +08:00
caam crypto: caam - use JobR's space to access page 0 regs 2024-12-10 13:44:20 +08:00
cavium crypto: cavium - Fix an error handling path in cpt_ucode_load_fw() 2024-11-15 19:52:51 +08:00
ccp crypto: ccp: Add external API interface for PSP module initialization 2025-02-14 18:39:19 -05:00
ccree crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
chelsio crypto: drivers - Correct multiple typos in comments 2024-10-05 13:22:05 +08:00
gemini crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
hisilicon crypto: hisilicon/qm - support new function communication 2025-01-14 11:31:13 +08:00
inside-secure module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
intel Driver core and debugfs updates 2025-01-28 12:25:12 -08:00
marvell module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
nx crypto: nx - Fix invalid wait context during kexec reboot 2024-10-28 18:32:40 +08:00
qce crypto: qce - revert "use __free() for a buffer that's always freed" 2024-12-21 22:46:24 +08:00
rockchip This update includes the following changes: 2024-11-19 10:28:41 -08:00
starfive crypto: starfive - remove unneeded crypto_engine_stop() call 2024-10-28 18:33:11 +08:00
stm32 lib/crc32: standardize on crc32c() name for Castagnoli CRC32 2025-02-08 20:06:30 -08:00
tegra crypto: tegra - do not transfer req when tegra init fails 2024-12-10 13:44:20 +08:00
virtio crypto: virtio - Drop sign/verify operations 2024-10-05 13:22:04 +08:00
xilinx crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
Kconfig crypto: n2 - remove Niagara2 SPU driver 2024-12-14 17:21:43 +08:00
Makefile crypto: n2 - remove Niagara2 SPU driver 2024-12-14 17:21:43 +08:00
atmel-aes-regs.h
atmel-aes.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
atmel-authenc.h
atmel-ecc.c crypto: atmel - Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-10-05 13:22:05 +08:00
atmel-i2c.c crypto: atmel-sha204a - add reading from otp zone 2024-05-10 17:15:25 +08:00
atmel-i2c.h crypto: atmel-sha204a - add reading from otp zone 2024-05-10 17:15:25 +08:00
atmel-sha-regs.h
atmel-sha.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
atmel-sha204a.c crypto: atmel - Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-10-05 13:22:05 +08:00
atmel-tdes-regs.h
atmel-tdes.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
exynos-rng.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
geode-aes.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
geode-aes.h
hifn_795x.c crypto: hifn_795x - Remove unused hifn_*_command structs 2024-05-31 17:34:56 +08:00
img-hash.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
mxs-dcp.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
omap-aes-gcm.c
omap-aes.c crypto: omap - switch from scatter_walk to plain offset 2025-01-14 11:38:32 +08:00
omap-aes.h crypto: omap - switch from scatter_walk to plain offset 2025-01-14 11:38:32 +08:00
omap-crypto.c
omap-crypto.h
omap-des.c crypto: omap - switch from scatter_walk to plain offset 2025-01-14 11:38:32 +08:00
omap-sham.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
padlock-aes.c
padlock-sha.c
qcom-rng.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
s5p-sss.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
sa2ul.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
sa2ul.h
sahara.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
talitos.c crypto: drivers - Switch back to struct platform_driver::remove() 2024-10-19 08:44:30 +08:00
talitos.h