KVM: Add architecture-defined TLB flush support
Allow architectures to override the generic kvm_flush_remote_tlbs() function via HAVE_KVM_ARCH_TLB_FLUSH_ALL. ARMv7 will need this to provide its own TLB flush interface. Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> Reviewed-by: Marc Zyngier <marc.zyngier@arm.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Mario Smarduch <m.smarduch@samsung.com>
This commit is contained in:
parent
924de80db9
commit
a6d5101661
|
@ -37,3 +37,6 @@ config HAVE_KVM_CPU_RELAX_INTERCEPT
|
||||||
|
|
||||||
config KVM_VFIO
|
config KVM_VFIO
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config HAVE_KVM_ARCH_TLB_FLUSH_ALL
|
||||||
|
bool
|
||||||
|
|
|
@ -176,6 +176,7 @@ bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req)
|
||||||
return called;
|
return called;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL
|
||||||
void kvm_flush_remote_tlbs(struct kvm *kvm)
|
void kvm_flush_remote_tlbs(struct kvm *kvm)
|
||||||
{
|
{
|
||||||
long dirty_count = kvm->tlbs_dirty;
|
long dirty_count = kvm->tlbs_dirty;
|
||||||
|
@ -186,6 +187,7 @@ void kvm_flush_remote_tlbs(struct kvm *kvm)
|
||||||
cmpxchg(&kvm->tlbs_dirty, dirty_count, 0);
|
cmpxchg(&kvm->tlbs_dirty, dirty_count, 0);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(kvm_flush_remote_tlbs);
|
EXPORT_SYMBOL_GPL(kvm_flush_remote_tlbs);
|
||||||
|
#endif
|
||||||
|
|
||||||
void kvm_reload_remote_mmus(struct kvm *kvm)
|
void kvm_reload_remote_mmus(struct kvm *kvm)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue