Christophe Leroy <christophe.le...@csgroup.eu> writes: > Le 10/03/2025 à 13:44, Donet Tom a écrit : >> From: "Ritesh Harjani (IBM)" <ritesh.l...@gmail.com> >> >> Fix compile errors when CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=n > > I don't understand your patch. > > As far as I can see, CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP is selected > when CONFIG_PPC_RADIX_MMU is selected, and radix_pgtable.o is built only > when CONFIG_PPC_RADIX_MMU is selected. So when radix_pgtable.o is built > CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP will always be selected. > > Can you clarify what the problem is ? >
You are right CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP always gets enabled by default for radix mmu. However, when we forcefully wanted to test the !vmemmap_can_optimize() path in radix, we forcefully removed the support of ARCH_WANT_OPTIMIZE_DAX_VMEMMAP from arch/powerpc/Kconfig (by making the kernel change). That is when we were facing the compilation errors due to duplicate definition of vmemmap_can_optimize(). The other one is defined in include/linux/mm.h under #ifdef CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP and #else. So it is only a good to have patch. -ritesh > Christophe > >> >> Signed-off-by: Ritesh Harjani (IBM) <ritesh.l...@gmail.com> >> Signed-off-by: Donet Tom <donet...@linux.ibm.com> >> --- >> arch/powerpc/mm/book3s64/radix_pgtable.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c >> b/arch/powerpc/mm/book3s64/radix_pgtable.c >> index 311e2112d782..bd6916419472 100644 >> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c >> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c >> @@ -976,7 +976,7 @@ int __meminit radix__vmemmap_create_mapping(unsigned >> long start, >> return 0; >> } >> >> - >> +#ifdef CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP >> bool vmemmap_can_optimize(struct vmem_altmap *altmap, struct dev_pagemap >> *pgmap) >> { >> if (radix_enabled()) >> @@ -984,6 +984,7 @@ bool vmemmap_can_optimize(struct vmem_altmap *altmap, >> struct dev_pagemap *pgmap) >> >> return false; >> } >> +#endif >> >> int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node, >> unsigned long addr, unsigned long next)