From aff29da924d5c1a348e301eacdfdeb1a3cace81c Mon Sep 17 00:00:00 2001 From: Uri Simchoni Date: Thu, 8 Apr 2010 19:33:26 +0300 Subject: [PATCH] --- yaml --- r: 196715 b: refs/heads/master c: 0c5c6c4bae8fe9ae3d86b44c332eb1267df1ec99 h: refs/heads/master i: 196713: 14425e9faba0fe7063ff632c06aff623bc988993 196711: 592178261a1a3c95e0e64b74cd272a87c32eff52 v: v3 --- [refs] | 2 +- trunk/drivers/crypto/mv_cesa.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index e51b7ccebf8f..9182fbe5dae1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f0d03deaad05d9cc99cd2ee0475c9ecd726c19ae +refs/heads/master: 0c5c6c4bae8fe9ae3d86b44c332eb1267df1ec99 diff --git a/trunk/drivers/crypto/mv_cesa.c b/trunk/drivers/crypto/mv_cesa.c index 49a22060fb51..d0fb10e701c5 100644 --- a/trunk/drivers/crypto/mv_cesa.c +++ b/trunk/drivers/crypto/mv_cesa.c @@ -184,10 +184,11 @@ static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len) static void setup_data_in(void) { struct req_progress *p = &cpg->p; - p->crypt_len = + int data_in_sram = min(p->hw_nbytes - p->hw_processed_bytes, cpg->max_req_size); - copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START, - p->crypt_len); + copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START + p->crypt_len, + data_in_sram - p->crypt_len); + p->crypt_len = data_in_sram; } static void mv_process_current_q(int first_block) @@ -298,6 +299,7 @@ static void dequeue_complete_req(void) } while (need_copy_len > 0); } + cpg->p.crypt_len = 0; BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) {