On 3/15/23 10:44, Matthew Wilcox (Oracle) wrote: > Push the iteration over each page down to the architectures (many > can flush the entire THP without iteration). > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Reviewed-by: Anshuman Khandual <anshuman.khandual@xxxxxxx> > --- > mm/memory.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index c5f1bf906d0c..6aa21e8f3753 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4209,7 +4209,6 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > bool write = vmf->flags & FAULT_FLAG_WRITE; > unsigned long haddr = vmf->address & HPAGE_PMD_MASK; > pmd_t entry; > - int i; > vm_fault_t ret = VM_FAULT_FALLBACK; > > if (!transhuge_vma_suitable(vma, haddr)) > @@ -4242,8 +4241,7 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > if (unlikely(!pmd_none(*vmf->pmd))) > goto out; > > - for (i = 0; i < HPAGE_PMD_NR; i++) > - flush_icache_page(vma, page + i); > + flush_icache_pages(vma, page, HPAGE_PMD_NR); > > entry = mk_huge_pmd(page, vma->vm_page_prot); > if (write)