[PATCH] mm: avoid uninitialized variable in tracepoint

Subsystems: memory management, memory management - thp (transparent huge page), the rest

STALE3923d

4 messages, 4 authors, 2016-01-19 · open the first message on its own page

[PATCH] mm: avoid uninitialized variable in tracepoint

From: Arnd Bergmann <arnd@arndb.de>
Date: 2016-01-18 20:51:12

A newly added tracepoint in the hugepage code uses a variable in the
error handling that is not initialized at that point:

include/trace/events/huge_memory.h:81:230: error: 'isolated' may be used uninitialized in this function [-Werror=maybe-uninitialized]

The result is relatively harmless, as the trace data will in rare
cases contain incorrect data.

This works around the problem by adding an explicit initialization.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 7d2eba0557c1 ("mm: add tracepoint for scanning pages")
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index b2db98136af9..bb3b763b1829 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -2320,7 +2320,7 @@ static void collapse_huge_page(struct mm_struct *mm,
 	pgtable_t pgtable;
 	struct page *new_page;
 	spinlock_t *pmd_ptl, *pte_ptl;
-	int isolated, result = 0;
+	int isolated = 0, result = 0;
 	unsigned long hstart, hend;
 	struct mem_cgroup *memcg;
 	unsigned long mmun_start;	/* For mmu_notifiers */

Re: [PATCH] mm: avoid uninitialized variable in tracepoint

From: Ebru Akagunduz <hidden>
Date: 2016-01-18 22:18:48

On Mon, Jan 18, 2016 at 09:50:26PM +0100, Arnd Bergmann wrote:
A newly added tracepoint in the hugepage code uses a variable in the
error handling that is not initialized at that point:

include/trace/events/huge_memory.h:81:230: error: 'isolated' may be used uninitialized in this function [-Werror=maybe-uninitialized]

The result is relatively harmless, as the trace data will in rare
cases contain incorrect data.

This works around the problem by adding an explicit initialization.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 7d2eba0557c1 ("mm: add tracepoint for scanning pages")
Reviewed-by: Ebru Akagunduz <redacted>
quoted hunk
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index b2db98136af9..bb3b763b1829 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -2320,7 +2320,7 @@ static void collapse_huge_page(struct mm_struct *mm,
 	pgtable_t pgtable;
 	struct page *new_page;
 	spinlock_t *pmd_ptl, *pte_ptl;
-	int isolated, result = 0;
+	int isolated = 0, result = 0;
 	unsigned long hstart, hend;
 	struct mem_cgroup *memcg;
 	unsigned long mmun_start;	/* For mmu_notifiers */

Re: [PATCH] mm: avoid uninitialized variable in tracepoint

From: Kirill A. Shutemov <hidden>
Date: 2016-01-18 23:03:30

On Mon, Jan 18, 2016 at 09:50:26PM +0100, Arnd Bergmann wrote:
A newly added tracepoint in the hugepage code uses a variable in the
error handling that is not initialized at that point:

include/trace/events/huge_memory.h:81:230: error: 'isolated' may be used uninitialized in this function [-Werror=maybe-uninitialized]

The result is relatively harmless, as the trace data will in rare
cases contain incorrect data.

This works around the problem by adding an explicit initialization.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 7d2eba0557c1 ("mm: add tracepoint for scanning pages")
There's the same patch in mm tree, but it got lost on the way to Linus'
tree:

https://ozlabs.org/~akpm/mmots/broken-out/mm-make-optimistic-check-for-swapin-readahead-fix.patch

Andrew?
quoted hunk
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index b2db98136af9..bb3b763b1829 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -2320,7 +2320,7 @@ static void collapse_huge_page(struct mm_struct *mm,
 	pgtable_t pgtable;
 	struct page *new_page;
 	spinlock_t *pmd_ptl, *pte_ptl;
-	int isolated, result = 0;
+	int isolated = 0, result = 0;
 	unsigned long hstart, hend;
 	struct mem_cgroup *memcg;
 	unsigned long mmun_start;	/* For mmu_notifiers */
-- 
 Kirill A. Shutemov

Re: [PATCH] mm: avoid uninitialized variable in tracepoint

From: David Rientjes <rientjes@google.com>
Date: 2016-01-19 22:17:13

On Tue, 19 Jan 2016, Kirill A. Shutemov wrote:
quoted
A newly added tracepoint in the hugepage code uses a variable in the
error handling that is not initialized at that point:

include/trace/events/huge_memory.h:81:230: error: 'isolated' may be used uninitialized in this function [-Werror=maybe-uninitialized]

The result is relatively harmless, as the trace data will in rare
cases contain incorrect data.

This works around the problem by adding an explicit initialization.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 7d2eba0557c1 ("mm: add tracepoint for scanning pages")
There's the same patch in mm tree, but it got lost on the way to Linus'
tree:

https://ozlabs.org/~akpm/mmots/broken-out/mm-make-optimistic-check-for-swapin-readahead-fix.patch

Andrew?
Looks like the patch got the wrong title, 
mm-make-optimistic-check-for-swapin-readahead-fix.patch, since the subject 
is "khugepaged: avoid usage of uninitialized variable 'isolated'".

Anyway, feel free to add

Acked-by: David Rientjes <rientjes@google.com>

to either patch.
quoted
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index b2db98136af9..bb3b763b1829 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -2320,7 +2320,7 @@ static void collapse_huge_page(struct mm_struct *mm,
 	pgtable_t pgtable;
 	struct page *new_page;
 	spinlock_t *pmd_ptl, *pte_ptl;
-	int isolated, result = 0;
+	int isolated = 0, result = 0;
 	unsigned long hstart, hend;
 	struct mem_cgroup *memcg;
 	unsigned long mmun_start;	/* For mmu_notifiers */
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help