2021-01-21 21:50:57

by Nathan Chancellor

[permalink] [raw]
Subject: [PATCH] mm/zswap: Add return value in zswap_frontswap_load

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 <[email protected]>
Reported-by: kernel test robot <[email protected]>
Signed-off-by: Nathan Chancellor <[email protected]>
---

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
--
2.30.0


2021-01-22 02:04:43

by Miaohe Lin

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

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 <[email protected]>
> Reported-by: kernel test robot <[email protected]>

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

> Signed-off-by: Nathan Chancellor <[email protected]>
> ---
>
> 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 <[email protected]>