aboutsummaryrefslogtreecommitdiff
path: root/core/direct-controls.c
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2017-11-29 15:36:53 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-12-03 21:49:12 -0600
commit1949c768eba6387d73ec5e21da1f90d1fde2047c (patch)
tree3b50f8b6539dbb773e157416edc404d74be26eb8 /core/direct-controls.c
parentbe43a0489e06f46ff645d9c88e28d75f6bf6ea1b (diff)
downloadskiboot-1949c768eba6387d73ec5e21da1f90d1fde2047c.zip
skiboot-1949c768eba6387d73ec5e21da1f90d1fde2047c.tar.gz
skiboot-1949c768eba6387d73ec5e21da1f90d1fde2047c.tar.bz2
direct-controls: change p8_sreset_all_others sequence
Change the p8_sreset_all_others sequence from prenap all, sreset all; to prenap, sreset all. This makes it more suitable to fit the direct controls APIs, which does not expose "prenap". Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core/direct-controls.c')
-rw-r--r--core/direct-controls.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/core/direct-controls.c b/core/direct-controls.c
index 2f3c18d..658729f 100644
--- a/core/direct-controls.c
+++ b/core/direct-controls.c
@@ -251,20 +251,15 @@ static void p8_sreset_all_others(void)
{
struct cpu_thread *cpu;
- prlog(PR_DEBUG, "RESET: Pre-napping all threads but one...\n");
-
- /* Put everybody in pre-nap except myself */
- for_each_ungarded_cpu(cpu) {
- if (cpu != this_cpu())
- p8_set_direct_ctl(cpu, P8_DIRECT_CTL_PRENAP);
- }
-
prlog(PR_DEBUG, "RESET: Resetting all threads but one...\n");
/* Reset everybody except my own core threads */
for_each_ungarded_cpu(cpu) {
- if (cpu != this_cpu())
- p8_set_direct_ctl(cpu, P8_DIRECT_CTL_SRESET);
+ if (cpu == this_cpu())
+ continue;
+
+ p8_set_direct_ctl(cpu, P8_DIRECT_CTL_PRENAP);
+ p8_set_direct_ctl(cpu, P8_DIRECT_CTL_SRESET);
}
}