crypto: marvell/cesa - fix first-fragment handling in mv_cesa_ahash_dma_last_req()
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 18 Oct 2015 16:24:52 +0000 (17:24 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 20 Oct 2015 14:11:09 +0000 (22:11 +0800)
When adding the software padding, this must be done using the first/mid
fragment mode, and any subsequent operation needs to be a mid-fragment.
Fix this.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/marvell/hash.c

index f4d5a72235601fc0b55de1757180a13096d57ddd..4c80126de3ad1941c0bac519335cd7d69e43037f 100644 (file)
@@ -575,20 +575,12 @@ mv_cesa_ahash_dma_last_req(struct mv_cesa_tdma_chain *chain,
                if (IS_ERR(op))
                        return op;
 
-               mv_cesa_update_op_cfg(op, CESA_SA_DESC_CFG_MID_FRAG,
-                                     CESA_SA_DESC_CFG_FRAG_MSK);
-
                if (len == trailerlen)
                        return op;
 
                padoff += len;
        }
 
-       if (!mv_cesa_mac_op_is_first_frag(&creq->op_tmpl))
-               mv_cesa_update_op_cfg(&creq->op_tmpl,
-                                     CESA_SA_DESC_CFG_MID_FRAG,
-                                     CESA_SA_DESC_CFG_FRAG_MSK);
-
        ret = mv_cesa_dma_add_data_transfer(chain,
                                            CESA_SA_DATA_SRAM_OFFSET,
                                            ahashdreq->padding_dma +