* [merged mm-stable] zram-validate-parameters-in-each-backends-setup_params.patch removed from -mm tree
@ 2026-08-25 1:53 Andrew Morton
0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2026-08-25 1:53 UTC (permalink / raw)
To: mm-commits, zigiwang, terrelln, senozhatsky, minchan, dsterba,
axboe, haoqinhuang, akpm
The quilt patch titled
Subject: zram: validate parameters in each backend's setup_params
has been removed from the -mm tree. Its filename was
zram-validate-parameters-in-each-backends-setup_params.patch
This patch was dropped because it was merged into the mm-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Haoqin Huang <haoqinhuang@tencent.com>
Subject: zram: validate parameters in each backend's setup_params
Date: Tue, 4 Aug 2026 17:38:40 +0800
Dict and level parameters are silently accepted even for backends that do
not support them. Validate these parameters in each backend's
.setup_params() to reject unsupported combinations and out-of-range levels
with a specific error message.
Link: https://lore.kernel.org/20260804093841.67920-5-haoqinhuang7@gmail.com
Signed-off-by: Haoqin Huang <haoqinhuang@tencent.com>
Signed-off-by: Rongwei Wang <zigiwang@tencent.com>
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: David Sterba <dsterba@suse.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Nick Terrell <terrelln@fb.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
drivers/block/zram/backend_842.c | 8 ++++++++
drivers/block/zram/backend_deflate.c | 13 ++++++++++++-
drivers/block/zram/backend_lz4.c | 6 +++++-
drivers/block/zram/backend_lz4hc.c | 12 +++++++++++-
drivers/block/zram/backend_lzo.c | 8 ++++++++
drivers/block/zram/backend_lzorle.c | 8 ++++++++
drivers/block/zram/backend_zstd.c | 7 ++++++-
7 files changed, 58 insertions(+), 4 deletions(-)
--- a/drivers/block/zram/backend_842.c~zram-validate-parameters-in-each-backends-setup_params
+++ a/drivers/block/zram/backend_842.c
@@ -15,6 +15,14 @@ static void release_params_842(struct zc
static int setup_params_842(struct zcomp_params *params)
{
+ if (params->dict_sz) {
+ pr_err("dictionary is not supported\n");
+ return -EOPNOTSUPP;
+ }
+ if (params->level != ZCOMP_PARAM_NOT_SET) {
+ pr_err("compression level is not supported\n");
+ return -EOPNOTSUPP;
+ }
return 0;
}
--- a/drivers/block/zram/backend_deflate.c~zram-validate-parameters-in-each-backends-setup_params
+++ a/drivers/block/zram/backend_deflate.c
@@ -24,8 +24,19 @@ static void deflate_release_params(struc
static int deflate_setup_params(struct zcomp_params *params)
{
- if (params->level == ZCOMP_PARAM_NOT_SET)
+ if (params->dict_sz) {
+ pr_err("dictionary is not supported\n");
+ return -EOPNOTSUPP;
+ }
+
+ if (params->level == ZCOMP_PARAM_NOT_SET) {
params->level = Z_DEFAULT_COMPRESSION;
+ } else if (params->level < Z_DEFAULT_COMPRESSION ||
+ params->level > Z_BEST_COMPRESSION) {
+ pr_err("invalid compression level %d\n", params->level);
+ return -EINVAL;
+ }
+
if (params->deflate.winbits == ZCOMP_PARAM_NOT_SET) {
params->deflate.winbits = DEFLATE_DEF_WINBITS;
} else {
--- a/drivers/block/zram/backend_lz4.c~zram-validate-parameters-in-each-backends-setup_params
+++ a/drivers/block/zram/backend_lz4.c
@@ -32,8 +32,12 @@ static int lz4_setup_params(struct zcomp
LZ4_stream_t *dict_stream;
int ret;
- if (params->level == ZCOMP_PARAM_NOT_SET)
+ if (params->level == ZCOMP_PARAM_NOT_SET) {
params->level = LZ4_ACCELERATION_DEFAULT;
+ } else if (params->level < LZ4_ACCELERATION_DEFAULT) {
+ pr_err("invalid compression level %d\n", params->level);
+ return -EINVAL;
+ }
if (!params->dict || !params->dict_sz)
return 0;
--- a/drivers/block/zram/backend_lz4hc.c~zram-validate-parameters-in-each-backends-setup_params
+++ a/drivers/block/zram/backend_lz4hc.c
@@ -22,8 +22,18 @@ static void lz4hc_release_params(struct
static int lz4hc_setup_params(struct zcomp_params *params)
{
- if (params->level == ZCOMP_PARAM_NOT_SET)
+ if (params->level == ZCOMP_PARAM_NOT_SET) {
params->level = LZ4HC_DEFAULT_CLEVEL;
+ } else if (params->level < 1 || params->level > LZ4HC_MAX_CLEVEL) {
+ /*
+ * Use < 1 rather than < LZ4HC_MIN_CLEVEL here because
+ * LZ4HC_compress_generic() only clamps levels below 1
+ * (levels 1 and 2 are valid). LZ4HC_MIN_CLEVEL (3) is
+ * advisory and not enforced by the library.
+ */
+ pr_err("invalid compression level %d\n", params->level);
+ return -EINVAL;
+ }
return 0;
}
--- a/drivers/block/zram/backend_lzo.c~zram-validate-parameters-in-each-backends-setup_params
+++ a/drivers/block/zram/backend_lzo.c
@@ -14,6 +14,14 @@ static void lzo_release_params(struct zc
static int lzo_setup_params(struct zcomp_params *params)
{
+ if (params->dict_sz) {
+ pr_err("dictionary is not supported\n");
+ return -EOPNOTSUPP;
+ }
+ if (params->level != ZCOMP_PARAM_NOT_SET) {
+ pr_err("compression level is not supported\n");
+ return -EOPNOTSUPP;
+ }
return 0;
}
--- a/drivers/block/zram/backend_lzorle.c~zram-validate-parameters-in-each-backends-setup_params
+++ a/drivers/block/zram/backend_lzorle.c
@@ -14,6 +14,14 @@ static void lzorle_release_params(struct
static int lzorle_setup_params(struct zcomp_params *params)
{
+ if (params->dict_sz) {
+ pr_err("dictionary is not supported\n");
+ return -EOPNOTSUPP;
+ }
+ if (params->level != ZCOMP_PARAM_NOT_SET) {
+ pr_err("compression level is not supported\n");
+ return -EOPNOTSUPP;
+ }
return 0;
}
--- a/drivers/block/zram/backend_zstd.c~zram-validate-parameters-in-each-backends-setup_params
+++ a/drivers/block/zram/backend_zstd.c
@@ -60,8 +60,13 @@ static int zstd_setup_params(struct zcom
return -ENOMEM;
params->drv_data = zp;
- if (params->level == ZCOMP_PARAM_NOT_SET)
+ if (params->level == ZCOMP_PARAM_NOT_SET) {
params->level = zstd_default_clevel();
+ } else if (params->level < zstd_min_clevel() ||
+ params->level > zstd_max_clevel()) {
+ pr_err("invalid compression level %d\n", params->level);
+ goto error;
+ }
zp->cprm = zstd_get_params(params->level, PAGE_SIZE);
_
Patches currently in -mm which might be from haoqinhuang@tencent.com are
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-25 1:53 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-25 1:53 [merged mm-stable] zram-validate-parameters-in-each-backends-setup_params.patch removed from -mm tree Andrew Morton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.