From 5d0fe3445bbe19b85c32ed066b134d7e6ad8cc9d Mon Sep 17 00:00:00 2001 From: rsc Date: Wed, 8 Aug 2007 09:10:16 +0000 Subject: [PATCH] more bugs --- BUGS | 7 ------- main.c | 6 +++--- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/BUGS b/BUGS index 509b414..167f5c5 100644 --- a/BUGS +++ b/BUGS @@ -4,13 +4,6 @@ index: mmu.h: funny \ alignment in mmu.h -main.c: - should use static int bcpu to avoid having live - stack variable across the asm volatile that - changes %esp and %ebp. - - cpus[0] -> cpus[bcpu] - proc.c: as a consequence of the implementation of proc_kill, any loop calling sleep should check for p->killed diff --git a/main.c b/main.c index ad0c9c2..0d2a017 100644 --- a/main.c +++ b/main.c @@ -23,7 +23,7 @@ void main0(void) { int i; - int bcpu; + static int bcpu; // cannot be on stack struct proc *p; // clear BSS @@ -37,8 +37,8 @@ main0(void) bcpu = mp_bcpu(); // switch to bootstrap processor's stack - asm volatile("movl %0, %%esp" : : "r" (cpus[0].mpstack + MPSTACK - 32)); - asm volatile("movl %0, %%ebp" : : "r" (cpus[0].mpstack + MPSTACK)); + asm volatile("movl %0, %%esp" : : "r" (cpus[bcpu].mpstack + MPSTACK - 32)); + asm volatile("movl %0, %%ebp" : : "r" (cpus[bcpu].mpstack + MPSTACK)); lapic_init(bcpu);