summaryrefslogtreecommitdiff
path: root/usr/src/uts/sun4/os
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/sun4/os')
-rw-r--r--usr/src/uts/sun4/os/intr.c6
-rw-r--r--usr/src/uts/sun4/os/mp_startup.c8
2 files changed, 12 insertions, 2 deletions
diff --git a/usr/src/uts/sun4/os/intr.c b/usr/src/uts/sun4/os/intr.c
index 3a7143115d..dfcbd991f7 100644
--- a/usr/src/uts/sun4/os/intr.c
+++ b/usr/src/uts/sun4/os/intr.c
@@ -23,7 +23,7 @@
* Use is subject to license terms.
*/
/*
- * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright 2019 Joyent, Inc.
*/
/*
* Copyright 2019 Peter Tribble.
@@ -326,7 +326,7 @@ siron_cpu_setup(cpu_setup_t what, int id, void *arg)
/*
* no_ivintr()
- * called by setvecint_tl1() through sys_trap()
+ * called by setvecint_tl1() through sys_trap()
* vector interrupt received but not valid or not
* registered in intr_vec_table
* considered as a spurious mondo interrupt
@@ -420,6 +420,7 @@ cpu_disable_intr(struct cpu *cp)
* function, since it checks for this in the cpu flags.
*/
cp->cpu_flags &= ~CPU_ENABLE;
+ ncpus_intr_enabled--;
intr_redist_all_cpus();
@@ -438,6 +439,7 @@ cpu_enable_intr(struct cpu *cp)
ASSERT(MUTEX_HELD(&cpu_lock));
cp->cpu_flags |= CPU_ENABLE;
+ ncpus_intr_enabled++;
intr_redist_all_cpus();
}
diff --git a/usr/src/uts/sun4/os/mp_startup.c b/usr/src/uts/sun4/os/mp_startup.c
index ae68a23f8b..8cf6e1fa81 100644
--- a/usr/src/uts/sun4/os/mp_startup.c
+++ b/usr/src/uts/sun4/os/mp_startup.c
@@ -24,6 +24,10 @@
* Use is subject to license terms.
*/
+/*
+ * Copyright 2019 Joyent, Inc.
+ */
+
#include <sys/sysmacros.h>
#include <sys/prom_plat.h>
#include <sys/prom_debug.h>
@@ -162,6 +166,10 @@ cold_flag_set(int cpuid)
ASSERT(MUTEX_HELD(&cpu_lock));
cp = cpu[cpuid];
+
+ if (!(cpu->cpu_flags & CPU_ENABLE))
+ ncpus_intr_enabled++;
+
cp->cpu_flags |= CPU_RUNNING | CPU_ENABLE | CPU_EXISTS;
cpu_add_active(cp);
/*