Skip to contentSkip to conversation

crypto: xilinx - use kfree_sensitive() in cleanup paths

PATCH In review Thorsten Blum 3 participants 3 messages Sep 8 – Sep 18

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 crypto: xilinx - use kfree_sensitive() in cleanup paths

In zynqmp_aes_aead_cipher() and versal_aes_aead_cipher(), replace memzero_explicit() followed by kfree() with kfree_sensitive() to simplify the code.

---
 drivers/crypto/xilinx/zynqmp-aes-gcm.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/crypto/xilinx/zynqmp-aes-gcm.c +4 -8
index ebee37dddb1f..d9bd6dcd23a6 100644
@@ -230,10 +230,8 @@ static int zynqmp_aes_aead_cipher(struct aead_request *req)
 	}
 
 freemem:
-	memzero_explicit(kbuf, dma_size);
-	kfree(kbuf);
-	memzero_explicit(dmabuf, sizeof(struct zynqmp_aead_hw_req) + GCM_AES_IV_SIZE);
-	kfree(dmabuf);
+	kfree_sensitive(kbuf);
+	kfree_sensitive(dmabuf);
 
 	return ret;
 }
@@ -364,11 +362,9 @@ static int versal_aes_aead_cipher(struct aead_request *req)
 	if (unlikely(dma_addr_hw_req))
 		dma_unmap_single(dev, dma_addr_hw_req, dmabuf_size, DMA_BIDIRECTIONAL);
 buf2_free:
-	memzero_explicit(dmabuf, dmabuf_size);
-	kfree(dmabuf);
+	kfree_sensitive(dmabuf);
 buf1_free:
-	memzero_explicit(kbuf, kbuf_size);
-	kfree(kbuf);
+	kfree_sensitive(kbuf);
 err:
 	return ret;
 }
Reviewed-by on v1 1/1
#1 lore raw

AMD General

Quoted 58 lines

-----Original Message-----
From: Thorsten Blum <[email protected]>
Sent: Wednesday, September 9, 2026 12:30 AM
To: Herbert Xu <[email protected]>; David S. Miller <[email protected]>; Simek, Michal <[email protected]>; Jain, Harsh (AECG-SSW) <[email protected]>; Uwe Kleine-König (The Capable Hub) <[email protected]>; Danilo Krummrich <[email protected]>; Takashi Sakamoto <[email protected]>
Cc: Thorsten Blum <[email protected]>; [email protected]; linux- [email protected]; [email protected]
Subject: [PATCH] crypto: xilinx - use kfree_sensitive() in cleanup paths

In zynqmp_aes_aead_cipher() and versal_aes_aead_cipher(), replace memzero_explicit() followed by kfree() with kfree_sensitive() to simplify the code.

---
 drivers/crypto/xilinx/zynqmp-aes-gcm.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/crypto/xilinx/zynqmp-aes-gcm.c +2 -4
index ebee37dddb1f..d9bd6dcd23a6 100644
@@ -230,10 +230,8 @@ static int zynqmp_aes_aead_cipher(struct
 aead_request *req)
        }
 
 freemem:
-       memzero_explicit(kbuf, dma_size);
-       kfree(kbuf);
-       memzero_explicit(dmabuf, sizeof(struct zynqmp_aead_hw_req) +
 GCM_AES_IV_SIZE);
-       kfree(dmabuf);
+       kfree_sensitive(kbuf);
+       kfree_sensitive(dmabuf);
 
        return ret;

}

drivers/crypto/xilinx/zynqmp-aes-gcm.c +2 -4
@@ -364,11 +362,9 @@ static int versal_aes_aead_cipher(struct aead_request
 *req)
        if (unlikely(dma_addr_hw_req))
                dma_unmap_single(dev, dma_addr_hw_req, dmabuf_size,
 DMA_BIDIRECTIONAL);
 buf2_free:
-       memzero_explicit(dmabuf, dmabuf_size);
-       kfree(dmabuf);
+       kfree_sensitive(dmabuf);
 buf1_free:
-       memzero_explicit(kbuf, kbuf_size);
-       kfree(kbuf);
+       kfree_sensitive(kbuf);
 err:
        return ret;
Quoted 1 line

}

maintainer
#2 lore raw
In reply to Thorsten Blum
Quoted 8 lines · Thorsten Blum

In zynqmp_aes_aead_cipher() and versal_aes_aead_cipher(), replace memzero_explicit() followed by kfree() with kfree_sensitive() to simplify the code.

---
 drivers/crypto/xilinx/zynqmp-aes-gcm.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

Patch applied. Thanks.

Signature · 3 lines
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt