diff options
author | Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp> | 2013-07-04 13:40:29 +0900 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-07-18 12:29:25 +0200 |
commit | e59dbe09f8e6fb8f6ee19dc79d1a2f14299e4cd2 (patch) | |
tree | 0de53b1ec2901fd34fdaca56770f0757d9e660e1 /virt/kvm/kvm_main.c | |
parent | 85dfe87e24326c472454cc92313ba8c3b4efe53b (diff) | |
download | lwn-e59dbe09f8e6fb8f6ee19dc79d1a2f14299e4cd2.tar.gz lwn-e59dbe09f8e6fb8f6ee19dc79d1a2f14299e4cd2.zip |
KVM: Introduce kvm_arch_memslots_updated()
This is called right after the memslots is updated, i.e. when the result
of update_memslots() gets installed in install_new_memslots(). Since
the memslots needs to be updated twice when we delete or move a memslot,
kvm_arch_commit_memory_region() does not correspond to this exactly.
In the following patch, x86 will use this new API to check if the mmio
generation has reached its maximum value, in which case mmio sptes need
to be flushed out.
Signed-off-by: Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp>
Acked-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt/kvm/kvm_main.c')
-rw-r--r-- | virt/kvm/kvm_main.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 71960fb03c2a..a86735d80ee0 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -731,7 +731,10 @@ static struct kvm_memslots *install_new_memslots(struct kvm *kvm, update_memslots(slots, new, kvm->memslots->generation); rcu_assign_pointer(kvm->memslots, slots); synchronize_srcu_expedited(&kvm->srcu); - return old_memslots; + + kvm_arch_memslots_updated(kvm); + + return old_memslots; } /* |