diff options
-rw-r--r-- | drivers/crypto/talitos.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c index fdb0680f6ffe..79fdba2a20c0 100644 --- a/drivers/crypto/talitos.c +++ b/drivers/crypto/talitos.c | |||
@@ -1015,6 +1015,8 @@ static struct ipsec_esp_edesc *ipsec_esp_edesc_alloc(struct aead_request *areq, | |||
1015 | struct talitos_ctx *ctx = crypto_aead_ctx(authenc); | 1015 | struct talitos_ctx *ctx = crypto_aead_ctx(authenc); |
1016 | struct ipsec_esp_edesc *edesc; | 1016 | struct ipsec_esp_edesc *edesc; |
1017 | int src_nents, dst_nents, alloc_len, dma_len; | 1017 | int src_nents, dst_nents, alloc_len, dma_len; |
1018 | gfp_t flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP ? GFP_KERNEL : | ||
1019 | GFP_ATOMIC; | ||
1018 | 1020 | ||
1019 | if (areq->cryptlen + ctx->authsize > TALITOS_MAX_DATA_LEN) { | 1021 | if (areq->cryptlen + ctx->authsize > TALITOS_MAX_DATA_LEN) { |
1020 | dev_err(ctx->dev, "cryptlen exceeds h/w max limit\n"); | 1022 | dev_err(ctx->dev, "cryptlen exceeds h/w max limit\n"); |
@@ -1046,7 +1048,7 @@ static struct ipsec_esp_edesc *ipsec_esp_edesc_alloc(struct aead_request *areq, | |||
1046 | alloc_len += icv_stashing ? ctx->authsize : 0; | 1048 | alloc_len += icv_stashing ? ctx->authsize : 0; |
1047 | } | 1049 | } |
1048 | 1050 | ||
1049 | edesc = kmalloc(alloc_len, GFP_DMA); | 1051 | edesc = kmalloc(alloc_len, GFP_DMA | flags); |
1050 | if (!edesc) { | 1052 | if (!edesc) { |
1051 | dev_err(ctx->dev, "could not allocate edescriptor\n"); | 1053 | dev_err(ctx->dev, "could not allocate edescriptor\n"); |
1052 | return ERR_PTR(-ENOMEM); | 1054 | return ERR_PTR(-ENOMEM); |
@@ -1508,7 +1510,7 @@ static int talitos_probe(struct of_device *ofdev, | |||
1508 | } | 1510 | } |
1509 | } | 1511 | } |
1510 | 1512 | ||
1511 | priv->submit_count = kmalloc(sizeof(int) * priv->num_channels, | 1513 | priv->submit_count = kmalloc(sizeof(atomic_t) * priv->num_channels, |
1512 | GFP_KERNEL); | 1514 | GFP_KERNEL); |
1513 | if (!priv->submit_count) { | 1515 | if (!priv->submit_count) { |
1514 | dev_err(dev, "failed to allocate fifo submit count space\n"); | 1516 | dev_err(dev, "failed to allocate fifo submit count space\n"); |