[PATCH v4 0/4] zram: fix zstd per-CPU error path and add parameter validation
Haoqin Huang <[email protected]> Thu, 30 Jul 2026 14:01:29 +0800
| Newsgroups | org.kernel.vger.linux-block,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Haoqin Huang <[email protected]> Patch 1 removes zstd_release_params() from the per-CPU zstd_create() error path since per-CPU callbacks should not free global resources. Patch 2 rejects zero-size dictionaries and prints an error on dict load failure (currently errors are silently swallowed). Patch 3 moves parameter validation into each backend's .setup_params(): dict/level support checks for backends that don't support them, and level bounds checking for those that do (zstd uses zstd_min_clevel()/ zstd_max_clevel(), lz4hc uses LZ4HC_MIN/MAX_CLEVEL, etc.). Patch 4 resets per-priority params on algorithm change before init. Changes since v3: - Patch 3-4: dropped the generic caps + zcomp_validate_params() approach in favor of per-backend .setup_params() validation, keeping zcomp.c free of any library headers v3: https://lore.kernel.org/all/[email protected]/ Haoqin Huang (4): zram: do not release zstd params in per-CPU error path zram: reject zero-size dictionary zram: validate parameters in each backend's setup_params zram: reset per-priority params when changing algorithm before init drivers/block/zram/backend_842.c | 8 ++++++++ drivers/block/zram/backend_deflate.c | 9 +++++++++ drivers/block/zram/backend_lz4.c | 5 +++++ drivers/block/zram/backend_lz4hc.c | 5 +++++ drivers/block/zram/backend_lzo.c | 8 ++++++++ drivers/block/zram/backend_lzorle.c | 8 ++++++++ drivers/block/zram/backend_zstd.c | 6 +++++- drivers/block/zram/zram_drv.c | 8 +++++++- 8 files changed, 55 insertions(+), 2 deletions(-) -- 2.43.7