:: commit 198bd3b8b013bfb6d34f33bab07c20fc7fa7fdf2

Mintsuki <mintsuki@protonmail.com> — 2026-04-01 20:45

parents: 947a9b2c3a

sys/smp: Use fence instruction for RISC-V AP trampoline store ordering

diff --git a/common/sys/smp.c b/common/sys/smp.c
index 2e6724d0..7393218b 100644
--- a/common/sys/smp.c
+++ b/common/sys/smp.c
@@ -830,7 +830,7 @@ static bool smp_start_ap(size_t hartid, size_t satp, struct limine_mp_info *info
     passed_info.smp_tpl_info_struct = (uint64_t)info_struct;
     passed_info.smp_tpl_hhdm_offset = hhdm_offset;
 
-    asm volatile ("" ::: "memory");
+    asm volatile ("fence w,w" ::: "memory");
 
     struct sbiret ret = sbi_hart_start(hartid, (size_t)smp_trampoline_start, (size_t)&passed_info);
     if (ret.error != SBI_SUCCESS)
tab: 248 wrap: offon