[ros-diffs] [cgutman] 37478: - Acquire the AddrFile lock before removing an irp from the queue

cgutman at svn.reactos.org cgutman at svn.reactos.org
Thu Nov 20 00:55:58 CET 2008


Author: cgutman
Date: Wed Nov 19 17:55:57 2008
New Revision: 37478

URL: http://svn.reactos.org/svn/reactos?rev=37478&view=rev
Log:
 - Acquire the AddrFile lock before removing an irp from the queue

Modified:
    branches/aicom-network-fixes/lib/drivers/ip/transport/datagram/datagram.c

Modified: branches/aicom-network-fixes/lib/drivers/ip/transport/datagram/datagram.c
URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/lib/drivers/ip/transport/datagram/datagram.c?rev=37478&r1=37477&r2=37478&view=diff
==============================================================================
--- branches/aicom-network-fixes/lib/drivers/ip/transport/datagram/datagram.c [iso-8859-1] (original)
+++ branches/aicom-network-fixes/lib/drivers/ip/transport/datagram/datagram.c [iso-8859-1] Wed Nov 19 17:55:57 2008
@@ -16,9 +16,12 @@
 {
     PLIST_ENTRY ListEntry;
     PDATAGRAM_RECEIVE_REQUEST ReceiveRequest;
+    KIRQL OldIrql;
 
     TI_DbgPrint(MAX_TRACE, ("Called (Cancel IRP %08x for file %08x).\n",
                             Irp, AddrFile));
+
+    KeAcquireSpinLock(&AddrFile->Lock, &OldIrql);
 
     for( ListEntry = AddrFile->ReceiveQueue.Flink; 
          ListEntry != &AddrFile->ReceiveQueue;
@@ -36,6 +39,8 @@
             break;
         }
     }
+
+    KeReleaseSpinLock(&AddrFile->Lock, OldIrql);
 
     TI_DbgPrint(MAX_TRACE, ("Done.\n"));
 }



More information about the Ros-diffs mailing list