|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] arm: implement flush_tlb_all_local and flush_tlb_local
# HG changeset patch
# User Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
# Date 1338542434 -3600
# Node ID ebf41e3d1ee3041a96d84e2a6f7576171179772b
# Parent dde175688d5f0b53779fb96987138a477c62e887
arm: implement flush_tlb_all_local and flush_tlb_local
Call flush_tlb_all_local from create_p2m_entries after removing a page
from the p2m.
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Committed-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
diff -r dde175688d5f -r ebf41e3d1ee3 xen/arch/arm/p2m.c
--- a/xen/arch/arm/p2m.c Fri Jun 01 10:20:33 2012 +0100
+++ b/xen/arch/arm/p2m.c Fri Jun 01 10:20:34 2012 +0100
@@ -3,6 +3,7 @@
#include <xen/lib.h>
#include <xen/errno.h>
#include <xen/domain_page.h>
+#include <asm/flushtlb.h>
void p2m_load_VTTBR(struct domain *d)
{
@@ -123,6 +124,7 @@ static int create_p2m_entries(struct dom
/* p2m entry already present */
free_domheap_page(
mfn_to_page(third[third_table_offset(addr)].p2m.base));
+ flush_tlb_all_local();
}
/* Allocate a new RAM page and attach */
diff -r dde175688d5f -r ebf41e3d1ee3 xen/include/asm-arm/flushtlb.h
--- a/xen/include/asm-arm/flushtlb.h Fri Jun 01 10:20:33 2012 +0100
+++ b/xen/include/asm-arm/flushtlb.h Fri Jun 01 10:20:34 2012 +0100
@@ -14,8 +14,27 @@ do {
#define tlbflush_current_time() (0)
-/* Flush local TLBs */
-void flush_tlb_local(void);
+/* Flush local TLBs, current VMID only */
+static inline void flush_tlb_local(void)
+{
+ dsb();
+
+ WRITE_CP32((uint32_t) 0, TLBIALLIS);
+
+ dsb();
+ isb();
+}
+
+/* Flush local TLBs, all VMIDs, non-hypervisor mode */
+static inline void flush_tlb_all_local(void)
+{
+ dsb();
+
+ WRITE_CP32((uint32_t) 0, TLBIALLNSNHIS);
+
+ dsb();
+ isb();
+}
/* Flush specified CPUs' TLBs */
void flush_tlb_mask(const cpumask_t *mask);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |