From: Peter Johnston <pjohnston@xensource.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
return rc;
}
+static int hvmop_flush_tlb_all(void)
+{
+ flush_tlb_mask(current->domain->domain_dirty_cpumask);
+ return 0;
+}
+
long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
{
guest_handle_cast(arg, xen_hvm_set_pci_link_route_t));
break;
+ case HVMOP_flush_tlbs:
+ rc = guest_handle_is_null(arg) ? hvmop_flush_tlb_all() : -ENOSYS;
+ break;
+
default:
{
gdprintk(XENLOG_WARNING, "Bad HVM op %ld.\n", op);
typedef struct xen_hvm_set_pci_link_route xen_hvm_set_pci_link_route_t;
DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_pci_link_route_t);
+/* Flushes all VCPU TLBs: @arg must be NULL. */
+#define HVMOP_flush_tlbs 5
+
#endif /* __XEN_PUBLIC_HVM_HVM_OP_H__ */