https://git.reactos.org/?p=reactos.git;a=commitdiff;h=deb9c5416f493cdd0de9ce69ff7e39bffe7e34f7

commit deb9c5416f493cdd0de9ce69ff7e39bffe7e34f7
Author: Serge Gautherie <[email protected]>
AuthorDate: Mon Oct 23 21:18:27 2017 +0200

    CORE-13048. [I8042PRT] keyboard.c: Restore 1 "Irql =" (which was lost in 
r30000). (#63)
    
    [I8042PRT] Restore 1 "Irql =" (which was lost in r30000). CORE-13048
---
 drivers/input/i8042prt/keyboard.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/input/i8042prt/keyboard.c 
b/drivers/input/i8042prt/keyboard.c
index e007d289b8..198ec8f35d 100644
--- a/drivers/input/i8042prt/keyboard.c
+++ b/drivers/input/i8042prt/keyboard.c
@@ -369,7 +369,10 @@ i8042KbdDpcRoutine(
                DeviceExtension->KeyboardBuffer + KeysInBufferCopy,
                &KeysTransferred);
 
-       KeAcquireInterruptSpinLock(PortDeviceExtension->HighestDIRQLInterrupt);
+       /* Validate that the callback didn't change the Irql. */
+       ASSERT(KeGetCurrentIrql() == Irql);
+
+       Irql = 
KeAcquireInterruptSpinLock(PortDeviceExtension->HighestDIRQLInterrupt);
        DeviceExtension->KeysInBuffer -= KeysTransferred;
        KeReleaseInterruptSpinLock(PortDeviceExtension->HighestDIRQLInterrupt, 
Irql);
 }

Reply via email to