From: Eric Biggers <ebiggers@kernel.org>
To: Keith Busch <kbusch@kernel.org>
Cc: linux-nvme@lists.infradead.org, linux-block@vger.kernel.org,
linux-crypto@vger.kernel.org, x86@kernel.org,
linux-kernel@vger.kernel.org, axboe@kernel.dk, hch@lst.de,
martin.petersen@oracle.com, colyli@suse.de
Subject: Re: [PATCHv3 06/10] crypto: add rocksoft 64b crc framework
Date: Tue, 22 Feb 2022 11:50:42 -0800 [thread overview]
Message-ID: <YhU+kuMhueXVQvxe@sol.localdomain> (raw)
In-Reply-To: <20220222163144.1782447-7-kbusch@kernel.org>
On Tue, Feb 22, 2022 at 08:31:40AM -0800, Keith Busch wrote:
> +config CRYPTO_CRC64_ROCKSOFT
> + tristate "Rocksoft Model CRC64 algorithm"
> + depends on CRC64
> + select CRYPTO_HASH
> + help
> + Rocksoft Model CRC64 computation is being cast as a crypto
> + transform. This allows for faster crc64 transforms to be used
> + if they are available.
The first sentence of this help text doesn't make sense.
> diff --git a/crypto/crc64_rocksoft_generic.c b/crypto/crc64_rocksoft_generic.c
> new file mode 100644
> index 000000000000..55bad1939614
> --- /dev/null
> +++ b/crypto/crc64_rocksoft_generic.c
> @@ -0,0 +1,104 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Cryptographic API.
The "Cryptographic API" line doesn't provide any helpful information.
> +static int chksum_final(struct shash_desc *desc, u8 *out)
> +{
> + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc);
> +
> + *(u64 *)out = ctx->crc;
> + return 0;
> +}
> +
> +static int __chksum_finup(u64 crc, const u8 *data, unsigned int len, u8 *out)
> +{
> + *(u64 *)out = crc64_rocksoft_generic(crc, data, len);
> + return 0;
> +}
These 64-bit writes violate alignment rules and will give the wrong result on
big endian CPUs. They need to use put_unaligned_le64().
> +static int __init crc64_rocksoft_x86_mod_init(void)
> +{
> + return crypto_register_shash(&alg);
> +}
> +
> +static void __exit crc64_rocksoft_x86_mod_fini(void)
> +{
> + crypto_unregister_shash(&alg);
> +}
This has nothing to do with x86.
> +config CRC64_ROCKSOFT
> + tristate "CRC calculation for the Rocksoft^TM model CRC64"
I'm sure what the rules for trademarks are, but kernel source code usually
doesn't have the trademark symbol/abbreviation scattered everywhere.
> + select CRYPTO
> + select CRYPTO_CRC64_ROCKSOFT
> + help
> + This option is only needed if a module that's not in the
> + kernel tree needs to calculate CRC checks for use with the
> + rocksoft model parameters.
Out-of-tree modules can't be the reason to have a kconfig option. What is the
real reason?
> +u64 crc64_rocksoft(const unsigned char *buffer, size_t len)
> +{
> + return crc64_rocksoft_update(~0ULL, buffer, len);
> +}
> +EXPORT_SYMBOL(crc64_rocksoft);
Isn't this missing the bitwise inversion at the end?
> +MODULE_AUTHOR("Keith Busch <kbusch@kernel.org>");
> +MODULE_DESCRIPTION("Rocksoft model CRC64 calculation (library API)");
> +MODULE_LICENSE("GPL");
> +MODULE_SOFTDEP("pre: crc64");
Shouldn't the MODULE_SOFTDEP be on crc64-rocksoft?
- Eric
next prev parent reply other threads:[~2022-02-22 19:50 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-22 16:31 [PATCHv3 00/10] 64-bit data integrity field support Keith Busch
2022-02-22 16:31 ` [PATCHv3 01/10] block: support pi with extended metadata Keith Busch
2022-02-25 16:01 ` Christoph Hellwig
2022-02-22 16:31 ` [PATCHv3 02/10] nvme: allow integrity on extended metadata formats Keith Busch
2022-02-25 16:02 ` Christoph Hellwig
2022-02-22 16:31 ` [PATCHv3 03/10] asm-generic: introduce be48 unaligned accessors Keith Busch
2022-02-22 16:52 ` Chaitanya Kulkarni
2022-02-25 16:03 ` Christoph Hellwig
2022-02-25 17:53 ` Joe Perches
2022-02-25 17:59 ` Keith Busch
2022-02-22 16:31 ` [PATCHv3 04/10] linux/kernel: introduce lower_48_bits macro Keith Busch
2022-02-22 16:45 ` Joe Perches
2022-02-22 16:50 ` Christoph Hellwig
2022-02-22 16:56 ` Keith Busch
2022-02-22 18:43 ` Joe Perches
2022-02-22 20:09 ` David Laight
2022-02-22 20:31 ` Joe Perches
2022-02-22 21:12 ` Keith Busch
2022-02-22 21:17 ` Joe Perches
2022-02-22 16:58 ` Joe Perches
2022-02-22 17:09 ` David Laight
2022-02-22 17:14 ` Chaitanya Kulkarni
2022-02-22 16:48 ` Chaitanya Kulkarni
2022-02-22 16:31 ` [PATCHv3 05/10] lib: add rocksoft model crc64 Keith Busch
2022-02-25 16:04 ` Christoph Hellwig
2022-02-22 16:31 ` [PATCHv3 06/10] crypto: add rocksoft 64b crc framework Keith Busch
2022-02-22 19:50 ` Eric Biggers [this message]
2022-02-22 19:54 ` Eric Biggers
2022-02-22 20:09 ` Keith Busch
2022-02-25 16:11 ` Christoph Hellwig
2022-02-22 19:56 ` Eric Biggers
2022-02-22 16:31 ` [PATCHv3 07/10] lib: add crc64 tests Keith Busch
2022-02-22 16:50 ` Chaitanya Kulkarni
2022-02-25 16:05 ` Christoph Hellwig
2022-02-25 16:12 ` Keith Busch
2022-02-25 16:19 ` Christoph Hellwig
2022-02-22 16:31 ` [PATCHv3 08/10] block: add pi for nvme enhanced integrity Keith Busch
2022-02-25 16:14 ` Christoph Hellwig
2022-03-02 3:15 ` Martin K. Petersen
2022-02-22 16:31 ` [PATCHv3 09/10] nvme: add support for enhanced metadata Keith Busch
2022-02-25 16:17 ` Christoph Hellwig
2022-03-02 3:18 ` Martin K. Petersen
2022-02-22 16:31 ` [PATCHv3 10/10] x86/crypto: add pclmul acceleration for crc64 Keith Busch
2022-02-22 17:02 ` David Laight
2022-02-22 17:14 ` Keith Busch
2022-02-22 20:06 ` Eric Biggers
2022-02-22 20:51 ` Keith Busch
-- strict thread matches above, loose matches on Subject: below --
2022-05-08 0:01 [PATCHv3 06/10]crypto: add rocksoft 64b crc framework Xiaoming Zhou
2022-05-09 20:37 ` Eric Biggers
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=YhU+kuMhueXVQvxe@sol.localdomain \
--to=ebiggers@kernel.org \
--cc=axboe@kernel.dk \
--cc=colyli@suse.de \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=martin.petersen@oracle.com \
--cc=x86@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox