int nr;
{
/* The system has run aground of a fatal kernel error. Terminate execution. */
- if (minix_panicing ++) return; /* prevent recursive panics */
+if (!minix_panicing++) {
if (mess != NULL) {
kprintf("kernel panic: %s", mess);
kprintf("\n");
}
+ kprintf("proc_ptr %s / %d\n", proc_ptr->p_name, proc_ptr->p_endpoint);
kprintf("kernel stacktrace: ");
util_stacktrace();
+}
/* Abort MINIX. */
minix_shutdown(NULL);
kmess.km_next = (kmess.km_next + 1) % _KMESS_BUF_SIZE;
} else {
int p, outprocs[] = OUTPUT_PROCS_ARRAY;
- if(do_serial_debug) return;
- if(minix_panicing || do_serial_debug) return;
- for(p = 0; outprocs[p] != NONE; p++) {
- if(isokprocn(outprocs[p]) && !isemptyn(outprocs[p])) {
- send_sig(outprocs[p], SIGKMESS);
- }
- }
+ if(!(minix_panicing || do_serial_debug)) {
+ for(p = 0; outprocs[p] != NONE; p++) {
+ if(isokprocn(outprocs[p]) && !isemptyn(outprocs[p])) {
+ send_sig(outprocs[p], SIGKMESS);
+ }
+ }
+ }
}
+ return;
}