diff --git a/kernel/console.c b/kernel/console.c index 2b1ed3c..1885593 100644 --- a/kernel/console.c +++ b/kernel/console.c @@ -66,6 +66,12 @@ int consolewrite(int user_src, uint64 src, int n) { int i; + extern volatile int panicked; // from printf.c + + if(panicked){ + for(;;) + ; + } acquire(&cons.lock); for(i = 0; i < n; i++){ diff --git a/kernel/printf.c b/kernel/printf.c index 777cc5f..1a83284 100644 --- a/kernel/printf.c +++ b/kernel/printf.c @@ -121,7 +121,7 @@ panic(char *s) printf("panic: "); printf(s); printf("\n"); - panicked = 1; // freeze other CPUs + panicked = 1; // freeze output from other CPUs for(;;) ; }