Re: [PATCH] riscv: fix fs/proc/kcore.c compilation with sparsemem enabled
From: Logan Gunthorpe
Date: Tue Oct 22 2019 - 15:52:29 EST
On 2019-10-22 10:21 a.m., David Abdurachmanov wrote:
> Failed to compile Fedora/RISCV kernel (5.4-rc3+) with sparsemem enabled:
>
> fs/proc/kcore.c: In function 'read_kcore':
> fs/proc/kcore.c:510:8: error: implicit declaration of function 'kern_addr_valid'; did you mean 'virt_addr_valid'? [-Werror=implicit-function-declaration]
> 510 | if (kern_addr_valid(start)) {
> | ^~~~~~~~~~~~~~~
> | virt_addr_valid
>
> Looking at other architectures I don't see kern_addr_valid being guarded by
> CONFIG_FLATMEM.
>
> Fixes: d95f1a542c3d ("RISC-V: Implement sparsemem")
> Signed-off-by: David Abdurachmanov <david.abdurachmanov@xxxxxxxxxx>
> Tested-by: David Abdurachmanov <david.abdurachmanov@xxxxxxxxxx>
Makes sense to me.
Reviewed-by: Logan Gunthorpe <logang@xxxxxxxxxxxx>
> ---
> arch/riscv/include/asm/pgtable.h | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
> index 42292d99cc74..7110879358b8 100644
> --- a/arch/riscv/include/asm/pgtable.h
> +++ b/arch/riscv/include/asm/pgtable.h
> @@ -428,9 +428,7 @@ static inline int ptep_clear_flush_young(struct vm_area_struct *vma,
> #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
> #define __swp_entry_to_pte(x) ((pte_t) { (x).val })
>
> -#ifdef CONFIG_FLATMEM
> #define kern_addr_valid(addr) (1) /* FIXME */
> -#endif
>
> extern void *dtb_early_va;
> extern void setup_bootmem(void);
>