|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Dont force a WMI event when reregistering a watch
When a watch is registered, the watch gets triggered. This will result
in a WMI event being fired. There is no need to manually fire a WMI
event in this case, as it can lead to the WMI event being discarded.
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
---
src/xeniface/wmi.c | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/src/xeniface/wmi.c b/src/xeniface/wmi.c
index c73e990..b3e4c55 100644
--- a/src/xeniface/wmi.c
+++ b/src/xeniface/wmi.c
@@ -875,19 +875,15 @@ VOID WatchCallbackThread(__in PVOID StartContext) {
ExFreePool(watch);
session->mapchanged = TRUE;
session->watchcount --;
- }
- else
- {
- if (!session->suspended) {
- if (watch->suspendcount !=XENBUS_SUSPEND(GetCount,
&watch->fdoData->SuspendInterface)) {
- watch->suspendcount = XENBUS_SUSPEND(GetCount,
&watch->fdoData->SuspendInterface);
-
XenIfaceDebugPrint(WARNING,"SessionSuspendResumeUnwatch %p\n",
watch->watchhandle);
-
- XENBUS_STORE(WatchRemove,
&watch->fdoData->StoreInterface, watch->watchhandle);
- watch->watchhandle = NULL;
- StartWatch(watch->fdoData, watch);
- }
- }
+ } else if (!session->suspended &&
+ watch->suspendcount != XENBUS_SUSPEND(GetCount,
&watch->fdoData->SuspendInterface)) {
+ watch->suspendcount = XENBUS_SUSPEND(GetCount,
&watch->fdoData->SuspendInterface);
+ XenIfaceDebugPrint(WARNING,"SessionSuspendResumeUnwatch %p\n",
watch->watchhandle);
+
+ XENBUS_STORE(WatchRemove, &watch->fdoData->StoreInterface,
watch->watchhandle);
+ watch->watchhandle = NULL;
+ StartWatch(watch->fdoData, watch);
+ } else {
FireWatch(watch);
}
ExReleaseFastMutex(&session->WatchMapLock);
--
1.9.4.msysgit.1
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |