[NTOS] Push vector as error code on the stack in KiUnexpectedInterrupt* instead of...
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 13 Feb 2010 02:01:33 +0000 (02:01 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 13 Feb 2010 02:01:33 +0000 (02:01 +0000)
svn path=/trunk/; revision=45590

reactos/ntoskrnl/ke/i386/irqobj.c
reactos/ntoskrnl/ke/i386/trap.s

index 5543f93..1017013 100644 (file)
@@ -168,7 +168,7 @@ KiUnexpectedInterruptTailHandler(IN PKTRAP_FRAME TrapFrame)
     KeGetCurrentPrcb()->InterruptCount++;
     
     /* Start the interrupt */
-    if (HalBeginSystemInterrupt(HIGH_LEVEL, TrapFrame->Eax, &OldIrql))
+    if (HalBeginSystemInterrupt(HIGH_LEVEL, TrapFrame->ErrCode, &OldIrql))
     {
         /* Warn user */
         DPRINT1("\n\x7\x7!!! Unexpected Interrupt %02lx !!!\n");
index 07e1161..5f24877 100644 (file)
@@ -20,7 +20,7 @@ ENDM
 MACRO(GENERATE_INT_HANDLER, Number)
 .func KiUnexpectedInterrupt&Number
 _KiUnexpectedInterrupt&Number:
-    mov eax, PRIMARY_VECTOR_BASE + Number
+    push PRIMARY_VECTOR_BASE + Number
     jmp _KiEndUnexpectedRange@0
 .endfunc
 ENDM
@@ -103,7 +103,7 @@ TRAP_ENTRY KiGetTickCount, KI_PUSH_FAKE_ERROR_CODE
 TRAP_ENTRY KiCallbackReturn, KI_PUSH_FAKE_ERROR_CODE
 TRAP_ENTRY KiRaiseAssertion, KI_PUSH_FAKE_ERROR_CODE
 TRAP_ENTRY KiDebugService, KI_PUSH_FAKE_ERROR_CODE
-TRAP_ENTRY KiUnexpectedInterruptTail, KI_PUSH_FAKE_ERROR_CODE
+TRAP_ENTRY KiUnexpectedInterruptTail, 0
 
 ALIGN 4
 EXTERN @KiInterruptTemplateHandler@8