[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[win-pv-devel] [PATCH] Add location identifier to Info messages



Query the PDO location when the Adapter is created and add the location
identifier string to all Info messages.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
 src/xennet/adapter.c  | 155 +++++++++++++++++++++++++++++++++++++++-----------
 src/xennet/adapter.h  |   5 ++
 src/xennet/miniport.c |  16 ------
 src/xennet/receiver.c |  10 +++-
 4 files changed, 134 insertions(+), 52 deletions(-)

diff --git a/src/xennet/adapter.c b/src/xennet/adapter.c
index 637ac72..4dc2238 100644
--- a/src/xennet/adapter.c
+++ b/src/xennet/adapter.c
@@ -75,6 +75,8 @@ typedef struct _XENNET_RSS {
 } XENNET_RSS, *PXENNET_RSS;
 
 struct _XENNET_ADAPTER {
+    PWCHAR                      Location;
+
     XENVIF_VIF_INTERFACE        VifInterface;
     XENBUS_STORE_INTERFACE      StoreInterface;
     XENBUS_SUSPEND_INTERFACE    SuspendInterface;
@@ -1507,6 +1509,14 @@ AdapterGetReceiver(
     return Adapter->Receiver;
 }
 
+PWCHAR
+AdapterGetLocation(
+    IN  PXENNET_ADAPTER     Adapter
+    )
+{
+    return Adapter->Location;
+}
+
 static FORCEINLINE PVOID
 __AdapterAllocate(
     IN  ULONG   Length
@@ -1976,20 +1986,27 @@ AdapterDisable(
 
 static VOID
 DisplayLinkState(
+    IN  PXENNET_ADAPTER     Adapter,
     IN  PNDIS_LINK_STATE    LinkState
     )
 {
     if (LinkState->MediaConnectState == MediaConnectStateUnknown) {
-        Info("LINK: STATE UNKNOWN\n");
+        Info("%ws: LINK: STATE UNKNOWN\n", Adapter->Location);
     } else if (LinkState->MediaConnectState == MediaConnectStateDisconnected) {
-        Info("LINK: DOWN\n");
+        Info("%ws: LINK: DOWN\n", Adapter->Location);
     } else {
         if (LinkState->MediaDuplexState == MediaDuplexStateHalf)
-            Info("LINK: UP: SPEED=%u DUPLEX=HALF\n", LinkState->RcvLinkSpeed);
+            Info("%ws: LINK: UP: SPEED=%u DUPLEX=HALF\n",
+                 Adapter->Location,
+                 LinkState->RcvLinkSpeed);
         else if (LinkState->MediaDuplexState == MediaDuplexStateFull)
-            Info("LINK: UP: SPEED=%u DUPLEX=FULL\n", LinkState->RcvLinkSpeed);
+            Info("%ws: LINK: UP: SPEED=%u DUPLEX=FULL\n",
+                 Adapter->Location,
+                 LinkState->RcvLinkSpeed);
         else
-            Info("LINK: UP: SPEED=%u DUPLEX=UNKNOWN\n", 
LinkState->RcvLinkSpeed);
+            Info("%ws: LINK: UP: SPEED=%u DUPLEX=UNKNOWN\n",
+                 Adapter->Location,
+                 LinkState->RcvLinkSpeed);
     }
 }
 
@@ -2017,7 +2034,7 @@ AdapterMediaStateChange(
     if (!RtlEqualMemory(&Adapter->LinkState,
                        &LinkState,
                        sizeof (LinkState)))
-        DisplayLinkState(&LinkState);
+        DisplayLinkState(Adapter, &LinkState);
 
     Adapter->LinkState = LinkState;
 
@@ -2062,19 +2079,23 @@ AdapterSetInformation(
             PowerState = (PNDIS_DEVICE_POWER_STATE)Buffer;
             switch (*PowerState) {
             case NdisDeviceStateD0:
-                Info("SET_POWER: D0\n");
+                Info("%ws: SET_POWER: D0\n",
+                     Adapter->Location);
                 break;
 
             case NdisDeviceStateD1:
-                Info("SET_POWER: D1\n");
+                Info("%ws: SET_POWER: D1\n",
+                     Adapter->Location);
                 break;
 
             case NdisDeviceStateD2:
-                Info("SET_POWER: D2\n");
+                Info("%ws: SET_POWER: D2\n",
+                     Adapter->Location);
                 break;
 
             case NdisDeviceStateD3:
-                Info("SET_POWER: D3\n");
+                Info("%ws: SET_POWER: D3\n",
+                     Adapter->Location);
                 break;
             }
         }
@@ -2274,19 +2295,23 @@ AdapterQueryInformation(
             PowerState = (PNDIS_DEVICE_POWER_STATE)Buffer;
             switch (*PowerState) {
             case NdisDeviceStateD0:
-                Info("QUERY_POWER: D0\n");
+                Info("%ws: QUERY_POWER: D0\n",
+                     Adapter->Location);
                 break;
 
             case NdisDeviceStateD1:
-                Info("QUERY_POWER: D1\n");
+                Info("%ws: QUERY_POWER: D1\n",
+                     Adapter->Location);
                 break;
 
             case NdisDeviceStateD2:
-                Info("QUERY_POWER: D2\n");
+                Info("%ws: QUERY_POWER: D2\n",
+                     Adapter->Location);
                 break;
 
             case NdisDeviceStateD3:
-                Info("QUERY_POWER: D3\n");
+                Info("%ws: QUERY_POWER: D3\n",
+                     Adapter->Location);
                 break;
             }
         }
@@ -2813,6 +2838,56 @@ fail1:
     return status;
 }
 
+static NTSTATUS
+__QueryLocationInformation(
+    IN  PDEVICE_OBJECT  DeviceObject,
+    OUT PWCHAR          *Location
+    )
+{
+    ULONG               Size;
+    NTSTATUS            status;
+
+    status = IoGetDeviceProperty(DeviceObject,
+                                 DevicePropertyLocationInformation,
+                                 0,
+                                 NULL,
+                                 &Size);
+    if (!NT_SUCCESS(status) &&
+        status != STATUS_BUFFER_TOO_SMALL)
+        goto fail1;
+
+    Size += sizeof (WCHAR);
+
+    *Location = __AdapterAllocate(Size);
+
+    status = STATUS_NO_MEMORY;
+    if (*Location == NULL)
+        goto fail2;
+
+    status = IoGetDeviceProperty(DeviceObject,
+                                 DevicePropertyLocationInformation,
+                                 Size,
+                                 *Location,
+                                 &Size);
+    if (!NT_SUCCESS(status))
+        goto fail3;
+
+    return STATUS_SUCCESS;
+
+fail3:
+    Error("fail3\n");
+
+    __AdapterFree(*Location);
+
+fail2:
+    Error("fail2\n");
+
+fail1:
+    Error("fail1 (%08x)\n");
+
+    return status;
+}
+
 #pragma prefast(push)
 #pragma prefast(disable:6102)
 
@@ -2972,7 +3047,8 @@ AdapterSetGeneralAttributes(
     Attribs.RecvScaleCapabilities = NULL;
 
     if (!Adapter->Properties.rss) {
-        Info("RSS DISABLED\n");
+        Info("%ws: RSS DISABLED\n",
+             Adapter->Location);
         goto done;
     }
 
@@ -3009,7 +3085,9 @@ AdapterSetGeneralAttributes(
                &Rss.NumberOfReceiveQueues);
     Rss.NumberOfInterruptMessages = Rss.NumberOfReceiveQueues;
 
-    Info("RSS ENABLED (%u QUEUES)\n", Rss.NumberOfReceiveQueues);
+    Info("%ws: RSS ENABLED (%u QUEUES)\n",
+         Adapter->Location,
+         Rss.NumberOfReceiveQueues);
 
     Adapter->Rss.Supported = TRUE;
     Attribs.RecvScaleCapabilities = &Rss;
@@ -3221,6 +3299,13 @@ AdapterInitialize(
                            NULL,
                            NULL);
 
+    status = __QueryLocationInformation(DeviceObject,
+                                        &(*Adapter)->Location);
+
+    ndisStatus = NDIS_STATUS_FAILURE;
+    if (!NT_SUCCESS(status))
+        goto fail2;
+
     status = __QueryInterface(DeviceObject,
                               &GUID_XENVIF_VIF_INTERFACE,
                               XENVIF_VIF_INTERFACE_VERSION_MAX,
@@ -3228,9 +3313,8 @@ AdapterInitialize(
                               sizeof(XENVIF_VIF_INTERFACE),
                               FALSE);
 
-    ndisStatus = NDIS_STATUS_FAILURE;
     if (!NT_SUCCESS(status))
-        goto fail2;
+        goto fail3;
 
     status = __QueryInterface(DeviceObject,
                               &GUID_XENBUS_STORE_INTERFACE,
@@ -3239,7 +3323,7 @@ AdapterInitialize(
                               sizeof(XENBUS_STORE_INTERFACE),
                               FALSE);
     if (!NT_SUCCESS(status))
-        goto fail3;
+        goto fail4;
 
     status = __QueryInterface(DeviceObject,
                               &GUID_XENBUS_SUSPEND_INTERFACE,
@@ -3248,38 +3332,38 @@ AdapterInitialize(
                               sizeof(XENBUS_SUSPEND_INTERFACE),
                               FALSE);
     if (!NT_SUCCESS(status))
-        goto fail4;
+        goto fail5;
 
     status = XENVIF_VIF(Acquire,
                         &(*Adapter)->VifInterface);
     if (!NT_SUCCESS(status))
-        goto fail5;
+        goto fail6;
 
     (*Adapter)->NdisAdapterHandle = Handle;
 
     ndisStatus = TransmitterInitialize(*Adapter, &(*Adapter)->Transmitter);
     if (ndisStatus != NDIS_STATUS_SUCCESS)
-        goto fail6;
+        goto fail7;
 
     ndisStatus = ReceiverInitialize(*Adapter, &(*Adapter)->Receiver);
     if (ndisStatus != NDIS_STATUS_SUCCESS)
-        goto fail7;
+        goto fail8;
 
     ndisStatus = AdapterGetAdvancedSettings(*Adapter);
     if (ndisStatus != NDIS_STATUS_SUCCESS)
-        goto fail8;
+        goto fail9;
 
     ndisStatus = AdapterSetRegistrationAttributes(*Adapter);
     if (ndisStatus != NDIS_STATUS_SUCCESS)
-        goto fail9;
+        goto fail10;
 
     ndisStatus = AdapterSetGeneralAttributes(*Adapter);
     if (ndisStatus != NDIS_STATUS_SUCCESS)
-        goto fail10;
+        goto fail11;
 
     ndisStatus = AdapterSetOffloadAttributes(*Adapter);
     if (ndisStatus != NDIS_STATUS_SUCCESS)
-        goto fail11;
+        goto fail12;
 
     RtlZeroMemory(&Dma, sizeof(Dma));
     Dma.Header.Type = NDIS_OBJECT_TYPE_SG_DMA_DESCRIPTION;
@@ -3298,31 +3382,34 @@ AdapterInitialize(
 
     return NDIS_STATUS_SUCCESS;
 
+fail12:
 fail11:
 fail10:
 fail9:
-fail8:
     ReceiverTeardown((*Adapter)->Receiver);
     (*Adapter)->Receiver = NULL;
 
-fail7:
+fail8:
     TransmitterTeardown((*Adapter)->Transmitter);
     (*Adapter)->Transmitter = NULL;
 
-fail6:
+fail7:
     (*Adapter)->NdisAdapterHandle = NULL;
 
     XENVIF_VIF(Release, &(*Adapter)->VifInterface);
 
-fail5:
+fail6:
     RtlZeroMemory(&(*Adapter)->SuspendInterface, 
sizeof(XENBUS_SUSPEND_INTERFACE));
 
-fail4:
+fail5:
     RtlZeroMemory(&(*Adapter)->StoreInterface, sizeof(XENBUS_STORE_INTERFACE));
 
-fail3:
+fail4:
     RtlZeroMemory(&(*Adapter)->VifInterface, sizeof(XENVIF_VIF_INTERFACE));
 
+fail3:
+    __AdapterFree((*Adapter)->Location);
+
 fail2:
     __AdapterFree(*Adapter);
 
@@ -3351,5 +3438,7 @@ AdapterTeardown(
     RtlZeroMemory(&Adapter->StoreInterface, sizeof(XENBUS_STORE_INTERFACE));
     RtlZeroMemory(&Adapter->VifInterface, sizeof(XENVIF_VIF_INTERFACE));
 
+    __AdapterFree(Adapter->Location);
+
     __AdapterFree(Adapter);
 }
diff --git a/src/xennet/adapter.h b/src/xennet/adapter.h
index 5b0b338..db71287 100644
--- a/src/xennet/adapter.h
+++ b/src/xennet/adapter.h
@@ -88,6 +88,11 @@ AdapterGetReceiver(
     IN  PXENNET_ADAPTER     Adapter
     );
 
+extern PWCHAR
+AdapterGetLocation(
+    IN  PXENNET_ADAPTER     Adapter
+    );
+
 extern NDIS_STATUS
 AdapterEnable(
     IN  PXENNET_ADAPTER     Adapter
diff --git a/src/xennet/miniport.c b/src/xennet/miniport.c
index 1883db5..5b69315 100644
--- a/src/xennet/miniport.c
+++ b/src/xennet/miniport.c
@@ -66,8 +66,6 @@ MiniportInitializeEx(
     PXENNET_ADAPTER                     Adapter;
     NDIS_STATUS                         NdisStatus;
 
-    Info("====>\n");
-
     UNREFERENCED_PARAMETER(MiniportDriverContext);
     UNREFERENCED_PARAMETER(MiniportInitParameters);
 
@@ -75,8 +73,6 @@ MiniportInitializeEx(
     if (NdisStatus != NDIS_STATUS_SUCCESS)
         goto fail1;
 
-    Info("<====\n");
-
     return NDIS_STATUS_SUCCESS;
 
 fail1:
@@ -97,14 +93,10 @@ MiniportHaltEx(
 
     UNREFERENCED_PARAMETER(HaltAction);
 
-    Info("====>\n");
-
     if (Adapter == NULL)
         return;
 
     AdapterTeardown(Adapter);
-
-    Info("<====\n");
 }
 
 static
@@ -129,12 +121,8 @@ MiniportPause(
 
     UNREFERENCED_PARAMETER(MiniportPauseParameters);
 
-    Info("====>\n");
-
     AdapterDisable(Adapter);
 
-    Info("<====\n");
-
     return NDIS_STATUS_SUCCESS;
 }
 
@@ -151,12 +139,8 @@ MiniportRestart(
 
     UNREFERENCED_PARAMETER(MiniportRestartParameters);
 
-    Info("====>\n");
-
     NdisStatus = AdapterEnable(Adapter);
 
-    Info("<====\n");
-
     return NdisStatus;
 }
 
diff --git a/src/xennet/receiver.c b/src/xennet/receiver.c
index 043db53..ccc00ec 100644
--- a/src/xennet/receiver.c
+++ b/src/xennet/receiver.c
@@ -581,9 +581,10 @@ ReceiverEnable(
     IN  PXENNET_RECEIVER    Receiver
     )
 {
-    UNREFERENCED_PARAMETER(Receiver);
+    PXENNET_ADAPTER         Adapter = Receiver->Adapter;
 
-    Info("<====>\n");
+    Info("%ws: <====>\n",
+         AdapterGetLocation(Adapter));
 }
 
 VOID
@@ -591,7 +592,10 @@ ReceiverDisable(
     IN  PXENNET_RECEIVER    Receiver
     )
 {
-    Info("<====> (Indicated = %u Returned = %u)\n",
+    PXENNET_ADAPTER         Adapter = Receiver->Adapter;
+
+    Info("%ws: <====> (Indicated = %u Returned = %u)\n",
+         AdapterGetLocation(Adapter),
          Receiver->Indicated,
          Receiver->Returned);
 }
-- 
2.5.3


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.