From: Romain Perier Date: Tue, 21 Jun 2016 08:08:33 +0000 (+0200) Subject: crypto: marvell - Fix wrong type check in dma functions X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=b99acf79a17bf402ea5759ad9d44eba3ed837a59;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git crypto: marvell - Fix wrong type check in dma functions So far, the way that the type of a TDMA operation was checked was wrong. We have to use the type mask in order to get the right part of the flag containing the type of the operation. Signed-off-by: Romain Perier Acked-by: Boris Brezillon Signed-off-by: Herbert Xu --- diff --git a/drivers/crypto/marvell/tdma.c b/drivers/crypto/marvell/tdma.c index e416a7455d28..4d23bf95be9c 100644 --- a/drivers/crypto/marvell/tdma.c +++ b/drivers/crypto/marvell/tdma.c @@ -64,8 +64,9 @@ void mv_cesa_dma_cleanup(struct mv_cesa_tdma_req *dreq) for (tdma = dreq->chain.first; tdma;) { struct mv_cesa_tdma_desc *old_tdma = tdma; + u32 type = tdma->flags & CESA_TDMA_TYPE_MSK; - if (tdma->flags & CESA_TDMA_OP) + if (type == CESA_TDMA_OP) dma_pool_free(cesa_dev->dma->op_pool, tdma->op, le32_to_cpu(tdma->src)); @@ -90,7 +91,7 @@ void mv_cesa_dma_prepare(struct mv_cesa_tdma_req *dreq, if (tdma->flags & CESA_TDMA_SRC_IN_SRAM) tdma->src = cpu_to_le32(tdma->src + engine->sram_dma); - if (tdma->flags & CESA_TDMA_OP) + if ((tdma->flags & CESA_TDMA_TYPE_MSK) == CESA_TDMA_OP) mv_cesa_adjust_op(engine, tdma->op); } }