- Fix some IDR->IRR bugs.
authorAlex Ionescu <aionescu@gmail.com>
Wed, 23 Aug 2006 06:42:25 +0000 (06:42 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Wed, 23 Aug 2006 06:42:25 +0000 (06:42 +0000)
- Enable 2ndEntry for HalpEndSoftwareInterrupt (pending interrupt inside an interrupt).

svn path=/trunk/; revision=23664

reactos/hal/halx86/generic/irq.S

index 9b05cbd..e3a3bc6 100644 (file)
@@ -387,18 +387,16 @@ SkipMask2:
 \r
     /* Set IRQL and check if there are pending software interrupts */\r
     mov [fs:KPCR_IRQL], cl\r
-#if 0\r
     mov eax, [fs:KPCR_IRR]\r
     mov al, _SoftIntByteTable[eax]\r
     cmp al, cl\r
-    ja DoCall\r
-#endif\r
+    //ja DoCall\r
     ret 8\r
 \r
 DoCall:\r
 \r
     /* There are pending softwate interrupts, call their handlers */\r
-    add esp, 8\r
+    add esp, 12\r
     jmp SoftIntHandlerTable2[eax*4]\r
 .endfunc\r
 \r
@@ -627,12 +625,10 @@ _HalpEndSoftwareInterrupt@4:
 SoftwareInt:\r
     /* Check if there are pending software interrupts */\r
     mov [fs:KPCR_IRQL], cl\r
-#if 0\r
-    mov eax, [fs:KPCR_IDR]\r
+    mov eax, [fs:KPCR_IRR]\r
     mov al, _SoftIntByteTable[eax]\r
     cmp al, cl\r
     ja DoCall2\r
-#endif\r
     ret 4\r
 \r
 DoCall2:\r