All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Anshuman Khandual <anshuman.khandual@arm.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Cc: "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
	Christoph Hellwig <hch@infradead.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Khalid Aziz <khalid.aziz@oracle.com>
Subject: Re: [PATCH V6 4/7] sparc/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT
Date: Wed, 13 Apr 2022 06:13:40 +0000	[thread overview]
Message-ID: <c3619877-32db-aaa3-5dd9-4917c067bc42@csgroup.eu> (raw)
In-Reply-To: <20220413055840.392628-5-anshuman.khandual@arm.com>



Le 13/04/2022 à 07:58, Anshuman Khandual a écrit :
> This defines and exports a platform specific custom vm_get_page_prot() via
> subscribing ARCH_HAS_VM_GET_PAGE_PROT. It localizes arch_vm_get_page_prot()
> as sparc_vm_get_page_prot() and moves near vm_get_page_prot().
> 
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Khalid Aziz <khalid.aziz@oracle.com>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Reviewed-by: Khalid Aziz <khalid.aziz@oracle.com>
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
>   arch/sparc/Kconfig            |  1 +
>   arch/sparc/include/asm/mman.h |  6 ------
>   arch/sparc/mm/init_64.c       | 13 +++++++++++++
>   3 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index 9200bc04701c..85b573643af6 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -84,6 +84,7 @@ 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/mman.h b/arch/sparc/include/asm/mman.h
> index 274217e7ed70..af9c10c83dc5 100644
> --- a/arch/sparc/include/asm/mman.h
> +++ b/arch/sparc/include/asm/mman.h
> @@ -46,12 +46,6 @@ static inline unsigned long sparc_calc_vm_prot_bits(unsigned long prot)
>   	}
>   }
>   
> -#define arch_vm_get_page_prot(vm_flags) sparc_vm_get_page_prot(vm_flags)
> -static inline pgprot_t sparc_vm_get_page_prot(unsigned long vm_flags)
> -{
> -	return (vm_flags & VM_SPARC_ADI) ? __pgprot(_PAGE_MCD_4V) : __pgprot(0);
> -}
> -
>   #define arch_validate_prot(prot, addr) sparc_validate_prot(prot, addr)
>   static inline int sparc_validate_prot(unsigned long prot, unsigned long addr)
>   {
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index 8b1911591581..dcb17763c1f2 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -3184,3 +3184,16 @@ void copy_highpage(struct page *to, struct page *from)
>   	}
>   }
>   EXPORT_SYMBOL(copy_highpage);
> +
> +static pgprot_t sparc_vm_get_page_prot(unsigned long vm_flags)
> +{
> +	return (vm_flags & VM_SPARC_ADI) ? __pgprot(_PAGE_MCD_4V) : __pgprot(0);
> +}
> +
> +pgprot_t vm_get_page_prot(unsigned long vm_flags)
> +{
> +	return __pgprot(pgprot_val(protection_map[vm_flags &
> +			(VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
> +			pgprot_val(sparc_vm_get_page_prot(vm_flags)));
> +}
> +EXPORT_SYMBOL(vm_get_page_prot);


sparc is now the only one with two functions. You can most likely do 
like you did for ARM and POWERPC: merge into a single function:

pgprot_t vm_get_page_prot(unsigned long vm_flags)
{
	unsigned long prot = pgprot_val(protection_map[vm_flags &
		(VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]);

	if (vm_flags & VM_SPARC_ADI)
		prot |= _PAGE_MCD_4V;

	return __pgprot(prot);
}
EXPORT_SYMBOL(vm_get_page_prot);

WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Anshuman Khandual <anshuman.khandual@arm.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Cc: "linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Christoph Hellwig <hch@infradead.org>,
	Khalid Aziz <khalid.aziz@oracle.com>,
	"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	"David S. Miller" <davem@davemloft.net>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH V6 4/7] sparc/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT
Date: Wed, 13 Apr 2022 06:13:40 +0000	[thread overview]
Message-ID: <c3619877-32db-aaa3-5dd9-4917c067bc42@csgroup.eu> (raw)
In-Reply-To: <20220413055840.392628-5-anshuman.khandual@arm.com>



Le 13/04/2022 à 07:58, Anshuman Khandual a écrit :
> This defines and exports a platform specific custom vm_get_page_prot() via
> subscribing ARCH_HAS_VM_GET_PAGE_PROT. It localizes arch_vm_get_page_prot()
> as sparc_vm_get_page_prot() and moves near vm_get_page_prot().
> 
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Khalid Aziz <khalid.aziz@oracle.com>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Reviewed-by: Khalid Aziz <khalid.aziz@oracle.com>
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
>   arch/sparc/Kconfig            |  1 +
>   arch/sparc/include/asm/mman.h |  6 ------
>   arch/sparc/mm/init_64.c       | 13 +++++++++++++
>   3 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index 9200bc04701c..85b573643af6 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -84,6 +84,7 @@ 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/mman.h b/arch/sparc/include/asm/mman.h
> index 274217e7ed70..af9c10c83dc5 100644
> --- a/arch/sparc/include/asm/mman.h
> +++ b/arch/sparc/include/asm/mman.h
> @@ -46,12 +46,6 @@ static inline unsigned long sparc_calc_vm_prot_bits(unsigned long prot)
>   	}
>   }
>   
> -#define arch_vm_get_page_prot(vm_flags) sparc_vm_get_page_prot(vm_flags)
> -static inline pgprot_t sparc_vm_get_page_prot(unsigned long vm_flags)
> -{
> -	return (vm_flags & VM_SPARC_ADI) ? __pgprot(_PAGE_MCD_4V) : __pgprot(0);
> -}
> -
>   #define arch_validate_prot(prot, addr) sparc_validate_prot(prot, addr)
>   static inline int sparc_validate_prot(unsigned long prot, unsigned long addr)
>   {
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index 8b1911591581..dcb17763c1f2 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -3184,3 +3184,16 @@ void copy_highpage(struct page *to, struct page *from)
>   	}
>   }
>   EXPORT_SYMBOL(copy_highpage);
> +
> +static pgprot_t sparc_vm_get_page_prot(unsigned long vm_flags)
> +{
> +	return (vm_flags & VM_SPARC_ADI) ? __pgprot(_PAGE_MCD_4V) : __pgprot(0);
> +}
> +
> +pgprot_t vm_get_page_prot(unsigned long vm_flags)
> +{
> +	return __pgprot(pgprot_val(protection_map[vm_flags &
> +			(VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
> +			pgprot_val(sparc_vm_get_page_prot(vm_flags)));
> +}
> +EXPORT_SYMBOL(vm_get_page_prot);


sparc is now the only one with two functions. You can most likely do 
like you did for ARM and POWERPC: merge into a single function:

pgprot_t vm_get_page_prot(unsigned long vm_flags)
{
	unsigned long prot = pgprot_val(protection_map[vm_flags &
		(VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]);

	if (vm_flags & VM_SPARC_ADI)
		prot |= _PAGE_MCD_4V;

	return __pgprot(prot);
}
EXPORT_SYMBOL(vm_get_page_prot);

WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Anshuman Khandual <anshuman.khandual@arm.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Cc: "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
	Christoph Hellwig <hch@infradead.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Khalid Aziz <khalid.aziz@oracle.com>
Subject: Re: [PATCH V6 4/7] sparc/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT
Date: Wed, 13 Apr 2022 06:13:40 +0000	[thread overview]
Message-ID: <c3619877-32db-aaa3-5dd9-4917c067bc42@csgroup.eu> (raw)
In-Reply-To: <20220413055840.392628-5-anshuman.khandual@arm.com>



Le 13/04/2022 à 07:58, Anshuman Khandual a écrit :
> This defines and exports a platform specific custom vm_get_page_prot() via
> subscribing ARCH_HAS_VM_GET_PAGE_PROT. It localizes arch_vm_get_page_prot()
> as sparc_vm_get_page_prot() and moves near vm_get_page_prot().
> 
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Khalid Aziz <khalid.aziz@oracle.com>
> Cc: sparclinux@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Reviewed-by: Khalid Aziz <khalid.aziz@oracle.com>
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
>   arch/sparc/Kconfig            |  1 +
>   arch/sparc/include/asm/mman.h |  6 ------
>   arch/sparc/mm/init_64.c       | 13 +++++++++++++
>   3 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index 9200bc04701c..85b573643af6 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -84,6 +84,7 @@ 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/mman.h b/arch/sparc/include/asm/mman.h
> index 274217e7ed70..af9c10c83dc5 100644
> --- a/arch/sparc/include/asm/mman.h
> +++ b/arch/sparc/include/asm/mman.h
> @@ -46,12 +46,6 @@ static inline unsigned long sparc_calc_vm_prot_bits(unsigned long prot)
>   	}
>   }
>   
> -#define arch_vm_get_page_prot(vm_flags) sparc_vm_get_page_prot(vm_flags)
> -static inline pgprot_t sparc_vm_get_page_prot(unsigned long vm_flags)
> -{
> -	return (vm_flags & VM_SPARC_ADI) ? __pgprot(_PAGE_MCD_4V) : __pgprot(0);
> -}
> -
>   #define arch_validate_prot(prot, addr) sparc_validate_prot(prot, addr)
>   static inline int sparc_validate_prot(unsigned long prot, unsigned long addr)
>   {
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index 8b1911591581..dcb17763c1f2 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -3184,3 +3184,16 @@ void copy_highpage(struct page *to, struct page *from)
>   	}
>   }
>   EXPORT_SYMBOL(copy_highpage);
> +
> +static pgprot_t sparc_vm_get_page_prot(unsigned long vm_flags)
> +{
> +	return (vm_flags & VM_SPARC_ADI) ? __pgprot(_PAGE_MCD_4V) : __pgprot(0);
> +}
> +
> +pgprot_t vm_get_page_prot(unsigned long vm_flags)
> +{
> +	return __pgprot(pgprot_val(protection_map[vm_flags &
> +			(VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
> +			pgprot_val(sparc_vm_get_page_prot(vm_flags)));
> +}
> +EXPORT_SYMBOL(vm_get_page_prot);


sparc is now the only one with two functions. You can most likely do 
like you did for ARM and POWERPC: merge into a single function:

pgprot_t vm_get_page_prot(unsigned long vm_flags)
{
	unsigned long prot = pgprot_val(protection_map[vm_flags &
		(VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]);

	if (vm_flags & VM_SPARC_ADI)
		prot |= _PAGE_MCD_4V;

	return __pgprot(prot);
}
EXPORT_SYMBOL(vm_get_page_prot);
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-04-13  6:13 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-13  5:58 [PATCH V6 0/7] mm/mmap: Drop arch_vm_get_page_prot() and arch_filter_pgprot() Anshuman Khandual
2022-04-13  5:58 ` Anshuman Khandual
2022-04-13  5:58 ` Anshuman Khandual
2022-04-13  5:58 ` [PATCH V6 1/7] mm/mmap: Add new config ARCH_HAS_VM_GET_PAGE_PROT Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  6:07   ` Christophe Leroy
2022-04-13  6:07     ` Christophe Leroy
2022-04-13  6:07     ` Christophe Leroy
2022-04-13  5:58 ` [PATCH V6 2/7] powerpc/mm: Enable ARCH_HAS_VM_GET_PAGE_PROT Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  6:07   ` Christophe Leroy
2022-04-13  6:07     ` Christophe Leroy
2022-04-13  6:07     ` Christophe Leroy
2022-04-13  5:58 ` [PATCH V6 3/7] arm64/mm: " Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  5:58 ` [PATCH V6 4/7] sparc/mm: " Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  6:13   ` Christophe Leroy [this message]
2022-04-13  6:13     ` Christophe Leroy
2022-04-13  6:13     ` Christophe Leroy
2022-04-13  6:22     ` Anshuman Khandual
2022-04-13  6:22       ` Anshuman Khandual
2022-04-13  6:22       ` Anshuman Khandual
2022-04-13 14:15       ` Khalid Aziz
2022-04-13 14:15         ` Khalid Aziz
2022-04-13 14:15         ` Khalid Aziz
2022-04-13  5:58 ` [PATCH V6 5/7] x86/mm: " Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  5:58 ` [PATCH V6 6/7] mm/mmap: Drop arch_filter_pgprot() Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  6:06   ` Christophe Leroy
2022-04-13  6:06     ` Christophe Leroy
2022-04-13  6:06     ` Christophe Leroy
2022-04-13  5:58 ` [PATCH V6 7/7] mm/mmap: Drop arch_vm_get_page_pgprot() Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  5:58   ` Anshuman Khandual
2022-04-13  6:06   ` Christophe Leroy
2022-04-13  6:06     ` Christophe Leroy
2022-04-13  6:06     ` 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=c3619877-32db-aaa3-5dd9-4917c067bc42@csgroup.eu \
    --to=christophe.leroy@csgroup.eu \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=davem@davemloft.net \
    --cc=hch@infradead.org \
    --cc=khalid.aziz@oracle.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=sparclinux@vger.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.