From: Sam Ravnborg <sam@ravnborg.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: linux-mm@kvack.org, hch@infradead.org,
christophe.leroy@csgroup.eu,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
x86@kernel.org, openrisc@lists.librecores.org,
linux-xtensa@linux-xtensa.org, linux-csky@vger.kernel.org,
linux-hexagon@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-alpha@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-s390@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-mips@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
linux-snps-arc@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-um@lists.infradead.org, linux-sh@vger.kernel.org,
linux-kernel@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH V5 04/26] sparc/mm: Move protection_map[] inside the platform
Date: Mon, 27 Jun 2022 19:14:56 +0200 [thread overview]
Message-ID: <YrnlkLbyYSbI0EQw@ravnborg.org> (raw)
In-Reply-To: <20220627045833.1590055-5-anshuman.khandual@arm.com>
Hi Anshuman,
On Mon, Jun 27, 2022 at 10:28:11AM +0530, Anshuman Khandual wrote:
> This moves protection_map[] inside the platform and while here, also enable
> ARCH_HAS_VM_GET_PAGE_PROT on 32 bit platforms via DECLARE_VM_GET_PAGE_PROT.
>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/sparc/Kconfig | 2 +-
> arch/sparc/include/asm/pgtable_32.h | 19 -------------------
> arch/sparc/include/asm/pgtable_64.h | 19 -------------------
> arch/sparc/mm/init_32.c | 20 ++++++++++++++++++++
> arch/sparc/mm/init_64.c | 3 +++
> 5 files changed, 24 insertions(+), 39 deletions(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index ba449c47effd..09f868613a4d 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -13,6 +13,7 @@ config 64BIT
> config SPARC
> bool
> default y
> + select ARCH_HAS_VM_GET_PAGE_PROT
> select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
> select ARCH_MIGHT_HAVE_PC_SERIO
> select DMA_OPS
> @@ -84,7 +85,6 @@ config SPARC64
> select PERF_USE_VMALLOC
> select ARCH_HAVE_NMI_SAFE_CMPXCHG
> select HAVE_C_RECORDMCOUNT
> - select ARCH_HAS_VM_GET_PAGE_PROT
> select HAVE_ARCH_AUDITSYSCALL
> select ARCH_SUPPORTS_ATOMIC_RMW
> select ARCH_SUPPORTS_DEBUG_PAGEALLOC
> diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
> index 4866625da314..8ff549004fac 100644
> --- a/arch/sparc/include/asm/pgtable_32.h
> +++ b/arch/sparc/include/asm/pgtable_32.h
> @@ -64,25 +64,6 @@ void paging_init(void);
>
> extern unsigned long ptr_in_current_pgd;
>
> -/* xwr */
> -#define __P000 PAGE_NONE
> -#define __P001 PAGE_READONLY
> -#define __P010 PAGE_COPY
> -#define __P011 PAGE_COPY
> -#define __P100 PAGE_READONLY
> -#define __P101 PAGE_READONLY
> -#define __P110 PAGE_COPY
> -#define __P111 PAGE_COPY
> -
> -#define __S000 PAGE_NONE
> -#define __S001 PAGE_READONLY
> -#define __S010 PAGE_SHARED
> -#define __S011 PAGE_SHARED
> -#define __S100 PAGE_READONLY
> -#define __S101 PAGE_READONLY
> -#define __S110 PAGE_SHARED
> -#define __S111 PAGE_SHARED
> -
> /* First physical page can be anywhere, the following is needed so that
> * va-->pa and vice versa conversions work properly without performance
> * hit for all __pa()/__va() operations.
> diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
> index 4679e45c8348..a779418ceba9 100644
> --- a/arch/sparc/include/asm/pgtable_64.h
> +++ b/arch/sparc/include/asm/pgtable_64.h
> @@ -187,25 +187,6 @@ bool kern_addr_valid(unsigned long addr);
> #define _PAGE_SZHUGE_4U _PAGE_SZ4MB_4U
> #define _PAGE_SZHUGE_4V _PAGE_SZ4MB_4V
>
> -/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> -#define __P000 __pgprot(0)
> -#define __P001 __pgprot(0)
> -#define __P010 __pgprot(0)
> -#define __P011 __pgprot(0)
> -#define __P100 __pgprot(0)
> -#define __P101 __pgprot(0)
> -#define __P110 __pgprot(0)
> -#define __P111 __pgprot(0)
> -
> -#define __S000 __pgprot(0)
> -#define __S001 __pgprot(0)
> -#define __S010 __pgprot(0)
> -#define __S011 __pgprot(0)
> -#define __S100 __pgprot(0)
> -#define __S101 __pgprot(0)
> -#define __S110 __pgprot(0)
> -#define __S111 __pgprot(0)
> -
> #ifndef __ASSEMBLY__
>
> pte_t mk_pte_io(unsigned long, pgprot_t, int, unsigned long);
> diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
> index 1e9f577f084d..8693e4e28b86 100644
> --- a/arch/sparc/mm/init_32.c
> +++ b/arch/sparc/mm/init_32.c
> @@ -302,3 +302,23 @@ void sparc_flush_page_to_ram(struct page *page)
> __flush_page_to_ram(vaddr);
> }
> EXPORT_SYMBOL(sparc_flush_page_to_ram);
> +
> +static pgprot_t protection_map[16] __ro_after_init = {
This can be const - like done for powerpc and others.
sparc32 and sparc64 uses each their own - and I do not see sparc32 do
any modifications to protection_map.
With this change:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
> + [VM_NONE] = PAGE_NONE,
> + [VM_READ] = PAGE_READONLY,
> + [VM_WRITE] = PAGE_COPY,
> + [VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_EXEC] = PAGE_READONLY,
> + [VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_EXEC | VM_WRITE] = PAGE_COPY,
> + [VM_EXEC | VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_SHARED] = PAGE_NONE,
> + [VM_SHARED | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_WRITE | VM_READ] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = PAGE_SHARED
> +};
> +DECLARE_VM_GET_PAGE_PROT
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index f6174df2d5af..d6faee23c77d 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -2634,6 +2634,9 @@ void vmemmap_free(unsigned long start, unsigned long end,
> }
> #endif /* CONFIG_SPARSEMEM_VMEMMAP */
>
> +/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> +static pgprot_t protection_map[16] __ro_after_init;
> +
> static void prot_init_common(unsigned long page_none,
> unsigned long page_shared,
> unsigned long page_copy,
> --
> 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: linux-mm@kvack.org, hch@infradead.org,
christophe.leroy@csgroup.eu,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
x86@kernel.org, openrisc@lists.librecores.org,
linux-xtensa@linux-xtensa.org, linux-csky@vger.kernel.org,
linux-hexagon@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-alpha@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-s390@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-mips@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
linux-snps-arc@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-um@lists.infradead.org, linux-sh@vger.kernel.org,
linux-kernel@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH V5 04/26] sparc/mm: Move protection_map[] inside the platform
Date: Mon, 27 Jun 2022 19:14:56 +0200 [thread overview]
Message-ID: <YrnlkLbyYSbI0EQw@ravnborg.org> (raw)
In-Reply-To: <20220627045833.1590055-5-anshuman.khandual@arm.com>
Hi Anshuman,
On Mon, Jun 27, 2022 at 10:28:11AM +0530, Anshuman Khandual wrote:
> This moves protection_map[] inside the platform and while here, also enable
> ARCH_HAS_VM_GET_PAGE_PROT on 32 bit platforms via DECLARE_VM_GET_PAGE_PROT.
>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/sparc/Kconfig | 2 +-
> arch/sparc/include/asm/pgtable_32.h | 19 -------------------
> arch/sparc/include/asm/pgtable_64.h | 19 -------------------
> arch/sparc/mm/init_32.c | 20 ++++++++++++++++++++
> arch/sparc/mm/init_64.c | 3 +++
> 5 files changed, 24 insertions(+), 39 deletions(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index ba449c47effd..09f868613a4d 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -13,6 +13,7 @@ config 64BIT
> config SPARC
> bool
> default y
> + select ARCH_HAS_VM_GET_PAGE_PROT
> select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
> select ARCH_MIGHT_HAVE_PC_SERIO
> select DMA_OPS
> @@ -84,7 +85,6 @@ config SPARC64
> select PERF_USE_VMALLOC
> select ARCH_HAVE_NMI_SAFE_CMPXCHG
> select HAVE_C_RECORDMCOUNT
> - select ARCH_HAS_VM_GET_PAGE_PROT
> select HAVE_ARCH_AUDITSYSCALL
> select ARCH_SUPPORTS_ATOMIC_RMW
> select ARCH_SUPPORTS_DEBUG_PAGEALLOC
> diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
> index 4866625da314..8ff549004fac 100644
> --- a/arch/sparc/include/asm/pgtable_32.h
> +++ b/arch/sparc/include/asm/pgtable_32.h
> @@ -64,25 +64,6 @@ void paging_init(void);
>
> extern unsigned long ptr_in_current_pgd;
>
> -/* xwr */
> -#define __P000 PAGE_NONE
> -#define __P001 PAGE_READONLY
> -#define __P010 PAGE_COPY
> -#define __P011 PAGE_COPY
> -#define __P100 PAGE_READONLY
> -#define __P101 PAGE_READONLY
> -#define __P110 PAGE_COPY
> -#define __P111 PAGE_COPY
> -
> -#define __S000 PAGE_NONE
> -#define __S001 PAGE_READONLY
> -#define __S010 PAGE_SHARED
> -#define __S011 PAGE_SHARED
> -#define __S100 PAGE_READONLY
> -#define __S101 PAGE_READONLY
> -#define __S110 PAGE_SHARED
> -#define __S111 PAGE_SHARED
> -
> /* First physical page can be anywhere, the following is needed so that
> * va-->pa and vice versa conversions work properly without performance
> * hit for all __pa()/__va() operations.
> diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
> index 4679e45c8348..a779418ceba9 100644
> --- a/arch/sparc/include/asm/pgtable_64.h
> +++ b/arch/sparc/include/asm/pgtable_64.h
> @@ -187,25 +187,6 @@ bool kern_addr_valid(unsigned long addr);
> #define _PAGE_SZHUGE_4U _PAGE_SZ4MB_4U
> #define _PAGE_SZHUGE_4V _PAGE_SZ4MB_4V
>
> -/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> -#define __P000 __pgprot(0)
> -#define __P001 __pgprot(0)
> -#define __P010 __pgprot(0)
> -#define __P011 __pgprot(0)
> -#define __P100 __pgprot(0)
> -#define __P101 __pgprot(0)
> -#define __P110 __pgprot(0)
> -#define __P111 __pgprot(0)
> -
> -#define __S000 __pgprot(0)
> -#define __S001 __pgprot(0)
> -#define __S010 __pgprot(0)
> -#define __S011 __pgprot(0)
> -#define __S100 __pgprot(0)
> -#define __S101 __pgprot(0)
> -#define __S110 __pgprot(0)
> -#define __S111 __pgprot(0)
> -
> #ifndef __ASSEMBLY__
>
> pte_t mk_pte_io(unsigned long, pgprot_t, int, unsigned long);
> diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
> index 1e9f577f084d..8693e4e28b86 100644
> --- a/arch/sparc/mm/init_32.c
> +++ b/arch/sparc/mm/init_32.c
> @@ -302,3 +302,23 @@ void sparc_flush_page_to_ram(struct page *page)
> __flush_page_to_ram(vaddr);
> }
> EXPORT_SYMBOL(sparc_flush_page_to_ram);
> +
> +static pgprot_t protection_map[16] __ro_after_init = {
This can be const - like done for powerpc and others.
sparc32 and sparc64 uses each their own - and I do not see sparc32 do
any modifications to protection_map.
With this change:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
> + [VM_NONE] = PAGE_NONE,
> + [VM_READ] = PAGE_READONLY,
> + [VM_WRITE] = PAGE_COPY,
> + [VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_EXEC] = PAGE_READONLY,
> + [VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_EXEC | VM_WRITE] = PAGE_COPY,
> + [VM_EXEC | VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_SHARED] = PAGE_NONE,
> + [VM_SHARED | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_WRITE | VM_READ] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = PAGE_SHARED
> +};
> +DECLARE_VM_GET_PAGE_PROT
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index f6174df2d5af..d6faee23c77d 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -2634,6 +2634,9 @@ void vmemmap_free(unsigned long start, unsigned long end,
> }
> #endif /* CONFIG_SPARSEMEM_VMEMMAP */
>
> +/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> +static pgprot_t protection_map[16] __ro_after_init;
> +
> static void prot_init_common(unsigned long page_none,
> unsigned long page_shared,
> unsigned long page_copy,
> --
> 2.25.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: linux-mm@kvack.org, hch@infradead.org,
christophe.leroy@csgroup.eu,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
x86@kernel.org, openrisc@lists.librecores.org,
linux-xtensa@linux-xtensa.org, linux-csky@vger.kernel.org,
linux-hexagon@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-alpha@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-s390@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-mips@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
linux-snps-arc@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-um@lists.infradead.org, linux-sh@vger.kernel.org,
linux-kernel@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH V5 04/26] sparc/mm: Move protection_map[] inside the platform
Date: Mon, 27 Jun 2022 19:14:56 +0200 [thread overview]
Message-ID: <YrnlkLbyYSbI0EQw@ravnborg.org> (raw)
In-Reply-To: <20220627045833.1590055-5-anshuman.khandual@arm.com>
Hi Anshuman,
On Mon, Jun 27, 2022 at 10:28:11AM +0530, Anshuman Khandual wrote:
> This moves protection_map[] inside the platform and while here, also enable
> ARCH_HAS_VM_GET_PAGE_PROT on 32 bit platforms via DECLARE_VM_GET_PAGE_PROT.
>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/sparc/Kconfig | 2 +-
> arch/sparc/include/asm/pgtable_32.h | 19 -------------------
> arch/sparc/include/asm/pgtable_64.h | 19 -------------------
> arch/sparc/mm/init_32.c | 20 ++++++++++++++++++++
> arch/sparc/mm/init_64.c | 3 +++
> 5 files changed, 24 insertions(+), 39 deletions(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index ba449c47effd..09f868613a4d 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -13,6 +13,7 @@ config 64BIT
> config SPARC
> bool
> default y
> + select ARCH_HAS_VM_GET_PAGE_PROT
> select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
> select ARCH_MIGHT_HAVE_PC_SERIO
> select DMA_OPS
> @@ -84,7 +85,6 @@ config SPARC64
> select PERF_USE_VMALLOC
> select ARCH_HAVE_NMI_SAFE_CMPXCHG
> select HAVE_C_RECORDMCOUNT
> - select ARCH_HAS_VM_GET_PAGE_PROT
> select HAVE_ARCH_AUDITSYSCALL
> select ARCH_SUPPORTS_ATOMIC_RMW
> select ARCH_SUPPORTS_DEBUG_PAGEALLOC
> diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
> index 4866625da314..8ff549004fac 100644
> --- a/arch/sparc/include/asm/pgtable_32.h
> +++ b/arch/sparc/include/asm/pgtable_32.h
> @@ -64,25 +64,6 @@ void paging_init(void);
>
> extern unsigned long ptr_in_current_pgd;
>
> -/* xwr */
> -#define __P000 PAGE_NONE
> -#define __P001 PAGE_READONLY
> -#define __P010 PAGE_COPY
> -#define __P011 PAGE_COPY
> -#define __P100 PAGE_READONLY
> -#define __P101 PAGE_READONLY
> -#define __P110 PAGE_COPY
> -#define __P111 PAGE_COPY
> -
> -#define __S000 PAGE_NONE
> -#define __S001 PAGE_READONLY
> -#define __S010 PAGE_SHARED
> -#define __S011 PAGE_SHARED
> -#define __S100 PAGE_READONLY
> -#define __S101 PAGE_READONLY
> -#define __S110 PAGE_SHARED
> -#define __S111 PAGE_SHARED
> -
> /* First physical page can be anywhere, the following is needed so that
> * va-->pa and vice versa conversions work properly without performance
> * hit for all __pa()/__va() operations.
> diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
> index 4679e45c8348..a779418ceba9 100644
> --- a/arch/sparc/include/asm/pgtable_64.h
> +++ b/arch/sparc/include/asm/pgtable_64.h
> @@ -187,25 +187,6 @@ bool kern_addr_valid(unsigned long addr);
> #define _PAGE_SZHUGE_4U _PAGE_SZ4MB_4U
> #define _PAGE_SZHUGE_4V _PAGE_SZ4MB_4V
>
> -/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> -#define __P000 __pgprot(0)
> -#define __P001 __pgprot(0)
> -#define __P010 __pgprot(0)
> -#define __P011 __pgprot(0)
> -#define __P100 __pgprot(0)
> -#define __P101 __pgprot(0)
> -#define __P110 __pgprot(0)
> -#define __P111 __pgprot(0)
> -
> -#define __S000 __pgprot(0)
> -#define __S001 __pgprot(0)
> -#define __S010 __pgprot(0)
> -#define __S011 __pgprot(0)
> -#define __S100 __pgprot(0)
> -#define __S101 __pgprot(0)
> -#define __S110 __pgprot(0)
> -#define __S111 __pgprot(0)
> -
> #ifndef __ASSEMBLY__
>
> pte_t mk_pte_io(unsigned long, pgprot_t, int, unsigned long);
> diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
> index 1e9f577f084d..8693e4e28b86 100644
> --- a/arch/sparc/mm/init_32.c
> +++ b/arch/sparc/mm/init_32.c
> @@ -302,3 +302,23 @@ void sparc_flush_page_to_ram(struct page *page)
> __flush_page_to_ram(vaddr);
> }
> EXPORT_SYMBOL(sparc_flush_page_to_ram);
> +
> +static pgprot_t protection_map[16] __ro_after_init = {
This can be const - like done for powerpc and others.
sparc32 and sparc64 uses each their own - and I do not see sparc32 do
any modifications to protection_map.
With this change:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
> + [VM_NONE] = PAGE_NONE,
> + [VM_READ] = PAGE_READONLY,
> + [VM_WRITE] = PAGE_COPY,
> + [VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_EXEC] = PAGE_READONLY,
> + [VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_EXEC | VM_WRITE] = PAGE_COPY,
> + [VM_EXEC | VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_SHARED] = PAGE_NONE,
> + [VM_SHARED | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_WRITE | VM_READ] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = PAGE_SHARED
> +};
> +DECLARE_VM_GET_PAGE_PROT
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index f6174df2d5af..d6faee23c77d 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -2634,6 +2634,9 @@ void vmemmap_free(unsigned long start, unsigned long end,
> }
> #endif /* CONFIG_SPARSEMEM_VMEMMAP */
>
> +/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> +static pgprot_t protection_map[16] __ro_after_init;
> +
> static void prot_init_common(unsigned long page_none,
> unsigned long page_shared,
> unsigned long page_copy,
> --
> 2.25.1
_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc
WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-csky@vger.kernel.org, sparclinux@vger.kernel.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-hexagon@vger.kernel.org, x86@kernel.org,
christophe.leroy@csgroup.eu, hch@infradead.org,
linux-snps-arc@lists.infradead.org,
linux-xtensa@linux-xtensa.org, linux-um@lists.infradead.org,
linux-m68k@lists.linux-m68k.org, openrisc@lists.librecores.org,
linux-arm-kernel@lists.infradead.org,
linux-parisc@vger.kernel.org, linux-mips@vger.kernel.org,
linux-alpha@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH V5 04/26] sparc/mm: Move protection_map[] inside the platform
Date: Mon, 27 Jun 2022 19:14:56 +0200 [thread overview]
Message-ID: <YrnlkLbyYSbI0EQw@ravnborg.org> (raw)
In-Reply-To: <20220627045833.1590055-5-anshuman.khandual@arm.com>
Hi Anshuman,
On Mon, Jun 27, 2022 at 10:28:11AM +0530, Anshuman Khandual wrote:
> This moves protection_map[] inside the platform and while here, also enable
> ARCH_HAS_VM_GET_PAGE_PROT on 32 bit platforms via DECLARE_VM_GET_PAGE_PROT.
>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/sparc/Kconfig | 2 +-
> arch/sparc/include/asm/pgtable_32.h | 19 -------------------
> arch/sparc/include/asm/pgtable_64.h | 19 -------------------
> arch/sparc/mm/init_32.c | 20 ++++++++++++++++++++
> arch/sparc/mm/init_64.c | 3 +++
> 5 files changed, 24 insertions(+), 39 deletions(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index ba449c47effd..09f868613a4d 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -13,6 +13,7 @@ config 64BIT
> config SPARC
> bool
> default y
> + select ARCH_HAS_VM_GET_PAGE_PROT
> select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
> select ARCH_MIGHT_HAVE_PC_SERIO
> select DMA_OPS
> @@ -84,7 +85,6 @@ config SPARC64
> select PERF_USE_VMALLOC
> select ARCH_HAVE_NMI_SAFE_CMPXCHG
> select HAVE_C_RECORDMCOUNT
> - select ARCH_HAS_VM_GET_PAGE_PROT
> select HAVE_ARCH_AUDITSYSCALL
> select ARCH_SUPPORTS_ATOMIC_RMW
> select ARCH_SUPPORTS_DEBUG_PAGEALLOC
> diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
> index 4866625da314..8ff549004fac 100644
> --- a/arch/sparc/include/asm/pgtable_32.h
> +++ b/arch/sparc/include/asm/pgtable_32.h
> @@ -64,25 +64,6 @@ void paging_init(void);
>
> extern unsigned long ptr_in_current_pgd;
>
> -/* xwr */
> -#define __P000 PAGE_NONE
> -#define __P001 PAGE_READONLY
> -#define __P010 PAGE_COPY
> -#define __P011 PAGE_COPY
> -#define __P100 PAGE_READONLY
> -#define __P101 PAGE_READONLY
> -#define __P110 PAGE_COPY
> -#define __P111 PAGE_COPY
> -
> -#define __S000 PAGE_NONE
> -#define __S001 PAGE_READONLY
> -#define __S010 PAGE_SHARED
> -#define __S011 PAGE_SHARED
> -#define __S100 PAGE_READONLY
> -#define __S101 PAGE_READONLY
> -#define __S110 PAGE_SHARED
> -#define __S111 PAGE_SHARED
> -
> /* First physical page can be anywhere, the following is needed so that
> * va-->pa and vice versa conversions work properly without performance
> * hit for all __pa()/__va() operations.
> diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
> index 4679e45c8348..a779418ceba9 100644
> --- a/arch/sparc/include/asm/pgtable_64.h
> +++ b/arch/sparc/include/asm/pgtable_64.h
> @@ -187,25 +187,6 @@ bool kern_addr_valid(unsigned long addr);
> #define _PAGE_SZHUGE_4U _PAGE_SZ4MB_4U
> #define _PAGE_SZHUGE_4V _PAGE_SZ4MB_4V
>
> -/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> -#define __P000 __pgprot(0)
> -#define __P001 __pgprot(0)
> -#define __P010 __pgprot(0)
> -#define __P011 __pgprot(0)
> -#define __P100 __pgprot(0)
> -#define __P101 __pgprot(0)
> -#define __P110 __pgprot(0)
> -#define __P111 __pgprot(0)
> -
> -#define __S000 __pgprot(0)
> -#define __S001 __pgprot(0)
> -#define __S010 __pgprot(0)
> -#define __S011 __pgprot(0)
> -#define __S100 __pgprot(0)
> -#define __S101 __pgprot(0)
> -#define __S110 __pgprot(0)
> -#define __S111 __pgprot(0)
> -
> #ifndef __ASSEMBLY__
>
> pte_t mk_pte_io(unsigned long, pgprot_t, int, unsigned long);
> diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
> index 1e9f577f084d..8693e4e28b86 100644
> --- a/arch/sparc/mm/init_32.c
> +++ b/arch/sparc/mm/init_32.c
> @@ -302,3 +302,23 @@ void sparc_flush_page_to_ram(struct page *page)
> __flush_page_to_ram(vaddr);
> }
> EXPORT_SYMBOL(sparc_flush_page_to_ram);
> +
> +static pgprot_t protection_map[16] __ro_after_init = {
This can be const - like done for powerpc and others.
sparc32 and sparc64 uses each their own - and I do not see sparc32 do
any modifications to protection_map.
With this change:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
> + [VM_NONE] = PAGE_NONE,
> + [VM_READ] = PAGE_READONLY,
> + [VM_WRITE] = PAGE_COPY,
> + [VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_EXEC] = PAGE_READONLY,
> + [VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_EXEC | VM_WRITE] = PAGE_COPY,
> + [VM_EXEC | VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_SHARED] = PAGE_NONE,
> + [VM_SHARED | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_WRITE | VM_READ] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = PAGE_SHARED
> +};
> +DECLARE_VM_GET_PAGE_PROT
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index f6174df2d5af..d6faee23c77d 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -2634,6 +2634,9 @@ void vmemmap_free(unsigned long start, unsigned long end,
> }
> #endif /* CONFIG_SPARSEMEM_VMEMMAP */
>
> +/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> +static pgprot_t protection_map[16] __ro_after_init;
> +
> static void prot_init_common(unsigned long page_none,
> unsigned long page_shared,
> unsigned long page_copy,
> --
> 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: linux-mm@kvack.org, hch@infradead.org,
christophe.leroy@csgroup.eu,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
x86@kernel.org, openrisc@lists.librecores.org,
linux-xtensa@linux-xtensa.org, linux-csky@vger.kernel.org,
linux-hexagon@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-alpha@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-s390@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-mips@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
linux-snps-arc@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-um@lists.infradead.org, linux-sh@vger.kernel.org,
linux-kernel@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH V5 04/26] sparc/mm: Move protection_map[] inside the platform
Date: Mon, 27 Jun 2022 19:14:56 +0200 [thread overview]
Message-ID: <YrnlkLbyYSbI0EQw@ravnborg.org> (raw)
In-Reply-To: <20220627045833.1590055-5-anshuman.khandual@arm.com>
Hi Anshuman,
On Mon, Jun 27, 2022 at 10:28:11AM +0530, Anshuman Khandual wrote:
> This moves protection_map[] inside the platform and while here, also enable
> ARCH_HAS_VM_GET_PAGE_PROT on 32 bit platforms via DECLARE_VM_GET_PAGE_PROT.
>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/sparc/Kconfig | 2 +-
> arch/sparc/include/asm/pgtable_32.h | 19 -------------------
> arch/sparc/include/asm/pgtable_64.h | 19 -------------------
> arch/sparc/mm/init_32.c | 20 ++++++++++++++++++++
> arch/sparc/mm/init_64.c | 3 +++
> 5 files changed, 24 insertions(+), 39 deletions(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index ba449c47effd..09f868613a4d 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -13,6 +13,7 @@ config 64BIT
> config SPARC
> bool
> default y
> + select ARCH_HAS_VM_GET_PAGE_PROT
> select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
> select ARCH_MIGHT_HAVE_PC_SERIO
> select DMA_OPS
> @@ -84,7 +85,6 @@ config SPARC64
> select PERF_USE_VMALLOC
> select ARCH_HAVE_NMI_SAFE_CMPXCHG
> select HAVE_C_RECORDMCOUNT
> - select ARCH_HAS_VM_GET_PAGE_PROT
> select HAVE_ARCH_AUDITSYSCALL
> select ARCH_SUPPORTS_ATOMIC_RMW
> select ARCH_SUPPORTS_DEBUG_PAGEALLOC
> diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
> index 4866625da314..8ff549004fac 100644
> --- a/arch/sparc/include/asm/pgtable_32.h
> +++ b/arch/sparc/include/asm/pgtable_32.h
> @@ -64,25 +64,6 @@ void paging_init(void);
>
> extern unsigned long ptr_in_current_pgd;
>
> -/* xwr */
> -#define __P000 PAGE_NONE
> -#define __P001 PAGE_READONLY
> -#define __P010 PAGE_COPY
> -#define __P011 PAGE_COPY
> -#define __P100 PAGE_READONLY
> -#define __P101 PAGE_READONLY
> -#define __P110 PAGE_COPY
> -#define __P111 PAGE_COPY
> -
> -#define __S000 PAGE_NONE
> -#define __S001 PAGE_READONLY
> -#define __S010 PAGE_SHARED
> -#define __S011 PAGE_SHARED
> -#define __S100 PAGE_READONLY
> -#define __S101 PAGE_READONLY
> -#define __S110 PAGE_SHARED
> -#define __S111 PAGE_SHARED
> -
> /* First physical page can be anywhere, the following is needed so that
> * va-->pa and vice versa conversions work properly without performance
> * hit for all __pa()/__va() operations.
> diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
> index 4679e45c8348..a779418ceba9 100644
> --- a/arch/sparc/include/asm/pgtable_64.h
> +++ b/arch/sparc/include/asm/pgtable_64.h
> @@ -187,25 +187,6 @@ bool kern_addr_valid(unsigned long addr);
> #define _PAGE_SZHUGE_4U _PAGE_SZ4MB_4U
> #define _PAGE_SZHUGE_4V _PAGE_SZ4MB_4V
>
> -/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> -#define __P000 __pgprot(0)
> -#define __P001 __pgprot(0)
> -#define __P010 __pgprot(0)
> -#define __P011 __pgprot(0)
> -#define __P100 __pgprot(0)
> -#define __P101 __pgprot(0)
> -#define __P110 __pgprot(0)
> -#define __P111 __pgprot(0)
> -
> -#define __S000 __pgprot(0)
> -#define __S001 __pgprot(0)
> -#define __S010 __pgprot(0)
> -#define __S011 __pgprot(0)
> -#define __S100 __pgprot(0)
> -#define __S101 __pgprot(0)
> -#define __S110 __pgprot(0)
> -#define __S111 __pgprot(0)
> -
> #ifndef __ASSEMBLY__
>
> pte_t mk_pte_io(unsigned long, pgprot_t, int, unsigned long);
> diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
> index 1e9f577f084d..8693e4e28b86 100644
> --- a/arch/sparc/mm/init_32.c
> +++ b/arch/sparc/mm/init_32.c
> @@ -302,3 +302,23 @@ void sparc_flush_page_to_ram(struct page *page)
> __flush_page_to_ram(vaddr);
> }
> EXPORT_SYMBOL(sparc_flush_page_to_ram);
> +
> +static pgprot_t protection_map[16] __ro_after_init = {
This can be const - like done for powerpc and others.
sparc32 and sparc64 uses each their own - and I do not see sparc32 do
any modifications to protection_map.
With this change:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
> + [VM_NONE] = PAGE_NONE,
> + [VM_READ] = PAGE_READONLY,
> + [VM_WRITE] = PAGE_COPY,
> + [VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_EXEC] = PAGE_READONLY,
> + [VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_EXEC | VM_WRITE] = PAGE_COPY,
> + [VM_EXEC | VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_SHARED] = PAGE_NONE,
> + [VM_SHARED | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_WRITE | VM_READ] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = PAGE_SHARED
> +};
> +DECLARE_VM_GET_PAGE_PROT
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index f6174df2d5af..d6faee23c77d 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -2634,6 +2634,9 @@ void vmemmap_free(unsigned long start, unsigned long end,
> }
> #endif /* CONFIG_SPARSEMEM_VMEMMAP */
>
> +/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> +static pgprot_t protection_map[16] __ro_after_init;
> +
> static void prot_init_common(unsigned long page_none,
> unsigned long page_shared,
> unsigned long page_copy,
> --
> 2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-csky@vger.kernel.org, sparclinux@vger.kernel.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-hexagon@vger.kernel.org, x86@kernel.org, hch@infradead.org,
linux-snps-arc@lists.infradead.org,
linux-xtensa@linux-xtensa.org, linux-um@lists.infradead.org,
linux-m68k@lists.linux-m68k.org, openrisc@lists.librecores.org,
linux-arm-kernel@lists.infradead.org,
linux-parisc@vger.kernel.org, linux-mips@vger.kernel.org,
linux-alpha@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH V5 04/26] sparc/mm: Move protection_map[] inside the platform
Date: Mon, 27 Jun 2022 19:14:56 +0200 [thread overview]
Message-ID: <YrnlkLbyYSbI0EQw@ravnborg.org> (raw)
In-Reply-To: <20220627045833.1590055-5-anshuman.khandual@arm.com>
Hi Anshuman,
On Mon, Jun 27, 2022 at 10:28:11AM +0530, Anshuman Khandual wrote:
> This moves protection_map[] inside the platform and while here, also enable
> ARCH_HAS_VM_GET_PAGE_PROT on 32 bit platforms via DECLARE_VM_GET_PAGE_PROT.
>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/sparc/Kconfig | 2 +-
> arch/sparc/include/asm/pgtable_32.h | 19 -------------------
> arch/sparc/include/asm/pgtable_64.h | 19 -------------------
> arch/sparc/mm/init_32.c | 20 ++++++++++++++++++++
> arch/sparc/mm/init_64.c | 3 +++
> 5 files changed, 24 insertions(+), 39 deletions(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index ba449c47effd..09f868613a4d 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -13,6 +13,7 @@ config 64BIT
> config SPARC
> bool
> default y
> + select ARCH_HAS_VM_GET_PAGE_PROT
> select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
> select ARCH_MIGHT_HAVE_PC_SERIO
> select DMA_OPS
> @@ -84,7 +85,6 @@ config SPARC64
> select PERF_USE_VMALLOC
> select ARCH_HAVE_NMI_SAFE_CMPXCHG
> select HAVE_C_RECORDMCOUNT
> - select ARCH_HAS_VM_GET_PAGE_PROT
> select HAVE_ARCH_AUDITSYSCALL
> select ARCH_SUPPORTS_ATOMIC_RMW
> select ARCH_SUPPORTS_DEBUG_PAGEALLOC
> diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
> index 4866625da314..8ff549004fac 100644
> --- a/arch/sparc/include/asm/pgtable_32.h
> +++ b/arch/sparc/include/asm/pgtable_32.h
> @@ -64,25 +64,6 @@ void paging_init(void);
>
> extern unsigned long ptr_in_current_pgd;
>
> -/* xwr */
> -#define __P000 PAGE_NONE
> -#define __P001 PAGE_READONLY
> -#define __P010 PAGE_COPY
> -#define __P011 PAGE_COPY
> -#define __P100 PAGE_READONLY
> -#define __P101 PAGE_READONLY
> -#define __P110 PAGE_COPY
> -#define __P111 PAGE_COPY
> -
> -#define __S000 PAGE_NONE
> -#define __S001 PAGE_READONLY
> -#define __S010 PAGE_SHARED
> -#define __S011 PAGE_SHARED
> -#define __S100 PAGE_READONLY
> -#define __S101 PAGE_READONLY
> -#define __S110 PAGE_SHARED
> -#define __S111 PAGE_SHARED
> -
> /* First physical page can be anywhere, the following is needed so that
> * va-->pa and vice versa conversions work properly without performance
> * hit for all __pa()/__va() operations.
> diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
> index 4679e45c8348..a779418ceba9 100644
> --- a/arch/sparc/include/asm/pgtable_64.h
> +++ b/arch/sparc/include/asm/pgtable_64.h
> @@ -187,25 +187,6 @@ bool kern_addr_valid(unsigned long addr);
> #define _PAGE_SZHUGE_4U _PAGE_SZ4MB_4U
> #define _PAGE_SZHUGE_4V _PAGE_SZ4MB_4V
>
> -/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> -#define __P000 __pgprot(0)
> -#define __P001 __pgprot(0)
> -#define __P010 __pgprot(0)
> -#define __P011 __pgprot(0)
> -#define __P100 __pgprot(0)
> -#define __P101 __pgprot(0)
> -#define __P110 __pgprot(0)
> -#define __P111 __pgprot(0)
> -
> -#define __S000 __pgprot(0)
> -#define __S001 __pgprot(0)
> -#define __S010 __pgprot(0)
> -#define __S011 __pgprot(0)
> -#define __S100 __pgprot(0)
> -#define __S101 __pgprot(0)
> -#define __S110 __pgprot(0)
> -#define __S111 __pgprot(0)
> -
> #ifndef __ASSEMBLY__
>
> pte_t mk_pte_io(unsigned long, pgprot_t, int, unsigned long);
> diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
> index 1e9f577f084d..8693e4e28b86 100644
> --- a/arch/sparc/mm/init_32.c
> +++ b/arch/sparc/mm/init_32.c
> @@ -302,3 +302,23 @@ void sparc_flush_page_to_ram(struct page *page)
> __flush_page_to_ram(vaddr);
> }
> EXPORT_SYMBOL(sparc_flush_page_to_ram);
> +
> +static pgprot_t protection_map[16] __ro_after_init = {
This can be const - like done for powerpc and others.
sparc32 and sparc64 uses each their own - and I do not see sparc32 do
any modifications to protection_map.
With this change:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
> + [VM_NONE] = PAGE_NONE,
> + [VM_READ] = PAGE_READONLY,
> + [VM_WRITE] = PAGE_COPY,
> + [VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_EXEC] = PAGE_READONLY,
> + [VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_EXEC | VM_WRITE] = PAGE_COPY,
> + [VM_EXEC | VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_SHARED] = PAGE_NONE,
> + [VM_SHARED | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_WRITE | VM_READ] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = PAGE_SHARED
> +};
> +DECLARE_VM_GET_PAGE_PROT
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index f6174df2d5af..d6faee23c77d 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -2634,6 +2634,9 @@ void vmemmap_free(unsigned long start, unsigned long end,
> }
> #endif /* CONFIG_SPARSEMEM_VMEMMAP */
>
> +/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> +static pgprot_t protection_map[16] __ro_after_init;
> +
> static void prot_init_common(unsigned long page_none,
> unsigned long page_shared,
> unsigned long page_copy,
> --
> 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: linux-mm@kvack.org, hch@infradead.org,
christophe.leroy@csgroup.eu,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
x86@kernel.org, openrisc@lists.librecores.org,
linux-xtensa@linux-xtensa.org, linux-csky@vger.kernel.org,
linux-hexagon@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-alpha@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-s390@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-mips@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
linux-snps-arc@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-um@lists.infradead.org, linux-sh@vger.kernel.org,
linux-kernel@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH V5 04/26] sparc/mm: Move protection_map[] inside the platform
Date: Mon, 27 Jun 2022 17:14:56 +0000 [thread overview]
Message-ID: <YrnlkLbyYSbI0EQw@ravnborg.org> (raw)
In-Reply-To: <20220627045833.1590055-5-anshuman.khandual@arm.com>
Hi Anshuman,
On Mon, Jun 27, 2022 at 10:28:11AM +0530, Anshuman Khandual wrote:
> This moves protection_map[] inside the platform and while here, also enable
> ARCH_HAS_VM_GET_PAGE_PROT on 32 bit platforms via DECLARE_VM_GET_PAGE_PROT.
>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> arch/sparc/Kconfig | 2 +-
> arch/sparc/include/asm/pgtable_32.h | 19 -------------------
> arch/sparc/include/asm/pgtable_64.h | 19 -------------------
> arch/sparc/mm/init_32.c | 20 ++++++++++++++++++++
> arch/sparc/mm/init_64.c | 3 +++
> 5 files changed, 24 insertions(+), 39 deletions(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index ba449c47effd..09f868613a4d 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -13,6 +13,7 @@ config 64BIT
> config SPARC
> bool
> default y
> + select ARCH_HAS_VM_GET_PAGE_PROT
> select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
> select ARCH_MIGHT_HAVE_PC_SERIO
> select DMA_OPS
> @@ -84,7 +85,6 @@ config SPARC64
> select PERF_USE_VMALLOC
> select ARCH_HAVE_NMI_SAFE_CMPXCHG
> select HAVE_C_RECORDMCOUNT
> - select ARCH_HAS_VM_GET_PAGE_PROT
> select HAVE_ARCH_AUDITSYSCALL
> select ARCH_SUPPORTS_ATOMIC_RMW
> select ARCH_SUPPORTS_DEBUG_PAGEALLOC
> diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
> index 4866625da314..8ff549004fac 100644
> --- a/arch/sparc/include/asm/pgtable_32.h
> +++ b/arch/sparc/include/asm/pgtable_32.h
> @@ -64,25 +64,6 @@ void paging_init(void);
>
> extern unsigned long ptr_in_current_pgd;
>
> -/* xwr */
> -#define __P000 PAGE_NONE
> -#define __P001 PAGE_READONLY
> -#define __P010 PAGE_COPY
> -#define __P011 PAGE_COPY
> -#define __P100 PAGE_READONLY
> -#define __P101 PAGE_READONLY
> -#define __P110 PAGE_COPY
> -#define __P111 PAGE_COPY
> -
> -#define __S000 PAGE_NONE
> -#define __S001 PAGE_READONLY
> -#define __S010 PAGE_SHARED
> -#define __S011 PAGE_SHARED
> -#define __S100 PAGE_READONLY
> -#define __S101 PAGE_READONLY
> -#define __S110 PAGE_SHARED
> -#define __S111 PAGE_SHARED
> -
> /* First physical page can be anywhere, the following is needed so that
> * va-->pa and vice versa conversions work properly without performance
> * hit for all __pa()/__va() operations.
> diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
> index 4679e45c8348..a779418ceba9 100644
> --- a/arch/sparc/include/asm/pgtable_64.h
> +++ b/arch/sparc/include/asm/pgtable_64.h
> @@ -187,25 +187,6 @@ bool kern_addr_valid(unsigned long addr);
> #define _PAGE_SZHUGE_4U _PAGE_SZ4MB_4U
> #define _PAGE_SZHUGE_4V _PAGE_SZ4MB_4V
>
> -/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> -#define __P000 __pgprot(0)
> -#define __P001 __pgprot(0)
> -#define __P010 __pgprot(0)
> -#define __P011 __pgprot(0)
> -#define __P100 __pgprot(0)
> -#define __P101 __pgprot(0)
> -#define __P110 __pgprot(0)
> -#define __P111 __pgprot(0)
> -
> -#define __S000 __pgprot(0)
> -#define __S001 __pgprot(0)
> -#define __S010 __pgprot(0)
> -#define __S011 __pgprot(0)
> -#define __S100 __pgprot(0)
> -#define __S101 __pgprot(0)
> -#define __S110 __pgprot(0)
> -#define __S111 __pgprot(0)
> -
> #ifndef __ASSEMBLY__
>
> pte_t mk_pte_io(unsigned long, pgprot_t, int, unsigned long);
> diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
> index 1e9f577f084d..8693e4e28b86 100644
> --- a/arch/sparc/mm/init_32.c
> +++ b/arch/sparc/mm/init_32.c
> @@ -302,3 +302,23 @@ void sparc_flush_page_to_ram(struct page *page)
> __flush_page_to_ram(vaddr);
> }
> EXPORT_SYMBOL(sparc_flush_page_to_ram);
> +
> +static pgprot_t protection_map[16] __ro_after_init = {
This can be const - like done for powerpc and others.
sparc32 and sparc64 uses each their own - and I do not see sparc32 do
any modifications to protection_map.
With this change:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
> + [VM_NONE] = PAGE_NONE,
> + [VM_READ] = PAGE_READONLY,
> + [VM_WRITE] = PAGE_COPY,
> + [VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_EXEC] = PAGE_READONLY,
> + [VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_EXEC | VM_WRITE] = PAGE_COPY,
> + [VM_EXEC | VM_WRITE | VM_READ] = PAGE_COPY,
> + [VM_SHARED] = PAGE_NONE,
> + [VM_SHARED | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_WRITE | VM_READ] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_READ] = PAGE_READONLY,
> + [VM_SHARED | VM_EXEC | VM_WRITE] = PAGE_SHARED,
> + [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = PAGE_SHARED
> +};
> +DECLARE_VM_GET_PAGE_PROT
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index f6174df2d5af..d6faee23c77d 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -2634,6 +2634,9 @@ void vmemmap_free(unsigned long start, unsigned long end,
> }
> #endif /* CONFIG_SPARSEMEM_VMEMMAP */
>
> +/* These are actually filled in at boot time by sun4{u,v}_pgprot_init() */
> +static pgprot_t protection_map[16] __ro_after_init;
> +
> static void prot_init_common(unsigned long page_none,
> unsigned long page_shared,
> unsigned long page_copy,
> --
> 2.25.1
next prev parent reply other threads:[~2022-06-27 17:16 UTC|newest]
Thread overview: 253+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-27 4:57 [PATCH V5 00/26] mm/mmap: Drop __SXXX/__PXXX macros from across platforms Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:57 ` [PATCH V5 02/26] mm/mmap: Define DECLARE_VM_GET_PAGE_PROT Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 4:57 ` [PATCH V5 01/26] mm/mmap: Build protect protection_map[] with __P000 Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 4:57 ` [PATCH V5 03/26] powerpc/mm: Move protection_map[] inside the platform Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 4:57 ` [PATCH V5 04/26] sparc/mm: " Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 17:14 ` Sam Ravnborg [this message]
2022-06-27 17:14 ` Sam Ravnborg
2022-06-27 17:14 ` Sam Ravnborg
2022-06-27 17:14 ` Sam Ravnborg
2022-06-27 17:14 ` Sam Ravnborg
2022-06-27 17:14 ` Sam Ravnborg
2022-06-27 17:14 ` Sam Ravnborg
2022-06-28 3:12 ` Anshuman Khandual
2022-06-28 3:24 ` Anshuman Khandual
2022-06-28 3:12 ` Anshuman Khandual
2022-06-28 3:12 ` Anshuman Khandual
2022-06-28 3:12 ` Anshuman Khandual
2022-06-28 3:12 ` Anshuman Khandual
2022-06-28 3:12 ` Anshuman Khandual
2022-06-27 4:57 ` [PATCH V5 05/26] arm64/mm: " Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 06/26] x86/mm: " Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 07/26] mm/mmap: Build protect protection_map[] with ARCH_HAS_VM_GET_PAGE_PROT Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 5:49 ` Christophe Leroy
2022-06-27 4:58 ` [PATCH V5 08/26] microblaze/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 09/26] loongarch/mm: " Anshuman Khandual
2022-06-27 4:59 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 10/26] openrisc/mm: " Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 11/26] xtensa/mm: " Anshuman Khandual
2022-06-27 4:59 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 12/26] hexagon/mm: " Anshuman Khandual
2022-06-27 4:59 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 14:32 ` Brian Cain
2022-06-27 14:32 ` Brian Cain
2022-06-27 14:32 ` Brian Cain
2022-06-27 14:32 ` Brian Cain
2022-06-27 14:32 ` Brian Cain
2022-06-27 14:32 ` Brian Cain
2022-06-27 14:32 ` Brian Cain
2022-06-27 4:58 ` [PATCH V5 13/26] parisc/mm: " Anshuman Khandual
2022-06-27 4:59 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 14/26] alpha/mm: " Anshuman Khandual
2022-06-27 4:59 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 15/26] nios2/mm: " Anshuman Khandual
2022-06-27 4:59 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 16/26] riscv/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 17/26] csky/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 18/26] s390/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 19/26] ia64/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 20/26] mips/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 21/26] m68k/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 22/26] arc/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 23/26] arm/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 24/26] um/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 25/26] sh/mm: " Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` [PATCH V5 26/26] mm/mmap: Drop ARCH_HAS_VM_GET_PAGE_PROT Anshuman Khandual
2022-06-27 5:10 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 4:58 ` Anshuman Khandual
2022-06-27 5:50 ` Christophe Leroy
2022-06-27 5:50 ` Christophe Leroy
2022-06-27 5:50 ` Christophe Leroy
2022-06-27 5:50 ` Christophe Leroy
2022-06-27 5:50 ` Christophe Leroy
2022-06-27 5:50 ` Christophe Leroy
2022-06-27 5:50 ` Christophe Leroy
2022-06-27 5:50 ` Christophe Leroy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YrnlkLbyYSbI0EQw@ravnborg.org \
--to=sam@ravnborg.org \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=davem@davemloft.net \
--cc=hch@infradead.org \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-csky@vger.kernel.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-snps-arc@lists.infradead.org \
--cc=linux-um@lists.infradead.org \
--cc=linux-xtensa@linux-xtensa.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=openrisc@lists.librecores.org \
--cc=sparclinux@vger.kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.