summaryrefslogtreecommitdiff
path: root/usr/src/uts/sun4v/cpu/generic.c
diff options
context:
space:
mode:
authorrsmaeda <none@none>2007-05-10 19:40:07 -0700
committerrsmaeda <none@none>2007-05-10 19:40:07 -0700
commit459190a5c46206e7885f6a649a055ceb46be49a7 (patch)
treea4103af9f856081d4e7066d8f983cd19c770b322 /usr/src/uts/sun4v/cpu/generic.c
parentaa47d34086d87750d5d3721b607c057e282e1048 (diff)
downloadillumos-gate-459190a5c46206e7885f6a649a055ceb46be49a7.tar.gz
6552083 pg_cmt_cpu_init() assert failed during CPU DR on Huron
Diffstat (limited to 'usr/src/uts/sun4v/cpu/generic.c')
-rw-r--r--usr/src/uts/sun4v/cpu/generic.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/usr/src/uts/sun4v/cpu/generic.c b/usr/src/uts/sun4v/cpu/generic.c
index 6c93042813..041aa4743f 100644
--- a/usr/src/uts/sun4v/cpu/generic.c
+++ b/usr/src/uts/sun4v/cpu/generic.c
@@ -18,6 +18,7 @@
*
* CDDL HEADER END
*/
+
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
@@ -149,13 +150,14 @@ dtrace_flush_sec(uintptr_t addr)
}
void
-cpu_init_private(struct cpu *cp)
+cpu_map_exec_units(struct cpu *cp)
{
+ ASSERT(MUTEX_HELD(&cpu_lock));
+
/*
* The cpu_ipipe and cpu_fpu fields are initialized based on
- * the execution unit sharing information from the Machine
- * Description table. They default to the CPU id in the
- * absence of such information.
+ * the execution unit sharing information from the MD. They
+ * default to the CPU id in the absence of such information.
*/
cp->cpu_m.cpu_ipipe = cpunodes[cp->cpu_id].exec_unit_mapping;
if (cp->cpu_m.cpu_ipipe == NO_EU_MAPPING_FOUND)
@@ -169,10 +171,16 @@ cpu_init_private(struct cpu *cp)
}
void
-cpu_uninit_private(struct cpu *cp)
+cpu_init_private(struct cpu *cp)
{
+ cpu_map_exec_units(cp);
}
+/*ARGSUSED*/
+void
+cpu_uninit_private(struct cpu *cp)
+{}
+
/*
* Invalidate a TSB. Since this needs to work on all sun4v
* architecture compliant processors, we use the old method of