aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYisheng Xie <xieyisheng1@huawei.com>2016-10-07 20:01:46 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-07 21:46:29 -0400
commit461a7184320a1b4d2c12ad538354062fef4ee0f1 (patch)
tree275112facfca37fbd1f6e566c2d905b4a6727d00
parent82e7d3abec86cba9df945a765bba384f8ac113a7 (diff)
mm/hugetlb: introduce ARCH_HAS_GIGANTIC_PAGE
Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. No functional change with this patch. Link: http://lkml.kernel.org/r/1475227569-63446-2-git-send-email-xieyisheng1@huawei.com Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com> Suggested-by: Michal Hocko <mhocko@suse.com> Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Acked-by: Hillf Danton <hillf.zj@alibaba-inc.com> Cc: Hanjun Guo <guohanjun@huawei.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Sudeep Holla <sudeep.holla@arm.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Mike Kravetz <mike.kravetz@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/x86/Kconfig1
-rw-r--r--fs/Kconfig3
-rw-r--r--mm/hugetlb.c2
4 files changed, 6 insertions, 1 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index deeadfa291ba..fb538031569a 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -71,6 +71,7 @@ config S390
71 select ARCH_HAS_DEVMEM_IS_ALLOWED 71 select ARCH_HAS_DEVMEM_IS_ALLOWED
72 select ARCH_HAS_ELF_RANDOMIZE 72 select ARCH_HAS_ELF_RANDOMIZE
73 select ARCH_HAS_GCOV_PROFILE_ALL 73 select ARCH_HAS_GCOV_PROFILE_ALL
74 select ARCH_HAS_GIGANTIC_PAGE
74 select ARCH_HAS_KCOV 75 select ARCH_HAS_KCOV
75 select ARCH_HAS_SG_CHAIN 76 select ARCH_HAS_SG_CHAIN
76 select ARCH_HAS_UBSAN_SANITIZE_ALL 77 select ARCH_HAS_UBSAN_SANITIZE_ALL
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 58bec8f9641a..827273c56ae9 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -28,6 +28,7 @@ config X86
28 select ARCH_HAS_ELF_RANDOMIZE 28 select ARCH_HAS_ELF_RANDOMIZE
29 select ARCH_HAS_FAST_MULTIPLIER 29 select ARCH_HAS_FAST_MULTIPLIER
30 select ARCH_HAS_GCOV_PROFILE_ALL 30 select ARCH_HAS_GCOV_PROFILE_ALL
31 select ARCH_HAS_GIGANTIC_PAGE if X86_64
31 select ARCH_HAS_KCOV if X86_64 32 select ARCH_HAS_KCOV if X86_64
32 select ARCH_HAS_PMEM_API if X86_64 33 select ARCH_HAS_PMEM_API if X86_64
33 select ARCH_HAS_MMIO_FLUSH 34 select ARCH_HAS_MMIO_FLUSH
diff --git a/fs/Kconfig b/fs/Kconfig
index 3ef62bad8f2b..4bd03a2b0518 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -200,6 +200,9 @@ config HUGETLBFS
200config HUGETLB_PAGE 200config HUGETLB_PAGE
201 def_bool HUGETLBFS 201 def_bool HUGETLBFS
202 202
203config ARCH_HAS_GIGANTIC_PAGE
204 bool
205
203source "fs/configfs/Kconfig" 206source "fs/configfs/Kconfig"
204source "fs/efivarfs/Kconfig" 207source "fs/efivarfs/Kconfig"
205 208
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 770d83eb3f48..e4a4500758f2 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1022,7 +1022,7 @@ static int hstate_next_node_to_free(struct hstate *h, nodemask_t *nodes_allowed)
1022 ((node = hstate_next_node_to_free(hs, mask)) || 1); \ 1022 ((node = hstate_next_node_to_free(hs, mask)) || 1); \
1023 nr_nodes--) 1023 nr_nodes--)
1024 1024
1025#if (defined(CONFIG_X86_64) || defined(CONFIG_S390)) && \ 1025#if defined(CONFIG_ARCH_HAS_GIGANTIC_PAGE) && \
1026 ((defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || \ 1026 ((defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || \
1027 defined(CONFIG_CMA)) 1027 defined(CONFIG_CMA))
1028static void destroy_compound_gigantic_page(struct page *page, 1028static void destroy_compound_gigantic_page(struct page *page,