mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 14:04:27 -04:00
zram: set default primary compressor in zram_destroy_comps()
Patch series "zram: fix zram issues reported by sashiko".
Sashiko drove by and reported [1] a couple of zram issues:
a possible BUG_ON() in zlib code due to missing winbits range
validation and one possible NULL-ptr dereference in zcomp.
Both are low risk yet still worth fixing.
This patch (of 2):
zram_destroy_comps() resets all compressors and leaves them set to NULL,
including the primary one, which is invalid device state, as now
comp_algorithm_show()->strcmp() can be called on a NULL compressor. Set
default primary compressor in zram_destroy_comps().
Link: https://lore.kernel.org/20260729045745.775973-2-senozhatsky@chromium.org
Fixes: 486fd58af7 ("zram: don't free statically defined names")
Link: https://sashiko.dev/#/patchset/20260728092935.31139-1-haoqinhuang7@gmail.com [1]
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Haoqin Huang <haoqinhuang7@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
7b9f4e5f81
commit
dde75313ee
@@ -2828,6 +2828,7 @@ static void zram_destroy_comps(struct zram *zram)
|
||||
zram->comp_algs[prio] = NULL;
|
||||
|
||||
zram_comp_params_reset(zram);
|
||||
comp_algorithm_set(zram, ZRAM_PRIMARY_COMP, default_compressor);
|
||||
}
|
||||
|
||||
static void zram_reset_device(struct zram *zram)
|
||||
@@ -2845,8 +2846,6 @@ static void zram_reset_device(struct zram *zram)
|
||||
zram_destroy_comps(zram);
|
||||
memset(&zram->stats, 0, sizeof(zram->stats));
|
||||
reset_bdev(zram);
|
||||
|
||||
comp_algorithm_set(zram, ZRAM_PRIMARY_COMP, default_compressor);
|
||||
}
|
||||
|
||||
static ssize_t disksize_store(struct device *dev, struct device_attribute *attr,
|
||||
|
||||
Reference in New Issue
Block a user