diff options
Diffstat (limited to 'usr/src/uts/sun4/os')
| -rw-r--r-- | usr/src/uts/sun4/os/intr.c | 6 | ||||
| -rw-r--r-- | usr/src/uts/sun4/os/mp_startup.c | 8 |
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); /* |
