Re: [PATCH] mm, compaction: avoid uninitialized variable use

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/12/2016 08:16 AM, Michal Hocko wrote:
I think this would be slightly better than your proposal. Andrew, could
you fold it into the original
mm-compaction-simplify-__alloc_pages_direct_compact-feedback-interface.patch
patch?
---
 From 434bc8b6f3787724327499998c4fe651e8ce5d68 Mon Sep 17 00:00:00 2001
From: Michal Hocko <mhocko@xxxxxxxx>
Date: Thu, 12 May 2016 08:10:33 +0200
Subject: [PATCH] mmotm:
  mm-compaction-simplify-__alloc_pages_direct_compact-feedback-interface-fix

Arnd has reported the following compilation warning:
mm/page_alloc.c: In function '__alloc_pages_nodemask':
mm/page_alloc.c:3651:6: error: 'compact_result' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This should be a false positive TRANSPARENT_HUGEPAGE depends on COMPACTION
so is_thp_gfp_mask shouldn't be true. GFP_TRANSHUGE is a bit tricky
and somebody might be using this accidently. Make sure that compact_result
is defined also for !CONFIG_COMPACT and set it to COMPACT_SKIPPED because
the compaction was really withdrawn.

Reported-by: Arnd Bergmann <arnd@xxxxxxxx>
Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>

Ack.

---
  mm/page_alloc.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 4950d01ff935..0d9008042efa 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3300,6 +3300,7 @@ __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
  		unsigned int alloc_flags, const struct alloc_context *ac,
  		enum migrate_mode mode, enum compact_result *compact_result)
  {
+	*compact_result = COMPACT_SKIPPED;
  	return NULL;
  }



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]