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

[XENVIF PATCH v2 1/4] controller: Map out IRQL annotations



This is an initial, exploratory work to help inform the rework of
the controller interface.

No functional changes.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
v2: I've removed the annotations on the VIF interface since I haven't finished
my analysis of that.
The previous version contained lots of trailing space deletions, which also have
been deleted in v2.

Resending yet again because the patch set was blocked by the mailing list.
---
 src/xenvif/controller.c | 16 ++++++++++++++++
 src/xenvif/controller.h | 12 ++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/src/xenvif/controller.c b/src/xenvif/controller.c
index ae86837..e032972 100644
--- a/src/xenvif/controller.c
+++ b/src/xenvif/controller.c
@@ -137,6 +137,7 @@ ControllerReleaseLock(
     __ControllerReleaseLock(Controller);
 }
 
+_IRQL_requires_min_(DISPATCH_LEVEL)
 static FORCEINLINE VOID
 __ControllerSend(
     IN  PXENVIF_CONTROLLER  Controller
@@ -177,6 +178,7 @@ ControllerPoll(
     Controller->Shared->rsp_event = rsp_cons + 1;
 }
 
+_IRQL_requires_min_(DISPATCH_LEVEL)
 static NTSTATUS
 ControllerPutRequest(
     IN  PXENVIF_CONTROLLER          Controller,
@@ -248,6 +250,7 @@ fail1:
 
 #define XENVIF_CONTROLLER_POLL_PERIOD 100 // ms
 
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 ControllerGetResponse(
     IN  PXENVIF_CONTROLLER          Controller,
@@ -318,6 +321,7 @@ ControllerGetResponse(
 
 KSERVICE_ROUTINE    ControllerEvtchnCallback;
 
+_Use_decl_annotations_
 BOOLEAN
 ControllerEvtchnCallback(
     IN  PKINTERRUPT             InterruptObject,
@@ -345,6 +349,7 @@ ControllerDebugCallback(
     UNREFERENCED_PARAMETER(Crashing);
 }
 
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 ControllerInitialize(
     IN  PXENVIF_FRONTEND    Frontend,
@@ -390,6 +395,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 ControllerConnect(
     IN  PXENVIF_CONTROLLER      Controller
@@ -597,6 +603,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 ControllerStoreWrite(
     IN  PXENVIF_CONTROLLER          Controller,
@@ -670,6 +677,7 @@ ControllerDisable(
     Trace("<===>\n");
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 VOID
 ControllerDisconnect(
     IN  PXENVIF_CONTROLLER  Controller
@@ -732,6 +740,7 @@ done:
     Trace("<====\n");
 }
 
+_IRQL_requires_(PASSIVE_LEVEL)
 VOID
 ControllerTeardown(
     IN  PXENVIF_CONTROLLER  Controller
@@ -762,6 +771,7 @@ ControllerTeardown(
     __ControllerFree(Controller);
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 ControllerSetHashAlgorithm(
     IN  PXENVIF_CONTROLLER  Controller,
@@ -802,6 +812,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 ControllerGetHashFlags(
     IN  PXENVIF_CONTROLLER  Controller,
@@ -842,6 +853,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 ControllerSetHashFlags(
     IN  PXENVIF_CONTROLLER  Controller,
@@ -882,6 +894,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 ControllerSetHashKey(
     IN  PXENVIF_CONTROLLER  Controller,
@@ -976,6 +989,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 ControllerGetHashMappingSize(
     IN  PXENVIF_CONTROLLER  Controller,
@@ -1016,6 +1030,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 ControllerSetHashMappingSize(
     IN  PXENVIF_CONTROLLER  Controller,
@@ -1056,6 +1071,7 @@ fail1:
     return status;
 }
 
+_IRQL_requires_(DISPATCH_LEVEL)
 NTSTATUS
 ControllerSetHashMapping(
     IN  PXENVIF_CONTROLLER  Controller,
diff --git a/src/xenvif/controller.h b/src/xenvif/controller.h
index b14e066..18e09b7 100644
--- a/src/xenvif/controller.h
+++ b/src/xenvif/controller.h
@@ -41,17 +41,20 @@
 
 typedef struct _XENVIF_CONTROLLER XENVIF_CONTROLLER, *PXENVIF_CONTROLLER;
 
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 ControllerInitialize(
     IN  PXENVIF_FRONTEND    Frontend,
     OUT PXENVIF_CONTROLLER  *Controller
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 ControllerConnect(
     IN  PXENVIF_CONTROLLER  Controller
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 ControllerStoreWrite(
     IN  PXENVIF_CONTROLLER          Controller,
@@ -68,34 +71,40 @@ ControllerDisable(
     IN  PXENVIF_CONTROLLER  Controller
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern VOID
 ControllerDisconnect(
     IN  PXENVIF_CONTROLLER  Controller
     );
 
+_IRQL_requires_(PASSIVE_LEVEL)
 extern VOID
 ControllerTeardown(
     IN  PXENVIF_CONTROLLER  Controller
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 ControllerSetHashAlgorithm(
     IN  PXENVIF_CONTROLLER  Controller,
     IN  ULONG               Algorithm
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 ControllerGetHashFlags(
     IN  PXENVIF_CONTROLLER  Controller,
     IN  PULONG              Flags
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 ControllerSetHashFlags(
     IN  PXENVIF_CONTROLLER  Controller,
     IN  ULONG               Flags
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 ControllerSetHashKey(
     IN  PXENVIF_CONTROLLER  Controller,
@@ -103,18 +112,21 @@ ControllerSetHashKey(
     IN  ULONG               Size
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 ControllerGetHashMappingSize(
     IN  PXENVIF_CONTROLLER  Controller,
     IN  PULONG              Size
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 ControllerSetHashMappingSize(
     IN  PXENVIF_CONTROLLER  Controller,
     IN  ULONG               Size
     );
 
+_IRQL_requires_(DISPATCH_LEVEL)
 extern NTSTATUS
 ControllerSetHashMapping(
     IN  PXENVIF_CONTROLLER  Controller,
-- 
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®.