]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
crypto: aspeed/hash - Reorganise struct aspeed_sham_reqctx
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 13 May 2025 06:03:50 +0000 (14:03 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 13 Jun 2025 09:26:15 +0000 (17:26 +0800)
Move the from-device DMA buffer to the front of the structure.

Sort the rest by size and alignment.

Keep the partial block buffer at the end.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/aspeed/aspeed-hace.h

index 7ff1798bc198381761dbd62466f312c71239e1dc..a34677f10966a9c3c5bd799fc4ce10f7234dbda7 100644 (file)
@@ -165,6 +165,12 @@ struct aspeed_sham_ctx {
 };
 
 struct aspeed_sham_reqctx {
+       /* DMA buffer written by hardware */
+       u8                      digest[SHA512_DIGEST_SIZE] __aligned(64);
+
+       /* Software state sorted by size. */
+       u64                     digcnt[2];
+
        unsigned long           flags;          /* final update flag should no use*/
        unsigned long           op;             /* final or update */
        u32                     cmd;            /* trigger cmd */
@@ -181,14 +187,13 @@ struct aspeed_sham_reqctx {
        const __be32            *sha_iv;
 
        /* remain data buffer */
-       u8                      buffer[SHA512_BLOCK_SIZE * 2];
        dma_addr_t              buffer_dma_addr;
        size_t                  bufcnt;         /* buffer counter */
 
-       /* output buffer */
-       u8                      digest[SHA512_DIGEST_SIZE] __aligned(64);
        dma_addr_t              digest_dma_addr;
-       u64                     digcnt[2];
+
+       /* This is DMA too but read-only for hardware. */
+       u8                      buffer[SHA512_BLOCK_SIZE * 2];
 };
 
 struct aspeed_engine_crypto {