Author: akhaldi
Date: Thu May 12 20:06:21 2016
New Revision: 71326
URL:
http://svn.reactos.org/svn/reactos?rev=71326&view=rev
Log:
[0.4.1] Merge the hal fix by Thomas in r71307. CORE-11123
Added:
branches/ros-branch-0_4_1/reactos/hal/halx86/up/pic.S
- copied unchanged from r71307, trunk/reactos/hal/halx86/up/pic.S
Modified:
branches/ros-branch-0_4_1/ (props changed)
branches/ros-branch-0_4_1/reactos/ (props changed)
branches/ros-branch-0_4_1/reactos/hal/halx86/pic.cmake
branches/ros-branch-0_4_1/reactos/hal/halx86/up/pic.c
Propchange: branches/ros-branch-0_4_1/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 12 20:06:21 2016
@@ -1 +1 @@
-/trunk:71217,71231,71245,71252,71255,71296,71309,71318
+/trunk:71217,71231,71245,71252,71255,71296,71307,71309,71318
Propchange: branches/ros-branch-0_4_1/reactos/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 12 20:06:21 2016
@@ -20,4 +20,4 @@
/branches/usb-bringup:51335,51337,51341-51343,51348,51350,51353,51355,51365-51369,51372,51384-54388,54396-54398,54736-54737,54752-54754,54756-54760,54762,54764-54765,54767-54768,54772,54774-54777,54781,54787,54790-54792,54797-54798,54806,54808,54834-54838,54843,54850,54852,54856,54858-54859
/branches/usb-bringup-trunk:55019-55543,55548-55554,55556-55567
/branches/wlan-bringup:54809-54998
-/trunk/reactos:71217,71231-71232,71245,71252,71262,71279,71296,71309,71318
+/trunk/reactos:71217,71231-71232,71245,71252,71262,71279,71296,71307,71309,71318
Modified: branches/ros-branch-0_4_1/reactos/hal/halx86/pic.cmake
URL:
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_1/reactos/hal/ha…
==============================================================================
--- branches/ros-branch-0_4_1/reactos/hal/halx86/pic.cmake [iso-8859-1] (original)
+++ branches/ros-branch-0_4_1/reactos/hal/halx86/pic.cmake [iso-8859-1] Thu May 12
20:06:21 2016
@@ -1,7 +1,8 @@
list(APPEND HAL_PIC_ASM_SOURCE
generic/systimer.S
- generic/trap.S)
+ generic/trap.S
+ up/pic.S)
list(APPEND HAL_PIC_SOURCE
generic/profil.c
Modified: branches/ros-branch-0_4_1/reactos/hal/halx86/up/pic.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_1/reactos/hal/ha…
==============================================================================
--- branches/ros-branch-0_4_1/reactos/hal/halx86/up/pic.c [iso-8859-1] (original)
+++ branches/ros-branch-0_4_1/reactos/hal/halx86/up/pic.c [iso-8859-1] Thu May 12 20:06:21
2016
@@ -11,6 +11,11 @@
#include <hal.h>
#define NDEBUG
#include <debug.h>
+
+VOID
+NTAPI
+HalpEndSoftwareInterrupt(IN KIRQL OldIrql,
+ IN PKTRAP_FRAME TrapFrame);
/* GLOBALS ********************************************************************/
@@ -263,7 +268,7 @@
* so it will always preempt until we reach PROFILE_LEVEL.
*/
0b00000000000000000001011111110000, /* IRQL 20 */
- 0b00000000000000000001001111110000, /* IRQL 20 */
+ 0b00000000000000000001001111110000, /* IRQL 21 */
0b00000000000000000001000111110000, /* IRQL 22 */
0b00000000000000000001000011110000, /* IRQL 23 */
0b00000000000000000001000001110000, /* IRQL 24 */
@@ -732,15 +737,17 @@
KeGetPcr()->IRR &= ~(1 << Irql);
}
-VOID
-NTAPI
-HalpEndSoftwareInterrupt(IN KIRQL OldIrql,
- IN PKTRAP_FRAME TrapFrame)
+PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY
+NTAPI
+HalpEndSoftwareInterrupt2(IN KIRQL OldIrql,
+ IN PKTRAP_FRAME TrapFrame)
{
ULONG PendingIrql, PendingIrqlMask, PendingIrqMask;
PKPCR Pcr = KeGetPcr();
PIC_MASK Mask;
+ UNREFERENCED_PARAMETER(TrapFrame);
+
/* Set old IRQL */
Pcr->Irql = OldIrql;
@@ -749,10 +756,10 @@
{
/* Check for pending software interrupts and compare with current IRQL */
PendingIrqlMask = Pcr->IRR & FindHigherIrqlMask[OldIrql];
- if (!PendingIrqlMask) return;
+ if (!PendingIrqlMask) return NULL;
/* Check for in-service delayed interrupt */
- if (Pcr->IrrActive & 0xFFFFFFF0) return;
+ if (Pcr->IrrActive & 0xFFFFFFF0) return NULL;
/* Check if pending IRQL affects hardware state */
BitScanReverse(&PendingIrql, PendingIrqlMask);
@@ -777,10 +784,11 @@
else
{
/* No need to loop checking for hardware interrupts */
- SWInterruptHandlerTable2[PendingIrql](TrapFrame);
- UNREACHABLE;
+ return SWInterruptHandlerTable2[PendingIrql];
}
}
+
+ return NULL;
}
/* EDGE INTERRUPT DISMISSAL FUNCTIONS *****************************************/