On Fri, Oct 20, 2023 at 09:34:07AM -0700, Andrew Morton wrote: > On Fri, 20 Oct 2023 17:13:32 +0300 Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > > > Smatch complains that "hpage" can be used uninitialized: > > > > mm/khugepaged.c:1234 collapse_huge_page() > > error: uninitialized symbol 'hpage'. > > > > Initialized it on this path. > > > > --- a/mm/khugepaged.c > > +++ b/mm/khugepaged.c > > @@ -1062,8 +1062,10 @@ static int alloc_charge_hpage(struct page **hpage, struct mm_struct *mm, > > int node = hpage_collapse_find_target_node(cc); > > struct folio *folio; > > > > - if (!hpage_collapse_alloc_folio(&folio, gfp, node, &cc->alloc_nmask)) > > + if (!hpage_collapse_alloc_folio(&folio, gfp, node, &cc->alloc_nmask)) { > > + *hpage = NULL; > > return SCAN_ALLOC_HUGE_PAGE_FAIL; > > + } > > > > if (unlikely(mem_cgroup_charge(folio, mm, gfp))) { > > folio_put(folio); > > Thanks. Seems this was accidentally fixed by > > Author: Peter Xu <peterx@xxxxxxxxxx> > AuthorDate: Wed Feb 22 14:52:47 2023 -0500 > Commit: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > CommitDate: Tue Mar 28 16:20:06 2023 -0700 > > mm/khugepaged: alloc_charge_hpage() take care of mem charge errors > > > Which was quite a long time ago. Are you scanning old kernel versions? There are two error paths. Peter's patch changed the second SCAN_CGROUP_CHARGE_FAIL error path but left the first SCAN_ALLOC_HUGE_PAGE_FAIL error path. To be honest, it's probably a better idea to just add a *hpage = NULL at the start of the function. regards, dan carpenter