[PATCH v3 0/5] zram: fix zstd per-CPU error path and add parameter validation
Haoqin Huang <[email protected]> Thu, 30 Jul 2026 10:52:35 +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). Patches 3-4 add parameter validation: per-backend level bounds checking in zstd_setup_params() (patch 3), and a generic zcomp_validate_params() with per-backend caps to reject unsupported dict/level parameters before storing (patch 4). Patch 5 resets per-priority params on algorithm change before init. Changes since v2: - Patch 1: removed "fix" from subject, reworded commit message - Patch 2: dropped atomic dict swap; kernel_read_file() already rejects empty files, so just use sz <= 0 and add pr_err - Patch 3: dropped ZSTD_MAX_CLEVEL header move, validate in setup_params using runtime zstd_max_clevel() instead - Patch 4: merged validate functions into zcomp_validate_params() with internal pr_err for specific error messages; sentinel level_max=-1 for zstd v2: https://lore.kernel.org/all/[email protected]/ Haoqin Huang (5): zram: do not release zstd params in per-CPU error path zram: reject zero-size dictionary zram: add level validation in zstd setup_params zram: add per-backend caps and validate parameters early zram: reset per-priority params when changing algorithm before init drivers/block/zram/backend_842.c | 1 + drivers/block/zram/backend_deflate.c | 3 +++ drivers/block/zram/backend_lz4.c | 3 +++ drivers/block/zram/backend_lz4hc.c | 3 +++ drivers/block/zram/backend_lzo.c | 1 + drivers/block/zram/backend_lzorle.c | 1 + drivers/block/zram/backend_zstd.c | 9 ++++++++- drivers/block/zram/zcomp.c | 27 +++++++++++++++++++++++++++ drivers/block/zram/zcomp.h | 7 +++++++ drivers/block/zram/zram_drv.c | 15 ++++++++++++++- 10 files changed, 68 insertions(+), 2 deletions(-) -- 2.43.7