[PATCH v2 0/2] zswap pool per-CPU acomp_ctx simplifications

Kanchana P. Sridhar
2026-03-17T01:48:23Z

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