Kernel/debug - Panic to VT for the first nested panic
authorJohn Hodge <[email protected]>
Tue, 22 Jan 2013 09:25:30 +0000 (17:25 +0800)
committerJohn Hodge <[email protected]>
Tue, 22 Jan 2013 09:25:30 +0000 (17:25 +0800)
KernelLand/Kernel/debug.c

index 6132bd9..cb11f5f 100644 (file)
@@ -39,7 +39,10 @@ static void Debug_Putchar(char ch)
 {
        Debug_PutCharDebug(ch);
        
-       if( !gbDebug_IsKPanic )
+       if( gbDebug_IsKPanic )
+               KernelPanic_PutChar(ch);
+
+       if( gbDebug_IsKPanic < 2 )
        {
                if(gbInPutChar) return ;
                gbInPutChar = 1;
@@ -47,8 +50,6 @@ static void Debug_Putchar(char ch)
                        VFS_Write(giDebug_KTerm, 1, &ch);
                gbInPutChar = 0;
        }
-       else
-               KernelPanic_PutChar(ch);
        
        if( gbSendNetworkDebug )
        {
@@ -75,7 +76,7 @@ static void Debug_Puts(int UseKTerm, const char *Str)
                IPStack_SendDebugText(Str);
 
        // Output to the kernel terminal
-       if( UseKTerm && !gbDebug_IsKPanic && giDebug_KTerm != -1)
+       if( UseKTerm && gbDebug_IsKPanic < 2 && giDebug_KTerm != -1)
        {
                if(gbInPutChar) return ;
                gbInPutChar = 1;
@@ -114,7 +115,7 @@ void Debug_KernelPanic(void)
        #if LOCK_DEBUG_OUTPUT
        SHORTREL(&glDebug_Lock);
        #endif
-       gbDebug_IsKPanic = 1;
+       gbDebug_IsKPanic ++;
        KernelPanic_SetMode();
 }
 

UCC git Repository :: git.ucc.asn.au