summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2003-03-19 05:05:08 +0000
committerjake <jake@FreeBSD.org>2003-03-19 05:05:08 +0000
commit6564ae81018f9caddd72fe4b8f51c200cad0bd78 (patch)
treeaa0c51339d04763f69215d658d2ca2fb0c2a0a39
parent106626faa2218c5892174d211811f6e6c30c0b51 (diff)
downloadFreeBSD-src-6564ae81018f9caddd72fe4b8f51c200cad0bd78.zip
FreeBSD-src-6564ae81018f9caddd72fe4b8f51c200cad0bd78.tar.gz
Remove a workaround for mysterious junk appearing in the tlb of secondary
cpus. It turned out to be a bug in the loader.
-rw-r--r--sys/sparc64/sparc64/mp_machdep.c19
1 files changed, 0 insertions, 19 deletions
diff --git a/sys/sparc64/sparc64/mp_machdep.c b/sys/sparc64/sparc64/mp_machdep.c
index f6d147d..35a5474 100644
--- a/sys/sparc64/sparc64/mp_machdep.c
+++ b/sys/sparc64/sparc64/mp_machdep.c
@@ -336,25 +336,6 @@ void
cpu_mp_bootstrap(struct pcpu *pc)
{
volatile struct cpu_start_args *csa;
- u_long tag;
- int i;
-
- /*
- * When secondary cpus start up they often have junk in their tlb.
- * Sometimes both the lock bit and the valid bit will be set in the
- * tlb entries, which can cause our locked mappings to be replaced,
- * and other random behvaiour. The tags always seems to be zero, so
- * we flush all mappings with a tag of zero, regardless of the lock
- * and/or valid bits.
- */
- for (i = 0; i < tlb_dtlb_entries; i++) {
- tag = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_TAG_READ_REG);
- if (tag == 0)
- stxa_sync(TLB_DAR_SLOT(i), ASI_DTLB_DATA_ACCESS_REG, 0);
- tag = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_TAG_READ_REG);
- if (tag == 0)
- stxa_sync(TLB_DAR_SLOT(i), ASI_ITLB_DATA_ACCESS_REG, 0);
- }
csa = &cpu_start_args;
pmap_map_tsb();
OpenPOWER on IntegriCloud