Re: [PATCH] mm/zswap: Add return value in zswap_frontswap_load

From: Miaohe Lin
Date: Thu Jan 21 2021 - 20:59:51 EST


Hi:
On 2021/1/22 5:48, Nathan Chancellor wrote:
> Clang warns:
>
> mm/zswap.c:1271:6: warning: variable 'ret' is used uninitialized
> whenever 'if' condition is true [-Wsometimes-uninitialized]
> if (!entry->length) {
> ^~~~~~~~~~~~~~
> mm/zswap.c:1322:9: note: uninitialized use occurs here
> return ret;
> ^~~
> mm/zswap.c:1271:2: note: remove the 'if' if its condition is always
> false
> if (!entry->length) {
> ^~~~~~~~~~~~~~~~~~~~~
> mm/zswap.c:1259:9: note: initialize the variable 'ret' to silence this
> warning
> int ret;
> ^
> = 0
> 1 warning generated.
>
> Prior to "mm/zswap: add the flag can_sleep_mapped", this path always
> returned 0. Restore that so we are not returning uninitialized memory.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/1263
> Reported-by: kernelci.org bot <bot@xxxxxxxxxxxx>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>

Looks like commit 6753c561f653 ("mm/zswap: add the flag can_sleep_mapped") introduced this warning.

> Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx>
> ---
>
> Andrew, please fold this into
>
> mm-zswap-add-the-flag-can_sleep_mapped.patch
>
> mm/zswap.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mm/zswap.c b/mm/zswap.c
> index 6e0bb61d2a2c..a85334b719b9 100644
> --- a/mm/zswap.c
> +++ b/mm/zswap.c
> @@ -1272,6 +1272,7 @@ static int zswap_frontswap_load(unsigned type, pgoff_t offset,
> dst = kmap_atomic(page);
> zswap_fill_page(dst, entry->value);
> kunmap_atomic(dst);
> + ret = 0;
> goto freeentry;
> }
>
>
> base-commit: bc085f8fc88fc16796c9f2364e2bfb3fef305cad
>

Reviewed-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>