summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>2019-09-24 00:24:40 -0400
committerDan Williams <dan.j.williams@intel.com>2019-09-24 13:22:29 -0400
commita6f197f889ce0a5fd583674d9fa39259f5c8f72f (patch)
treee7bb41f06beb07c5a0c816c9d738b6a3e53be8c5
parent5b26db95fee3f1ce0d096b2de0ac6f3716171093 (diff)
powerpc/book3s64: Export has_transparent_hugepage() related functions.
In later patch, we want to use hash_transparent_hugepage() in a kernel module. Export two related functions. Acked-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Link: https://lore.kernel.org/r/20190924042440.27946-1-aneesh.kumar@linux.ibm.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r--arch/powerpc/include/asm/book3s/64/radix.h8
-rw-r--r--arch/powerpc/mm/book3s64/hash_pgtable.c2
-rw-r--r--arch/powerpc/mm/book3s64/radix_pgtable.c7
3 files changed, 9 insertions, 8 deletions
diff --git a/arch/powerpc/include/asm/book3s/64/radix.h b/arch/powerpc/include/asm/book3s/64/radix.h
index e04a839cb5b9..65a6966f1de4 100644
--- a/arch/powerpc/include/asm/book3s/64/radix.h
+++ b/arch/powerpc/include/asm/book3s/64/radix.h
@@ -254,7 +254,13 @@ extern void radix__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp,
254extern pgtable_t radix__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); 254extern pgtable_t radix__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp);
255extern pmd_t radix__pmdp_huge_get_and_clear(struct mm_struct *mm, 255extern pmd_t radix__pmdp_huge_get_and_clear(struct mm_struct *mm,
256 unsigned long addr, pmd_t *pmdp); 256 unsigned long addr, pmd_t *pmdp);
257extern int radix__has_transparent_hugepage(void); 257static inline int radix__has_transparent_hugepage(void)
258{
259 /* For radix 2M at PMD level means thp */
260 if (mmu_psize_defs[MMU_PAGE_2M].shift == PMD_SHIFT)
261 return 1;
262 return 0;
263}
258#endif 264#endif
259 265
260extern int __meminit radix__vmemmap_create_mapping(unsigned long start, 266extern int __meminit radix__vmemmap_create_mapping(unsigned long start,
diff --git a/arch/powerpc/mm/book3s64/hash_pgtable.c b/arch/powerpc/mm/book3s64/hash_pgtable.c
index d1f390ac9cdb..64733b9cb20a 100644
--- a/arch/powerpc/mm/book3s64/hash_pgtable.c
+++ b/arch/powerpc/mm/book3s64/hash_pgtable.c
@@ -406,6 +406,8 @@ int hash__has_transparent_hugepage(void)
406 406
407 return 1; 407 return 1;
408} 408}
409EXPORT_SYMBOL_GPL(hash__has_transparent_hugepage);
410
409#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ 411#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
410 412
411#ifdef CONFIG_STRICT_KERNEL_RWX 413#ifdef CONFIG_STRICT_KERNEL_RWX
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index b4ca9e95e678..dc7a38f0a45b 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -1057,13 +1057,6 @@ pmd_t radix__pmdp_huge_get_and_clear(struct mm_struct *mm,
1057 return old_pmd; 1057 return old_pmd;
1058} 1058}
1059 1059
1060int radix__has_transparent_hugepage(void)
1061{
1062 /* For radix 2M at PMD level means thp */
1063 if (mmu_psize_defs[MMU_PAGE_2M].shift == PMD_SHIFT)
1064 return 1;
1065 return 0;
1066}
1067#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ 1060#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
1068 1061
1069void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep, 1062void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep,