Qian Cai <c...@lca.pw> writes: > The linux-next commit "libnvdimm/dax: Pick the right alignment default when > creating dax devices" causes powerpc failed to build with this config. > Reverted > it fixed the issue. > > ERROR: "hash__has_transparent_hugepage" [drivers/nvdimm/libnvdimm.ko] > undefined! > ERROR: "radix__has_transparent_hugepage" [drivers/nvdimm/libnvdimm.ko] > undefined! > make[1]: *** [scripts/Makefile.modpost:93: __modpost] Error 1 > make: *** [Makefile:1305: modules] Error 2 > > [1] https://patchwork.kernel.org/patch/11133445/ > [2] https://raw.githubusercontent.com/cailca/linux-mm/master/powerpc.config
Sorry for breaking the build. How about? commit ea15fd8b5489e2c8e9f1b96d67248a7428ffb74a Author: Aneesh Kumar K.V <aneesh.ku...@linux.ibm.com> Date: Fri Sep 20 19:47:56 2019 +0530 powerpc/book3s/nvdimm: Fix build error with nvdimm kernel module Fix the below comiple error. ERROR: "hash__has_transparent_hugepage" [drivers/nvdimm/libnvdimm.ko] undefined! ERROR: "radix__has_transparent_hugepage" [drivers/nvdimm/libnvdimm.ko] undefined! Signed-off-by: Aneesh Kumar K.V <aneesh.ku...@linux.ibm.com> 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, extern pgtable_t radix__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); extern pmd_t radix__pmdp_huge_get_and_clear(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp); -extern int radix__has_transparent_hugepage(void); +static inline int radix__has_transparent_hugepage(void) +{ + /* For radix 2M at PMD level means thp */ + if (mmu_psize_defs[MMU_PAGE_2M].shift == PMD_SHIFT) + return 1; + return 0; +} #endif extern 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) return 1; } +EXPORT_SYMBOL_GPL(hash__has_transparent_hugepage); + #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ #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, return old_pmd; } -int radix__has_transparent_hugepage(void) -{ - /* For radix 2M at PMD level means thp */ - if (mmu_psize_defs[MMU_PAGE_2M].shift == PMD_SHIFT) - return 1; - return 0; -} #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep,