aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kvm/x86.c4
-rw-r--r--include/linux/kvm_host.h3
-rw-r--r--virt/kvm/kvm_main.c4
3 files changed, 7 insertions, 4 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index be6d54929fa7..f12a52408cda 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6304,7 +6304,7 @@ void kvm_arch_free_memslot(struct kvm_memory_slot *free,
6304 6304
6305 for (i = 0; i < KVM_NR_PAGE_SIZES - 1; ++i) { 6305 for (i = 0; i < KVM_NR_PAGE_SIZES - 1; ++i) {
6306 if (!dont || free->arch.lpage_info[i] != dont->arch.lpage_info[i]) { 6306 if (!dont || free->arch.lpage_info[i] != dont->arch.lpage_info[i]) {
6307 vfree(free->arch.lpage_info[i]); 6307 kvm_kvfree(free->arch.lpage_info[i]);
6308 free->arch.lpage_info[i] = NULL; 6308 free->arch.lpage_info[i] = NULL;
6309 } 6309 }
6310 } 6310 }
@@ -6323,7 +6323,7 @@ int kvm_arch_create_memslot(struct kvm_memory_slot *slot, unsigned long npages)
6323 slot->base_gfn, level) + 1; 6323 slot->base_gfn, level) + 1;
6324 6324
6325 slot->arch.lpage_info[i] = 6325 slot->arch.lpage_info[i] =
6326 vzalloc(lpages * sizeof(*slot->arch.lpage_info[i])); 6326 kvm_kvzalloc(lpages * sizeof(*slot->arch.lpage_info[i]));
6327 if (!slot->arch.lpage_info[i]) 6327 if (!slot->arch.lpage_info[i])
6328 goto out_free; 6328 goto out_free;
6329 6329
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index c4464356b35b..19b83f6efa49 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -535,6 +535,9 @@ int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu);
535 535
536void kvm_free_physmem(struct kvm *kvm); 536void kvm_free_physmem(struct kvm *kvm);
537 537
538void *kvm_kvzalloc(unsigned long size);
539void kvm_kvfree(const void *addr);
540
538#ifndef __KVM_HAVE_ARCH_VM_ALLOC 541#ifndef __KVM_HAVE_ARCH_VM_ALLOC
539static inline struct kvm *kvm_arch_alloc_vm(void) 542static inline struct kvm *kvm_arch_alloc_vm(void)
540{ 543{
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 1148c96a4817..02cb440f802d 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -520,7 +520,7 @@ out_err_nodisable:
520 * Avoid using vmalloc for a small buffer. 520 * Avoid using vmalloc for a small buffer.
521 * Should not be used when the size is statically known. 521 * Should not be used when the size is statically known.
522 */ 522 */
523static void *kvm_kvzalloc(unsigned long size) 523void *kvm_kvzalloc(unsigned long size)
524{ 524{
525 if (size > PAGE_SIZE) 525 if (size > PAGE_SIZE)
526 return vzalloc(size); 526 return vzalloc(size);
@@ -528,7 +528,7 @@ static void *kvm_kvzalloc(unsigned long size)
528 return kzalloc(size, GFP_KERNEL); 528 return kzalloc(size, GFP_KERNEL);
529} 529}
530 530
531static void kvm_kvfree(const void *addr) 531void kvm_kvfree(const void *addr)
532{ 532{
533 if (is_vmalloc_addr(addr)) 533 if (is_vmalloc_addr(addr))
534 vfree(addr); 534 vfree(addr);