[PATCH] riscv: Remove redundant restriction on memory size

Stuart Menefy posted 1 patch 1 year, 5 months ago
arch/riscv/mm/init.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
[PATCH] riscv: Remove redundant restriction on memory size
Posted by Stuart Menefy 1 year, 5 months ago
The original reason for reserving the top 4GiB of the direct map
(space for modules/BPF/kernel) hasn't applied since the address
map was reworked for KASAN.

Signed-off-by: Stuart Menefy <stuart.menefy@codasip.com>
---
 arch/riscv/mm/init.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index 7e25606f858a..3998d1ca369c 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -1130,13 +1130,7 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa)
 				0UL : PAGE_OFFSET - kernel_map.phys_addr;
 	kernel_map.va_kernel_pa_offset = kernel_map.virt_addr - kernel_map.phys_addr;
 
-	/*
-	 * The default maximal physical memory size is KERN_VIRT_SIZE for 32-bit
-	 * kernel, whereas for 64-bit kernel, the end of the virtual address
-	 * space is occupied by the modules/BPF/kernel mappings which reduces
-	 * the available size of the linear mapping.
-	 */
-	memory_limit = KERN_VIRT_SIZE - (IS_ENABLED(CONFIG_64BIT) ? SZ_4G : 0);
+	memory_limit = KERN_VIRT_SIZE;
 
 	/* Sanity check alignment and size */
 	BUG_ON((PAGE_OFFSET % PGDIR_SIZE) != 0);
-- 
2.43.0
Re: [PATCH] riscv: Remove redundant restriction on memory size
Posted by Alexandre Ghiti 1 year, 5 months ago
Hi Stuart,

On 24/06/2024 14:17, Stuart Menefy wrote:
> The original reason for reserving the top 4GiB of the direct map
> (space for modules/BPF/kernel) hasn't applied since the address
> map was reworked for KASAN.
>
> Signed-off-by: Stuart Menefy <stuart.menefy@codasip.com>
> ---
>   arch/riscv/mm/init.c | 8 +-------
>   1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index 7e25606f858a..3998d1ca369c 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -1130,13 +1130,7 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa)
>   				0UL : PAGE_OFFSET - kernel_map.phys_addr;
>   	kernel_map.va_kernel_pa_offset = kernel_map.virt_addr - kernel_map.phys_addr;
>   
> -	/*
> -	 * The default maximal physical memory size is KERN_VIRT_SIZE for 32-bit
> -	 * kernel, whereas for 64-bit kernel, the end of the virtual address
> -	 * space is occupied by the modules/BPF/kernel mappings which reduces
> -	 * the available size of the linear mapping.
> -	 */
> -	memory_limit = KERN_VIRT_SIZE - (IS_ENABLED(CONFIG_64BIT) ? SZ_4G : 0);
> +	memory_limit = KERN_VIRT_SIZE;
>   
>   	/* Sanity check alignment and size */
>   	BUG_ON((PAGE_OFFSET % PGDIR_SIZE) != 0);


I somehow totally missed this one, I guess this is the third fix you 
mentioned earlier right?

This is correct so you can add:

Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>

Thanks,

Alex