From: Frank Seidel <fr...@f-seidel.de>

Applying kernel janitors todos (printk calls need KERN_*
constants on linebeginnings, reduce stack footprint where
possible) to tcrypts test_hash_speed (where stacks
memory footprint was very high (on i386 1184 bytes to
292 now).

Signed-off-by: Frank Seidel <fr...@f-seidel.de>
---
 crypto/tcrypt.c |   29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)

--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -396,26 +396,34 @@ static void test_hash_speed(const char *
        struct scatterlist sg[TVMEMSIZE];
        struct crypto_hash *tfm;
        struct hash_desc desc;
-       char output[1024];
+       char *output;
+       size_t output_size = 1024;
        int i;
        int ret;
 
-       printk("\ntesting speed of %s\n", algo);
+       printk(KERN_INFO "\ntesting speed of %s\n", algo);
+
+       output = kmalloc(output_size * sizeof(*output), GFP_KERNEL);
+       if (!output) {
+               printk(KERN_ERR "tcrypt: failed to allocate outputbuffer\n");
+               return;
+       }
 
        tfm = crypto_alloc_hash(algo, 0, CRYPTO_ALG_ASYNC);
 
        if (IS_ERR(tfm)) {
-               printk("failed to load transform for %s: %ld\n", algo,
+               printk(KERN_ERR "failed to load transform for %s: %ld\n", algo,
                       PTR_ERR(tfm));
+               kfree(output);
                return;
        }
 
        desc.tfm = tfm;
        desc.flags = 0;
 
-       if (crypto_hash_digestsize(tfm) > sizeof(output)) {
-               printk("digestsize(%u) > outputbuffer(%zu)\n",
-                      crypto_hash_digestsize(tfm), sizeof(output));
+       if (crypto_hash_digestsize(tfm) > output_size) {
+               printk(KERN_ERR "digestsize(%u) > outputbuffer(%zu)\n",
+                      crypto_hash_digestsize(tfm), output_size);
                goto out;
        }
 
@@ -427,12 +435,14 @@ static void test_hash_speed(const char *
 
        for (i = 0; speed[i].blen != 0; i++) {
                if (speed[i].blen > TVMEMSIZE * PAGE_SIZE) {
-                       printk("template (%u) too big for tvmem (%lu)\n",
+                       printk(KERN_ERR
+                              "template (%u) too big for tvmem (%lu)\n",
                               speed[i].blen, TVMEMSIZE * PAGE_SIZE);
                        goto out;
                }
 
-               printk("test%3u (%5u byte blocks,%5u bytes per update,%4u 
updates): ",
+               printk(KERN_INFO "test%3u "
+                      "(%5u byte blocks,%5u bytes per update,%4u updates): ",
                       i, speed[i].blen, speed[i].plen, speed[i].blen / 
speed[i].plen);
 
                if (sec)
@@ -443,13 +453,14 @@ static void test_hash_speed(const char *
                                               speed[i].plen, output);
 
                if (ret) {
-                       printk("hashing failed ret=%d\n", ret);
+                       printk(KERN_ERR "hashing failed ret=%d\n", ret);
                        break;
                }
        }
 
 out:
        crypto_free_hash(tfm);
+       kfree(output);
 }
 
 static void test_available(void)
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to