summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2009-08-13 16:31:12 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2009-08-13 16:31:12 +0000
commit0e6ad1653b7d8f482e926d0aa9e9e3b761dbb655 (patch)
tree04c25676d720764d4cc90d273e428b7ad1dae1ba
parent0a03d9258cb176397c7af24ff3489448cfe42308 (diff)
In pmap_pte_flush flush the icache before the dcache, as is done elsewhere.
We cannot find gaurantees in the documents that any icache filling from the cache is terminated by a icache flush or idtlb invalidation, so this is probably safer, and unlikely to be unsafer. ok kettenis
-rw-r--r--sys/arch/hppa/hppa/pmap.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/arch/hppa/hppa/pmap.c b/sys/arch/hppa/hppa/pmap.c
index cc41a58ff51..c2257db6066 100644
--- a/sys/arch/hppa/hppa/pmap.c
+++ b/sys/arch/hppa/hppa/pmap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.c,v 1.144 2009/08/12 17:50:55 kettenis Exp $ */
+/* $OpenBSD: pmap.c,v 1.145 2009/08/13 16:31:11 deraadt Exp $ */
/*
* Copyright (c) 1998-2004 Michael Shalayeff
@@ -275,12 +275,12 @@ pmap_pte_set(volatile pt_entry_t *pde, vaddr_t va, pt_entry_t pte)
void
pmap_pte_flush(struct pmap *pmap, vaddr_t va, pt_entry_t pte)
{
+ fdcache(pmap->pm_space, va, PAGE_SIZE);
+ pdtlb(pmap->pm_space, va);
if (pte & PTE_PROT(TLB_EXECUTE)) {
ficache(pmap->pm_space, va, PAGE_SIZE);
pitlb(pmap->pm_space, va);
}
- fdcache(pmap->pm_space, va, PAGE_SIZE);
- pdtlb(pmap->pm_space, va);
#ifdef USE_HPT
if (pmap_hpt) {
struct vp_entry *hpt;