Messages in this thread |  | | Date | Sat, 29 May 2021 18:21:53 -0700 (PDT) | Subject | Re: [PATCH -next] riscv: mm: fix build errors caused by mk_pmd() | From | Palmer Dabbelt <> |
| |
On Sat, 29 May 2021 15:45:04 PDT (-0700), Palmer Dabbelt wrote: > On Mon, 24 May 2021 00:02:20 PDT (-0700), sunnanyong@huawei.com wrote: >> With "riscv: mm: add THP support on 64-bit", mk_pmd() function >> introduce build errors, >> 1.build with CONFIG_ARCH_RV32I=y: >> arch/riscv/include/asm/pgtable.h: In function 'mk_pmd': >> arch/riscv/include/asm/pgtable.h:513:9: error: implicit declaration of function 'pfn_pmd'; >> did you mean 'pfn_pgd'? [-Werror=implicit-function-declaration] >> >> 2.build with CONFIG_SPARSEMEM=y && CONFIG_SPARSEMEM_VMEMMAP=n >> arch/riscv/include/asm/pgtable.h: In function 'mk_pmd': >> include/asm-generic/memory_model.h:64:14: error: implicit declaration of function 'page_to_section'; >> did you mean 'present_section'? [-Werror=implicit-function-declaration] >> >> Use macro definition instead of inline function for mk_pmd >> to fix the above problems.It is similar to the mk_pte macro. >> >> Reported-by: kernel test robot <lkp@intel.com> >> Signed-off-by: Nanyong Sun <sunnanyong@huawei.com> >> --- >> arch/riscv/include/asm/pgtable.h | 5 +---- >> 1 file changed, 1 insertion(+), 4 deletions(-) >> >> diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h >> index 4b708ae08910..f35d9c90d4cb 100644 >> --- a/arch/riscv/include/asm/pgtable.h >> +++ b/arch/riscv/include/asm/pgtable.h >> @@ -508,10 +508,7 @@ static inline unsigned long pmd_pfn(pmd_t pmd) >> return ((__pmd_to_phys(pmd) & PMD_MASK) >> PAGE_SHIFT); >> } >> >> -static inline pmd_t mk_pmd(struct page *page, pgprot_t prot) >> -{ >> - return pfn_pmd(page_to_pfn(page), prot); >> -} >> +#define mk_pmd(page, prot) pfn_pmd(page_to_pfn(page), prot) >> >> static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) >> { > > Thanks, this is on for-next.
Sorry, I wasn't looking closely enough. I think the actual problem here is that mk_pmd() should be in pgtable-64.h.
|  |