[ros-diffs] [tkreuzer] 45185: [NTOS] - Fix bugcheck paramters in KiGeneralProtectionFault - Disable x87 fpu exceptions

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Thu Jan 21 19:00:23 CET 2010


Author: tkreuzer
Date: Thu Jan 21 19:00:23 2010
New Revision: 45185

URL: http://svn.reactos.org/svn/reactos?rev=45185&view=rev
Log:
[NTOS]
- Fix bugcheck paramters in KiGeneralProtectionFault
- Disable x87 fpu exceptions

Modified:
    branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c
    branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c?rev=45185&r1=45184&r2=45185&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c [iso-8859-1] Thu Jan 21 19:00:23 2010
@@ -179,6 +179,11 @@
 
     /* Disable fpu monitoring */
     __writecr0(__readcr0() & ~CR0_MP);
+
+    /* Disable x87 fpu exceptions */
+    __writecr0(__readcr0() & ~CR0_NE);
+    
+    asm volatile ("fninit\n");
 }
 
 VOID

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S?rev=45185&r1=45184&r2=45185&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S [iso-8859-1] Thu Jan 21 19:00:23 2010
@@ -588,12 +588,11 @@
     /* Bugcheck */
     mov ecx, UNEXPECTED_KERNEL_MODE_TRAP
     mov rdx, 0x0000D // EXCEPTION_GP_FAULT
-    xor rdx, rdx
     xor r8, r8
-    xor r9, r9 // Reserved
-    mov [rbp + KTRAP_FRAME_P5], rbp // trap frame
+    mov r9, [rbp + KTRAP_FRAME_ErrorCode] // error code
+    sub rsp, 8
+    mov [rsp + KTRAP_FRAME_P5+8], rbp // trap frame
     call _KeBugCheckWithTf
-
 
 
 KiGpfPopSegDs:




More information about the Ros-diffs mailing list