if (IS_ERR(hmac_md5))
                goto out_free_md5;
 
-       req = ahash_request_alloc(md5, GFP_KERNEL);
+       req = ahash_request_alloc(md5, GFP_NOFS);
        if (!req)
                goto out_free_hmac_md5;
 
                goto out;
 
        ahash_request_free(req);
-       req = ahash_request_alloc(hmac_md5, GFP_KERNEL);
+       req = ahash_request_alloc(hmac_md5, GFP_NOFS);
        if (!req)
                goto out_free_hmac_md5;
 
        if (IS_ERR(tfm))
                goto out_free_cksum;
 
-       req = ahash_request_alloc(tfm, GFP_KERNEL);
+       req = ahash_request_alloc(tfm, GFP_NOFS);
        if (!req)
                goto out_free_ahash;
 
                goto out_free_cksum;
        checksumlen = crypto_ahash_digestsize(tfm);
 
-       req = ahash_request_alloc(tfm, GFP_KERNEL);
+       req = ahash_request_alloc(tfm, GFP_NOFS);
        if (!req)
                goto out_free_ahash;
 
        }
 
        desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac),
-                      GFP_KERNEL);
+                      GFP_NOFS);
        if (!desc) {
                dprintk("%s: failed to allocate shash descriptor for '%s'\n",
                        __func__, kctx->gk5e->cksum_name);
        }
 
        desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac),
-                      GFP_KERNEL);
+                      GFP_NOFS);
        if (!desc) {
                dprintk("%s: failed to allocate shash descriptor for '%s'\n",
                        __func__, kctx->gk5e->cksum_name);
 
                goto out_err_free_hmac;
 
 
-       desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac),
-                      GFP_KERNEL);
+       desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac), GFP_NOFS);
        if (!desc) {
                dprintk("%s: failed to allocate hash descriptor for '%s'\n",
                        __func__, ctx->gk5e->cksum_name);