diff options
author | Markus Elfring <elfring@users.sourceforge.net> | 2016-09-15 10:00:55 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2016-09-22 06:27:46 -0400 |
commit | 06435f3437599d01653d42670c604d0b28a878e1 (patch) | |
tree | d3f05146fe63d8405a957db625a425950e6ad420 | |
parent | 9e6df0fdfc4b3067de03f7be02f274e0a81737e7 (diff) |
crypto: caam - Move common error handling code in two functions
Move statements for error handling which were identical
in two if branches to the end of these functions.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | drivers/crypto/caam/caamhash.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/crypto/caam/caamhash.c b/drivers/crypto/caam/caamhash.c index adb8b19ee942..660dc206969f 100644 --- a/drivers/crypto/caam/caamhash.c +++ b/drivers/crypto/caam/caamhash.c | |||
@@ -1231,9 +1231,7 @@ static int ahash_final_no_ctx(struct ahash_request *req) | |||
1231 | state->buf_dma = dma_map_single(jrdev, buf, buflen, DMA_TO_DEVICE); | 1231 | state->buf_dma = dma_map_single(jrdev, buf, buflen, DMA_TO_DEVICE); |
1232 | if (dma_mapping_error(jrdev, state->buf_dma)) { | 1232 | if (dma_mapping_error(jrdev, state->buf_dma)) { |
1233 | dev_err(jrdev, "unable to map src\n"); | 1233 | dev_err(jrdev, "unable to map src\n"); |
1234 | ahash_unmap(jrdev, edesc, req, digestsize); | 1234 | goto unmap; |
1235 | kfree(edesc); | ||
1236 | return -ENOMEM; | ||
1237 | } | 1235 | } |
1238 | 1236 | ||
1239 | append_seq_in_ptr(desc, state->buf_dma, buflen, 0); | 1237 | append_seq_in_ptr(desc, state->buf_dma, buflen, 0); |
@@ -1242,9 +1240,7 @@ static int ahash_final_no_ctx(struct ahash_request *req) | |||
1242 | digestsize); | 1240 | digestsize); |
1243 | if (dma_mapping_error(jrdev, edesc->dst_dma)) { | 1241 | if (dma_mapping_error(jrdev, edesc->dst_dma)) { |
1244 | dev_err(jrdev, "unable to map dst\n"); | 1242 | dev_err(jrdev, "unable to map dst\n"); |
1245 | ahash_unmap(jrdev, edesc, req, digestsize); | 1243 | goto unmap; |
1246 | kfree(edesc); | ||
1247 | return -ENOMEM; | ||
1248 | } | 1244 | } |
1249 | edesc->src_nents = 0; | 1245 | edesc->src_nents = 0; |
1250 | 1246 | ||
@@ -1262,6 +1258,11 @@ static int ahash_final_no_ctx(struct ahash_request *req) | |||
1262 | } | 1258 | } |
1263 | 1259 | ||
1264 | return ret; | 1260 | return ret; |
1261 | unmap: | ||
1262 | ahash_unmap(jrdev, edesc, req, digestsize); | ||
1263 | kfree(edesc); | ||
1264 | return -ENOMEM; | ||
1265 | |||
1265 | } | 1266 | } |
1266 | 1267 | ||
1267 | /* submit ahash update if it the first job descriptor after update */ | 1268 | /* submit ahash update if it the first job descriptor after update */ |
@@ -1453,18 +1454,14 @@ static int ahash_finup_no_ctx(struct ahash_request *req) | |||
1453 | req->nbytes); | 1454 | req->nbytes); |
1454 | if (ret) { | 1455 | if (ret) { |
1455 | dev_err(jrdev, "unable to map S/G table\n"); | 1456 | dev_err(jrdev, "unable to map S/G table\n"); |
1456 | ahash_unmap(jrdev, edesc, req, digestsize); | 1457 | goto unmap; |
1457 | kfree(edesc); | ||
1458 | return -ENOMEM; | ||
1459 | } | 1458 | } |
1460 | 1459 | ||
1461 | edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, | 1460 | edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, |
1462 | digestsize); | 1461 | digestsize); |
1463 | if (dma_mapping_error(jrdev, edesc->dst_dma)) { | 1462 | if (dma_mapping_error(jrdev, edesc->dst_dma)) { |
1464 | dev_err(jrdev, "unable to map dst\n"); | 1463 | dev_err(jrdev, "unable to map dst\n"); |
1465 | ahash_unmap(jrdev, edesc, req, digestsize); | 1464 | goto unmap; |
1466 | kfree(edesc); | ||
1467 | return -ENOMEM; | ||
1468 | } | 1465 | } |
1469 | 1466 | ||
1470 | #ifdef DEBUG | 1467 | #ifdef DEBUG |
@@ -1481,6 +1478,11 @@ static int ahash_finup_no_ctx(struct ahash_request *req) | |||
1481 | } | 1478 | } |
1482 | 1479 | ||
1483 | return ret; | 1480 | return ret; |
1481 | unmap: | ||
1482 | ahash_unmap(jrdev, edesc, req, digestsize); | ||
1483 | kfree(edesc); | ||
1484 | return -ENOMEM; | ||
1485 | |||
1484 | } | 1486 | } |
1485 | 1487 | ||
1486 | /* submit first update job descriptor after init */ | 1488 | /* submit first update job descriptor after init */ |