aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
authorMatthew Wilcox (Oracle) <willy@infradead.org>2023-11-08 18:28:05 +0000
committerAndrew Morton <akpm@linux-foundation.org>2023-12-10 16:51:38 -0800
commit01d1e0e6b7d99ebaf2e42d2205595080b7d0c271 (patch)
tree44908edde8dda5f68929a2052dd1b8446e790590 /mm/page_alloc.c
parentmm: make mapping_evict_folio() the preferred way to evict clean folios (diff)
downloadwireguard-linux-01d1e0e6b7d99ebaf2e42d2205595080b7d0c271.tar.xz
wireguard-linux-01d1e0e6b7d99ebaf2e42d2205595080b7d0c271.zip
mm: convert __do_fault() to use a folio
Convert vmf->page to a folio as soon as we're going to use it. This fixes a bug if the fault handler returns a tail page with hardware poison; tail pages have an invalid page->index, so we would fail to unmap the page from the page tables. We actually have to unmap the entire folio (or mapping_evict_folio() will fail), so use unmap_mapping_folio() instead. This also saves various calls to compound_head() hidden in lock_page(), put_page(), etc. Link: https://lkml.kernel.org/r/20231108182809.602073-3-willy@infradead.org Fixes: 793917d997df ("mm/readahead: Add large folio readahead") Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Naoya Horiguchi <naoya.horiguchi@nec.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'mm/page_alloc.c')
0 files changed, 0 insertions, 0 deletions