Message ID | 20211021180336.2328086-1-nathan@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/memory_failure: Initialize extra_pins in me_pagecache_clean() | expand |
On Thu, Oct 21, 2021 at 11:04 AM Nathan Chancellor <nathan@kernel.org> wrote: > > Clang warns: > > mm/memory-failure.c:892:6: error: variable 'extra_pins' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized] > if (!mapping) { > ^~~~~~~~ > mm/memory-failure.c:915:32: note: uninitialized use occurs here > if (has_extra_refcount(ps, p, extra_pins)) > ^~~~~~~~~~ > mm/memory-failure.c:892:2: note: remove the 'if' if its condition is always false > if (!mapping) { > ^~~~~~~~~~~~~~~ > mm/memory-failure.c:879:6: error: variable 'extra_pins' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized] > if (PageAnon(p)) { > ^~~~~~~~~~~ > mm/memory-failure.c:915:32: note: uninitialized use occurs here > if (has_extra_refcount(ps, p, extra_pins)) > ^~~~~~~~~~ > mm/memory-failure.c:879:2: note: remove the 'if' if its condition is always false > if (PageAnon(p)) { > ^~~~~~~~~~~~~~~~~~ > mm/memory-failure.c:871:17: note: initialize the variable 'extra_pins' to silence this warning > bool extra_pins; > ^ > = 0 > 2 errors generated. > > Initialize extra_pins to false so that it is not used uninitialized. > > Fixes: d882a43a0011 ("mm: shmem: don't truncate page if memory failure happens") > Link: https://github.com/ClangBuiltLinux/linux/issues/1487 > Reported-by: "kernelci.org bot" <bot@kernelci.org> > Signed-off-by: Nathan Chancellor <nathan@kernel.org> > --- > > I am aware the fixes tag is not stable. It is there to convey this > should be squashed into mm-shmem-dont-truncate-page-if-memory-failure-happens.patch. Thanks for catching this. Acked-by: Yang Shi <shy828301@gmail.com> > > mm/memory-failure.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > index 3b04f0361a58..dba5f0098165 100644 > --- a/mm/memory-failure.c > +++ b/mm/memory-failure.c > @@ -868,7 +868,7 @@ static int me_pagecache_clean(struct page_state *ps, struct page *p) > { > int ret; > struct address_space *mapping; > - bool extra_pins; > + bool extra_pins = false; > > delete_from_lru_cache(p); > > -- > 2.33.1.637.gf443b226ca >
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 3b04f0361a58..dba5f0098165 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -868,7 +868,7 @@ static int me_pagecache_clean(struct page_state *ps, struct page *p) { int ret; struct address_space *mapping; - bool extra_pins; + bool extra_pins = false; delete_from_lru_cache(p);
Clang warns: mm/memory-failure.c:892:6: error: variable 'extra_pins' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized] if (!mapping) { ^~~~~~~~ mm/memory-failure.c:915:32: note: uninitialized use occurs here if (has_extra_refcount(ps, p, extra_pins)) ^~~~~~~~~~ mm/memory-failure.c:892:2: note: remove the 'if' if its condition is always false if (!mapping) { ^~~~~~~~~~~~~~~ mm/memory-failure.c:879:6: error: variable 'extra_pins' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized] if (PageAnon(p)) { ^~~~~~~~~~~ mm/memory-failure.c:915:32: note: uninitialized use occurs here if (has_extra_refcount(ps, p, extra_pins)) ^~~~~~~~~~ mm/memory-failure.c:879:2: note: remove the 'if' if its condition is always false if (PageAnon(p)) { ^~~~~~~~~~~~~~~~~~ mm/memory-failure.c:871:17: note: initialize the variable 'extra_pins' to silence this warning bool extra_pins; ^ = 0 2 errors generated. Initialize extra_pins to false so that it is not used uninitialized. Fixes: d882a43a0011 ("mm: shmem: don't truncate page if memory failure happens") Link: https://github.com/ClangBuiltLinux/linux/issues/1487 Reported-by: "kernelci.org bot" <bot@kernelci.org> Signed-off-by: Nathan Chancellor <nathan@kernel.org> --- I am aware the fixes tag is not stable. It is there to convey this should be squashed into mm-shmem-dont-truncate-page-if-memory-failure-happens.patch. mm/memory-failure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)