From d9de2508cdc0d7a6aedf2e401cd63be629ca51f8 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Fri, 25 May 2012 15:54:49 +0200 Subject: [PATCH] --- yaml --- r: 318335 b: refs/heads/master c: 4d03c5047a07a62563e1a8fa798ea258f048bfde h: refs/heads/master i: 318333: b7c455d85ac447587e6a6978c8ac1f5f820a2f85 318331: 2babb47e8375870050ee20419ba6817591c949ce 318327: a5158e05de46517ec92cc189635ddd3d65563a73 318319: 018e0272fd4d9bde0b97cad1965f74dead64ded4 318303: e0d00898ae95b74cd8a09ea3836877f22ccc429f 318271: 7c6266515648f86d52b05c4b731d4a30b9152bc9 318207: 732fb666b0aa0501c5e5c6f35ef3381d7f271176 v: v3 --- [refs] | 2 +- trunk/drivers/crypto/mv_cesa.c | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index d217779b9b97..a704319414c4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5741d2eeaee28b37a4711a1776f716b274f3d2e4 +refs/heads/master: 4d03c5047a07a62563e1a8fa798ea258f048bfde diff --git a/trunk/drivers/crypto/mv_cesa.c b/trunk/drivers/crypto/mv_cesa.c index 904623d45c62..0d4071754352 100644 --- a/trunk/drivers/crypto/mv_cesa.c +++ b/trunk/drivers/crypto/mv_cesa.c @@ -423,6 +423,15 @@ static int mv_hash_final_fallback(struct ahash_request *req) return rc; } +static void mv_save_digest_state(struct mv_req_hash_ctx *ctx) +{ + ctx->state[0] = readl(cpg->reg + DIGEST_INITIAL_VAL_A); + ctx->state[1] = readl(cpg->reg + DIGEST_INITIAL_VAL_B); + ctx->state[2] = readl(cpg->reg + DIGEST_INITIAL_VAL_C); + ctx->state[3] = readl(cpg->reg + DIGEST_INITIAL_VAL_D); + ctx->state[4] = readl(cpg->reg + DIGEST_INITIAL_VAL_E); +} + static void mv_hash_algo_completion(void) { struct ahash_request *req = ahash_request_cast(cpg->cur_req); @@ -437,14 +446,12 @@ static void mv_hash_algo_completion(void) memcpy(req->result, cpg->sram + SRAM_DIGEST_BUF, crypto_ahash_digestsize(crypto_ahash_reqtfm (req))); - } else + } else { + mv_save_digest_state(ctx); mv_hash_final_fallback(req); + } } else { - ctx->state[0] = readl(cpg->reg + DIGEST_INITIAL_VAL_A); - ctx->state[1] = readl(cpg->reg + DIGEST_INITIAL_VAL_B); - ctx->state[2] = readl(cpg->reg + DIGEST_INITIAL_VAL_C); - ctx->state[3] = readl(cpg->reg + DIGEST_INITIAL_VAL_D); - ctx->state[4] = readl(cpg->reg + DIGEST_INITIAL_VAL_E); + mv_save_digest_state(ctx); } }