aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto
diff options
context:
space:
mode:
authorTom Lendacky <thomas.lendacky@amd.com>2014-01-06 14:33:59 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2014-01-14 22:33:35 -0500
commit5258de8af04af0caf129f1ce432d1817a5800887 (patch)
tree9ab34cb02735c76c17c92193cafc53468fbd22e6 /drivers/crypto
parentd16b87003ff4e5ae5138e492113de73ff85d35f2 (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.c5
-rw-r--r--drivers/crypto/ccp/ccp-crypto-sha.c5
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