On Fri, 2019-09-20 at 19:55 +0530, Aneesh Kumar K.V wrote: > 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?
It works fine. > > 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,