Author: cgutman
Date: Sat Apr 11 00:04:08 2009
New Revision: 40447
URL:
http://svn.reactos.org/svn/reactos?rev=40447&view=rev
Log:
- MiniSendComplete acquires the adapter lock so release the lock before calling it
Modified:
trunk/reactos/drivers/network/ndis/ndis/protocol.c
Modified: trunk/reactos/drivers/network/ndis/ndis/protocol.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/ndis/ndis/…
==============================================================================
--- trunk/reactos/drivers/network/ndis/ndis/protocol.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/ndis/ndis/protocol.c [iso-8859-1] Sat Apr 11 00:04:08
2009
@@ -349,15 +349,15 @@
else
{
/* Send is called at DISPATCH_LEVEL for all serialized miniports */
- KeAcquireSpinLock(&Adapter->NdisMiniportBlock.Lock, &RaiseOldIrql);
for (i = 0; i < NumberOfPackets; i++)
{
+ KeAcquireSpinLock(&Adapter->NdisMiniportBlock.Lock,
&RaiseOldIrql);
NdisStatus =
(*Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.SendHandler)(
Adapter->NdisMiniportBlock.MiniportAdapterContext,
PacketArray[i], PacketArray[i]->Private.Flags);
+ KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, RaiseOldIrql);
if (NdisStatus != NDIS_STATUS_PENDING)
MiniSendComplete(Adapter, PacketArray[i], NdisStatus);
}
- KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, RaiseOldIrql);
}
}
}