[ros-diffs] [cgutman] 35279: - Only call LockBuffers() if we must

cgutman at svn.reactos.org cgutman at svn.reactos.org
Mon Aug 11 17:32:45 CEST 2008


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/network/afd/afd/read.c?rev=35279&r1=35278&r2=35279&view=diff
==============================================================================
--- 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/network/afd/afd/write.c?rev=35279&r1=35278&r2=35279&view=diff
==============================================================================
--- 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++ ) {



More information about the Ros-diffs mailing list