diff options
| author | Marcelo Tosatti <mtosatti@redhat.com> | 2009-12-23 14:35:18 -0200 | 
|---|---|---|
| committer | Marcelo Tosatti <mtosatti@redhat.com> | 2010-03-01 12:35:44 -0300 | 
| commit | f7784b8ec9b6a041fa828cfbe9012fe51933f5ac (patch) | |
| tree | dc67f35e585bb06492852c01776aea4b737db48b /virt | |
| parent | fef9cce0eb28a67e688a411cc30b73625e49002b (diff) | |
| download | linux-f7784b8ec9b6a041fa828cfbe9012fe51933f5ac.tar.bz2 | |
KVM: split kvm_arch_set_memory_region into prepare and commit
Required for SRCU convertion later.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'virt')
| -rw-r--r-- | virt/kvm/kvm_main.c | 12 | 
1 files changed, 5 insertions, 7 deletions
| diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 86dd8f3d29c9..c9f6cfe83120 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -663,6 +663,10 @@ skip_lpage:  	if (!npages)  		kvm_arch_flush_shadow(kvm); +	r = kvm_arch_prepare_memory_region(kvm, &new, old, mem, user_alloc); +	if (r) +		goto out_free; +  	spin_lock(&kvm->mmu_lock);  	if (mem->slot >= kvm->memslots->nmemslots)  		kvm->memslots->nmemslots = mem->slot + 1; @@ -670,13 +674,7 @@ skip_lpage:  	*memslot = new;  	spin_unlock(&kvm->mmu_lock); -	r = kvm_arch_set_memory_region(kvm, mem, old, user_alloc); -	if (r) { -		spin_lock(&kvm->mmu_lock); -		*memslot = old; -		spin_unlock(&kvm->mmu_lock); -		goto out_free; -	} +	kvm_arch_commit_memory_region(kvm, mem, old, user_alloc);  	kvm_free_physmem_slot(&old, npages ? &new : NULL);  	/* Slot deletion case: we have to update the current slot */ |