return true;
}
+static bool kvm_xen_hcall_hvm_flush_tlbs(struct kvm_vcpu *vcpu)
+{
+ kvm_flush_remote_tlbs(vcpu->kvm);
+ return true;
+}
+
int kvm_xen_hypercall(struct kvm_vcpu *vcpu)
{
bool longmode;
handled = kvm_xen_hcall_vcpu_op(vcpu, longmode, params[0], params[1],
params[2], &r);
break;
+ case __HYPERVISOR_hvm_op:
+ if (params[0] == HVMOP_flush_tlbs)
+ handled = kvm_xen_hcall_hvm_flush_tlbs(vcpu);
+ break;
case __HYPERVISOR_set_timer_op: {
u64 timeout = params[0];
/* In 32-bit mode, the 64-bit timeout is in two 32-bit params. */
uint64_t time[4];
} __attribute__((packed));
+#ifndef HVMOP_flush_tlbs
+#define HVMOP_flush_tlbs 5
+#endif
+
#endif /* __ARCH_X86_KVM_XEN_H__ */