:: commit 8ffa8e1a93f3fa1f8037d107cd1702b40b84d08f

mintsuki <mintsuki@protonmail.com> — 2024-07-12 04:50

parents: d65863b274

protos/limine: Do not uselessly allocate SMP stack for BSP

diff --git a/common/protos/limine.c b/common/protos/limine.c
index 501c270f..53a11ce3 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -1080,6 +1080,22 @@ FEAT_START
     }
 
     for (size_t i = 0; i < cpu_count; i++) {
+#if defined (__x86_64__) || defined (__i386__)
+        if (smp_info[i].lapic_id == bsp_lapic_id) {
+            continue;
+        }
+#elif defined (__aarch64__)
+        if (smp_info[i].mpidr == bsp_mpidr) {
+            continue;
+        }
+#elif defined (__riscv64)
+        if (smp_info[i].hartid == bsp_hartid) {
+            continue;
+        }
+#else
+#error Unknown architecture
+#endif
+
         void *cpu_stack = ext_mem_alloc(stack_size) + stack_size;
         smp_info[i].reserved = reported_addr(cpu_stack);
     }
tab: 248 wrap: offon