On Fri, Nov 18, 2022 at 05:35:05PM -0800, Hugh Dickins wrote: > Yu Zhao reports compiler warning in page_add_anon_rmap(): > > mm/rmap.c:1236:13: warning: variable 'first' is used uninitialized > whenever 'if' condition is false [-Wsometimes-uninitialized] > } else if (PageTransHuge(page)) { > ^~~~~~~~~~~~~~~~~~~ > mm/rmap.c:1248:18: note: uninitialized use occurs here > VM_BUG_ON_PAGE(!first && (flags & RMAP_EXCLUSIVE), page); > ^~~~~ > > We do need to fix that, even though it's only uninitialized in an > impossible condition: I've chosen to initialize "first" true, to > minimize the BUGs it might then hit; but you could just as well > choose to initialize it false, to maximize the BUGs it might hit. > > Reported-by: Yu Zhao <yuzhao@xxxxxxxxxx> > Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> > --- > mm/rmap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/rmap.c b/mm/rmap.c > index 66be8cae640f..25b720d5ba17 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -1281,7 +1281,7 @@ void page_add_anon_rmap(struct page *page, > struct compound_mapcounts mapcounts; > int nr = 0, nr_pmdmapped = 0; > bool compound = flags & RMAP_COMPOUND; > - bool first; > + bool first = true; > > if (unlikely(PageKsm(page))) > lock_page_memcg(page); Other option is to drop PageTransHuge() check that you already claim to be redundant. Or have else BUG() to catch cases where the helper called with compound=true on non-THP page. -- Kiryl Shutsemau / Kirill A. Shutemov