Run the kernel monitor on the proper core
authorKevin Klues <klueska@ros-dev.(none)>
Wed, 14 Apr 2010 04:50:42 +0000 (21:50 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:42 +0000 (17:35 -0700)
Since we introduced the CONFIG option to run a core dedicated
to the kernel monitor, we need to make sure that is the only one
that prints to the terminal controlled by the kernel.

kern/src/init.c

index 889974a..9f317b1 100644 (file)
@@ -111,10 +111,15 @@ void _panic(const char *file, int line, const char *fmt,...)
 
 dead:
        /* break into the kernel monitor, if we're core 0 */
+#ifdef __CONFIG_DEDICATED_MONITOR__
+       if (core_id() != 2) {
+#else
        if (core_id()) {
+#endif
                smp_idle();
                panic("should never see me");
        }
+
        while (1)
                monitor(NULL);
 }