]> xenbits.xensource.com Git - pvdrivers/win/xennet.git/commitdiff
Log outstanding packet count when miniport is disabled
authorPaul Durrant <paul.durrant@citrix.com>
Thu, 22 Sep 2016 11:04:05 +0000 (12:04 +0100)
committerPaul Durrant <paul.durrant@citrix.com>
Thu, 22 Sep 2016 11:04:05 +0000 (12:04 +0100)
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
src/xennet/adapter.c
src/xennet/receiver.c
src/xennet/receiver.h

index 9a062e1161c12d2877ce4ebd89ef1b71fa77a9bb..637ac7239e6027b4377b590f79dd8727bf3468c9 100644 (file)
@@ -1932,6 +1932,8 @@ AdapterEnable(
     if (!NT_SUCCESS(status))
         goto fail4;
 
+    ReceiverEnable(Adapter->Receiver);
+
     AdapterMediaStateChange(Adapter);
 
     Adapter->Enabled = TRUE;
@@ -1959,6 +1961,8 @@ AdapterDisable(
     ASSERT(Adapter->Enabled);
     Adapter->Enabled = FALSE;
 
+    ReceiverDisable(Adapter->Receiver);
+
     XENVIF_VIF(Disable,
                &Adapter->VifInterface);
 
index 36a153b83ae3bd75d11d2466de31a8f0cfba6d96..043db5344ed00529c6255489498252f08beeb3f1 100644 (file)
@@ -378,11 +378,15 @@ __ReceiverPushPackets(
     KeReleaseSpinLockFromDpcLevel(&Queue->Lock);
 
     Indicated = InterlockedAdd(&Receiver->Indicated, Count);
+
+    KeMemoryBarrier();
+
     Returned = Receiver->Returned;
 
     Flags = NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL |
             NDIS_RECEIVE_FLAGS_PERFECT_FILTERED;
 
+    ASSERT3S(Indicated - Returned, >=, 0);
     if (Indicated - Returned > IN_NDIS_MAX)
         Flags |= NDIS_RECEIVE_FLAGS_RESOURCES;
 
@@ -571,3 +575,23 @@ ReceiverOffloadOptions(
 {
     return &Receiver->OffloadOptions;
 }
+
+VOID
+ReceiverEnable(
+    IN  PXENNET_RECEIVER    Receiver
+    )
+{
+    UNREFERENCED_PARAMETER(Receiver);
+
+    Info("<====>\n");
+}
+
+VOID
+ReceiverDisable(
+    IN  PXENNET_RECEIVER    Receiver
+    )
+{
+    Info("<====> (Indicated = %u Returned = %u)\n",
+         Receiver->Indicated,
+         Receiver->Returned);
+}
index 5b59431ed65ea03ff92a3c395b4dabfd3e726890..5fc9e6679f6517bfb5a319fa49062eab927b3dad 100644 (file)
@@ -76,4 +76,14 @@ ReceiverOffloadOptions(
     IN  PXENNET_RECEIVER    Receiver
     );
 
+extern VOID
+ReceiverEnable(
+    IN  PXENNET_RECEIVER    Receiver
+    );
+
+extern VOID
+ReceiverDisable(
+    IN  PXENNET_RECEIVER    Receiver
+    );
+
 #endif // _XENNET_RECEIVER_H_