Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c8ee57b authored by Xiao Guangrong's avatar Xiao Guangrong Committed by Avi Kivity
Browse files

KVM: introduce KVM_PFN_ERR_FAULT



After that, the exported and un-inline function, get_fault_pfn,
can be removed

Signed-off-by: default avatarXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 16b854c8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2512,7 +2512,7 @@ static pfn_t pte_prefetch_gfn_to_pfn(struct kvm_vcpu *vcpu, gfn_t gfn,

	slot = gfn_to_memslot_dirty_bitmap(vcpu, gfn, no_dirty_log);
	if (!slot)
		return get_fault_pfn();
		return KVM_PFN_ERR_FAULT;

	hva = gfn_to_hva_memslot(slot, gfn);

+2 −1
Original line number Diff line number Diff line
@@ -48,6 +48,8 @@
#define KVM_MAX_MMIO_FRAGMENTS \
	(KVM_MMIO_SIZE / KVM_USER_MMIO_SIZE + KVM_EXTRA_MMIO_FRAGMENTS)

#define KVM_PFN_ERR_FAULT	(-EFAULT)

/*
 * vcpu->requests bit members
 */
@@ -443,7 +445,6 @@ void kvm_release_pfn_clean(pfn_t pfn);
void kvm_set_pfn_dirty(pfn_t pfn);
void kvm_set_pfn_accessed(pfn_t pfn);
void kvm_get_pfn(pfn_t pfn);
pfn_t get_fault_pfn(void);

int kvm_read_guest_page(struct kvm *kvm, gfn_t gfn, void *data, int offset,
			int len);
+3 −9
Original line number Diff line number Diff line
@@ -939,12 +939,6 @@ static pfn_t get_bad_pfn(void)
	return -ENOENT;
}

pfn_t get_fault_pfn(void)
{
	return -EFAULT;
}
EXPORT_SYMBOL_GPL(get_fault_pfn);

static pfn_t get_hwpoison_pfn(void)
{
	return -EHWPOISON;
@@ -1115,7 +1109,7 @@ static pfn_t hva_to_pfn(unsigned long addr, bool atomic, bool *async,
		struct vm_area_struct *vma;

		if (atomic)
			return get_fault_pfn();
			return KVM_PFN_ERR_FAULT;

		down_read(&current->mm->mmap_sem);
		if (npages == -EHWPOISON ||
@@ -1127,7 +1121,7 @@ static pfn_t hva_to_pfn(unsigned long addr, bool atomic, bool *async,
		vma = find_vma_intersection(current->mm, addr, addr+1);

		if (vma == NULL)
			pfn = get_fault_pfn();
			pfn = KVM_PFN_ERR_FAULT;
		else if ((vma->vm_flags & VM_PFNMAP)) {
			pfn = ((addr - vma->vm_start) >> PAGE_SHIFT) +
				vma->vm_pgoff;
@@ -1135,7 +1129,7 @@ static pfn_t hva_to_pfn(unsigned long addr, bool atomic, bool *async,
		} else {
			if (async && (vma->vm_flags & VM_WRITE))
				*async = true;
			pfn = get_fault_pfn();
			pfn = KVM_PFN_ERR_FAULT;
		}
		up_read(&current->mm->mmap_sem);
	} else