[PATCH v2 00/30] Clean and improve SA2UL driver
From: Manorit Chawdhry
Date: Wed Nov 04 2026 - 00:55:12 EST
The following series focuses on some cleanups to the sa2ul driver, it
starts with very trivial cleanups then goes to fix some bigger cleanups
and migration to crypto_engine which help fix the broader race condition
problems with the driver, thereafter it adds the support for AES CM as
per SAxUL 3.1 IP. KASAN is also run alongside to fix the issues caught
by them.
https://gist.github.com/manorit2001/0c005603f1a2da0e82c760e209ab0c4a
Signed-off-by: Manorit Chawdhry <m-chawdhry@xxxxxx>
---
Changes in v2:
* Sashiko (visible web review)
- Improve some commit descriptions
- Map contexts at allocation and remove the redundant mempool
allocation check
- Prime AES-CM before registering algorithms; fail probe if
priming fails
- Wipe the temporary AES-CM round key
* Sashiko (API-only concerns) [0]
- Make the probe register mapping local
- Validate context IDs and AES keys
- Check scatterlist errors and handle unaligned IVs
- Synchronize DMA using the recorded mapping direction
* Pratham
- Use fixed hash/skcipher request sizes
- Migrate to init_tfm/exit_tfm
* Self
- Rebase onto linux-next
- Remove Assisted-by tags
- Drop few patches that are irrelevant after rebase
- Remove redundant algorithm IDs while preserving digest sizes
- Remove unused SA_MAX_AUX_DATA_WORDS
- Preserve full authentication-key lengths
- Propagate DMA completion errors in a separate fix
- Unwind fallback transforms and security contexts on init failure
- Stop the engine and quiesce DMA once before teardown
Link to v1: https://lore.kernel.org/all/20260915-b4-upstream-sa2ul-cleanup-v1-0-57ab34e97162@xxxxxx
[0] https://sashiko.dev/api/patchset?id=20260915-b4-upstream-sa2ul-cleanup-v1-0-57ab34e97162%40ti.com
---
Manorit Chawdhry (30):
crypto: sa2ul - remove dead code
crypto: sa2ul - remove totally unused structure fields
crypto: sa2ul - remove unused fields from sa_cmdl_cfg
crypto: sa2ul - remove unused context fields
crypto: sa2ul - remove unused macro definitions
crypto: sa2ul - remove unused base register pointer
crypto: sa2ul - remove unused includes and defines
crypto: sa2ul - remove unused line
crypto: sa2ul - remove redundant sa_sha_digest() wrapper
crypto: sa2ul - fix struct documentation for match_data
crypto: sa2ul - keep the probe register mapping local
crypto: sa2ul - zero out security context on free
crypto: sa2ul - preserve full authentication key lengths
crypto: sa2ul - validate AES key sizes before indexing
crypto: sa2ul - remove unused SC ID range tracking
crypto: sa2ul - copy command-label inputs locally
crypto: sa2ul - consolidate encryption offset definitions
crypto: sa2ul - handle unaligned IV buffers
crypto: sa2ul - remove redundant algorithm ID fields
crypto: sa2ul - handle transform initialization failures
crypto: sa2ul - reject exhausted context IDs
crypto: sa2ul - validate scatterlist setup and unwind DMA mappings
crypto: sa2ul - propagate DMA transfer errors
crypto: sa2ul - calculate DMA metadata length from the command label
crypto: sa2ul - correct scatterlist DMA ownership transitions
crypto: sa2ul - use a mempool for security contexts
crypto: sa2ul - use synchronous fallbacks and fixed request sizes
crypto: sa2ul - route requests through crypto_engine
crypto: sa2ul - report SA engine hardware revision
crypto: sa2ul - add SA3UL_CM AES support
drivers/crypto/Kconfig | 1 +
drivers/crypto/sa2ul.c | 1265 +++++++++++++++++++++++++++++++-----------------
drivers/crypto/sa2ul.h | 172 ++-----
3 files changed, 854 insertions(+), 584 deletions(-)
---
base-commit: 7649ba73f9e7e1e04d0b46213e39c79ae09dd55c
change-id: 20251106-b4-upstream-sa2ul-cleanup-ce85d40c7eb8
Best regards,
--
Manorit Chawdhry <m-chawdhry@xxxxxx>