[PATCH v2 0/2] zswap pool per-CPU acomp_ctx simplifications
From: Kanchana P. Sridhar
Date: Mon Mar 16 2026 - 21:48:27 EST
This patchset first removes redundant checks on the acomp_ctx and its
"req" member in zswap_cpu_comp_dead().
Next, it persists the zswap pool's per-CPU acomp_ctx resources to
last until the pool is destroyed. It then simplifies the per-CPU
acomp_ctx mutex locking in zswap_compress()/zswap_decompress().
Code comments added after allocation and before checking to deallocate
the per-CPU acomp_ctx's members, based on expected crypto API return
values and zswap changes this patchset makes.
Patch 2 is an independent submission of patch 23 from [1], to
facilitate merging.
[1]: https://patchwork.kernel.org/project/linux-mm/list/?series=1046677
Changes since v1:
=================
1) Made the changes to eliminate redundant checks on
acomp_ctx/acomp_ctx->req in zswap_cpu_comp_dead(), per Yosry.
2) Renamed acomp_ctx_dealloc() to acomp_ctx_free(), per Yosry.
3) Incorporated suggestions from Yosry and Sashiko to reset the
acomp_ctx's members to NULL after freeing them, to prevent UAF and
double free issues.
4) Replaced v1's patch 2 with v2's patch 1.
Kanchana P. Sridhar (2):
mm: zswap: Remove redundant checks in zswap_cpu_comp_dead().
mm: zswap: Tie per-CPU acomp_ctx lifetime to the pool.
mm/zswap.c | 182 +++++++++++++++++++++++++----------------------------
1 file changed, 85 insertions(+), 97 deletions(-)
--
2.39.5