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

[XENVIF PATCH v2 2/4] frontend: Map out IRQL annotations



No functional changes.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
 src/xenvif/frontend.c | 35 ++++++++++++++++++++++++++++++++++-
 src/xenvif/frontend.h | 16 +++++++++++++++-
 2 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index daeab9c..f844a42 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -378,6 +378,7 @@ FrontendIsBackendOnline(
     return Online;
 }
 
+_IRQL_requires_(PASSIVE_LEVEL)
 static DECLSPEC_NOINLINE NTSTATUS
 FrontendEject(
     IN  PXENVIF_THREAD  Self,
@@ -823,6 +824,7 @@ FrontendIpAddressChange(
     ThreadWake(Frontend->MibThread);
 }
 
+_IRQL_requires_(PASSIVE_LEVEL)
 static DECLSPEC_NOINLINE NTSTATUS
 FrontendMib(
     IN  PXENVIF_THREAD  Self,
@@ -981,6 +983,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendSetMulticastAddresses(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -1093,6 +1096,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendNotifyMulticastAddresses(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -1147,6 +1151,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendSetFilterLevel(
     IN  PXENVIF_FRONTEND        Frontend,
@@ -1188,6 +1193,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 VOID
 FrontendAdvertiseIpAddresses(
     IN  PXENVIF_FRONTEND    Frontend
@@ -1231,6 +1237,7 @@ FrontendAdvertiseIpAddresses(
     KeReleaseSpinLock(&Frontend->Lock, Irql);
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static VOID
 FrontendSetOnline(
     IN  PXENVIF_FRONTEND    Frontend
@@ -1243,6 +1250,7 @@ FrontendSetOnline(
     Trace("<====\n");
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static VOID
 FrontendSetOffline(
     IN  PXENVIF_FRONTEND    Frontend
@@ -1256,6 +1264,7 @@ FrontendSetOffline(
     Trace("<====\n");
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static VOID
 FrontendSetXenbusState(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -1288,6 +1297,7 @@ FrontendSetXenbusState(
           XenbusStateName(State));
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendAcquireBackend(
     IN  PXENVIF_FRONTEND    Frontend
@@ -1334,6 +1344,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static VOID
 FrontendWaitForBackendXenbusStateChange(
     IN      PXENVIF_FRONTEND    Frontend,
@@ -1379,6 +1390,7 @@ FrontendWaitForBackendXenbusStateChange(
             ULONG   Attempt = 0;
 
             while (++Attempt < 1000) {
+#pragma prefast(suppress:28121) // Timeout=0
                 status = KeWaitForSingleObject(&Event,
                                                Executive,
                                                KernelMode,
@@ -1437,6 +1449,7 @@ FrontendWaitForBackendXenbusStateChange(
           XenbusStateName(*State));
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static VOID
 FrontendReleaseBackend(
     IN      PXENVIF_FRONTEND    Frontend
@@ -1457,6 +1470,7 @@ FrontendReleaseBackend(
     Trace("<=====\n");
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static VOID
 FrontendClose(
     IN  PXENVIF_FRONTEND    Frontend
@@ -1518,6 +1532,7 @@ FrontendClose(
     Trace("<====\n");
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendPrepare(
     IN  PXENVIF_FRONTEND    Frontend
@@ -1880,6 +1895,7 @@ FrontendIsSplit(
     return __FrontendIsSplit(Frontend);
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static FORCEINLINE NTSTATUS
 __FrontendUpdateHash(
     PXENVIF_FRONTEND        Frontend,
@@ -1964,6 +1980,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendSetHashAlgorithm(
     IN  PXENVIF_FRONTEND                Frontend,
@@ -2030,6 +2047,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendQueryHashTypes(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -2069,6 +2087,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendSetHashMapping(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -2112,6 +2131,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendSetHashKey(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -2146,6 +2166,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendSetHashTypes(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -2221,6 +2242,7 @@ FrontendGetQueue(
     return Queue;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendConnect(
     IN  PXENVIF_FRONTEND    Frontend
@@ -2417,6 +2439,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static VOID
 FrontendDisconnect(
     IN  PXENVIF_FRONTEND    Frontend
@@ -2444,6 +2467,7 @@ FrontendDisconnect(
     Trace("<====\n");
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendEnable(
     IN  PXENVIF_FRONTEND    Frontend
@@ -2495,6 +2519,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static VOID
 FrontendDisable(
     IN  PXENVIF_FRONTEND    Frontend
@@ -2511,6 +2536,7 @@ FrontendDisable(
     Trace("<====\n");
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendSetState(
     IN  PXENVIF_FRONTEND        Frontend,
@@ -2665,6 +2691,7 @@ FrontendSetState(
     return (!Failed) ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static FORCEINLINE VOID
 __FrontendResume(
     IN  PXENVIF_FRONTEND    Frontend
@@ -2676,6 +2703,7 @@ __FrontendResume(
     (VOID) FrontendSetState(Frontend, FRONTEND_CLOSED);
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static FORCEINLINE VOID
 __FrontendSuspend(
     IN  PXENVIF_FRONTEND    Frontend
@@ -2707,6 +2735,8 @@ FrontendSuspendCallbackLate(
     __FrontendResume(Frontend);
 }
 
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_max_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendResume(
     IN  PXENVIF_FRONTEND    Frontend
@@ -2783,6 +2813,8 @@ fail1:
     return status;
 }
 
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_max_(DISPATCH_LEVEL)
 VOID
 FrontendSuspend(
     IN  PXENVIF_FRONTEND    Frontend
@@ -2824,7 +2856,7 @@ FrontendSuspend(
     Trace("<====\n");
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 FrontendInitialize(
     IN  PXENVIF_PDO         Pdo,
@@ -3034,6 +3066,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(PASSIVE_LEVEL)
 VOID
 FrontendTeardown(
     IN  PXENVIF_FRONTEND    Frontend
diff --git a/src/xenvif/frontend.h b/src/xenvif/frontend.h
index 59d9718..5b84806 100644
--- a/src/xenvif/frontend.h
+++ b/src/xenvif/frontend.h
@@ -56,13 +56,14 @@ typedef enum _XENVIF_FRONTEND_STATE {
     FRONTEND_ENABLED
 } XENVIF_FRONTEND_STATE, *PXENVIF_FRONTEND_STATE;
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 FrontendInitialize(
     IN  PXENVIF_PDO         Pdo,
     OUT PXENVIF_FRONTEND    *Frontend
     );
 
+_IRQL_requires_(PASSIVE_LEVEL)
 extern VOID
 FrontendTeardown(
     IN  PXENVIF_FRONTEND    Frontend
@@ -73,17 +74,22 @@ FrontendEjectFailed(
     IN PXENVIF_FRONTEND Frontend
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendSetState(
     IN  PXENVIF_FRONTEND        Frontend,
     IN  XENVIF_FRONTEND_STATE   State
     );
 
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_max_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendResume(
     IN  PXENVIF_FRONTEND    Frontend
     );
 
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_max_(DISPATCH_LEVEL)
 extern VOID
 FrontendSuspend(
     IN  PXENVIF_FRONTEND    Frontend
@@ -188,6 +194,7 @@ FrontendIncrementStatistic(
     IN  ULONGLONG               Delta
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendSetMulticastAddresses(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -195,6 +202,7 @@ FrontendSetMulticastAddresses(
     IN  ULONG               Count
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendSetFilterLevel(
     IN  PXENVIF_FRONTEND        Frontend,
@@ -202,23 +210,27 @@ FrontendSetFilterLevel(
     IN  XENVIF_MAC_FILTER_LEVEL Level
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern VOID
 FrontendAdvertiseIpAddresses(
     IN  PXENVIF_FRONTEND    Frontend
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendSetHashAlgorithm(
     IN  PXENVIF_FRONTEND                Frontend,
     IN  XENVIF_PACKET_HASH_ALGORITHM    Algorithm
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendQueryHashTypes(
     IN  PXENVIF_FRONTEND    Frontend,
     OUT PULONG              Types
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendSetHashMapping(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -226,12 +238,14 @@ FrontendSetHashMapping(
     IN  ULONG               Order
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendSetHashKey(
     IN  PXENVIF_FRONTEND    Frontend,
     IN  PUCHAR              Key
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendSetHashTypes(
     IN  PXENVIF_FRONTEND    Frontend,
-- 
2.51.0.windows.1



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




 


Rackspace

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