aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorOliver O'Halloran <oohall@gmail.com>2021-06-25 11:49:32 +0530
committerVasant Hegde <hegdevasant@linux.vnet.ibm.com>2021-06-30 15:05:55 +0530
commitd8d56c0d03987c5ed26807b9329506826391221b (patch)
tree8c6d72a1eff6566773a5ab82e09f57c9f72b7de8 /core
parent1848a7212a3275a550ddc808939d1be98830bf71 (diff)
downloadskiboot-d8d56c0d03987c5ed26807b9329506826391221b.zip
skiboot-d8d56c0d03987c5ed26807b9329506826391221b.tar.gz
skiboot-d8d56c0d03987c5ed26807b9329506826391221b.tar.bz2
fast-reboot: Fix the bonus cleanup_cpu_state()
Signed-off-by: Oliver O'Halloran <oohall@gmail.com> Signed-off-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.ibm.com> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Diffstat (limited to 'core')
-rw-r--r--core/fast-reboot.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/core/fast-reboot.c b/core/fast-reboot.c
index 0377754..ac9b3b2 100644
--- a/core/fast-reboot.c
+++ b/core/fast-reboot.c
@@ -264,8 +264,11 @@ static void cleanup_cpu_state(void)
xive_cpu_reset();
/* Per core cleanup */
- if (cpu_is_thread0(cpu)) {
- /* XXX should reset the SLW SPR restore values*/
+ if (cpu_is_thread0(cpu) || cpu_is_core_chiplet_primary(cpu)) {
+ /* Shared SPRs whacked back to normal */
+
+ /* XXX Update the SLW copies ! Also dbl check HIDs etc... */
+ init_shared_sprs();
if (proc_gen == proc_gen_p8) {
/* If somebody was in fast_sleep, we may have a
@@ -286,6 +289,11 @@ static void cleanup_cpu_state(void)
/* And we might have lost TB sync */
chiptod_wakeup_resync();
}
+
+ /* Per-thread additional cleanup */
+ init_replicated_sprs();
+
+ // XXX Cleanup SLW, check HIDs ...
}
/* Entry from asm after a fast reset */