mirror of
https://github.com/reactos/reactos.git
synced 2025-07-24 18:43:37 +00:00
[NTOS] Push vector as error code on the stack in KiUnexpectedInterrupt* instead of putting it into eax, because we must not clobber it. Spotted by jcatena.
svn path=/trunk/; revision=45590
This commit is contained in:
parent
1ce3458da7
commit
a7994c98a5
2 changed files with 3 additions and 3 deletions
|
@ -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");
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue