summaryrefslogtreecommitdiff
path: root/trap.c
diff options
context:
space:
mode:
authorrtm <rtm>2006-08-15 22:18:20 +0000
committerrtm <rtm>2006-08-15 22:18:20 +0000
commit350e63f7a9b1be695c0cf69e380bd96733524f25 (patch)
tree782259566c4596eef115590ff3e054fc7c5f3718 /trap.c
parent69332d1918fda38b25fc3ec8c786d16bb17e9e68 (diff)
downloadxv6-labs-350e63f7a9b1be695c0cf69e380bd96733524f25.tar.gz
xv6-labs-350e63f7a9b1be695c0cf69e380bd96733524f25.tar.bz2
xv6-labs-350e63f7a9b1be695c0cf69e380bd96733524f25.zip
no more proc[] entry per cpu for idle loop
each cpu[] has its own gdt and tss no per-proc gdt or tss, re-write cpu's in scheduler (you win, cliff) main0() switches to cpu[0].mpstack
Diffstat (limited to 'trap.c')
-rw-r--r--trap.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/trap.c b/trap.c
index 99aaa70..2bb3e9e 100644
--- a/trap.c
+++ b/trap.c
@@ -41,8 +41,8 @@ trap(struct trapframe *tf)
panic("interrupt while holding a lock");
}
- if(cpu() == 1 && curproc[cpu()] == 0){
- if(&tf < cpus[cpu()].mpstack || &tf > cpus[cpu()].mpstack + 512){
+ if(curproc[cpu()] == 0){
+ if(&tf < cpus[cpu()].mpstack || &tf > cpus[cpu()].mpstack + MPSTACK){
cprintf("&tf %x mpstack %x\n", &tf, cpus[cpu()].mpstack);
panic("trap cpu stack");
}
@@ -125,7 +125,8 @@ trap(struct trapframe *tf)
return;
}
- cprintf("trap %d\n", v);
+ cprintf("trap %d from cpu %d eip %x\n", v, cpu(), tf->eip);
+ panic("trap");
return;
}