diff --git a/drivers/input/i8042prt/keyboard.c b/drivers/input/i8042prt/keyboard.c index e007d289b87..198ec8f35d7 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); }