All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
	Ard Biesheuvel <ardb@kernel.org>, Chao Yu <chao@kernel.org>,
	"Darrick J. Wong" <djwong@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Kent Overstreet <kent.overstreet@linux.dev>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Theodore Ts'o <tytso@mit.edu>,
	Vinicius Peixoto <vpeixoto@lkcamp.dev>,
	WangYuli <wangyuli@uniontech.com>
Subject: [GIT PULL] CRC updates for 6.14
Date: Sun, 19 Jan 2025 14:51:18 -0800	[thread overview]
Message-ID: <20250119225118.GA15398@sol.localdomain> (raw)

The following changes since commit 40384c840ea1944d7c5a392e8975ed088ecf0b37:

  Linux 6.13-rc1 (2024-12-01 14:28:56 -0800)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git tags/crc-for-linus

for you to fetch changes up to 72914faebaabd77d8a471af4662ca0b938011c49:

  MAINTAINERS: add entry for CRC library (2024-12-09 22:09:44 -0800)

----------------------------------------------------------------

- 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.

These patches have been in linux-next since -rc1.

----------------------------------------------------------------
Eric Biggers (31):
      lib/crc32: drop leading underscores from __crc32c_le_base
      lib/crc32: improve support for arch-specific overrides
      lib/crc32: expose whether the lib is really optimized at runtime
      crypto: crc32 - don't unnecessarily register arch algorithms
      arm/crc32: expose CRC32 functions through lib
      loongarch/crc32: expose CRC32 functions through lib
      mips/crc32: expose CRC32 functions through lib
      powerpc/crc32: expose CRC32 functions through lib
      s390/crc32: expose CRC32 functions through lib
      sparc/crc32: expose CRC32 functions through lib
      x86/crc32: update prototype for crc_pcl()
      x86/crc32: update prototype for crc32_pclmul_le_16()
      x86/crc32: expose CRC32 functions through lib
      bcachefs: Explicitly select CRYPTO from BCACHEFS_FS
      lib/crc32: make crc32c() go directly to lib
      ext4: switch to using the crc32c library
      jbd2: switch to using the crc32c library
      f2fs: switch to using the crc32 library
      scsi: target: iscsi: switch to using the crc32c library
      lib/crc-t10dif: stop wrapping the crypto API
      lib/crc-t10dif: add support for arch overrides
      crypto: crct10dif - expose arch-optimized lib function
      x86/crc-t10dif: expose CRC-T10DIF function through lib
      arm/crc-t10dif: expose CRC-T10DIF function through lib
      arm64/crc-t10dif: expose CRC-T10DIF function through lib
      powerpc/crc-t10dif: expose CRC-T10DIF function through lib
      lib/crc_kunit.c: add KUnit test suite for CRC library functions
      lib/crc16_kunit: delete obsolete crc16_kunit.c
      lib/crc32test: delete obsolete crc32test.c
      powerpc/crc: delete obsolete crc-vpmsum_test.c
      MAINTAINERS: add entry for CRC library

 MAINTAINERS                                        |  11 +
 arch/arm/Kconfig                                   |   2 +
 arch/arm/configs/milbeaut_m10v_defconfig           |   1 -
 arch/arm/configs/multi_v7_defconfig                |   1 -
 arch/arm/crypto/Kconfig                            |  25 -
 arch/arm/crypto/Makefile                           |   4 -
 arch/arm/crypto/crc32-ce-glue.c                    | 247 ------
 arch/arm/crypto/crct10dif-ce-glue.c                | 124 ---
 arch/arm/lib/Makefile                              |   6 +
 .../crct10dif-ce-core.S => lib/crc-t10dif-core.S}  |   0
 arch/arm/lib/crc-t10dif-glue.c                     |  80 ++
 .../{crypto/crc32-ce-core.S => lib/crc32-core.S}   |   5 +-
 arch/arm/lib/crc32-glue.c                          | 123 +++
 arch/arm64/Kconfig                                 |   2 +
 arch/arm64/configs/defconfig                       |   1 -
 arch/arm64/crypto/Kconfig                          |  10 -
 arch/arm64/crypto/Makefile                         |   3 -
 arch/arm64/crypto/crct10dif-ce-glue.c              | 132 ----
 arch/arm64/lib/Makefile                            |   6 +-
 .../crct10dif-ce-core.S => lib/crc-t10dif-core.S}  |   0
 arch/arm64/lib/crc-t10dif-glue.c                   |  81 ++
 arch/arm64/lib/crc32-glue.c                        |  25 +-
 arch/loongarch/Kconfig                             |   1 +
 arch/loongarch/configs/loongson3_defconfig         |   1 -
 arch/loongarch/crypto/Kconfig                      |   9 -
 arch/loongarch/crypto/Makefile                     |   2 -
 arch/loongarch/crypto/crc32-loongarch.c            | 300 --------
 arch/loongarch/lib/Makefile                        |   2 +
 arch/loongarch/lib/crc32-loongarch.c               | 135 ++++
 arch/m68k/configs/amiga_defconfig                  |   1 -
 arch/m68k/configs/apollo_defconfig                 |   1 -
 arch/m68k/configs/atari_defconfig                  |   1 -
 arch/m68k/configs/bvme6000_defconfig               |   1 -
 arch/m68k/configs/hp300_defconfig                  |   1 -
 arch/m68k/configs/mac_defconfig                    |   1 -
 arch/m68k/configs/multi_defconfig                  |   1 -
 arch/m68k/configs/mvme147_defconfig                |   1 -
 arch/m68k/configs/mvme16x_defconfig                |   1 -
 arch/m68k/configs/q40_defconfig                    |   1 -
 arch/m68k/configs/sun3_defconfig                   |   1 -
 arch/m68k/configs/sun3x_defconfig                  |   1 -
 arch/mips/Kconfig                                  |   5 +-
 arch/mips/configs/eyeq5_defconfig                  |   1 -
 arch/mips/configs/eyeq6_defconfig                  |   1 -
 arch/mips/configs/generic/32r6.config              |   2 -
 arch/mips/configs/generic/64r6.config              |   1 -
 arch/mips/crypto/Kconfig                           |   9 -
 arch/mips/crypto/Makefile                          |   2 -
 arch/mips/crypto/crc32-mips.c                      | 354 ---------
 arch/mips/lib/Makefile                             |   2 +
 arch/mips/lib/crc32-mips.c                         | 192 +++++
 arch/powerpc/Kconfig                               |   2 +
 arch/powerpc/configs/powernv_defconfig             |   2 -
 arch/powerpc/configs/ppc64_defconfig               |   3 -
 arch/powerpc/crypto/Kconfig                        |  33 -
 arch/powerpc/crypto/Makefile                       |   5 -
 arch/powerpc/crypto/crc-vpmsum_test.c              | 133 ----
 arch/powerpc/crypto/crc32c-vpmsum_glue.c           | 173 -----
 arch/powerpc/lib/Makefile                          |   6 +
 .../crc-t10dif-glue.c}                             |  69 +-
 arch/powerpc/lib/crc32-glue.c                      |  92 +++
 arch/powerpc/{crypto => lib}/crc32-vpmsum_core.S   |   0
 arch/powerpc/{crypto => lib}/crc32c-vpmsum_asm.S   |   0
 .../powerpc/{crypto => lib}/crct10dif-vpmsum_asm.S |   0
 arch/riscv/Kconfig                                 |   1 +
 arch/riscv/lib/Makefile                            |   3 +-
 arch/riscv/lib/{crc32.c => crc32-riscv.c}          |  25 +-
 arch/s390/Kconfig                                  |   1 +
 arch/s390/configs/debug_defconfig                  |   2 -
 arch/s390/configs/defconfig                        |   1 -
 arch/s390/crypto/Kconfig                           |  12 -
 arch/s390/crypto/Makefile                          |   2 -
 arch/s390/crypto/crc32-vx.c                        | 306 --------
 arch/s390/lib/Makefile                             |   3 +
 arch/s390/lib/crc32-glue.c                         |  92 +++
 arch/s390/{crypto => lib}/crc32-vx.h               |   0
 arch/s390/{crypto => lib}/crc32be-vx.c             |   0
 arch/s390/{crypto => lib}/crc32le-vx.c             |   0
 arch/sparc/Kconfig                                 |   1 +
 arch/sparc/crypto/Kconfig                          |  10 -
 arch/sparc/crypto/Makefile                         |   4 -
 arch/sparc/crypto/crc32c_glue.c                    | 184 -----
 arch/sparc/lib/Makefile                            |   2 +
 arch/sparc/lib/crc32_glue.c                        |  93 +++
 arch/sparc/{crypto => lib}/crc32c_asm.S            |   2 +-
 arch/x86/Kconfig                                   |   2 +
 arch/x86/crypto/Kconfig                            |  32 -
 arch/x86/crypto/Makefile                           |  10 -
 arch/x86/crypto/crc32-pclmul_glue.c                | 202 -----
 arch/x86/crypto/crc32c-intel_glue.c                | 250 ------
 arch/x86/crypto/crct10dif-pclmul_glue.c            | 143 ----
 arch/x86/lib/Makefile                              |   7 +
 arch/x86/lib/crc-t10dif-glue.c                     |  51 ++
 arch/x86/lib/crc32-glue.c                          | 124 +++
 .../crc32-pclmul_asm.S => lib/crc32-pclmul.S}      |  19 +-
 .../crc32c-3way.S}                                 |  63 +-
 arch/x86/{crypto => lib}/crct10dif-pcl-asm_64.S    |   0
 crypto/Kconfig                                     |   1 +
 crypto/Makefile                                    |   3 +-
 crypto/crc32_generic.c                             |   8 +-
 crypto/crc32c_generic.c                            |  12 +-
 crypto/crct10dif_common.c                          |  82 --
 crypto/crct10dif_generic.c                         |  82 +-
 drivers/target/iscsi/Kconfig                       |   4 +-
 drivers/target/iscsi/iscsi_target.c                | 153 ++--
 drivers/target/iscsi/iscsi_target_login.c          |  50 --
 drivers/target/iscsi/iscsi_target_login.h          |   1 -
 drivers/target/iscsi/iscsi_target_nego.c           |  21 +-
 fs/bcachefs/Kconfig                                |   1 +
 fs/ext4/Kconfig                                    |   3 +-
 fs/ext4/ext4.h                                     |  25 +-
 fs/ext4/super.c                                    |  15 -
 fs/f2fs/Kconfig                                    |   3 +-
 fs/f2fs/f2fs.h                                     |  20 +-
 fs/f2fs/super.c                                    |  15 -
 fs/jbd2/Kconfig                                    |   2 -
 fs/jbd2/journal.c                                  |  30 +-
 include/linux/crc-t10dif.h                         |  28 +-
 include/linux/crc32.h                              |  50 +-
 include/linux/crc32c.h                             |   7 +-
 include/linux/jbd2.h                               |  33 +-
 include/target/iscsi/iscsi_target_core.h           |   3 -
 lib/Kconfig                                        | 121 ++-
 lib/Kconfig.debug                                  |  29 +-
 lib/Makefile                                       |   4 +-
 lib/crc-t10dif.c                                   | 156 ++--
 lib/crc16_kunit.c                                  | 155 ----
 lib/crc32.c                                        |  24 +-
 lib/crc32test.c                                    | 852 ---------------------
 lib/crc_kunit.c                                    | 435 +++++++++++
 lib/libcrc32c.c                                    |  74 --
 tools/testing/selftests/arm64/fp/kernel-test.c     |   3 +-
 132 files changed, 2035 insertions(+), 4555 deletions(-)
 delete mode 100644 arch/arm/crypto/crc32-ce-glue.c
 delete mode 100644 arch/arm/crypto/crct10dif-ce-glue.c
 rename arch/arm/{crypto/crct10dif-ce-core.S => lib/crc-t10dif-core.S} (100%)
 create mode 100644 arch/arm/lib/crc-t10dif-glue.c
 rename arch/arm/{crypto/crc32-ce-core.S => lib/crc32-core.S} (98%)
 create mode 100644 arch/arm/lib/crc32-glue.c
 delete mode 100644 arch/arm64/crypto/crct10dif-ce-glue.c
 rename arch/arm64/{crypto/crct10dif-ce-core.S => lib/crc-t10dif-core.S} (100%)
 create mode 100644 arch/arm64/lib/crc-t10dif-glue.c
 delete mode 100644 arch/loongarch/crypto/crc32-loongarch.c
 create mode 100644 arch/loongarch/lib/crc32-loongarch.c
 delete mode 100644 arch/mips/crypto/crc32-mips.c
 create mode 100644 arch/mips/lib/crc32-mips.c
 delete mode 100644 arch/powerpc/crypto/crc-vpmsum_test.c
 delete mode 100644 arch/powerpc/crypto/crc32c-vpmsum_glue.c
 rename arch/powerpc/{crypto/crct10dif-vpmsum_glue.c => lib/crc-t10dif-glue.c} (50%)
 create mode 100644 arch/powerpc/lib/crc32-glue.c
 rename arch/powerpc/{crypto => lib}/crc32-vpmsum_core.S (100%)
 rename arch/powerpc/{crypto => lib}/crc32c-vpmsum_asm.S (100%)
 rename arch/powerpc/{crypto => lib}/crct10dif-vpmsum_asm.S (100%)
 rename arch/riscv/lib/{crc32.c => crc32-riscv.c} (91%)
 delete mode 100644 arch/s390/crypto/crc32-vx.c
 create mode 100644 arch/s390/lib/crc32-glue.c
 rename arch/s390/{crypto => lib}/crc32-vx.h (100%)
 rename arch/s390/{crypto => lib}/crc32be-vx.c (100%)
 rename arch/s390/{crypto => lib}/crc32le-vx.c (100%)
 delete mode 100644 arch/sparc/crypto/crc32c_glue.c
 create mode 100644 arch/sparc/lib/crc32_glue.c
 rename arch/sparc/{crypto => lib}/crc32c_asm.S (92%)
 delete mode 100644 arch/x86/crypto/crc32-pclmul_glue.c
 delete mode 100644 arch/x86/crypto/crc32c-intel_glue.c
 delete mode 100644 arch/x86/crypto/crct10dif-pclmul_glue.c
 create mode 100644 arch/x86/lib/crc-t10dif-glue.c
 create mode 100644 arch/x86/lib/crc32-glue.c
 rename arch/x86/{crypto/crc32-pclmul_asm.S => lib/crc32-pclmul.S} (95%)
 rename arch/x86/{crypto/crc32c-pcl-intel-asm_64.S => lib/crc32c-3way.S} (92%)
 rename arch/x86/{crypto => lib}/crct10dif-pcl-asm_64.S (100%)
 delete mode 100644 crypto/crct10dif_common.c
 delete mode 100644 lib/crc16_kunit.c
 delete mode 100644 lib/crc32test.c
 create mode 100644 lib/crc_kunit.c
 delete mode 100644 lib/libcrc32c.c

             reply	other threads:[~2025-01-19 22:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-19 22:51 Eric Biggers [this message]
2025-01-23  4:13 ` [GIT PULL] CRC updates for 6.14 Linus Torvalds
2025-01-23  5:16   ` Eric Biggers
2025-01-23  7:46     ` Eric Biggers
2025-01-23 14:07       ` Theodore Ts'o
2025-01-23 18:18         ` Eric Biggers
2025-01-23 20:52           ` Linus Torvalds
2025-01-23 21:13             ` Eric Biggers
2025-01-23 21:16               ` Linus Torvalds
2025-01-23 21:22                 ` Eric Biggers
2025-01-23 20:58         ` David Laight
2025-01-23 21:16           ` Eric Biggers
2025-01-23 23:17             ` David Laight
2025-01-23 22:36       ` Kent Overstreet
2025-01-23 23:42         ` Eric Biggers
2025-01-24  0:32           ` Kent Overstreet
2025-01-23  8:16     ` Geert Uytterhoeven
2025-01-23  8:19       ` Geert Uytterhoeven
2025-01-23  8:26         ` Eric Biggers
2025-01-23  8:22       ` Eric Biggers
2025-01-23  4:49 ` pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250119225118.GA15398@sol.localdomain \
    --to=ebiggers@kernel.org \
    --cc=ardb@kernel.org \
    --cc=chao@kernel.org \
    --cc=djwong@kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=kent.overstreet@linux.dev \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mpe@ellerman.id.au \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=vpeixoto@lkcamp.dev \
    --cc=wangyuli@uniontech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.