]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - crypto/tcrypt.c
Merge remote-tracking branch 'h8300/h8300-next'
[karo-tx-linux.git] / crypto / tcrypt.c
index 2b00b617daab537dba7657b6fbc569d440db931f..46a4a757d478dc8563e9920ee2ad16736f18faac 100644 (file)
@@ -48,6 +48,8 @@
 #define ENCRYPT 1
 #define DECRYPT 0
 
+#define MAX_DIGEST_SIZE                64
+
 /*
  * return a string with the driver name
  */
@@ -950,7 +952,7 @@ static void test_ahash_speed(const char *algo, unsigned int secs,
        struct tcrypt_result tresult;
        struct ahash_request *req;
        struct crypto_ahash *tfm;
-       static char output[1024];
+       char *output;
        int i, ret;
 
        tfm = crypto_alloc_ahash(algo, 0, 0);
@@ -963,9 +965,9 @@ static void test_ahash_speed(const char *algo, unsigned int secs,
        printk(KERN_INFO "\ntesting speed of async %s (%s)\n", algo,
                        get_driver_name(crypto_ahash, tfm));
 
-       if (crypto_ahash_digestsize(tfm) > sizeof(output)) {
-               pr_err("digestsize(%u) > outputbuffer(%zu)\n",
-                      crypto_ahash_digestsize(tfm), sizeof(output));
+       if (crypto_ahash_digestsize(tfm) > MAX_DIGEST_SIZE) {
+               pr_err("digestsize(%u) > %d\n", crypto_ahash_digestsize(tfm),
+                      MAX_DIGEST_SIZE);
                goto out;
        }
 
@@ -980,6 +982,10 @@ static void test_ahash_speed(const char *algo, unsigned int secs,
        ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
                                   tcrypt_complete, &tresult);
 
+       output = kmalloc(MAX_DIGEST_SIZE, GFP_KERNEL);
+       if (!output)
+               goto out_nomem;
+
        for (i = 0; speed[i].blen != 0; i++) {
                if (speed[i].blen > TVMEMSIZE * PAGE_SIZE) {
                        pr_err("template (%u) too big for tvmem (%lu)\n",
@@ -1006,6 +1012,9 @@ static void test_ahash_speed(const char *algo, unsigned int secs,
                }
        }
 
+       kfree(output);
+
+out_nomem:
        ahash_request_free(req);
 
 out: