diff mbox series

lib/crc-t10dif: remove digest and block size constants

Message ID 20250204201108.48039-1-ebiggers@kernel.org (mailing list archive)
State Not Applicable
Delegated to: Herbert Xu
Headers show
Series lib/crc-t10dif: remove digest and block size constants | expand

Commit Message

Eric Biggers Feb. 4, 2025, 8:11 p.m. UTC
From: Eric Biggers <ebiggers@google.com>

These constants are only used in crypto/crct10dif_generic.c, and they
are better off just hardcoded there.

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

I'm planning to take this via the crc tree.

 crypto/crct10dif_generic.c | 8 ++++----
 include/linux/crc-t10dif.h | 3 ---
 2 files changed, 4 insertions(+), 7 deletions(-)


base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b

Comments

Ard Biesheuvel Feb. 6, 2025, 11:09 a.m. UTC | #1
On Tue, 4 Feb 2025 at 21:11, Eric Biggers <ebiggers@kernel.org> wrote:
>
> From: Eric Biggers <ebiggers@google.com>
>
> These constants are only used in crypto/crct10dif_generic.c, and they
> are better off just hardcoded there.
>
> Signed-off-by: Eric Biggers <ebiggers@google.com>
> ---
>
> I'm planning to take this via the crc tree.
>

Acked-by: Ard Biesheuvel <ardb@kernel.org>

Could you remind me why we are keeping this driver?


>  crypto/crct10dif_generic.c | 8 ++++----
>  include/linux/crc-t10dif.h | 3 ---
>  2 files changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/crypto/crct10dif_generic.c b/crypto/crct10dif_generic.c
> index 259cb01932cb5..fdfe78aba3ae0 100644
> --- a/crypto/crct10dif_generic.c
> +++ b/crypto/crct10dif_generic.c
> @@ -114,34 +114,34 @@ static int chksum_digest_arch(struct shash_desc *desc, const u8 *data,
>  {
>         return __chksum_finup_arch(0, data, length, out);
>  }
>
>  static struct shash_alg algs[] = {{
> -       .digestsize             = CRC_T10DIF_DIGEST_SIZE,
> +       .digestsize             = sizeof(u16),
>         .init                   = chksum_init,
>         .update                 = chksum_update,
>         .final                  = chksum_final,
>         .finup                  = chksum_finup,
>         .digest                 = chksum_digest,
>         .descsize               = sizeof(struct chksum_desc_ctx),
>         .base.cra_name          = "crct10dif",
>         .base.cra_driver_name   = "crct10dif-generic",
>         .base.cra_priority      = 100,
> -       .base.cra_blocksize     = CRC_T10DIF_BLOCK_SIZE,
> +       .base.cra_blocksize     = 1,
>         .base.cra_module        = THIS_MODULE,
>  }, {
> -       .digestsize             = CRC_T10DIF_DIGEST_SIZE,
> +       .digestsize             = sizeof(u16),
>         .init                   = chksum_init,
>         .update                 = chksum_update_arch,
>         .final                  = chksum_final,
>         .finup                  = chksum_finup_arch,
>         .digest                 = chksum_digest_arch,
>         .descsize               = sizeof(struct chksum_desc_ctx),
>         .base.cra_name          = "crct10dif",
>         .base.cra_driver_name   = "crct10dif-" __stringify(ARCH),
>         .base.cra_priority      = 150,
> -       .base.cra_blocksize     = CRC_T10DIF_BLOCK_SIZE,
> +       .base.cra_blocksize     = 1,
>         .base.cra_module        = THIS_MODULE,
>  }};
>
>  static int num_algs;
>
> diff --git a/include/linux/crc-t10dif.h b/include/linux/crc-t10dif.h
> index 16787c1cee21c..d0706544fc11f 100644
> --- a/include/linux/crc-t10dif.h
> +++ b/include/linux/crc-t10dif.h
> @@ -2,13 +2,10 @@
>  #ifndef _LINUX_CRC_T10DIF_H
>  #define _LINUX_CRC_T10DIF_H
>
>  #include <linux/types.h>
>
> -#define CRC_T10DIF_DIGEST_SIZE 2
> -#define CRC_T10DIF_BLOCK_SIZE 1
> -
>  u16 crc_t10dif_arch(u16 crc, const u8 *p, size_t len);
>  u16 crc_t10dif_generic(u16 crc, const u8 *p, size_t len);
>
>  static inline u16 crc_t10dif_update(u16 crc, const u8 *p, size_t len)
>  {
>
> base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
> --
> 2.48.1
>
Eric Biggers Feb. 6, 2025, 4:39 p.m. UTC | #2
On Thu, Feb 06, 2025 at 12:09:22PM +0100, Ard Biesheuvel wrote:
> On Tue, 4 Feb 2025 at 21:11, Eric Biggers <ebiggers@kernel.org> wrote:
> >
> > From: Eric Biggers <ebiggers@google.com>
> >
> > These constants are only used in crypto/crct10dif_generic.c, and they
> > are better off just hardcoded there.
> >
> > Signed-off-by: Eric Biggers <ebiggers@google.com>
> > ---
> >
> > I'm planning to take this via the crc tree.
> >
> 
> Acked-by: Ard Biesheuvel <ardb@kernel.org>
> 
> Could you remind me why we are keeping this driver?
> 

I don't know.  I had to keep "crc32" and "crc32c" around for now because they
are still used, and I just defaulted to doing the same for "crct10dif".  It
*looks like* "crct10dif" is different and we could indeed safely remove it like
I ended up doing for "crc64-rocksoft", though.  "crct10dif" has no remaining
references in the kernel; it has no references in cryptsetup, iwd, or libell;
and Debian Code Search doesn't find anything else.  It's over a decade old, so I
was worried there was time for users to have crept in, but that doesn't seem to
have happened.  So yeah, good idea.  I'll send a patch that removes it, with the
device-mapper folks Cc'd in case they know of anything else.

- Eric
Ard Biesheuvel Feb. 6, 2025, 4:57 p.m. UTC | #3
On Thu, 6 Feb 2025 at 17:39, Eric Biggers <ebiggers@kernel.org> wrote:
>
> On Thu, Feb 06, 2025 at 12:09:22PM +0100, Ard Biesheuvel wrote:
> > On Tue, 4 Feb 2025 at 21:11, Eric Biggers <ebiggers@kernel.org> wrote:
> > >
> > > From: Eric Biggers <ebiggers@google.com>
> > >
> > > These constants are only used in crypto/crct10dif_generic.c, and they
> > > are better off just hardcoded there.
> > >
> > > Signed-off-by: Eric Biggers <ebiggers@google.com>
> > > ---
> > >
> > > I'm planning to take this via the crc tree.
> > >
> >
> > Acked-by: Ard Biesheuvel <ardb@kernel.org>
> >
> > Could you remind me why we are keeping this driver?
> >
>
> I don't know.  I had to keep "crc32" and "crc32c" around for now because they
> are still used, and I just defaulted to doing the same for "crct10dif".  It
> *looks like* "crct10dif" is different and we could indeed safely remove it like
> I ended up doing for "crc64-rocksoft", though.  "crct10dif" has no remaining
> references in the kernel; it has no references in cryptsetup, iwd, or libell;
> and Debian Code Search doesn't find anything else.  It's over a decade old, so I
> was worried there was time for users to have crept in, but that doesn't seem to
> have happened.  So yeah, good idea.  I'll send a patch that removes it, with the
> device-mapper folks Cc'd in case they know of anything else.
>

Good idea.
diff mbox series

Patch

diff --git a/crypto/crct10dif_generic.c b/crypto/crct10dif_generic.c
index 259cb01932cb5..fdfe78aba3ae0 100644
--- a/crypto/crct10dif_generic.c
+++ b/crypto/crct10dif_generic.c
@@ -114,34 +114,34 @@  static int chksum_digest_arch(struct shash_desc *desc, const u8 *data,
 {
 	return __chksum_finup_arch(0, data, length, out);
 }
 
 static struct shash_alg algs[] = {{
-	.digestsize		= CRC_T10DIF_DIGEST_SIZE,
+	.digestsize		= sizeof(u16),
 	.init			= chksum_init,
 	.update			= chksum_update,
 	.final			= chksum_final,
 	.finup			= chksum_finup,
 	.digest			= chksum_digest,
 	.descsize		= sizeof(struct chksum_desc_ctx),
 	.base.cra_name		= "crct10dif",
 	.base.cra_driver_name	= "crct10dif-generic",
 	.base.cra_priority	= 100,
-	.base.cra_blocksize	= CRC_T10DIF_BLOCK_SIZE,
+	.base.cra_blocksize	= 1,
 	.base.cra_module	= THIS_MODULE,
 }, {
-	.digestsize		= CRC_T10DIF_DIGEST_SIZE,
+	.digestsize		= sizeof(u16),
 	.init			= chksum_init,
 	.update			= chksum_update_arch,
 	.final			= chksum_final,
 	.finup			= chksum_finup_arch,
 	.digest			= chksum_digest_arch,
 	.descsize		= sizeof(struct chksum_desc_ctx),
 	.base.cra_name		= "crct10dif",
 	.base.cra_driver_name	= "crct10dif-" __stringify(ARCH),
 	.base.cra_priority	= 150,
-	.base.cra_blocksize	= CRC_T10DIF_BLOCK_SIZE,
+	.base.cra_blocksize	= 1,
 	.base.cra_module	= THIS_MODULE,
 }};
 
 static int num_algs;
 
diff --git a/include/linux/crc-t10dif.h b/include/linux/crc-t10dif.h
index 16787c1cee21c..d0706544fc11f 100644
--- a/include/linux/crc-t10dif.h
+++ b/include/linux/crc-t10dif.h
@@ -2,13 +2,10 @@ 
 #ifndef _LINUX_CRC_T10DIF_H
 #define _LINUX_CRC_T10DIF_H
 
 #include <linux/types.h>
 
-#define CRC_T10DIF_DIGEST_SIZE 2
-#define CRC_T10DIF_BLOCK_SIZE 1
-
 u16 crc_t10dif_arch(u16 crc, const u8 *p, size_t len);
 u16 crc_t10dif_generic(u16 crc, const u8 *p, size_t len);
 
 static inline u16 crc_t10dif_update(u16 crc, const u8 *p, size_t len)
 {