aboutsummaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2013-11-04 03:20:57 -0500
committerGleb Natapov <gleb@redhat.com>2013-11-04 03:20:57 -0500
commit95f328d3ad1a8e4e3175a18546fb35c495e31130 (patch)
tree2f6496ef8354e9a0a315f23faef744f93fee8265 /virt
parentdaf727225b8abfdfe424716abac3d15a3ac5626a (diff)
parenta78b55d1c0218b6d91d504941d20e36435c276f5 (diff)
Merge branch 'kvm-ppc-queue' of git://github.com/agraf/linux-2.6 into queue
Conflicts: arch/powerpc/include/asm/processor.h
Diffstat (limited to 'virt')
-rw-r--r--virt/kvm/kvm_main.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 82c4047aa0e3..7a317a7f9025 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -187,6 +187,7 @@ void kvm_flush_remote_tlbs(struct kvm *kvm)
187 ++kvm->stat.remote_tlb_flush; 187 ++kvm->stat.remote_tlb_flush;
188 cmpxchg(&kvm->tlbs_dirty, dirty_count, 0); 188 cmpxchg(&kvm->tlbs_dirty, dirty_count, 0);
189} 189}
190EXPORT_SYMBOL_GPL(kvm_flush_remote_tlbs);
190 191
191void kvm_reload_remote_mmus(struct kvm *kvm) 192void kvm_reload_remote_mmus(struct kvm *kvm)
192{ 193{
@@ -541,13 +542,13 @@ static void kvm_destroy_dirty_bitmap(struct kvm_memory_slot *memslot)
541/* 542/*
542 * Free any memory in @free but not in @dont. 543 * Free any memory in @free but not in @dont.
543 */ 544 */
544static void kvm_free_physmem_slot(struct kvm_memory_slot *free, 545static void kvm_free_physmem_slot(struct kvm *kvm, struct kvm_memory_slot *free,
545 struct kvm_memory_slot *dont) 546 struct kvm_memory_slot *dont)
546{ 547{
547 if (!dont || free->dirty_bitmap != dont->dirty_bitmap) 548 if (!dont || free->dirty_bitmap != dont->dirty_bitmap)
548 kvm_destroy_dirty_bitmap(free); 549 kvm_destroy_dirty_bitmap(free);
549 550
550 kvm_arch_free_memslot(free, dont); 551 kvm_arch_free_memslot(kvm, free, dont);
551 552
552 free->npages = 0; 553 free->npages = 0;
553} 554}
@@ -558,7 +559,7 @@ void kvm_free_physmem(struct kvm *kvm)
558 struct kvm_memory_slot *memslot; 559 struct kvm_memory_slot *memslot;
559 560
560 kvm_for_each_memslot(memslot, slots) 561 kvm_for_each_memslot(memslot, slots)
561 kvm_free_physmem_slot(memslot, NULL); 562 kvm_free_physmem_slot(kvm, memslot, NULL);
562 563
563 kfree(kvm->memslots); 564 kfree(kvm->memslots);
564} 565}
@@ -822,7 +823,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
822 if (change == KVM_MR_CREATE) { 823 if (change == KVM_MR_CREATE) {
823 new.userspace_addr = mem->userspace_addr; 824 new.userspace_addr = mem->userspace_addr;
824 825
825 if (kvm_arch_create_memslot(&new, npages)) 826 if (kvm_arch_create_memslot(kvm, &new, npages))
826 goto out_free; 827 goto out_free;
827 } 828 }
828 829
@@ -883,7 +884,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
883 884
884 kvm_arch_commit_memory_region(kvm, mem, &old, change); 885 kvm_arch_commit_memory_region(kvm, mem, &old, change);
885 886
886 kvm_free_physmem_slot(&old, &new); 887 kvm_free_physmem_slot(kvm, &old, &new);
887 kfree(old_memslots); 888 kfree(old_memslots);
888 889
889 /* 890 /*
@@ -905,7 +906,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
905out_slots: 906out_slots:
906 kfree(slots); 907 kfree(slots);
907out_free: 908out_free:
908 kvm_free_physmem_slot(&new, &old); 909 kvm_free_physmem_slot(kvm, &new, &old);
909out: 910out:
910 return r; 911 return r;
911} 912}
@@ -964,6 +965,7 @@ int kvm_get_dirty_log(struct kvm *kvm,
964out: 965out:
965 return r; 966 return r;
966} 967}
968EXPORT_SYMBOL_GPL(kvm_get_dirty_log);
967 969
968bool kvm_largepages_enabled(void) 970bool kvm_largepages_enabled(void)
969{ 971{
@@ -1654,6 +1656,7 @@ void mark_page_dirty(struct kvm *kvm, gfn_t gfn)
1654 memslot = gfn_to_memslot(kvm, gfn); 1656 memslot = gfn_to_memslot(kvm, gfn);
1655 mark_page_dirty_in_slot(kvm, memslot, gfn); 1657 mark_page_dirty_in_slot(kvm, memslot, gfn);
1656} 1658}
1659EXPORT_SYMBOL_GPL(mark_page_dirty);
1657 1660
1658/* 1661/*
1659 * The vCPU has executed a HLT instruction with in-kernel mode enabled. 1662 * The vCPU has executed a HLT instruction with in-kernel mode enabled.
@@ -1679,6 +1682,7 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
1679 1682
1680 finish_wait(&vcpu->wq, &wait); 1683 finish_wait(&vcpu->wq, &wait);
1681} 1684}
1685EXPORT_SYMBOL_GPL(kvm_vcpu_block);
1682 1686
1683#ifndef CONFIG_S390 1687#ifndef CONFIG_S390
1684/* 1688/*