--- a/virt/kvm/arm/mmu.c
+++ b/virt/kvm/arm/mmu.c
-@@ -1375,6 +1375,30 @@ out:
+@@ -1381,6 +1381,30 @@ out:
return ret;
}
static bool transparent_hugepage_adjust(kvm_pfn_t *pfnp, phys_addr_t *ipap)
{
kvm_pfn_t pfn = *pfnp;
-@@ -1719,8 +1743,23 @@ static int user_mem_abort(struct kvm_vcp
+@@ -1725,8 +1749,23 @@ static int user_mem_abort(struct kvm_vcp
* 3 levels, i.e, PMD is not folded.
*/
if (vma_pagesize == PMD_SIZE ||
up_read(¤t->mm->mmap_sem);
/* We need minimum second+third level pages */
-@@ -1749,6 +1788,11 @@ static int user_mem_abort(struct kvm_vcp
+@@ -1755,6 +1794,11 @@ static int user_mem_abort(struct kvm_vcp
if (is_error_noslot_pfn(pfn))
return -EFAULT;
if (kvm_is_device_pfn(pfn)) {
mem_type = PAGE_S2_DEVICE;
flags |= KVM_S2PTE_FLAG_IS_IOMAP;
-@@ -2336,6 +2380,9 @@ int kvm_arch_prepare_memory_region(struc
+@@ -2346,6 +2390,9 @@ int kvm_arch_prepare_memory_region(struc
gpa_t gpa = mem->guest_phys_addr +
(vm_start - mem->userspace_addr);
phys_addr_t pa;
pa = (phys_addr_t)vma->vm_pgoff << PAGE_SHIFT;
pa += vm_start - vma->vm_start;
-@@ -2346,9 +2393,13 @@ int kvm_arch_prepare_memory_region(struc
+@@ -2356,9 +2403,13 @@ int kvm_arch_prepare_memory_region(struc
goto out;
}