crypto: marvell/cesa - use dma_addr_t for cur_dma
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 18 Oct 2015 17:31:05 +0000 (18:31 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 20 Oct 2015 14:13:56 +0000 (22:13 +0800)
cur_dma is part of the software state, not read by the hardware.
Storing it in LE32 format is wrong, use dma_addr_t for 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/cesa.h
drivers/crypto/marvell/tdma.c

index 8b5c0477edba9b5b3eddaeb9b6333efa1a7bc15c..d1edf01609dfe887ba692e88e77bb5eae39c0127 100644 (file)
@@ -297,7 +297,9 @@ struct mv_cesa_tdma_desc {
        u32 src;
        u32 dst;
        u32 next_dma;
-       u32 cur_dma;
+
+       /* Software state */
+       dma_addr_t cur_dma;
        struct mv_cesa_tdma_desc *next;
        union {
                struct mv_cesa_op_ctx *op;
index e8e8a7f7659bc347fb2f2740ed0474ea0a9ba5b0..c8256f5916b0ea4c25ece6c91d486257add8ab20 100644 (file)
@@ -69,7 +69,7 @@ void mv_cesa_dma_cleanup(struct mv_cesa_tdma_req *dreq)
 
                tdma = tdma->next;
                dma_pool_free(cesa_dev->dma->tdma_desc_pool, old_tdma,
-                             le32_to_cpu(old_tdma->cur_dma));
+                             old_tdma->cur_dma);
        }
 
        dreq->chain.first = NULL;
@@ -105,9 +105,9 @@ mv_cesa_dma_add_desc(struct mv_cesa_tdma_chain *chain, gfp_t flags)
                return ERR_PTR(-ENOMEM);
 
        memset(new_tdma, 0, sizeof(*new_tdma));
-       new_tdma->cur_dma = cpu_to_le32(dma_handle);
+       new_tdma->cur_dma = dma_handle;
        if (chain->last) {
-               chain->last->next_dma = new_tdma->cur_dma;
+               chain->last->next_dma = cpu_to_le32(dma_handle);
                chain->last->next = new_tdma;
        } else {
                chain->first = new_tdma;