diff options
Diffstat (limited to 'lib/sbi/sbi_init.c')
-rw-r--r-- | lib/sbi/sbi_init.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c index dcca2c8..ffa214c 100644 --- a/lib/sbi/sbi_init.c +++ b/lib/sbi/sbi_init.c @@ -442,10 +442,12 @@ static void __noreturn init_warmboot(struct sbi_scratch *scratch, u32 hartid) if (hstate < 0) sbi_hart_hang(); - if (hstate == SBI_HSM_STATE_SUSPENDED) + if (hstate == SBI_HSM_STATE_SUSPENDED) { init_warm_resume(scratch, hartid); - else + } else { + sbi_ipi_raw_clear(hartid); init_warm_startup(scratch, hartid); + } } static atomic_t coldboot_lottery = ATOMIC_INITIALIZER(0); |