summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorJosef 'Jeff' Sipek <josef.sipek@nexenta.com>2014-11-10 20:29:50 -0500
committerGordon Ross <gwr@nexenta.com>2014-11-11 00:19:12 -0500
commit0ed5c46e82c989cfa9726d9dae452e3d24ef83be (patch)
treed738d6bf0365af95a6d685207ed49a546037bc0b /usr/src
parent37c79205ad46187f54b2edbf6a468160935f14d9 (diff)
downloadillumos-gate-0ed5c46e82c989cfa9726d9dae452e3d24ef83be.tar.gz
5285 pass in cpu_pause_func via pause_cpus
Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Gordon Ross <gwr@nexenta.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/cpr/cpr_main.c19
-rw-r--r--usr/src/uts/common/disp/cmt.c6
-rw-r--r--usr/src/uts/common/disp/cpupart.c6
-rw-r--r--usr/src/uts/common/disp/disp.c2
-rw-r--r--usr/src/uts/common/os/cpu.c33
-rw-r--r--usr/src/uts/common/os/cpu_event.c4
-rw-r--r--usr/src/uts/common/os/cpu_pm.c4
-rw-r--r--usr/src/uts/common/os/lgrp.c6
-rw-r--r--usr/src/uts/common/os/lgrp_topo.c2
-rw-r--r--usr/src/uts/common/os/mem_config.c2
-rw-r--r--usr/src/uts/common/sys/cpuvar.h2
-rw-r--r--usr/src/uts/i86pc/i86hvm/io/xpv/xpv_support.c2
-rw-r--r--usr/src/uts/i86pc/io/dr/dr_quiesce.c2
-rw-r--r--usr/src/uts/i86pc/io/ppm/acpisleep.c2
-rw-r--r--usr/src/uts/i86pc/os/cpr_impl.c2
-rw-r--r--usr/src/uts/i86pc/os/machdep.c2
-rw-r--r--usr/src/uts/i86pc/os/mp_pc.c1
-rw-r--r--usr/src/uts/i86pc/os/x_call.c2
-rw-r--r--usr/src/uts/i86xpv/os/mp_xen.c2
-rw-r--r--usr/src/uts/sun4/os/mp_states.c2
-rw-r--r--usr/src/uts/sun4/os/prom_subr.c4
-rw-r--r--usr/src/uts/sun4u/io/mem_cache.c2
-rw-r--r--usr/src/uts/sun4u/ngdr/io/dr_quiesce.c2
-rw-r--r--usr/src/uts/sun4u/os/cpr_impl.c2
-rw-r--r--usr/src/uts/sun4u/serengeti/io/sbdp_quiesce.c2
-rw-r--r--usr/src/uts/sun4v/os/mpo.c2
-rw-r--r--usr/src/uts/sun4v/os/suspend.c6
27 files changed, 53 insertions, 70 deletions
diff --git a/usr/src/uts/common/cpr/cpr_main.c b/usr/src/uts/common/cpr/cpr_main.c
index 15e8c6c8d8..7db797c848 100644
--- a/usr/src/uts/common/cpr/cpr_main.c
+++ b/usr/src/uts/common/cpr/cpr_main.c
@@ -90,7 +90,6 @@ pfn_t curthreadpfn;
int curthreadremapped;
extern cpuset_t cpu_ready_set;
-extern void *(*cpu_pause_func)(void *);
extern processorid_t i_cpr_bootcpuid(void);
extern cpu_t *i_cpr_bootcpu(void);
@@ -416,8 +415,7 @@ cpr_suspend_cpus(void)
/*
* pause all other running CPUs and save the CPU state at the sametime
*/
- cpu_pause_func = i_cpr_save_context;
- pause_cpus(NULL);
+ pause_cpus(NULL, i_cpr_save_context);
mutex_exit(&cpu_lock);
@@ -792,12 +790,6 @@ cpr_resume_cpus(void)
mutex_enter(&cpu_lock);
/*
- * Restore this cpu to use the regular cpu_pause(), so that
- * online and offline will work correctly
- */
- cpu_pause_func = NULL;
-
- /*
* clear the affinity set in cpr_suspend_cpus()
*/
affinity_clear();
@@ -820,13 +812,6 @@ cpr_unpause_cpus(void)
PMD(PMD_SX, ("cpr_unpause_cpus: restoring system\n"))
mutex_enter(&cpu_lock);
-
- /*
- * Restore this cpu to use the regular cpu_pause(), so that
- * online and offline will work correctly
- */
- cpu_pause_func = NULL;
-
/*
* Restart the paused cpus
*/
@@ -1094,7 +1079,7 @@ rb_suspend_devices:
*/
if (cpr_resume_uniproc) {
mutex_enter(&cpu_lock);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
mutex_exit(&cpu_lock);
}
#endif
diff --git a/usr/src/uts/common/disp/cmt.c b/usr/src/uts/common/disp/cmt.c
index da3296f6cf..1c5e1f79a9 100644
--- a/usr/src/uts/common/disp/cmt.c
+++ b/usr/src/uts/common/disp/cmt.c
@@ -355,7 +355,7 @@ cmt_hier_promote(pg_cmt_t *pg, cpu_pg_t *pgdata)
* We're changing around the hierarchy, which is actively traversed
* by the dispatcher. Pause CPUS to ensure exclusivity.
*/
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
/*
* If necessary, update the parent's sibling set, replacing parent
@@ -1555,7 +1555,7 @@ pg_cmt_prune(pg_cmt_t *pg_bad, pg_cmt_t **lineage, int *sz, cpu_pg_t *pgdata)
* We're operating on the PG hierarchy. Pause CPUs to ensure
* exclusivity with respect to the dispatcher.
*/
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
/*
* Prune all PG instances of the hardware sharing relationship
@@ -1675,7 +1675,7 @@ pg_cmt_disable(void)
ASSERT(MUTEX_HELD(&cpu_lock));
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cpu = cpu_list;
do {
diff --git a/usr/src/uts/common/disp/cpupart.c b/usr/src/uts/common/disp/cpupart.c
index c33a93373a..c260329c61 100644
--- a/usr/src/uts/common/disp/cpupart.c
+++ b/usr/src/uts/common/disp/cpupart.c
@@ -441,7 +441,7 @@ again:
return (EBUSY);
}
- pause_cpus(cp);
+ pause_cpus(cp, NULL);
if (move_threads) {
/*
@@ -865,7 +865,7 @@ cpupart_create(psetid_t *psid)
* the clock thread (which traverses the list without holding
* cpu_lock) isn't running.
*/
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
pp->cp_next = cp_list_head;
pp->cp_prev = cp_list_head->cp_prev;
cp_list_head->cp_prev->cp_next = pp;
@@ -1011,7 +1011,7 @@ cpupart_destroy(psetid_t psid)
* the clock thread (which traverses the list without holding
* cpu_lock) isn't running.
*/
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
pp->cp_prev->cp_next = pp->cp_next;
pp->cp_next->cp_prev = pp->cp_prev;
if (cp_list_head == pp)
diff --git a/usr/src/uts/common/disp/disp.c b/usr/src/uts/common/disp/disp.c
index be92ba108b..0c2c0b4993 100644
--- a/usr/src/uts/common/disp/disp.c
+++ b/usr/src/uts/common/disp/disp.c
@@ -340,7 +340,7 @@ cpu_dispqalloc(int numpris)
} while (cpup != cpu_list);
num = i;
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
for (i = 0; i < num; i++)
disp_dq_assign(&disp_mem[i], numpris);
start_cpus();
diff --git a/usr/src/uts/common/os/cpu.c b/usr/src/uts/common/os/cpu.c
index a2047160d5..48439a90a5 100644
--- a/usr/src/uts/common/os/cpu.c
+++ b/usr/src/uts/common/os/cpu.c
@@ -167,13 +167,12 @@ static struct _cpu_pause_info {
int cp_count; /* # of CPUs to pause */
ksema_t cp_sem; /* synch pause_cpus & cpu_pause */
kthread_id_t cp_paused;
+ void *(*cp_func)(void *);
} cpu_pause_info;
static kmutex_t pause_free_mutex;
static kcondvar_t pause_free_cv;
-void *(*cpu_pause_func)(void *) = NULL;
-
static struct cpu_sys_stats_ks_data {
kstat_named_t cpu_ticks_idle;
@@ -792,15 +791,15 @@ cpu_pause(int index)
*/
s = splhigh();
/*
- * if cpu_pause_func() has been set then call it using
- * index as the argument, currently only used by
- * cpr_suspend_cpus(). This function is used as the
- * code to execute on the "paused" cpu's when a machine
- * comes out of a sleep state and CPU's were powered off.
- * (could also be used for hotplugging CPU's).
+ * if cp_func has been set then call it using index as the
+ * argument, currently only used by cpr_suspend_cpus().
+ * This function is used as the code to execute on the
+ * "paused" cpu's when a machine comes out of a sleep state
+ * and CPU's were powered off. (could also be used for
+ * hotplugging CPU's).
*/
- if (cpu_pause_func != NULL)
- (*cpu_pause_func)((void *)lindex);
+ if (cpi->cp_func != NULL)
+ (*cpi->cp_func)((void *)lindex);
mach_cpu_pause(safe);
@@ -988,7 +987,7 @@ cpu_pause_start(processorid_t cpu_id)
* context.
*/
void
-pause_cpus(cpu_t *off_cp)
+pause_cpus(cpu_t *off_cp, void *(*func)(void *))
{
processorid_t cpu_id;
int i;
@@ -1002,6 +1001,8 @@ pause_cpus(cpu_t *off_cp)
safe_list[i] = PAUSE_IDLE;
kpreempt_disable();
+ cpi->cp_func = func;
+
/*
* If running on the cpu that is going offline, get off it.
* This is so that it won't be necessary to rechoose a CPU
@@ -1206,7 +1207,7 @@ cpu_online(cpu_t *cp)
error = mp_cpu_start(cp); /* arch-dep hook */
if (error == 0) {
pg_cpupart_in(cp, cp->cpu_part);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cpu_add_active_internal(cp);
if (cp->cpu_flags & CPU_FAULTED) {
cp->cpu_flags &= ~CPU_FAULTED;
@@ -1405,7 +1406,7 @@ again: for (loop_count = 0; (*bound_func)(cp, 0); loop_count++) {
* Put all the cpus into a known safe place.
* No mutexes can be entered while CPUs are paused.
*/
- pause_cpus(cp);
+ pause_cpus(cp, NULL);
/*
* Repeat the operation, if necessary, to make sure that
* all outstanding low-level interrupts run to completion
@@ -1758,7 +1759,7 @@ cpu_add_unit(cpu_t *cp)
* adding the cpu to the list.
*/
cp->cpu_part = &cp_default;
- (void) pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cp->cpu_next = cpu_list;
cp->cpu_prev = cpu_list->cpu_prev;
cpu_list->cpu_prev->cpu_next = cp;
@@ -1853,7 +1854,7 @@ cpu_del_unit(int cpuid)
* has been updated so that we don't waste time
* trying to pause the cpu we're trying to delete.
*/
- (void) pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cpnext = cp->cpu_next;
cp->cpu_prev->cpu_next = cp->cpu_next;
@@ -1925,7 +1926,7 @@ cpu_add_active(cpu_t *cp)
{
pg_cpupart_in(cp, cp->cpu_part);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cpu_add_active_internal(cp);
start_cpus();
diff --git a/usr/src/uts/common/os/cpu_event.c b/usr/src/uts/common/os/cpu_event.c
index b3ed323f92..0bd8c795ac 100644
--- a/usr/src/uts/common/os/cpu_event.c
+++ b/usr/src/uts/common/os/cpu_event.c
@@ -396,7 +396,7 @@ cpu_idle_insert_callback(cpu_idle_cb_impl_t *cip)
* after pause_cpus().
*/
if (!cpus_paused()) {
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
unpause = 1;
}
@@ -462,7 +462,7 @@ cpu_idle_remove_callback(cpu_idle_cb_impl_t *cip)
* after pause_cpus().
*/
if (!cpus_paused()) {
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
unpause = 1;
}
diff --git a/usr/src/uts/common/os/cpu_pm.c b/usr/src/uts/common/os/cpu_pm.c
index b885e421b8..4554ed502a 100644
--- a/usr/src/uts/common/os/cpu_pm.c
+++ b/usr/src/uts/common/os/cpu_pm.c
@@ -188,7 +188,7 @@ cpupm_set_policy(cpupm_policy_t new_policy)
*/
switch (new_policy) {
case CPUPM_POLICY_DISABLED:
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cpupm_policy = CPUPM_POLICY_DISABLED;
start_cpus();
@@ -228,7 +228,7 @@ cpupm_set_policy(cpupm_policy_t new_policy)
gov_init = 1;
}
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cpupm_policy = CPUPM_POLICY_ELASTIC;
start_cpus();
diff --git a/usr/src/uts/common/os/lgrp.c b/usr/src/uts/common/os/lgrp.c
index b75f438f59..4fa73ddf3e 100644
--- a/usr/src/uts/common/os/lgrp.c
+++ b/usr/src/uts/common/os/lgrp.c
@@ -1297,7 +1297,7 @@ lgrp_mem_init(int mnode, lgrp_handle_t hand, boolean_t is_copy_rename)
klgrpset_add(my_lgrp->lgrp_set[LGRP_RSRC_MEM], lgrpid);
if (need_synch)
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
count = lgrp_leaf_add(my_lgrp, lgrp_table, lgrp_alloc_max + 1,
&changed);
if (need_synch)
@@ -1316,7 +1316,7 @@ lgrp_mem_init(int mnode, lgrp_handle_t hand, boolean_t is_copy_rename)
lgrpid))
klgrpset_add(my_lgrp->lgrp_set[LGRP_RSRC_MEM], lgrpid);
if (need_synch)
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
count = lgrp_leaf_add(my_lgrp, lgrp_table, lgrp_alloc_max + 1,
&changed);
if (need_synch)
@@ -1477,7 +1477,7 @@ lgrp_mem_fini(int mnode, lgrp_handle_t hand, boolean_t is_copy_rename)
* Delete lgroup when no more resources
*/
if (need_synch)
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
count = lgrp_leaf_delete(my_lgrp, lgrp_table,
lgrp_alloc_max + 1, &changed);
ASSERT(count > 0);
diff --git a/usr/src/uts/common/os/lgrp_topo.c b/usr/src/uts/common/os/lgrp_topo.c
index fa55a584e3..49c5298bb7 100644
--- a/usr/src/uts/common/os/lgrp_topo.c
+++ b/usr/src/uts/common/os/lgrp_topo.c
@@ -1480,7 +1480,7 @@ lgrp_topo_update(lgrp_t **lgrps, int lgrp_count, klgrpset_t *changed)
}
mutex_enter(&cpu_lock);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
/*
* Look for any leaf lgroup without its latency set, finish adding it
diff --git a/usr/src/uts/common/os/mem_config.c b/usr/src/uts/common/os/mem_config.c
index 20a89b0611..3571747e9c 100644
--- a/usr/src/uts/common/os/mem_config.c
+++ b/usr/src/uts/common/os/mem_config.c
@@ -3302,7 +3302,7 @@ memseg_cpu_vm_flush()
vm_cpu_data_t *vc;
mutex_enter(&cpu_lock);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cp = cpu_list;
do {
diff --git a/usr/src/uts/common/sys/cpuvar.h b/usr/src/uts/common/sys/cpuvar.h
index 166c7180a5..7b333680c6 100644
--- a/usr/src/uts/common/sys/cpuvar.h
+++ b/usr/src/uts/common/sys/cpuvar.h
@@ -652,7 +652,7 @@ void poke_cpu(int cpun); /* interrupt another CPU (to preempt) */
void mach_cpu_pause(volatile char *);
-void pause_cpus(cpu_t *off_cp);
+void pause_cpus(cpu_t *off_cp, void *(*func)(void *));
void start_cpus(void);
int cpus_paused(void);
diff --git a/usr/src/uts/i86pc/i86hvm/io/xpv/xpv_support.c b/usr/src/uts/i86pc/i86hvm/io/xpv/xpv_support.c
index 2c6293bbc5..e6c1b6f6a8 100644
--- a/usr/src/uts/i86pc/i86hvm/io/xpv/xpv_support.c
+++ b/usr/src/uts/i86pc/i86hvm/io/xpv/xpv_support.c
@@ -472,7 +472,7 @@ xen_suspend_domain(void)
kpreempt_disable();
if (ncpus > 1)
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
/*
* We can grab the ec_lock as it's a spinlock with a high SPL. Hence
* any holder would have dropped it to get through pause_cpus().
diff --git a/usr/src/uts/i86pc/io/dr/dr_quiesce.c b/usr/src/uts/i86pc/io/dr/dr_quiesce.c
index 663977da25..3439eed5a0 100644
--- a/usr/src/uts/i86pc/io/dr/dr_quiesce.c
+++ b/usr/src/uts/i86pc/io/dr/dr_quiesce.c
@@ -872,7 +872,7 @@ dr_suspend(dr_sr_handle_t *srh)
srh->sr_suspend_state = DR_SRSTATE_FULL;
mutex_enter(&cpu_lock);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
dr_stop_intr();
return (rc);
diff --git a/usr/src/uts/i86pc/io/ppm/acpisleep.c b/usr/src/uts/i86pc/io/ppm/acpisleep.c
index b86f3ad963..78328170e6 100644
--- a/usr/src/uts/i86pc/io/ppm/acpisleep.c
+++ b/usr/src/uts/i86pc/io/ppm/acpisleep.c
@@ -70,8 +70,6 @@ extern int flushes_require_xcalls;
extern int tsc_gethrtime_enable;
extern cpuset_t cpu_ready_set;
-extern void *(*cpu_pause_func)(void *);
-
/*
diff --git a/usr/src/uts/i86pc/os/cpr_impl.c b/usr/src/uts/i86pc/os/cpr_impl.c
index acc78eaa14..0583ac6ed6 100644
--- a/usr/src/uts/i86pc/os/cpr_impl.c
+++ b/usr/src/uts/i86pc/os/cpr_impl.c
@@ -737,7 +737,7 @@ i_cpr_stop_other_cpus(void)
mutex_exit(&cpu_lock);
return;
}
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cpu_are_paused = 1;
mutex_exit(&cpu_lock);
diff --git a/usr/src/uts/i86pc/os/machdep.c b/usr/src/uts/i86pc/os/machdep.c
index dcc82d6d9b..f3656fb528 100644
--- a/usr/src/uts/i86pc/os/machdep.c
+++ b/usr/src/uts/i86pc/os/machdep.c
@@ -283,7 +283,7 @@ mdboot(int cmd, int fcn, char *mdep, boolean_t invoke_cb)
(void) spl6();
if (!panicstr) {
mutex_enter(&cpu_lock);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
mutex_exit(&cpu_lock);
}
diff --git a/usr/src/uts/i86pc/os/mp_pc.c b/usr/src/uts/i86pc/os/mp_pc.c
index e2dbce2091..105b1e93dc 100644
--- a/usr/src/uts/i86pc/os/mp_pc.c
+++ b/usr/src/uts/i86pc/os/mp_pc.c
@@ -63,7 +63,6 @@ extern void real_mode_stop_cpu_stage1(void);
extern void real_mode_stop_cpu_stage1_end(void);
extern void real_mode_stop_cpu_stage2(void);
extern void real_mode_stop_cpu_stage2_end(void);
-extern void *(*cpu_pause_func)(void *);
void rmp_gdt_init(rm_platter_t *);
diff --git a/usr/src/uts/i86pc/os/x_call.c b/usr/src/uts/i86pc/os/x_call.c
index 8c2821fc73..814e7a0026 100644
--- a/usr/src/uts/i86pc/os/x_call.c
+++ b/usr/src/uts/i86pc/os/x_call.c
@@ -281,7 +281,7 @@ xc_flush_cpu(struct cpu *cpup)
* This is used to work around a race condition window in xc_common()
* between checking CPU_READY flag and increasing working item count.
*/
- pause_cpus(cpup);
+ pause_cpus(cpup, NULL);
start_cpus();
for (i = 0; i < XC_FLUSH_MAX_WAITS; i++) {
diff --git a/usr/src/uts/i86xpv/os/mp_xen.c b/usr/src/uts/i86xpv/os/mp_xen.c
index 0150ec58ec..02eda1c755 100644
--- a/usr/src/uts/i86xpv/os/mp_xen.c
+++ b/usr/src/uts/i86xpv/os/mp_xen.c
@@ -586,7 +586,7 @@ mp_enter_barrier(void)
ASSERT(MUTEX_HELD(&cpu_lock));
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
while (!done) {
done = 1;
diff --git a/usr/src/uts/sun4/os/mp_states.c b/usr/src/uts/sun4/os/mp_states.c
index 800a0a40b1..d5f55006b4 100644
--- a/usr/src/uts/sun4/os/mp_states.c
+++ b/usr/src/uts/sun4/os/mp_states.c
@@ -200,7 +200,7 @@ stop_other_cpus(void)
if (ncpus > 1)
intr_redist_all_cpus_shutdown();
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
cpu_are_paused = 1;
mutex_exit(&cpu_lock);
diff --git a/usr/src/uts/sun4/os/prom_subr.c b/usr/src/uts/sun4/os/prom_subr.c
index 37fd0f3ee7..d4afdc8d19 100644
--- a/usr/src/uts/sun4/os/prom_subr.c
+++ b/usr/src/uts/sun4/os/prom_subr.c
@@ -408,7 +408,7 @@ console_exit(int busy, int spl)
void
promsafe_pause_cpus(void)
{
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
/* If some other cpu is entering or is in the prom, spin */
while (prom_cpu || mutex_owner(&prom_mutex)) {
@@ -421,7 +421,7 @@ promsafe_pause_cpus(void)
cv_wait(&prom_cv, &prom_mutex);
mutex_exit(&prom_mutex);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
}
/* At this point all cpus are paused and none are in the prom */
diff --git a/usr/src/uts/sun4u/io/mem_cache.c b/usr/src/uts/sun4u/io/mem_cache.c
index 8d0e84b3e2..38180f001d 100644
--- a/usr/src/uts/sun4u/io/mem_cache.c
+++ b/usr/src/uts/sun4u/io/mem_cache.c
@@ -815,7 +815,7 @@ retry_l2_retire:
<< PN_CACHE_LINE_SHIFT);
mutex_enter(&cpu_lock);
affinity_set(cache_info->cpu_id);
- (void) pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
mutex_exit(&cpu_lock);
/*
* We bind ourself to a CPU and send cross trap to
diff --git a/usr/src/uts/sun4u/ngdr/io/dr_quiesce.c b/usr/src/uts/sun4u/ngdr/io/dr_quiesce.c
index 166897f877..aaac057e56 100644
--- a/usr/src/uts/sun4u/ngdr/io/dr_quiesce.c
+++ b/usr/src/uts/sun4u/ngdr/io/dr_quiesce.c
@@ -935,7 +935,7 @@ dr_suspend(dr_sr_handle_t *srh)
CPU_SIGNATURE(OS_SIG, SIGST_QUIESCED, SIGSUBST_NULL, CPU->cpu_id);
mutex_enter(&cpu_lock);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
dr_stop_intr();
return (rc);
diff --git a/usr/src/uts/sun4u/os/cpr_impl.c b/usr/src/uts/sun4u/os/cpr_impl.c
index 672d761c9a..5825fe1ba1 100644
--- a/usr/src/uts/sun4u/os/cpr_impl.c
+++ b/usr/src/uts/sun4u/os/cpr_impl.c
@@ -269,7 +269,7 @@ i_cpr_mp_setup(void)
for (cp = CPU->cpu_next; cp != CPU; cp = cp->cpu_next)
restart_other_cpu(cp->cpu_id);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
mutex_exit(&cpu_lock);
i_cpr_xcall(i_cpr_clear_entries);
diff --git a/usr/src/uts/sun4u/serengeti/io/sbdp_quiesce.c b/usr/src/uts/sun4u/serengeti/io/sbdp_quiesce.c
index 2d6c28e1ee..c5d86e2fc8 100644
--- a/usr/src/uts/sun4u/serengeti/io/sbdp_quiesce.c
+++ b/usr/src/uts/sun4u/serengeti/io/sbdp_quiesce.c
@@ -844,7 +844,7 @@ sbdp_suspend(sbdp_sr_handle_t *srh)
}
mutex_enter(&cpu_lock);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
sbdp_stop_intr();
/*
diff --git a/usr/src/uts/sun4v/os/mpo.c b/usr/src/uts/sun4v/os/mpo.c
index 4bf7dea82d..ad0cf0e78a 100644
--- a/usr/src/uts/sun4v/os/mpo.c
+++ b/usr/src/uts/sun4v/os/mpo.c
@@ -220,7 +220,7 @@ static void
mpo_wr_lock()
{
mutex_enter(&cpu_lock);
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
mutex_exit(&cpu_lock);
}
diff --git a/usr/src/uts/sun4v/os/suspend.c b/usr/src/uts/sun4v/os/suspend.c
index c0a30218e5..e81eb001a9 100644
--- a/usr/src/uts/sun4v/os/suspend.c
+++ b/usr/src/uts/sun4v/os/suspend.c
@@ -389,7 +389,7 @@ update_cpu_mappings(void)
* inactive in their PGs and shouldn't be reactivated, so we must
* not call pg_cpu_inactive or pg_cpu_active for those CPUs.
*/
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
for (id = 0; id < NCPU; id++) {
if ((cp = cpu_get(id)) == NULL)
continue;
@@ -430,7 +430,7 @@ update_cpu_mappings(void)
* system, replace the bootstrapped PG structure with the
* initialized PG structure and call pg_cpu_active for each CPU.
*/
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
for (id = 0; id < NCPU; id++) {
if ((cp = cpu_get(id)) == NULL)
continue;
@@ -615,7 +615,7 @@ suspend_start(char *error_reason, size_t max_reason_len)
mutex_exit(&tod_lock);
/* Pause all other CPUs */
- pause_cpus(NULL);
+ pause_cpus(NULL, NULL);
DBG_PROM("suspend: CPUs paused\n");
/* Suspend cyclics */