[PATCH 26/30] crypto: sa2ul - use correct DMA direction in sa_sync_from_device
From: Manorit Chawdhry
Date: Tue Sep 15 2026 - 06:53:11 EST
Use correct DMA direction during sa_sync_from_device for proper
cache coherency handling.
Fixes: 00c9211f60db ("crypto: sa2ul - Fix DMA mapping API usage")
Assisted-by: Sisyphus:claude-sonnet-4-6
Signed-off-by: Manorit Chawdhry <m-chawdhry@xxxxxx>
---
drivers/crypto/sa2ul.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/crypto/sa2ul.c b/drivers/crypto/sa2ul.c
index 5e0ef12eb02b..df905b391339 100644
--- a/drivers/crypto/sa2ul.c
+++ b/drivers/crypto/sa2ul.c
@@ -1041,13 +1041,17 @@ static int sa_3des_ecb_setkey(struct crypto_skcipher *tfm, const u8 *key,
static void sa_sync_from_device(struct sa_rx_data *rxd)
{
struct sg_table *sgt;
+ u32 dir;
- if (rxd->mapped_sg[0].dir == DMA_BIDIRECTIONAL)
+ if (rxd->mapped_sg[0].dir == DMA_BIDIRECTIONAL) {
sgt = &rxd->mapped_sg[0].sgt;
- else
+ dir = rxd->mapped_sg[0].dir;
+ } else {
sgt = &rxd->mapped_sg[1].sgt;
+ dir = rxd->mapped_sg[1].dir;
+ }
- dma_sync_sgtable_for_cpu(rxd->ddev, sgt, DMA_FROM_DEVICE);
+ dma_sync_sgtable_for_cpu(rxd->ddev, sgt, dir);
}
static void sa_free_sa_rx_data(struct sa_rx_data *rxd)
--
2.43.0