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

commit 56cc2ca11592fd2846c1daa6ca7414aa7bc71f8a
Author: Amine Khaldi <[email protected]>
AuthorDate: Tue Oct 31 15:44:39 2017 +0100

    [SERIAL] Fix Serial{Get,Clear}PerfStats() to become proper 
PKSYNCHRONIZE_ROUTINE routines and get rid of the related casts. Brought to you 
by Thomas Faber. CORE-11799 (#94)
---
 drivers/serial/serial/devctrl.c | 57 +++++++++++++++++++++--------------------
 1 file changed, 29 insertions(+), 28 deletions(-)

diff --git a/drivers/serial/serial/devctrl.c b/drivers/serial/serial/devctrl.c
index 189f97eba2..74b81395c3 100644
--- a/drivers/serial/serial/devctrl.c
+++ b/drivers/serial/serial/devctrl.c
@@ -158,36 +158,37 @@ SerialSetLineControl(
        return Status;
 }
 
-static BOOLEAN
-SerialClearPerfStats(
-       IN PSERIAL_DEVICE_EXTENSION DeviceExtension)
+static
+BOOLEAN
+NTAPI
+SerialClearPerfStats(IN PVOID SynchronizeContext)
 {
-       ASSERT(DeviceExtension);
-
-       RtlZeroMemory(&DeviceExtension->SerialPerfStats, 
sizeof(SERIALPERF_STATS));
-       DeviceExtension->BreakInterruptErrorCount = 0;
-       return TRUE;
+    PSERIAL_DEVICE_EXTENSION DeviceExtension = SynchronizeContext;
+    ASSERT(DeviceExtension);
+    RtlZeroMemory(&DeviceExtension->SerialPerfStats, sizeof(SERIALPERF_STATS));
+    DeviceExtension->BreakInterruptErrorCount = 0;
+    return TRUE;
 }
 
-static BOOLEAN
-SerialGetPerfStats(IN PIRP pIrp)
+static
+BOOLEAN
+NTAPI
+SerialGetPerfStats(IN PVOID SynchronizeContext)
 {
-       PSERIAL_DEVICE_EXTENSION pDeviceExtension;
-
-       ASSERT(pIrp);
-       pDeviceExtension = (PSERIAL_DEVICE_EXTENSION)
-               
IoGetCurrentIrpStackLocation(pIrp)->DeviceObject->DeviceExtension;
-
-       /*
-        * we assume buffer is big enough to hold SerialPerfStats structure
-        * caller must verify this
-        */
-       RtlCopyMemory(
-               pIrp->AssociatedIrp.SystemBuffer,
-               &pDeviceExtension->SerialPerfStats,
-               sizeof(SERIALPERF_STATS)
-       );
-       return TRUE;
+    PIRP pIrp = SynchronizeContext;
+    PSERIAL_DEVICE_EXTENSION pDeviceExtension;
+
+    ASSERT(pIrp);
+    pDeviceExtension = 
IoGetCurrentIrpStackLocation(pIrp)->DeviceObject->DeviceExtension;
+
+    /*
+    * we assume buffer is big enough to hold SerialPerfStats structure
+    * caller must verify this
+    */
+    RtlCopyMemory(pIrp->AssociatedIrp.SystemBuffer,
+                  &pDeviceExtension->SerialPerfStats,
+                  sizeof(SERIALPERF_STATS));
+    return TRUE;
 }
 
 static NTSTATUS
@@ -309,7 +310,7 @@ SerialDeviceControl(
                        TRACE_(SERIAL, "IOCTL_SERIAL_CLEAR_STATS\n");
                        KeSynchronizeExecution(
                                DeviceExtension->Interrupt,
-                               (PKSYNCHRONIZE_ROUTINE)SerialClearPerfStats,
+                               SerialClearPerfStats,
                                DeviceExtension);
                        Status = STATUS_SUCCESS;
                        break;
@@ -519,7 +520,7 @@ SerialDeviceControl(
                        else
                        {
                                
KeSynchronizeExecution(DeviceExtension->Interrupt,
-                                       
(PKSYNCHRONIZE_ROUTINE)SerialGetPerfStats, Irp);
+                                       SerialGetPerfStats, Irp);
                                Information = sizeof(SERIALPERF_STATS);
                                Status = STATUS_SUCCESS;
                        }

Reply via email to