diff options
-rw-r--r-- | drivers/crypto/caam/caamhash.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/crypto/caam/caamhash.c b/drivers/crypto/caam/caamhash.c index 81712aa5d0f2..bb1a2cdf1951 100644 --- a/drivers/crypto/caam/caamhash.c +++ b/drivers/crypto/caam/caamhash.c | |||
@@ -1072,13 +1072,16 @@ static int ahash_final_no_ctx(struct ahash_request *req) | |||
1072 | 1072 | ||
1073 | desc = edesc->hw_desc; | 1073 | desc = edesc->hw_desc; |
1074 | 1074 | ||
1075 | state->buf_dma = dma_map_single(jrdev, buf, buflen, DMA_TO_DEVICE); | 1075 | if (buflen) { |
1076 | if (dma_mapping_error(jrdev, state->buf_dma)) { | 1076 | state->buf_dma = dma_map_single(jrdev, buf, buflen, |
1077 | dev_err(jrdev, "unable to map src\n"); | 1077 | DMA_TO_DEVICE); |
1078 | goto unmap; | 1078 | if (dma_mapping_error(jrdev, state->buf_dma)) { |
1079 | } | 1079 | dev_err(jrdev, "unable to map src\n"); |
1080 | goto unmap; | ||
1081 | } | ||
1080 | 1082 | ||
1081 | append_seq_in_ptr(desc, state->buf_dma, buflen, 0); | 1083 | append_seq_in_ptr(desc, state->buf_dma, buflen, 0); |
1084 | } | ||
1082 | 1085 | ||
1083 | edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, | 1086 | edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, |
1084 | digestsize); | 1087 | digestsize); |