diff --git a/reactos/drivers/input/i8042prt/keyboard.c b/reactos/drivers/input/i8042prt/keyboard.c index 01784536f4c..b86c7d75d8a 100644 --- a/reactos/drivers/input/i8042prt/keyboard.c +++ b/reactos/drivers/input/i8042prt/keyboard.c @@ -467,11 +467,11 @@ i8042KbdDeviceControl( } } - Irp->IoStatus.Status = Status; - if (Status == STATUS_PENDING) - IoMarkIrpPending(Irp); - else + if (Status != STATUS_PENDING) + { + Irp->IoStatus.Status = Status; IoCompleteRequest(Irp, IO_NO_INCREMENT); + } return Status; } @@ -738,9 +738,11 @@ cleanup: } } - Irp->IoStatus.Status = Status; if (Status != STATUS_PENDING) + { + Irp->IoStatus.Status = Status; IoCompleteRequest(Irp, IO_NO_INCREMENT); + } return Status; } diff --git a/reactos/drivers/input/i8042prt/mouse.c b/reactos/drivers/input/i8042prt/mouse.c index 16ea8cd86f4..09516c1fe41 100644 --- a/reactos/drivers/input/i8042prt/mouse.c +++ b/reactos/drivers/input/i8042prt/mouse.c @@ -544,9 +544,11 @@ cleanup: } } - Irp->IoStatus.Status = Status; if (Status != STATUS_PENDING) + { + Irp->IoStatus.Status = Status; IoCompleteRequest(Irp, IO_NO_INCREMENT); + } return Status; }