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 |
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 >
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
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 --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) {