mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 05:12:55 +00:00
[NTOSKRNL/AMD64]
- Fix KiGeneralProtectionFault - Don't bugcheck in KiUnexpectedInterrupt - Remove debugprint in KiEndInterrupt, and instead assert, its called from the clock interrupt, since thats the only instance we handle right now svn path=/trunk/; revision=53720
This commit is contained in:
parent
4dfa3c52a3
commit
331009e07d
3 changed files with 14 additions and 10 deletions
|
@ -238,7 +238,8 @@ FORCEINLINE
|
||||||
KiEndInterrupt(IN KIRQL Irql,
|
KiEndInterrupt(IN KIRQL Irql,
|
||||||
IN PKTRAP_FRAME TrapFrame)
|
IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
DbgPrint("KiEndInterrupt is unimplemented\n");
|
/* Make sure this is from the clock handler */
|
||||||
|
ASSERT(TrapFrame->ErrorCode == 0xc10c4);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
|
|
@ -80,6 +80,9 @@ KiSystemStartupBootStack(VOID)
|
||||||
/* Initialize PRCB pool lookaside pointers */
|
/* Initialize PRCB pool lookaside pointers */
|
||||||
ExInitPoolLookasidePointers();
|
ExInitPoolLookasidePointers();
|
||||||
|
|
||||||
|
/* Lower to APC_LEVEL */
|
||||||
|
KeLowerIrql(APC_LEVEL);
|
||||||
|
|
||||||
/* Check if this is the boot cpu */
|
/* Check if this is the boot cpu */
|
||||||
if (Prcb->Number == 0)
|
if (Prcb->Number == 0)
|
||||||
{
|
{
|
||||||
|
@ -153,9 +156,6 @@ KiInitializeKernel(IN PKPROCESS InitProcess,
|
||||||
/* Set the current MP Master KPRCB to the Boot PRCB */
|
/* Set the current MP Master KPRCB to the Boot PRCB */
|
||||||
Prcb->MultiThreadSetMaster = Prcb;
|
Prcb->MultiThreadSetMaster = Prcb;
|
||||||
|
|
||||||
/* Lower to APC_LEVEL */
|
|
||||||
KeLowerIrql(APC_LEVEL);
|
|
||||||
|
|
||||||
/* Initialize Bugcheck Callback data */
|
/* Initialize Bugcheck Callback data */
|
||||||
InitializeListHead(&KeBugcheckCallbackListHead);
|
InitializeListHead(&KeBugcheckCallbackListHead);
|
||||||
InitializeListHead(&KeBugcheckReasonCallbackListHead);
|
InitializeListHead(&KeBugcheckReasonCallbackListHead);
|
||||||
|
|
|
@ -637,12 +637,13 @@ PUBLIC KiGeneralProtectionFault
|
||||||
/* We have an error code */
|
/* We have an error code */
|
||||||
ENTER_TRAP_FRAME (TRAPFLAG_HAS_ERRORCODE OR TRAPFLAG_ALL)
|
ENTER_TRAP_FRAME (TRAPFLAG_HAS_ERRORCODE OR TRAPFLAG_ALL)
|
||||||
|
|
||||||
TRAPINFO KiGeneralProtectionFault
|
//TRAPINFO KiGeneralProtectionFault
|
||||||
mov rdx, [rbp + KTRAP_FRAME_Rip]
|
//mov rdx, [rbp + KTRAP_FRAME_Rip]
|
||||||
lea rcx, MsgGeneralProtFault[rip]
|
//lea rcx, MsgGeneralProtFault[rip]
|
||||||
call qword ptr FrLdrDbgPrint[rip]
|
//call qword ptr FrLdrDbgPrint[rip]
|
||||||
|
|
||||||
/* Call the C handler */
|
/* Call the C handler */
|
||||||
|
mov rcx, rbp
|
||||||
call KiGeneralProtectionFaultHandler
|
call KiGeneralProtectionFaultHandler
|
||||||
|
|
||||||
/* Check for success */
|
/* Check for success */
|
||||||
|
@ -890,9 +891,9 @@ PUBLIC KiIpiInterrupt
|
||||||
PUBLIC KiUnexpectedInterrupt
|
PUBLIC KiUnexpectedInterrupt
|
||||||
.PROC KiUnexpectedInterrupt
|
.PROC KiUnexpectedInterrupt
|
||||||
/* The error code is the vector */
|
/* The error code is the vector */
|
||||||
cli
|
|
||||||
ENTER_TRAP_FRAME (TRAPFLAG_HAS_ERRORCODE OR TRAPFLAG_ALL)
|
ENTER_TRAP_FRAME (TRAPFLAG_HAS_ERRORCODE OR TRAPFLAG_ALL)
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* Set bugcheck parameters */
|
/* Set bugcheck parameters */
|
||||||
mov ecx, TRAP_CAUSE_UNKNOWN
|
mov ecx, TRAP_CAUSE_UNKNOWN
|
||||||
mov rdx, [rbp + KTRAP_FRAME_ErrorCode] // the vector
|
mov rdx, [rbp + KTRAP_FRAME_ErrorCode] // the vector
|
||||||
|
@ -901,8 +902,10 @@ PUBLIC KiUnexpectedInterrupt
|
||||||
sub rsp, 8
|
sub rsp, 8
|
||||||
mov [rbp + KTRAP_FRAME_P5 + 8], rbp // trap frame
|
mov [rbp + KTRAP_FRAME_P5 + 8], rbp // trap frame
|
||||||
call KeBugCheckWithTf
|
call KeBugCheckWithTf
|
||||||
|
|
||||||
jmp $
|
jmp $
|
||||||
|
#endif
|
||||||
|
LEAVE_TRAP_FRAME;
|
||||||
|
iretq
|
||||||
.ENDP KiUnexpectedInterrupt
|
.ENDP KiUnexpectedInterrupt
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue