Re: [PATCH 1/2] mm/khugepaged: Fix an uninitialized variable bug

From: Andrew Morton
Date: Fri Oct 20 2023 - 12:34:14 EST


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?