On Thu, Oct 21, 2021 at 11:04 AM Nathan Chancellor <nathan@xxxxxxxxxx> 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@xxxxxxxxxxxx> > Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> > --- > > 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@xxxxxxxxx> > > 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 >