mirror of https://gitee.com/openkylin/linux.git
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: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
e864c189e1
commit
56094edd17
|
@ -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,
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue