diff options
author | Tom Lendacky <thomas.lendacky@amd.com> | 2014-01-06 14:33:59 -0500 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2014-01-14 22:33:35 -0500 |
commit | 5258de8af04af0caf129f1ce432d1817a5800887 (patch) | |
tree | 9ab34cb02735c76c17c92193cafc53468fbd22e6 /drivers/crypto | |
parent | d16b87003ff4e5ae5138e492113de73ff85d35f2 (diff) |
crypto: ccp - Apply appropriate gfp_t type to memory allocations
Fix some memory allocations to use the appropriate gfp_t type based
on the CRYPTO_TFM_REQ_MAY_SLEEP flag.
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto')
-rw-r--r-- | drivers/crypto/ccp/ccp-crypto-aes-cmac.c | 5 | ||||
-rw-r--r-- | drivers/crypto/ccp/ccp-crypto-sha.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/crypto/ccp/ccp-crypto-aes-cmac.c b/drivers/crypto/ccp/ccp-crypto-aes-cmac.c index 64dd35e291b0..398832c2414a 100644 --- a/drivers/crypto/ccp/ccp-crypto-aes-cmac.c +++ b/drivers/crypto/ccp/ccp-crypto-aes-cmac.c | |||
@@ -61,6 +61,7 @@ static int ccp_do_cmac_update(struct ahash_request *req, unsigned int nbytes, | |||
61 | unsigned int block_size = | 61 | unsigned int block_size = |
62 | crypto_tfm_alg_blocksize(crypto_ahash_tfm(tfm)); | 62 | crypto_tfm_alg_blocksize(crypto_ahash_tfm(tfm)); |
63 | unsigned int len, need_pad, sg_count; | 63 | unsigned int len, need_pad, sg_count; |
64 | gfp_t gfp; | ||
64 | int ret; | 65 | int ret; |
65 | 66 | ||
66 | if (!ctx->u.aes.key_len) | 67 | if (!ctx->u.aes.key_len) |
@@ -99,7 +100,9 @@ static int ccp_do_cmac_update(struct ahash_request *req, unsigned int nbytes, | |||
99 | * possible data pieces (buffer, input data, padding) | 100 | * possible data pieces (buffer, input data, padding) |
100 | */ | 101 | */ |
101 | sg_count = (nbytes) ? sg_nents(req->src) + 2 : 2; | 102 | sg_count = (nbytes) ? sg_nents(req->src) + 2 : 2; |
102 | ret = sg_alloc_table(&rctx->data_sg, sg_count, GFP_KERNEL); | 103 | gfp = req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP ? |
104 | GFP_KERNEL : GFP_ATOMIC; | ||
105 | ret = sg_alloc_table(&rctx->data_sg, sg_count, gfp); | ||
103 | if (ret) | 106 | if (ret) |
104 | return ret; | 107 | return ret; |
105 | 108 | ||
diff --git a/drivers/crypto/ccp/ccp-crypto-sha.c b/drivers/crypto/ccp/ccp-crypto-sha.c index b0881df67534..0571940cfdf9 100644 --- a/drivers/crypto/ccp/ccp-crypto-sha.c +++ b/drivers/crypto/ccp/ccp-crypto-sha.c | |||
@@ -128,6 +128,7 @@ static int ccp_do_sha_update(struct ahash_request *req, unsigned int nbytes, | |||
128 | unsigned int block_size = | 128 | unsigned int block_size = |
129 | crypto_tfm_alg_blocksize(crypto_ahash_tfm(tfm)); | 129 | crypto_tfm_alg_blocksize(crypto_ahash_tfm(tfm)); |
130 | unsigned int len, sg_count; | 130 | unsigned int len, sg_count; |
131 | gfp_t gfp; | ||
131 | int ret; | 132 | int ret; |
132 | 133 | ||
133 | if (!final && ((nbytes + rctx->buf_count) <= block_size)) { | 134 | if (!final && ((nbytes + rctx->buf_count) <= block_size)) { |
@@ -156,7 +157,9 @@ static int ccp_do_sha_update(struct ahash_request *req, unsigned int nbytes, | |||
156 | * possible data pieces (hmac ipad, buffer, input data) | 157 | * possible data pieces (hmac ipad, buffer, input data) |
157 | */ | 158 | */ |
158 | sg_count = (nbytes) ? sg_nents(req->src) + 2 : 2; | 159 | sg_count = (nbytes) ? sg_nents(req->src) + 2 : 2; |
159 | ret = sg_alloc_table(&rctx->data_sg, sg_count, GFP_KERNEL); | 160 | gfp = req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP ? |
161 | GFP_KERNEL : GFP_ATOMIC; | ||
162 | ret = sg_alloc_table(&rctx->data_sg, sg_count, gfp); | ||
160 | if (ret) | 163 | if (ret) |
161 | return ret; | 164 | return ret; |
162 | 165 | ||