mbox series

[v2,0/2] crypto: Enable fuzz testing for arch code

Message ID 20241016185722.400643-4-ardb+git@google.com (mailing list archive)
Headers show
Series crypto: Enable fuzz testing for arch code | expand

Message

Ard Biesheuvel Oct. 16, 2024, 6:57 p.m. UTC
From: Ard Biesheuvel <ardb@kernel.org>

Follow-up to [0].

crc32-generic and crc32c-generic are built around the architecture
library code for CRC-32, and the lack of distinct drivers for this arch
code means they are lacking test coverage.

Fix this by exposing the arch library code as a separate driver (with a
higher priority) if it is different from the generic C code. Update the
crc32-generic drivers to always use the generic C code.

Changes since [0]:
- make generic drivers truly generic, and expose the arch code as a
  separate driver

[0] https://lore.kernel.org/all/20241015141514.3000757-4-ardb+git@google.com/T/#u

Ard Biesheuvel (2):
  crypto/crc32: Provide crc32-arch driver for accelerated library code
  crypto/crc32c: Provide crc32c-arch driver for accelerated library code

 crypto/Makefile         |  2 +
 crypto/crc32_generic.c  | 94 +++++++++++++++-----
 crypto/crc32c_generic.c | 94 +++++++++++++++-----
 lib/crc32.c             |  4 +
 4 files changed, 148 insertions(+), 46 deletions(-)

Comments

Eric Biggers Oct. 16, 2024, 9:52 p.m. UTC | #1
On Wed, Oct 16, 2024 at 08:57:23PM +0200, Ard Biesheuvel wrote:
> From: Ard Biesheuvel <ardb@kernel.org>
> 
> Follow-up to [0].
> 
> crc32-generic and crc32c-generic are built around the architecture
> library code for CRC-32, and the lack of distinct drivers for this arch
> code means they are lacking test coverage.
> 
> Fix this by exposing the arch library code as a separate driver (with a
> higher priority) if it is different from the generic C code. Update the
> crc32-generic drivers to always use the generic C code.
> 
> Changes since [0]:
> - make generic drivers truly generic, and expose the arch code as a
>   separate driver
> 
> [0] https://lore.kernel.org/all/20241015141514.3000757-4-ardb+git@google.com/T/#u
> 
> Ard Biesheuvel (2):
>   crypto/crc32: Provide crc32-arch driver for accelerated library code
>   crypto/crc32c: Provide crc32c-arch driver for accelerated library code
> 
>  crypto/Makefile         |  2 +
>  crypto/crc32_generic.c  | 94 +++++++++++++++-----
>  crypto/crc32c_generic.c | 94 +++++++++++++++-----
>  lib/crc32.c             |  4 +
>  4 files changed, 148 insertions(+), 46 deletions(-)

Reviewed-by: Eric Biggers <ebiggers@google.com>

- Eric
Herbert Xu Oct. 26, 2024, 6:58 a.m. UTC | #2
On Wed, Oct 16, 2024 at 08:57:23PM +0200, Ard Biesheuvel wrote:
> From: Ard Biesheuvel <ardb@kernel.org>
> 
> Follow-up to [0].
> 
> crc32-generic and crc32c-generic are built around the architecture
> library code for CRC-32, and the lack of distinct drivers for this arch
> code means they are lacking test coverage.
> 
> Fix this by exposing the arch library code as a separate driver (with a
> higher priority) if it is different from the generic C code. Update the
> crc32-generic drivers to always use the generic C code.
> 
> Changes since [0]:
> - make generic drivers truly generic, and expose the arch code as a
>   separate driver
> 
> [0] https://lore.kernel.org/all/20241015141514.3000757-4-ardb+git@google.com/T/#u
> 
> Ard Biesheuvel (2):
>   crypto/crc32: Provide crc32-arch driver for accelerated library code
>   crypto/crc32c: Provide crc32c-arch driver for accelerated library code
> 
>  crypto/Makefile         |  2 +
>  crypto/crc32_generic.c  | 94 +++++++++++++++-----
>  crypto/crc32c_generic.c | 94 +++++++++++++++-----
>  lib/crc32.c             |  4 +
>  4 files changed, 148 insertions(+), 46 deletions(-)
> 
> -- 
> 2.47.0.rc1.288.g06298d1525-goog

All applied.  Thanks.