aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMel Gorman <mgorman@suse.de>2015-05-14 01:01:34 +0000
committerJohannes Weiner <hannes@cmpxchg.org>2015-05-14 01:01:34 +0000
commitff53b26bca45e2282d427b132455b47bb49f2233 (patch)
treea5204bb38f91140a31f4ecf2aa95046319118691
parent6671e9eb541e57cd14a900862282f395499d3d07 (diff)
downloadmm-next-ff53b26bca45e2282d427b132455b47bb49f2233.tar.gz
mm: meminit: Initialise a subset of struct pages if CONFIG_DEFERRED_STRUCT_PAGE_INIT is set -fix
This is take 2 on describing why these section names exist. If accepted then it should be considered a fix for the mmotm patch mm-meminit-initialise-a-subset-of-struct-pages-if-config_deferred_struct_page_init-is-set.patch Signed-off-by: Mel Gorman <mgorman@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--mm/internal.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/mm/internal.h b/mm/internal.h
index 2a799080379677..88ac7be741ca54 100644
--- a/mm/internal.h
+++ b/mm/internal.h
@@ -388,10 +388,14 @@ static inline void mminit_verify_zonelist(void)
#endif /* CONFIG_DEBUG_MEMORY_INIT */
/*
- * Deferred struct page initialisation requires some early init functions that
- * are removed before kswapd is up and running. The feature depends on memory
- * hotplug so put the data and code required by deferred initialisation into
- * the __meminit section where they are preserved.
+ * Deferred struct page initialisation requires init functions that are freed
+ * before kswapd is available. Reuse the memory hotplug section annotation
+ * to mark the required code.
+ *
+ * __defermem_init is code that always exists but is annotated __meminit to
+ * avoid section warnings.
+ * __defer_init code gets marked __meminit when deferring struct page
+ * initialistion but is otherwise in the init section.
*/
#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
#define __defermem_init __meminit