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

From: Dan Carpenter
Date: Fri Oct 20 2023 - 10:13:42 EST


Smatch complains that "hpage" can be used uninitialized:

mm/khugepaged.c:1234 collapse_huge_page()
error: uninitialized symbol 'hpage'.

Initialized it on this path.

Fixes: 50ad2f24b3b4 ("mm/khugepaged: propagate enum scan_result codes back to callers")
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
---
>From static analysis. Not tested.

mm/khugepaged.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/mm/khugepaged.c b/mm/khugepaged.c
index 0622f8a5175d..a25f5b7c3e7e 100644
--- 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);
--
2.42.0