diff options
author | Martin K. Petersen <martin.petersen@oracle.com> | 2018-08-30 11:00:16 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2018-09-04 11:37:05 +0800 |
commit | 11dcb1037f40a19f298845a9b2ec093f7b8b958b (patch) | |
tree | ca65e8fbec63102f141b0020031af7c16eb096ac /lib/crc-t10dif.c | |
parent | crc-t10dif: Pick better transform if one becomes available (diff) | |
download | linux-dev-11dcb1037f40a19f298845a9b2ec093f7b8b958b.tar.xz linux-dev-11dcb1037f40a19f298845a9b2ec093f7b8b958b.zip |
crc-t10dif: Allow current transform to be inspected in sysfs
Add a way to print the currently active CRC algorithm in:
/sys/module/crc_t10dif/parameters/transform
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
-rw-r--r-- | lib/crc-t10dif.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/crc-t10dif.c b/lib/crc-t10dif.c index 52f577a3868d..6507fa101eff 100644 --- a/lib/crc-t10dif.c +++ b/lib/crc-t10dif.c @@ -107,6 +107,17 @@ static void __exit crc_t10dif_mod_fini(void) module_init(crc_t10dif_mod_init); module_exit(crc_t10dif_mod_fini); +static int crc_t10dif_transform_show(char *buffer, const struct kernel_param *kp) +{ + if (static_key_false(&crct10dif_fallback)) + return sprintf(buffer, "fallback\n"); + + return sprintf(buffer, "%s\n", + crypto_tfm_alg_driver_name(crypto_shash_tfm(crct10dif_tfm))); +} + +module_param_call(transform, NULL, crc_t10dif_transform_show, NULL, 0644); + MODULE_DESCRIPTION("T10 DIF CRC calculation"); MODULE_LICENSE("GPL"); MODULE_SOFTDEP("pre: crct10dif"); |