diff --git a/arch/risc-v/src/common/addrenv.h b/arch/risc-v/src/common/addrenv.h index 2e0d7436e1d..8cb949af314 100644 --- a/arch/risc-v/src/common/addrenv.h +++ b/arch/risc-v/src/common/addrenv.h @@ -52,6 +52,14 @@ # define ARCH_ADDRENV_VBASE (CONFIG_ARCH_DATA_VBASE) #endif +/* Maximum user address environment size */ + +#define ARCH_ADDRENV_MAX_SIZE (0x40000000) + +/* User address environment end */ + +#define ARCH_ADDRENV_VEND (ARCH_ADDRENV_VBASE + ARCH_ADDRENV_MAX_SIZE) + /**************************************************************************** * Public Function Prototypes ****************************************************************************/ diff --git a/arch/risc-v/src/common/pgalloc.h b/arch/risc-v/src/common/pgalloc.h index 9f01f839076..8619038ac7e 100644 --- a/arch/risc-v/src/common/pgalloc.h +++ b/arch/risc-v/src/common/pgalloc.h @@ -95,7 +95,7 @@ static inline bool riscv_uservaddr(uintptr_t vaddr) * heap, or stack regions. */ - return vaddr >= ARCH_ADDRENV_VBASE; + return vaddr >= ARCH_ADDRENV_VBASE && vaddr < ARCH_ADDRENV_VEND; } /****************************************************************************