diff options
author | Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> | 2012-08-03 03:37:54 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-08-06 09:04:50 -0400 |
commit | 6c8ee57be9350c5c2cafdd6a99d0462d528676e2 (patch) | |
tree | b2ce398a6613895bc94b975ab00f787baf830b2d | |
parent | 16b854c889673d988285719bc020543a730f9ac6 (diff) |
KVM: introduce KVM_PFN_ERR_FAULT
After that, the exported and un-inline function, get_fault_pfn,
can be removed
Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
-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 |