re: zswap: do not shrink if cgroup may not zswap

From: Colin King (gmail)
Date: Fri Jun 02 2023 - 08:39:26 EST


Hi,

static analysis with clang scan build has detected an issue in the following commit:

commit 6804144bf1cfa3978ad98e625d8a1d2a4b80cbee
Author: Nhat Pham <nphamcs@xxxxxxxxx>
Date: Tue May 30 15:24:40 2023 -0700

zswap: do not shrink if cgroup may not zswap


The issue is as follows in function zswap_frontswap_store in mm/zswap.c:

/*
* XXX: zswap reclaim does not work with cgroups yet. Without a
* cgroup-aware entry LRU, we will push out entries system-wide based on
* local cgroup limits.
*/
objcg = get_obj_cgroup_from_page(page);
if (objcg && !obj_cgroup_may_zswap(objcg))
goto reject;

mm/zswap.c:1210:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]

The goto reject path ends up returning ret, however, ret at this point has not been initialized, so a garbage return value is being returned
by function zswap_frontswap_store

Colin