Re: [PATCH V5 6/7] mm/mmap: Drop arch_filter_pgprot()

2022-04-12 Thread Anshuman Khandual



On 4/12/22 17:59, Christophe Leroy wrote:
> 
> 
> Le 12/04/2022 à 06:38, Anshuman Khandual a écrit :
>> There are no platforms left which subscribe ARCH_HAS_FILTER_PGPROT. Hence
>> drop generic arch_filter_pgprot() and also config ARCH_HAS_FILTER_PGPROT.
>>
>> Cc: Andrew Morton 
>> Cc: linux...@kvack.org
>> Cc: linux-ker...@vger.kernel.org
>> Reviewed-by: Catalin Marinas 
>> Signed-off-by: Anshuman Khandual 
>> ---
>>   mm/Kconfig | 3 ---
>>   mm/mmap.c  | 9 +
>>   2 files changed, 1 insertion(+), 11 deletions(-)
>>
>> diff --git a/mm/Kconfig b/mm/Kconfig
>> index b1f7624276f8..3f7b6d7b69df 100644
>> --- a/mm/Kconfig
>> +++ b/mm/Kconfig
>> @@ -762,9 +762,6 @@ config ARCH_HAS_CURRENT_STACK_POINTER
>>register alias named "current_stack_pointer", this config can be
>>selected.
>>   
>> -config ARCH_HAS_FILTER_PGPROT
>> -bool
>> -
>>   config ARCH_HAS_VM_GET_PAGE_PROT
>>  bool
>>   
>> diff --git a/mm/mmap.c b/mm/mmap.c
>> index 87cb2eaf7e1a..edf2a5e38f4d 100644
>> --- a/mm/mmap.c
>> +++ b/mm/mmap.c
>> @@ -107,20 +107,13 @@ pgprot_t protection_map[16] __ro_after_init = {
>>   };
>>   
>>   #ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT
>> -#ifndef CONFIG_ARCH_HAS_FILTER_PGPROT
>> -static inline pgprot_t arch_filter_pgprot(pgprot_t prot)
>> -{
>> -return prot;
>> -}
>> -#endif
>> -
>>   pgprot_t vm_get_page_prot(unsigned long vm_flags)
>>   {
>>  pgprot_t ret = __pgprot(pgprot_val(protection_map[vm_flags &
>>  (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
>>  pgprot_val(arch_vm_get_page_prot(vm_flags)));
>>   
>> -return arch_filter_pgprot(ret);
>> +return ret;
> 
> You can drop 'ret' and directly do:
> 
>   return  __pgprot(pgprot_val(protection_map[vm_flags &
>   (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
>   pgprot_val(arch_vm_get_page_prot(vm_flags)));

Sure, will do.

> 
> 
>>   }
>>   EXPORT_SYMBOL(vm_get_page_prot);
>>   #endif /* CONFIG_ARCH_HAS_VM_GET_PAGE_PROT */


Re: [PATCH V5 6/7] mm/mmap: Drop arch_filter_pgprot()

2022-04-12 Thread Christophe Leroy


Le 12/04/2022 à 06:38, Anshuman Khandual a écrit :
> There are no platforms left which subscribe ARCH_HAS_FILTER_PGPROT. Hence
> drop generic arch_filter_pgprot() and also config ARCH_HAS_FILTER_PGPROT.
> 
> Cc: Andrew Morton 
> Cc: linux...@kvack.org
> Cc: linux-ker...@vger.kernel.org
> Reviewed-by: Catalin Marinas 
> Signed-off-by: Anshuman Khandual 
> ---
>   mm/Kconfig | 3 ---
>   mm/mmap.c  | 9 +
>   2 files changed, 1 insertion(+), 11 deletions(-)
> 
> diff --git a/mm/Kconfig b/mm/Kconfig
> index b1f7624276f8..3f7b6d7b69df 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -762,9 +762,6 @@ config ARCH_HAS_CURRENT_STACK_POINTER
> register alias named "current_stack_pointer", this config can be
> selected.
>   
> -config ARCH_HAS_FILTER_PGPROT
> - bool
> -
>   config ARCH_HAS_VM_GET_PAGE_PROT
>   bool
>   
> diff --git a/mm/mmap.c b/mm/mmap.c
> index 87cb2eaf7e1a..edf2a5e38f4d 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -107,20 +107,13 @@ pgprot_t protection_map[16] __ro_after_init = {
>   };
>   
>   #ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT
> -#ifndef CONFIG_ARCH_HAS_FILTER_PGPROT
> -static inline pgprot_t arch_filter_pgprot(pgprot_t prot)
> -{
> - return prot;
> -}
> -#endif
> -
>   pgprot_t vm_get_page_prot(unsigned long vm_flags)
>   {
>   pgprot_t ret = __pgprot(pgprot_val(protection_map[vm_flags &
>   (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
>   pgprot_val(arch_vm_get_page_prot(vm_flags)));
>   
> - return arch_filter_pgprot(ret);
> + return ret;

You can drop 'ret' and directly do:

return  __pgprot(pgprot_val(protection_map[vm_flags &
(VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
pgprot_val(arch_vm_get_page_prot(vm_flags)));


>   }
>   EXPORT_SYMBOL(vm_get_page_prot);
>   #endif  /* CONFIG_ARCH_HAS_VM_GET_PAGE_PROT */

[PATCH V5 6/7] mm/mmap: Drop arch_filter_pgprot()

2022-04-11 Thread Anshuman Khandual
There are no platforms left which subscribe ARCH_HAS_FILTER_PGPROT. Hence
drop generic arch_filter_pgprot() and also config ARCH_HAS_FILTER_PGPROT.

Cc: Andrew Morton 
Cc: linux...@kvack.org
Cc: linux-ker...@vger.kernel.org
Reviewed-by: Catalin Marinas 
Signed-off-by: Anshuman Khandual 
---
 mm/Kconfig | 3 ---
 mm/mmap.c  | 9 +
 2 files changed, 1 insertion(+), 11 deletions(-)

diff --git a/mm/Kconfig b/mm/Kconfig
index b1f7624276f8..3f7b6d7b69df 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -762,9 +762,6 @@ config ARCH_HAS_CURRENT_STACK_POINTER
  register alias named "current_stack_pointer", this config can be
  selected.
 
-config ARCH_HAS_FILTER_PGPROT
-   bool
-
 config ARCH_HAS_VM_GET_PAGE_PROT
bool
 
diff --git a/mm/mmap.c b/mm/mmap.c
index 87cb2eaf7e1a..edf2a5e38f4d 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -107,20 +107,13 @@ pgprot_t protection_map[16] __ro_after_init = {
 };
 
 #ifndef CONFIG_ARCH_HAS_VM_GET_PAGE_PROT
-#ifndef CONFIG_ARCH_HAS_FILTER_PGPROT
-static inline pgprot_t arch_filter_pgprot(pgprot_t prot)
-{
-   return prot;
-}
-#endif
-
 pgprot_t vm_get_page_prot(unsigned long vm_flags)
 {
pgprot_t ret = __pgprot(pgprot_val(protection_map[vm_flags &
(VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
pgprot_val(arch_vm_get_page_prot(vm_flags)));
 
-   return arch_filter_pgprot(ret);
+   return ret;
 }
 EXPORT_SYMBOL(vm_get_page_prot);
 #endif /* CONFIG_ARCH_HAS_VM_GET_PAGE_PROT */
-- 
2.25.1