]> xenbits.xensource.com Git - pvdrivers/win/xeniface.git/commitdiff
[CP-5276] Move suspend and resume watches so they only happen on system power changes
authorBen Chalmers <Ben.Chalmers@citrix.com>
Thu, 11 Jul 2013 08:13:08 +0000 (09:13 +0100)
committerBen Chalmers <Ben.Chalmers@citrix.com>
Thu, 11 Jul 2013 08:13:08 +0000 (09:13 +0100)
build.py
src/xeniface/fdo.c

index 5a850f43dda97b0487a2a3d7ccd10e74d710925b..eb8265227f585da346086406aacd4bbda6e7ebb1 100644 (file)
--- a/build.py
+++ b/build.py
@@ -271,9 +271,9 @@ if __name__ == '__main__':
     if 'BUILD_NUMBER' not in os.environ.keys():
         os.environ['BUILD_NUMBER'] = '0'
 
-    if 'MERCURIAL_REVISION' in os.environ.keys():
+    if 'GIT_REVISION' in os.environ.keys():
         revision = open('revision', 'w')
-        print(os.environ['MERCURIAL_REVISION'], file=revision)
+        print(os.environ['GIT_REVISION'], file=revision)
         revision.close()
 
     debug = { 'checked': True, 'free': False }
index 67ba50319294f653b5fab423041c7507e426ba6e..3f26583f5369342b49954ea4a24b4dc14991170e 100644 (file)
@@ -744,9 +744,7 @@ FdoD3ToD0(
     SUSPEND(Acquire, Fdo->SuspendInterface);
     SHARED_INFO(Acquire, Fdo->SharedInfoInterface);
 
-       SessionsResumeAll(Fdo);
-
-       Fdo->InterfacesAcquired = TRUE;
+       
 
     status = SUSPEND(Register,
                      Fdo->SuspendInterface,
@@ -756,8 +754,11 @@ FdoD3ToD0(
                      &Fdo->SuspendCallbackLate);
     if (!NT_SUCCESS(status))
         goto fail2;
-
+       Fdo->InterfacesAcquired = TRUE;
     KeLowerIrql(Irql);
+       
+       
+       
 
     return STATUS_SUCCESS;
 
@@ -784,10 +785,9 @@ FdoD0ToD3(
     KIRQL           Irql;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
-
-    KeRaiseIrql(DISPATCH_LEVEL, &Irql);
        Fdo->InterfacesAcquired = FALSE;
-       SessionsSuspendAll(Fdo);
+    KeRaiseIrql(DISPATCH_LEVEL, &Irql);
+
     SUSPEND(Deregister,
             Fdo->SuspendInterface,
             Fdo->SuspendCallbackLate);
@@ -1292,6 +1292,7 @@ __FdoSetDevicePowerUp(
 
     ASSERT3U(DeviceState, ==, PowerDeviceD0);
     status = FdoD3ToD0(Fdo);
+       SessionsResumeAll(Fdo);
     ASSERT(NT_SUCCESS(status));
 
 done:
@@ -1323,8 +1324,10 @@ __FdoSetDevicePowerDown(
 
     ASSERT3U(DeviceState, ==, PowerDeviceD3);
 
-    if (__FdoGetDevicePowerState(Fdo) == PowerDeviceD0)
+    if (__FdoGetDevicePowerState(Fdo) == PowerDeviceD0){
+               SessionsSuspendAll(Fdo);
         FdoD0ToD3(Fdo);
+       }
 
     IoSkipCurrentIrpStackLocation(Irp);
     status = IoCallDriver(Fdo->LowerDeviceObject, Irp);