2019-10-22 17:17:51

by David Abdurachmanov

[permalink] [raw]
Subject: [PATCH] riscv: fix fs/proc/kcore.c compilation with sparsemem enabled

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 <[email protected]>
Tested-by: David Abdurachmanov <[email protected]>
---
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);
--
2.21.0


2019-10-22 23:39:32

by Logan Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] riscv: fix fs/proc/kcore.c compilation with sparsemem enabled



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 <[email protected]>
> Tested-by: David Abdurachmanov <[email protected]>

Makes sense to me.

Reviewed-by: Logan Gunthorpe <[email protected]>


> ---
> 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);
>

2019-10-23 00:28:16

by Paul Walmsley

[permalink] [raw]
Subject: Re: [PATCH] riscv: fix fs/proc/kcore.c compilation with sparsemem enabled

On Tue, 22 Oct 2019, 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 <[email protected]>
> Tested-by: David Abdurachmanov <[email protected]>

Thanks, queued for v5.4-rc with Logan's Reviewed-by:.


- Paul