diff options
author | Izik Eidus <izike@qumranet.com> | 2007-10-24 23:52:57 +0200 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-01-30 16:52:56 +0100 |
commit | 210c7c4d7f200f00ec34960a8c96bb990cbd266d (patch) | |
tree | fa6b1b15d4b3db3a55c42ec991ad413278a7654a | |
parent | KVM: Unmap kernel-allocated memory on slot destruction (diff) | |
download | linux-210c7c4d7f200f00ec34960a8c96bb990cbd266d.tar.xz linux-210c7c4d7f200f00ec34960a8c96bb990cbd266d.zip |
KVM: Export memory slot allocation mechanism
Remove kvm memory slot allocation mechanism from the ioctl
and put it to exported function.
Signed-off-by: Izik Eidus <izike@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
-rw-r--r-- | drivers/kvm/kvm.h | 3 | ||||
-rw-r--r-- | drivers/kvm/kvm_main.c | 17 |
2 files changed, 16 insertions, 4 deletions
diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h index 12de42c789a2..f3dda088e34b 100644 --- a/drivers/kvm/kvm.h +++ b/drivers/kvm/kvm.h @@ -513,6 +513,9 @@ struct page *gva_to_page(struct kvm_vcpu *vcpu, gva_t gva); extern struct page *bad_page; int is_error_page(struct page *page); +int kvm_set_memory_region(struct kvm *kvm, + struct kvm_userspace_memory_region *mem, + int user_alloc); gfn_t unalias_gfn(struct kvm *kvm, gfn_t gfn); struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn); void kvm_release_page(struct page *page); diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index ab2c77c9ecef..5113cbf75674 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c @@ -643,10 +643,9 @@ EXPORT_SYMBOL_GPL(fx_init); * * Discontiguous memory is allowed, mostly for framebuffers. */ -static int kvm_vm_ioctl_set_memory_region(struct kvm *kvm, - struct - kvm_userspace_memory_region *mem, - int user_alloc) +int kvm_set_memory_region(struct kvm *kvm, + struct kvm_userspace_memory_region *mem, + int user_alloc) { int r; gfn_t base_gfn; @@ -789,6 +788,16 @@ out_unlock: kvm_free_physmem_slot(&new, &old); out: return r; + +} +EXPORT_SYMBOL_GPL(kvm_set_memory_region); + +static int kvm_vm_ioctl_set_memory_region(struct kvm *kvm, + struct + kvm_userspace_memory_region *mem, + int user_alloc) +{ + return kvm_set_memory_region(kvm, mem, user_alloc); } static int kvm_vm_ioctl_set_nr_mmu_pages(struct kvm *kvm, |