Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

uprobes: use new_folio in __replace_page()

Saves several calls to compound_head().

Link: https://lkml.kernel.org/r/20220902194653.1739778-57-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Matthew Wilcox (Oracle) and committed by
Andrew Morton
82e66bf7 0c826c0b

+5 -4
+5 -4
kernel/events/uprobes.c
··· 155 155 struct page *old_page, struct page *new_page) 156 156 { 157 157 struct folio *old_folio = page_folio(old_page); 158 + struct folio *new_folio; 158 159 struct mm_struct *mm = vma->vm_mm; 159 160 DEFINE_FOLIO_VMA_WALK(pvmw, old_folio, vma, addr, 0); 160 161 int err; ··· 165 164 addr + PAGE_SIZE); 166 165 167 166 if (new_page) { 168 - err = mem_cgroup_charge(page_folio(new_page), vma->vm_mm, 169 - GFP_KERNEL); 167 + new_folio = page_folio(new_page); 168 + err = mem_cgroup_charge(new_folio, vma->vm_mm, GFP_KERNEL); 170 169 if (err) 171 170 return err; 172 171 } ··· 181 180 VM_BUG_ON_PAGE(addr != pvmw.address, old_page); 182 181 183 182 if (new_page) { 184 - get_page(new_page); 183 + folio_get(new_folio); 185 184 page_add_new_anon_rmap(new_page, vma, addr); 186 - lru_cache_add_inactive_or_unevictable(new_page, vma); 185 + folio_add_lru_vma(new_folio, vma); 187 186 } else 188 187 /* no new page, just dec_mm_counter for old_page */ 189 188 dec_mm_counter(mm, MM_ANONPAGES);