diff options
| -rw-r--r-- | arch/x86/kvm/mmu.c | 2 | ||||
| -rw-r--r-- | include/linux/kvm_host.h | 3 | ||||
| -rw-r--r-- | virt/kvm/kvm_main.c | 12 |
3 files changed, 6 insertions, 11 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index aa9a987ddefb..9cf90c8d5843 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c | |||
| @@ -2512,7 +2512,7 @@ static pfn_t pte_prefetch_gfn_to_pfn(struct kvm_vcpu *vcpu, gfn_t gfn, | |||
| 2512 | 2512 | ||
| 2513 | slot = gfn_to_memslot_dirty_bitmap(vcpu, gfn, no_dirty_log); | 2513 | slot = gfn_to_memslot_dirty_bitmap(vcpu, gfn, no_dirty_log); |
| 2514 | if (!slot) | 2514 | if (!slot) |
| 2515 | return get_fault_pfn(); | 2515 | return KVM_PFN_ERR_FAULT; |
| 2516 | 2516 | ||
| 2517 | hva = gfn_to_hva_memslot(slot, gfn); | 2517 | hva = gfn_to_hva_memslot(slot, gfn); |
| 2518 | 2518 | ||
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 3c16f0f1fe35..ef5554f47486 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
| @@ -48,6 +48,8 @@ | |||
| 48 | #define KVM_MAX_MMIO_FRAGMENTS \ | 48 | #define KVM_MAX_MMIO_FRAGMENTS \ |
| 49 | (KVM_MMIO_SIZE / KVM_USER_MMIO_SIZE + KVM_EXTRA_MMIO_FRAGMENTS) | 49 | (KVM_MMIO_SIZE / KVM_USER_MMIO_SIZE + KVM_EXTRA_MMIO_FRAGMENTS) |
| 50 | 50 | ||
| 51 | #define KVM_PFN_ERR_FAULT (-EFAULT) | ||
| 52 | |||
| 51 | /* | 53 | /* |
| 52 | * vcpu->requests bit members | 54 | * vcpu->requests bit members |
| 53 | */ | 55 | */ |
| @@ -443,7 +445,6 @@ void kvm_release_pfn_clean(pfn_t pfn); | |||
| 443 | void kvm_set_pfn_dirty(pfn_t pfn); | 445 | void kvm_set_pfn_dirty(pfn_t pfn); |
| 444 | void kvm_set_pfn_accessed(pfn_t pfn); | 446 | void kvm_set_pfn_accessed(pfn_t pfn); |
| 445 | void kvm_get_pfn(pfn_t pfn); | 447 | void kvm_get_pfn(pfn_t pfn); |
| 446 | pfn_t get_fault_pfn(void); | ||
| 447 | 448 | ||
| 448 | int kvm_read_guest_page(struct kvm *kvm, gfn_t gfn, void *data, int offset, | 449 | int kvm_read_guest_page(struct kvm *kvm, gfn_t gfn, void *data, int offset, |
| 449 | int len); | 450 | int len); |
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 14ec567816ab..ef0491645a10 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
| @@ -939,12 +939,6 @@ static pfn_t get_bad_pfn(void) | |||
| 939 | return -ENOENT; | 939 | return -ENOENT; |
| 940 | } | 940 | } |
| 941 | 941 | ||
| 942 | pfn_t get_fault_pfn(void) | ||
| 943 | { | ||
| 944 | return -EFAULT; | ||
| 945 | } | ||
| 946 | EXPORT_SYMBOL_GPL(get_fault_pfn); | ||
| 947 | |||
| 948 | static pfn_t get_hwpoison_pfn(void) | 942 | static pfn_t get_hwpoison_pfn(void) |
| 949 | { | 943 | { |
| 950 | return -EHWPOISON; | 944 | return -EHWPOISON; |
| @@ -1115,7 +1109,7 @@ static pfn_t hva_to_pfn(unsigned long addr, bool atomic, bool *async, | |||
| 1115 | struct vm_area_struct *vma; | 1109 | struct vm_area_struct *vma; |
| 1116 | 1110 | ||
| 1117 | if (atomic) | 1111 | if (atomic) |
| 1118 | return get_fault_pfn(); | 1112 | return KVM_PFN_ERR_FAULT; |
| 1119 | 1113 | ||
| 1120 | down_read(¤t->mm->mmap_sem); | 1114 | down_read(¤t->mm->mmap_sem); |
| 1121 | if (npages == -EHWPOISON || | 1115 | if (npages == -EHWPOISON || |
| @@ -1127,7 +1121,7 @@ static pfn_t hva_to_pfn(unsigned long addr, bool atomic, bool *async, | |||
| 1127 | vma = find_vma_intersection(current->mm, addr, addr+1); | 1121 | vma = find_vma_intersection(current->mm, addr, addr+1); |
| 1128 | 1122 | ||
| 1129 | if (vma == NULL) | 1123 | if (vma == NULL) |
| 1130 | pfn = get_fault_pfn(); | 1124 | pfn = KVM_PFN_ERR_FAULT; |
| 1131 | else if ((vma->vm_flags & VM_PFNMAP)) { | 1125 | else if ((vma->vm_flags & VM_PFNMAP)) { |
| 1132 | pfn = ((addr - vma->vm_start) >> PAGE_SHIFT) + | 1126 | pfn = ((addr - vma->vm_start) >> PAGE_SHIFT) + |
| 1133 | vma->vm_pgoff; | 1127 | vma->vm_pgoff; |
| @@ -1135,7 +1129,7 @@ static pfn_t hva_to_pfn(unsigned long addr, bool atomic, bool *async, | |||
| 1135 | } else { | 1129 | } else { |
| 1136 | if (async && (vma->vm_flags & VM_WRITE)) | 1130 | if (async && (vma->vm_flags & VM_WRITE)) |
| 1137 | *async = true; | 1131 | *async = true; |
| 1138 | pfn = get_fault_pfn(); | 1132 | pfn = KVM_PFN_ERR_FAULT; |
| 1139 | } | 1133 | } |
| 1140 | up_read(¤t->mm->mmap_sem); | 1134 | up_read(¤t->mm->mmap_sem); |
| 1141 | } else | 1135 | } else |
