From 459190a5c46206e7885f6a649a055ceb46be49a7 Mon Sep 17 00:00:00 2001 From: rsmaeda Date: Thu, 10 May 2007 19:40:07 -0700 Subject: 6552083 pg_cmt_cpu_init() assert failed during CPU DR on Huron --- usr/src/uts/sun4v/cpu/generic.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'usr/src/uts/sun4v/cpu/generic.c') 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 -- cgit v1.2.3