KVM: PPC: Book3S HV: Use __gfn_to_pfn_memslot in HPT page fault handler
authorPaul Mackerras <paulus@ozlabs.org>
Mon, 26 Aug 2019 06:20:47 +0000 (16:20 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Thu, 19 Mar 2020 05:39:52 +0000 (16:39 +1100)
commitcd758a9b57ee85f0733c759e60f42b969c81f27b
treea6478bebe2aa750d63cb18df69efc92a34b5f367
parent1c482452d5db0f52e4e8eed95bd7314eec537d78
KVM: PPC: Book3S HV: Use __gfn_to_pfn_memslot in HPT page fault handler

This makes the same changes in the page fault handler for HPT guests
that commits 31c8b0d0694a ("KVM: PPC: Book3S HV: Use __gfn_to_pfn_memslot()
in page fault handler", 2018-03-01), 71d29f43b633 ("KVM: PPC: Book3S HV:
Don't use compound_order to determine host mapping size", 2018-09-11)
and 6579804c4317 ("KVM: PPC: Book3S HV: Avoid crash from THP collapse
during radix page fault", 2018-10-04) made for the page fault handler
for radix guests.

In summary, where we used to call get_user_pages_fast() and then do
special handling for VM_PFNMAP vmas, we now call __get_user_pages_fast()
and then __gfn_to_pfn_memslot() if that fails, followed by reading the
Linux PTE to get the host PFN, host page size and mapping attributes.

This also brings in the change from SetPageDirty() to set_page_dirty_lock()
which was done for the radix page fault handler in commit c3856aeb2940
("KVM: PPC: Book3S HV: Fix handling of large pages in radix page fault
handler", 2018-02-23).

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
arch/powerpc/kvm/book3s_64_mmu_hv.c