Explorar o código

crypto: tcrypt - Add mask parameter

This patch adds a mask parameter to complement the existing type
parameter.  This is useful when instantiating algorithms that
require a mask other than the default, e.g., ahash algorithms.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Herbert Xu %!s(int64=16) %!d(string=hai) anos
pai
achega
7be380f720
Modificáronse 1 ficheiros con 6 adicións e 3 borrados
  1. 6 3
      crypto/tcrypt.c

+ 6 - 3
crypto/tcrypt.c

@@ -47,6 +47,7 @@ static unsigned int sec;
 
 
 static char *alg = NULL;
 static char *alg = NULL;
 static u32 type;
 static u32 type;
+static u32 mask;
 static int mode;
 static int mode;
 static char *tvmem[TVMEMSIZE];
 static char *tvmem[TVMEMSIZE];
 
 
@@ -887,9 +888,10 @@ static int do_test(int m)
 	return ret;
 	return ret;
 }
 }
 
 
-static int do_alg_test(const char *alg, u32 type)
+static int do_alg_test(const char *alg, u32 type, u32 mask)
 {
 {
-	return crypto_has_alg(alg, type, CRYPTO_ALG_TYPE_MASK) ? 0 : -ENOENT;
+	return crypto_has_alg(alg, type, mask ?: CRYPTO_ALG_TYPE_MASK) ?
+	       0 : -ENOENT;
 }
 }
 
 
 static int __init tcrypt_mod_init(void)
 static int __init tcrypt_mod_init(void)
@@ -904,7 +906,7 @@ static int __init tcrypt_mod_init(void)
 	}
 	}
 
 
 	if (alg)
 	if (alg)
-		err = do_alg_test(alg, type);
+		err = do_alg_test(alg, type, mask);
 	else
 	else
 		err = do_test(mode);
 		err = do_test(mode);
 
 
@@ -941,6 +943,7 @@ module_exit(tcrypt_mod_fini);
 
 
 module_param(alg, charp, 0);
 module_param(alg, charp, 0);
 module_param(type, uint, 0);
 module_param(type, uint, 0);
+module_param(mask, uint, 0);
 module_param(mode, int, 0);
 module_param(mode, int, 0);
 module_param(sec, uint, 0);
 module_param(sec, uint, 0);
 MODULE_PARM_DESC(sec, "Length in seconds of speed tests "
 MODULE_PARM_DESC(sec, "Length in seconds of speed tests "