Page MenuHomeFreeBSD

D23276.id67054.diff
No OneTemporary

D23276.id67054.diff

Index: head/sys/x86/x86/mp_x86.c
===================================================================
--- head/sys/x86/x86/mp_x86.c
+++ head/sys/x86/x86/mp_x86.c
@@ -1092,13 +1092,12 @@
static void
smp_after_idle_runnable(void *arg __unused)
{
- struct thread *idle_td;
+ struct pcpu *pc;
int cpu;
for (cpu = 1; cpu < mp_ncpus; cpu++) {
- idle_td = pcpu_find(cpu)->pc_idlethread;
- while (atomic_load_int(&idle_td->td_lastcpu) == NOCPU &&
- atomic_load_int(&idle_td->td_oncpu) == NOCPU)
+ pc = pcpu_find(cpu);
+ while (atomic_load_ptr(&pc->pc_curthread) == (uintptr_t)NULL)
cpu_spinwait();
kmem_free((vm_offset_t)bootstacks[cpu], kstack_pages *
PAGE_SIZE);

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 21, 10:32 PM (18 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25814097
Default Alt Text
D23276.id67054.diff (688 B)

Event Timeline