Commit 56094edd authored by J. Bruce Fields's avatar J. Bruce Fields

sunrpc: GFP_KERNEL should be GFP_NOFS in crypto code

Writes may depend on the auth_gss crypto code, so we shouldn't be
allocating with GFP_KERNEL there.

This still leaves some crypto_alloc_* calls which end up doing
GFP_KERNEL allocations in the crypto code.  Those could probably done at
crypto import time.
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent e864c189
...@@ -200,7 +200,7 @@ make_checksum_hmac_md5(struct krb5_ctx *kctx, char *header, int hdrlen, ...@@ -200,7 +200,7 @@ make_checksum_hmac_md5(struct krb5_ctx *kctx, char *header, int hdrlen,
if (IS_ERR(hmac_md5)) if (IS_ERR(hmac_md5))
goto out_free_md5; goto out_free_md5;
req = ahash_request_alloc(md5, GFP_KERNEL); req = ahash_request_alloc(md5, GFP_NOFS);
if (!req) if (!req)
goto out_free_hmac_md5; goto out_free_hmac_md5;
...@@ -230,7 +230,7 @@ make_checksum_hmac_md5(struct krb5_ctx *kctx, char *header, int hdrlen, ...@@ -230,7 +230,7 @@ make_checksum_hmac_md5(struct krb5_ctx *kctx, char *header, int hdrlen,
goto out; goto out;
ahash_request_free(req); ahash_request_free(req);
req = ahash_request_alloc(hmac_md5, GFP_KERNEL); req = ahash_request_alloc(hmac_md5, GFP_NOFS);
if (!req) if (!req)
goto out_free_hmac_md5; goto out_free_hmac_md5;
...@@ -299,7 +299,7 @@ make_checksum(struct krb5_ctx *kctx, char *header, int hdrlen, ...@@ -299,7 +299,7 @@ make_checksum(struct krb5_ctx *kctx, char *header, int hdrlen,
if (IS_ERR(tfm)) if (IS_ERR(tfm))
goto out_free_cksum; goto out_free_cksum;
req = ahash_request_alloc(tfm, GFP_KERNEL); req = ahash_request_alloc(tfm, GFP_NOFS);
if (!req) if (!req)
goto out_free_ahash; goto out_free_ahash;
...@@ -397,7 +397,7 @@ make_checksum_v2(struct krb5_ctx *kctx, char *header, int hdrlen, ...@@ -397,7 +397,7 @@ make_checksum_v2(struct krb5_ctx *kctx, char *header, int hdrlen,
goto out_free_cksum; goto out_free_cksum;
checksumlen = crypto_ahash_digestsize(tfm); checksumlen = crypto_ahash_digestsize(tfm);
req = ahash_request_alloc(tfm, GFP_KERNEL); req = ahash_request_alloc(tfm, GFP_NOFS);
if (!req) if (!req)
goto out_free_ahash; goto out_free_ahash;
...@@ -963,7 +963,7 @@ krb5_rc4_setup_seq_key(struct krb5_ctx *kctx, struct crypto_skcipher *cipher, ...@@ -963,7 +963,7 @@ krb5_rc4_setup_seq_key(struct krb5_ctx *kctx, struct crypto_skcipher *cipher,
} }
desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac), desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac),
GFP_KERNEL); GFP_NOFS);
if (!desc) { if (!desc) {
dprintk("%s: failed to allocate shash descriptor for '%s'\n", dprintk("%s: failed to allocate shash descriptor for '%s'\n",
__func__, kctx->gk5e->cksum_name); __func__, kctx->gk5e->cksum_name);
...@@ -1030,7 +1030,7 @@ krb5_rc4_setup_enc_key(struct krb5_ctx *kctx, struct crypto_skcipher *cipher, ...@@ -1030,7 +1030,7 @@ krb5_rc4_setup_enc_key(struct krb5_ctx *kctx, struct crypto_skcipher *cipher,
} }
desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac), desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac),
GFP_KERNEL); GFP_NOFS);
if (!desc) { if (!desc) {
dprintk("%s: failed to allocate shash descriptor for '%s'\n", dprintk("%s: failed to allocate shash descriptor for '%s'\n",
__func__, kctx->gk5e->cksum_name); __func__, kctx->gk5e->cksum_name);
......
...@@ -451,8 +451,7 @@ context_derive_keys_rc4(struct krb5_ctx *ctx) ...@@ -451,8 +451,7 @@ context_derive_keys_rc4(struct krb5_ctx *ctx)
goto out_err_free_hmac; goto out_err_free_hmac;
desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac), desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac), GFP_NOFS);
GFP_KERNEL);
if (!desc) { if (!desc) {
dprintk("%s: failed to allocate hash descriptor for '%s'\n", dprintk("%s: failed to allocate hash descriptor for '%s'\n",
__func__, ctx->gk5e->cksum_name); __func__, ctx->gk5e->cksum_name);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment