crc-t10dif: Allow current transform to be inspected in sysfs
authorMartin K. Petersen <martin.petersen@oracle.com>
Thu, 30 Aug 2018 15:00:16 +0000 (11:00 -0400)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 4 Sep 2018 03:37:05 +0000 (11:37 +0800)
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>
lib/crc-t10dif.c

index 52f577a3868ded7ec8a1851212883318229c6e22..6507fa101effe326ea80ba088a94ad41dd2e4e16 100644 (file)
@@ -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");