KVM: add kvm_is_error_hva()
Check for the "error hva", an address outside the user address space that signals a bad gfn. Signed-off-by: Izik Eidus <izike@qumranet.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
This commit is contained in:
parent
1a6f4d7fbd
commit
f9d46eb0e4
|
@ -520,6 +520,7 @@ struct page *gva_to_page(struct kvm_vcpu *vcpu, gva_t gva);
|
||||||
extern struct page *bad_page;
|
extern struct page *bad_page;
|
||||||
|
|
||||||
int is_error_page(struct page *page);
|
int is_error_page(struct page *page);
|
||||||
|
int kvm_is_error_hva(unsigned long addr);
|
||||||
int kvm_set_memory_region(struct kvm *kvm,
|
int kvm_set_memory_region(struct kvm *kvm,
|
||||||
struct kvm_userspace_memory_region *mem,
|
struct kvm_userspace_memory_region *mem,
|
||||||
int user_alloc);
|
int user_alloc);
|
||||||
|
|
|
@ -498,6 +498,17 @@ int is_error_page(struct page *page)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(is_error_page);
|
EXPORT_SYMBOL_GPL(is_error_page);
|
||||||
|
|
||||||
|
static inline unsigned long bad_hva(void)
|
||||||
|
{
|
||||||
|
return PAGE_OFFSET;
|
||||||
|
}
|
||||||
|
|
||||||
|
int kvm_is_error_hva(unsigned long addr)
|
||||||
|
{
|
||||||
|
return addr == bad_hva();
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(kvm_is_error_hva);
|
||||||
|
|
||||||
gfn_t unalias_gfn(struct kvm *kvm, gfn_t gfn)
|
gfn_t unalias_gfn(struct kvm *kvm, gfn_t gfn)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
Loading…
Reference in New Issue