summaryrefslogtreecommitdiff
path: root/drivers/block/zram/backend_deflate.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/zram/backend_deflate.c')
-rw-r--r--drivers/block/zram/backend_deflate.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/block/zram/backend_deflate.c b/drivers/block/zram/backend_deflate.c
index b75016e0e654..fd438dcdfad6 100644
--- a/drivers/block/zram/backend_deflate.c
+++ b/drivers/block/zram/backend_deflate.c
@@ -24,8 +24,16 @@ static int deflate_setup_params(struct zcomp_params *params)
{
if (params->level == ZCOMP_PARAM_NOT_SET)
params->level = Z_DEFAULT_COMPRESSION;
- if (params->deflate.winbits == ZCOMP_PARAM_NOT_SET)
+ if (params->deflate.winbits == ZCOMP_PARAM_NOT_SET) {
params->deflate.winbits = DEFLATE_DEF_WINBITS;
+ } else {
+ s32 wb = params->deflate.winbits;
+
+ if ((wb < -15 || wb > -9) && (wb < 9 || wb > 15)) {
+ pr_err("invalid deflate winbits: %d\n", wb);
+ return -EINVAL;
+ }
+ }
return 0;
}