diff options
Diffstat (limited to 'mm/vmscan.c')
| -rw-r--r-- | mm/vmscan.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index caa740181adf..431fdbef6824 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -216,9 +216,10 @@ static inline int swap_out_pmd(struct mm_struct * mm, struct vm_area_struct * vm do { if (pte_present(*pte)) { - struct page *page = pte_page(*pte); + unsigned long pfn = pte_pfn(*pte); + struct page *page = pfn_to_page(pfn); - if (VALID_PAGE(page) && !PageReserved(page)) { + if (pfn_valid(pfn) && !PageReserved(page)) { count -= try_to_swap_out(mm, vma, address, pte, page, classzone); if (!count) { address += PAGE_SIZE; |
