Author: cgutman
Date: Mon Aug 11 10:32:45 2008
New Revision: 35279
URL:
http://svn.reactos.org/svn/reactos?rev=35279&view=rev
Log:
- Only call LockBuffers() if we must
Modified:
branches/aicom-network-fixes/drivers/network/afd/afd/read.c
branches/aicom-network-fixes/drivers/network/afd/afd/write.c
Modified: branches/aicom-network-fixes/drivers/network/afd/afd/read.c
URL:
http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/net…
==============================================================================
--- branches/aicom-network-fixes/drivers/network/afd/afd/read.c [iso-8859-1] (original)
+++ branches/aicom-network-fixes/drivers/network/afd/afd/read.c [iso-8859-1] Mon Aug 11
10:32:45 2008
@@ -573,18 +573,18 @@
AFD_DbgPrint(MID_TRACE,("Recv flags %x\n", RecvReq->AfdFlags));
- RecvReq->BufferArray = LockBuffers( RecvReq->BufferArray,
- RecvReq->BufferCount,
- RecvReq->Address,
- RecvReq->AddressLength,
- TRUE, TRUE );
-
- if( !RecvReq->BufferArray ) { /* access violation in userspace */
- return UnlockAndMaybeComplete
- ( FCB, STATUS_ACCESS_VIOLATION, Irp, 0, NULL );
- }
-
if( !IsListEmpty( &FCB->DatagramList ) ) {
+ RecvReq->BufferArray = LockBuffers( RecvReq->BufferArray,
+ RecvReq->BufferCount,
+ RecvReq->Address,
+ RecvReq->AddressLength,
+ TRUE, TRUE );
+
+ if( !RecvReq->BufferArray ) { /* access violation in userspace */
+ return UnlockAndMaybeComplete
+ ( FCB, STATUS_ACCESS_VIOLATION, Irp, 0, NULL );
+ }
+
ListEntry = RemoveHeadList( &FCB->DatagramList );
DatagramRecv = CONTAINING_RECORD
( ListEntry, AFD_STORED_DATAGRAM, ListEntry );
Modified: branches/aicom-network-fixes/drivers/network/afd/afd/write.c
URL:
http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/net…
==============================================================================
--- branches/aicom-network-fixes/drivers/network/afd/afd/write.c [iso-8859-1] (original)
+++ branches/aicom-network-fixes/drivers/network/afd/afd/write.c [iso-8859-1] Mon Aug 11
10:32:45 2008
@@ -273,11 +273,6 @@
AFD_DbgPrint(MID_TRACE,("We already have %d bytes waiting.\n",
FCB->Send.BytesUsed));
- SendReq->BufferArray = LockBuffers( SendReq->BufferArray,
- SendReq->BufferCount,
- NULL, NULL,
- FALSE, FALSE );
-
AFD_DbgPrint(MID_TRACE,("FCB->Send.BytesUsed = %d\n",
FCB->Send.BytesUsed));
@@ -286,6 +281,11 @@
AFD_DbgPrint(MID_TRACE,("We can accept %d bytes\n",
SpaceAvail));
+
+ SendReq->BufferArray = LockBuffers( SendReq->BufferArray,
+ SendReq->BufferCount,
+ NULL, NULL,
+ FALSE, FALSE );
for( i = 0; FCB->Send.BytesUsed < FCB->Send.Size &&
i < SendReq->BufferCount; i++ ) {