]> xenbits.xensource.com Git - xen.git/commitdiff
hvm: Provide an HVMOP_flush_tlbs to flush VCPU TLBs.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 30 Aug 2007 08:57:09 +0000 (09:57 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 30 Aug 2007 08:57:09 +0000 (09:57 +0100)
From: Peter Johnston <pjohnston@xensource.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/hvm/hvm.c
xen/include/public/hvm/hvm_op.h

index 0961f3372bdedd6f3c20143389b3aa478d922784..cb07b1928925cca0b90db4187606534c68b7a77c 100644 (file)
@@ -1166,6 +1166,12 @@ static int hvmop_set_pci_link_route(
     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)
 
 {
@@ -1257,6 +1263,10 @@ 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);
index f5680509490f03d74c3ca83ef00b3fc6a72d0109..b21b0f7abe53d9f3fab174a197d7fe0af1cd0a5b 100644 (file)
@@ -70,4 +70,7 @@ struct xen_hvm_set_pci_link_route {
 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__ */