[v5 PATCH 00/14] crypto: acomp - Add virtual address and folio support

Herbert Xu
2025-03-15T10:31:46Z

v5 removes the incompressible warnings in ubifs, removes more dead
code from qat, and replaces crypto_has_comp with crypto_has_acomp
in hibernate and ipcomp.

This patch series adds virtual address and folio support to acomp.
This finally brings it to feature parity with the legacy crypto_comp,
which enables us to convert the existing users to acomp.

The three users are converted according to their characteristics:
ubifs uses folio+linear, hibernate uses linear only while ipcomp
uses SG only.

Only ipcomp is fully asynchronous, ubifs supports asynchronous
but will wait on it and hibernate is synchronous only.

Herbert Xu (14):
xfrm: ipcomp: Call pskb_may_pull in ipcomp_input
crypto: scomp - Remove support for some non-trivial SG lists
crypto: iaa - Remove dst_null support
crypto: qat - Remove dst_null support
crypto: acomp - Remove dst_free
crypto: scomp - Add chaining and virtual address support
crypto: acomp - Add ACOMP_REQUEST_ALLOC and acomp_request_alloc_extra
crypto: iaa - Use acomp stack fallback
crypto: acomp - Add async nondma fallback
crypto: acomp - Add support for folios
xfrm: ipcomp: Use crypto_acomp interface
PM: hibernate: Use crypto_acomp interface
ubifs: Use crypto_acomp interface
ubifs: Pass folios to acomp

crypto/acompress.c | 148 ++++--
crypto/scompress.c | 189 ++++---
drivers/crypto/intel/iaa/iaa_crypto_main.c | 164 +-----
drivers/crypto/intel/qat/qat_common/qat_bl.c | 159 ------
drivers/crypto/intel/qat/qat_common/qat_bl.h | 6 -
.../intel/qat/qat_common/qat_comp_algs.c | 85 +---
.../intel/qat/qat_common/qat_comp_req.h | 10 -
fs/ubifs/compress.c | 208 ++++++--
fs/ubifs/file.c | 74 +--
fs/ubifs/journal.c | 11 +-
fs/ubifs/ubifs.h | 26 +-
include/crypto/acompress.h | 184 ++++++-
include/crypto/internal/acompress.h | 26 +-
include/crypto/internal/scompress.h | 2 -
include/linux/crypto.h | 1 +
include/net/ipcomp.h | 13 +-
kernel/power/hibernate.c | 5 +-
kernel/power/swap.c | 58 ++-
net/xfrm/xfrm_algo.c | 7 +-
net/xfrm/xfrm_ipcomp.c | 478 +++++++++---------
20 files changed, 932 insertions(+), 922 deletions(-)