diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2009-08-13 16:31:12 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2009-08-13 16:31:12 +0000 |
commit | 0e6ad1653b7d8f482e926d0aa9e9e3b761dbb655 (patch) | |
tree | 04c25676d720764d4cc90d273e428b7ad1dae1ba | |
parent | 0a03d9258cb176397c7af24ff3489448cfe42308 (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.c | 6 |
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; |