[v2,2/6] mm: memory: use a folio in validate_page_before_insert()

Message ID 20231113152222.3495908-3-wangkefeng.wang@huawei.com
State New
Headers
Series mm: cleanup and use more folio in page fault |

Commit Message

Kefeng Wang Nov. 13, 2023, 3:22 p.m. UTC
  Use a folio in validate_page_before_insert() to save two
compound_head() calls.

Reviewed-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 mm/memory.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
  

Comments

Vishal Moola Nov. 13, 2023, 7:30 p.m. UTC | #1
On Mon, Nov 13, 2023 at 11:22:18PM +0800, Kefeng Wang wrote:
> Use a folio in validate_page_before_insert() to save two
> compound_head() calls.
> 

Reviewed-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>

> Reviewed-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> ---
>  mm/memory.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/mm/memory.c b/mm/memory.c
> index c32954e16b28..379354b35891 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -1841,9 +1841,12 @@ pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr,
>  
>  static int validate_page_before_insert(struct page *page)
>  {
> -	if (PageAnon(page) || PageSlab(page) || page_has_type(page))
> +	struct folio *folio = page_folio(page);
> +
> +	if (folio_test_anon(folio) || folio_test_slab(folio) ||
> +	    page_has_type(page))
>  		return -EINVAL;
> -	flush_dcache_page(page);
> +	flush_dcache_folio(folio);
>  	return 0;
>  }
>  
> -- 
> 2.27.0
  

Patch

diff --git a/mm/memory.c b/mm/memory.c
index c32954e16b28..379354b35891 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1841,9 +1841,12 @@  pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr,
 
 static int validate_page_before_insert(struct page *page)
 {
-	if (PageAnon(page) || PageSlab(page) || page_has_type(page))
+	struct folio *folio = page_folio(page);
+
+	if (folio_test_anon(folio) || folio_test_slab(folio) ||
+	    page_has_type(page))
 		return -EINVAL;
-	flush_dcache_page(page);
+	flush_dcache_folio(folio);
 	return 0;
 }