summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--console.c3
-rw-r--r--proc.c8
2 files changed, 4 insertions, 7 deletions
diff --git a/console.c b/console.c
index f7e1e73..da28f9f 100644
--- a/console.c
+++ b/console.c
@@ -111,7 +111,8 @@ panic(char *s)
cli();
cons.locking = 0;
- cprintf("cpu %d: panic: ", cpuid());
+ // use lapiccpunum so that we can call panic from mycpu()
+ cprintf("cpu %d: panic: ", lapiccpunum());
cprintf(s);
cprintf("\n");
getcallerpcs(&s, pcs);
diff --git a/proc.c b/proc.c
index 9f500f2..ca343cb 100644
--- a/proc.c
+++ b/proc.c
@@ -36,12 +36,8 @@ cpuid() {
struct cpu*
mycpu(void)
{
- if(readeflags()&FL_IF){
- // Would prefer to panic but panic calls mycpu().
- cprintf("mycpu called from %x with interrupts enabled\n",
- __builtin_return_address(0));
- }
-
+ if(readeflags()&FL_IF)
+ panic("mycpu called with interrupts enabled\n");
return &cpus[lapiccpunum()];
}