aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorGavin Shan <gwshan@linux.vnet.ibm.com>2016-05-27 17:27:49 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-05-27 17:49:37 -0400
commit11e685672a0861ce136cc4e7f6fdd11e5390b1fa (patch)
tree4850c18e2655f5f8395be6764e2924c08a91c733 /mm
parent7cf7806ce1e30f1691cf340f70b807acbdf419ef (diff)
mm: disable DEFERRED_STRUCT_PAGE_INIT on !NO_BOOTMEM
When we have !NO_BOOTMEM, the deferred page struct initialization doesn't work well because the pages reserved in bootmem are released to the page allocator uncoditionally. It causes memory corruption and system crash eventually. As Mel suggested, the bootmem is retiring slowly. We fix the issue by simply hiding DEFERRED_STRUCT_PAGE_INIT when bootmem is enabled. Link: http://lkml.kernel.org/r/1460602170-5821-1-git-send-email-gwshan@linux.vnet.ibm.com Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Acked-by: Mel Gorman <mgorman@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/Kconfig2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/Kconfig b/mm/Kconfig
index 22fa8189e4fc..3e2daef3c946 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -648,7 +648,7 @@ config DEFERRED_STRUCT_PAGE_INIT
648 bool "Defer initialisation of struct pages to kthreads" 648 bool "Defer initialisation of struct pages to kthreads"
649 default n 649 default n
650 depends on ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT 650 depends on ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
651 depends on MEMORY_HOTPLUG 651 depends on NO_BOOTMEM && MEMORY_HOTPLUG
652 depends on !FLATMEM 652 depends on !FLATMEM
653 help 653 help
654 Ordinarily all struct pages are initialised during early boot in a 654 Ordinarily all struct pages are initialised during early boot in a