Linux-RISC-V Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] riscv: Make vmalloc/vmemmap end equal to the start of the next region
@ 2021-11-18 13:45 Alexandre Ghiti
  2021-12-06 16:12 ` Jisheng Zhang
  2022-01-06  4:00 ` Palmer Dabbelt
  0 siblings, 2 replies; 3+ messages in thread
From: Alexandre Ghiti @ 2021-11-18 13:45 UTC (permalink / raw)
  To: Paul Walmsley, Palmer Dabbelt, Albert Ou, linux-riscv,
	linux-kernel
  Cc: Alexandre Ghiti

We used to define VMALLOC_END equal to the start of the next region
*minus one* which is inconsistent with the use of this define in the
core code (for example, see the definitions of VMALLOC_TOTAL and
is_vmalloc_addr).

And then make the definition of VMEMMAP_END consistent with VMALLOC_END
and all other regions actually.

Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com>
---
 arch/riscv/include/asm/pgtable.h | 4 ++--
 arch/riscv/mm/fault.c            | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
index d34f3a7a9701..5155048274c2 100644
--- a/arch/riscv/include/asm/pgtable.h
+++ b/arch/riscv/include/asm/pgtable.h
@@ -25,7 +25,7 @@
 #endif
 
 #define VMALLOC_SIZE     (KERN_VIRT_SIZE >> 1)
-#define VMALLOC_END      (PAGE_OFFSET - 1)
+#define VMALLOC_END      PAGE_OFFSET
 #define VMALLOC_START    (PAGE_OFFSET - VMALLOC_SIZE)
 
 #define BPF_JIT_REGION_SIZE	(SZ_128M)
@@ -53,7 +53,7 @@
 #define VMEMMAP_SHIFT \
 	(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
 #define VMEMMAP_SIZE	BIT(VMEMMAP_SHIFT)
-#define VMEMMAP_END	(VMALLOC_START - 1)
+#define VMEMMAP_END	VMALLOC_START
 #define VMEMMAP_START	(VMALLOC_START - VMEMMAP_SIZE)
 
 /*
diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
index aa08dd2f8fae..41ae0aa8f2b8 100644
--- a/arch/riscv/mm/fault.c
+++ b/arch/riscv/mm/fault.c
@@ -235,7 +235,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
 	 * only copy the information from the master page table,
 	 * nothing more.
 	 */
-	if (unlikely((addr >= VMALLOC_START) && (addr <= VMALLOC_END))) {
+	if (unlikely((addr >= VMALLOC_START) && (addr < VMALLOC_END))) {
 		vmalloc_fault(regs, code, addr);
 		return;
 	}
-- 
2.32.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] riscv: Make vmalloc/vmemmap end equal to the start of the next region
  2021-11-18 13:45 [PATCH] riscv: Make vmalloc/vmemmap end equal to the start of the next region Alexandre Ghiti
@ 2021-12-06 16:12 ` Jisheng Zhang
  2022-01-06  4:00 ` Palmer Dabbelt
  1 sibling, 0 replies; 3+ messages in thread
From: Jisheng Zhang @ 2021-12-06 16:12 UTC (permalink / raw)
  To: Alexandre Ghiti
  Cc: Paul Walmsley, Palmer Dabbelt, Albert Ou, linux-riscv,
	linux-kernel

On Thu, 18 Nov 2021 14:45:39 +0100
Alexandre Ghiti <alexandre.ghiti@canonical.com> wrote:

> We used to define VMALLOC_END equal to the start of the next region
> *minus one* which is inconsistent with the use of this define in the
> core code (for example, see the definitions of VMALLOC_TOTAL and
> is_vmalloc_addr).
> 
> And then make the definition of VMEMMAP_END consistent with VMALLOC_END
> and all other regions actually.
> 
> Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com>

Reviewed-by: Jisheng Zhang <jszhang@kernel.org>

> ---
>  arch/riscv/include/asm/pgtable.h | 4 ++--
>  arch/riscv/mm/fault.c            | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
> index d34f3a7a9701..5155048274c2 100644
> --- a/arch/riscv/include/asm/pgtable.h
> +++ b/arch/riscv/include/asm/pgtable.h
> @@ -25,7 +25,7 @@
>  #endif
>  
>  #define VMALLOC_SIZE     (KERN_VIRT_SIZE >> 1)
> -#define VMALLOC_END      (PAGE_OFFSET - 1)
> +#define VMALLOC_END      PAGE_OFFSET
>  #define VMALLOC_START    (PAGE_OFFSET - VMALLOC_SIZE)
>  
>  #define BPF_JIT_REGION_SIZE	(SZ_128M)
> @@ -53,7 +53,7 @@
>  #define VMEMMAP_SHIFT \
>  	(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
>  #define VMEMMAP_SIZE	BIT(VMEMMAP_SHIFT)
> -#define VMEMMAP_END	(VMALLOC_START - 1)
> +#define VMEMMAP_END	VMALLOC_START
>  #define VMEMMAP_START	(VMALLOC_START - VMEMMAP_SIZE)
>  
>  /*
> diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
> index aa08dd2f8fae..41ae0aa8f2b8 100644
> --- a/arch/riscv/mm/fault.c
> +++ b/arch/riscv/mm/fault.c
> @@ -235,7 +235,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
>  	 * only copy the information from the master page table,
>  	 * nothing more.
>  	 */
> -	if (unlikely((addr >= VMALLOC_START) && (addr <= VMALLOC_END))) {
> +	if (unlikely((addr >= VMALLOC_START) && (addr < VMALLOC_END))) {
>  		vmalloc_fault(regs, code, addr);
>  		return;
>  	}


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] riscv: Make vmalloc/vmemmap end equal to the start of the next region
  2021-11-18 13:45 [PATCH] riscv: Make vmalloc/vmemmap end equal to the start of the next region Alexandre Ghiti
  2021-12-06 16:12 ` Jisheng Zhang
@ 2022-01-06  4:00 ` Palmer Dabbelt
  1 sibling, 0 replies; 3+ messages in thread
From: Palmer Dabbelt @ 2022-01-06  4:00 UTC (permalink / raw)
  To: alexandre.ghiti
  Cc: Paul Walmsley, aou, linux-riscv, linux-kernel, alexandre.ghiti

On Thu, 18 Nov 2021 05:45:39 PST (-0800), alexandre.ghiti@canonical.com wrote:
> We used to define VMALLOC_END equal to the start of the next region
> *minus one* which is inconsistent with the use of this define in the
> core code (for example, see the definitions of VMALLOC_TOTAL and
> is_vmalloc_addr).
>
> And then make the definition of VMEMMAP_END consistent with VMALLOC_END
> and all other regions actually.
>
> Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com>
> ---
>  arch/riscv/include/asm/pgtable.h | 4 ++--
>  arch/riscv/mm/fault.c            | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
> index d34f3a7a9701..5155048274c2 100644
> --- a/arch/riscv/include/asm/pgtable.h
> +++ b/arch/riscv/include/asm/pgtable.h
> @@ -25,7 +25,7 @@
>  #endif
>
>  #define VMALLOC_SIZE     (KERN_VIRT_SIZE >> 1)
> -#define VMALLOC_END      (PAGE_OFFSET - 1)
> +#define VMALLOC_END      PAGE_OFFSET
>  #define VMALLOC_START    (PAGE_OFFSET - VMALLOC_SIZE)
>
>  #define BPF_JIT_REGION_SIZE	(SZ_128M)
> @@ -53,7 +53,7 @@
>  #define VMEMMAP_SHIFT \
>  	(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
>  #define VMEMMAP_SIZE	BIT(VMEMMAP_SHIFT)
> -#define VMEMMAP_END	(VMALLOC_START - 1)
> +#define VMEMMAP_END	VMALLOC_START
>  #define VMEMMAP_START	(VMALLOC_START - VMEMMAP_SIZE)
>
>  /*
> diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
> index aa08dd2f8fae..41ae0aa8f2b8 100644
> --- a/arch/riscv/mm/fault.c
> +++ b/arch/riscv/mm/fault.c
> @@ -235,7 +235,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
>  	 * only copy the information from the master page table,
>  	 * nothing more.
>  	 */
> -	if (unlikely((addr >= VMALLOC_START) && (addr <= VMALLOC_END))) {
> +	if (unlikely((addr >= VMALLOC_START) && (addr < VMALLOC_END))) {
>  		vmalloc_fault(regs, code, addr);
>  		return;
>  	}

Thanks, this is on for-next.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-01-06  4:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-18 13:45 [PATCH] riscv: Make vmalloc/vmemmap end equal to the start of the next region Alexandre Ghiti
2021-12-06 16:12 ` Jisheng Zhang
2022-01-06  4:00 ` Palmer Dabbelt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox