aboutsummaryrefslogtreecommitdiffstats
path: root/freebsd-5.3-xen-sparse
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-04-01 13:17:52 +0000
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-04-01 13:17:52 +0000
commite8f64f24c7197b545878f78329e974548b66606f (patch)
tree7c5b9f74ac510132ada0a589269d7ab368065662 /freebsd-5.3-xen-sparse
parent76d7931a0bf9d8f985c256b92bd1074e4eb5f8d5 (diff)
downloadxen-e8f64f24c7197b545878f78329e974548b66606f.tar.gz
xen-e8f64f24c7197b545878f78329e974548b66606f.tar.bz2
xen-e8f64f24c7197b545878f78329e974548b66606f.zip
bitkeeper revision 1.1236.1.184 (424d4a00y8MNt89B4nCZ8LKcrTcZUw)
Fix multi-VCPU TLB shootdown interface -- specify pointer to VCPU bitmap, so it is read at time of flush and not before (which might be too early, before all updates are flushed, leading to races). Also add selective multi-VCPU shootdown capability to update_va_mapping() and use this to make ptep_set_access_flags() a single hypercall. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'freebsd-5.3-xen-sparse')
-rw-r--r--freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c2
-rw-r--r--freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c
index 4fa020f531..1dcd9448d3 100644
--- a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c
+++ b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c
@@ -540,7 +540,7 @@ mcl_queue_pt_update(vm_offset_t va, vm_paddr_t ma)
MCL_QUEUE[MCL_IDX].op = __HYPERVISOR_update_va_mapping;
MCL_QUEUE[MCL_IDX].args[0] = (unsigned long)va;
MCL_QUEUE[MCL_IDX].args[1] = (unsigned long)ma;
- MCL_QUEUE[MCL_IDX].args[2] = UVMF_INVLPG_LOCAL;
+ MCL_QUEUE[MCL_IDX].args[2] = UVMF_INVLPG|UVMF_LOCAL;
mcl_increment_idx();
}
diff --git a/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c b/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c
index 40d9e4636e..1de71545fb 100644
--- a/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c
+++ b/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c
@@ -440,7 +440,7 @@ xn_alloc_rx_buffers(struct xn_softc *sc)
PT_UPDATES_FLUSH();
/* After all PTEs have been zapped we blow away stale TLB entries. */
- xn_rx_mcl[i-1].args[2] = UVMF_TLB_FLUSH_LOCAL;
+ xn_rx_mcl[i-1].args[2] = UVMF_TLB_FLUSH|UVMF_LOCAL;
/* Give away a batch of pages. */
xn_rx_mcl[i].op = __HYPERVISOR_dom_mem_op;