aboutsummaryrefslogtreecommitdiffstats
path: root/lib/crc-t10dif.c
diff options
context:
space:
mode:
authorMartin K. Petersen <martin.petersen@oracle.com>2018-08-30 11:00:16 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2018-09-04 11:37:05 +0800
commit11dcb1037f40a19f298845a9b2ec093f7b8b958b (patch)
treeca65e8fbec63102f141b0020031af7c16eb096ac /lib/crc-t10dif.c
parentcrc-t10dif: Pick better transform if one becomes available (diff)
downloadlinux-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.c11
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");