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

[win-pv-devel] [PATCH 11/14] ConsoleDisable cannot be called at DISPATCH



From: Owen Smith <owen.smith@xxxxxxxxxx>

Move the ConsoleDisable to FdoD0ToD3, similar to PdoSuspend

Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
---
 src/xencons/fdo.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/xencons/fdo.c b/src/xencons/fdo.c
index ef26869..6aad6e2 100644
--- a/src/xencons/fdo.c
+++ b/src/xencons/fdo.c
@@ -1228,10 +1228,6 @@ __FdoD3ToD0(
 
     ASSERT3U(KeGetCurrentIrql(), ==, DISPATCH_LEVEL);
 
-    status = ConsoleEnable(Fdo->Console);
-    if (!NT_SUCCESS(status))
-        goto fail1;
-
     status = XENBUS_STORE(WatchAdd,
                           &Fdo->StoreInterface,
                           "device",
@@ -1239,7 +1235,7 @@ __FdoD3ToD0(
                           ThreadGetEvent(Fdo->ScanThread),
                           &Fdo->ScanWatch);
     if (!NT_SUCCESS(status))
-        goto fail2;
+        goto fail1;
 
     (VOID)XENBUS_STORE(Printf,
                        &Fdo->StoreInterface,
@@ -1255,11 +1251,6 @@ __FdoD3ToD0(
 
     return STATUS_SUCCESS;
 
-fail2:
-    Error("fail2\n");
-
-    ConsoleDisable(Fdo->Console);
-
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -1288,8 +1279,6 @@ __FdoD0ToD3(
                        Fdo->ScanWatch);
     Fdo->ScanWatch = NULL;
 
-    ConsoleDisable(Fdo->Console);
-
     Trace("<====\n");
 }
 
@@ -1348,6 +1337,10 @@ FdoD3ToD0(
 
     KeLowerIrql(Irql);
 
+    status = ConsoleEnable(Fdo->Console);
+    if (!NT_SUCCESS(status))
+        goto fail5;
+
     __FdoSetDevicePowerState(Fdo, PowerDeviceD0);
 
     PowerState.DeviceState = PowerDeviceD0;
@@ -1378,6 +1371,11 @@ FdoD3ToD0(
 
     return STATUS_SUCCESS;
 
+fail5:
+    Error("fail5\n");
+
+    KeRaiseIrql(DISPATCH_LEVEL, &Irql);
+
 fail4:
     Error("fail4\n");
 
@@ -1447,6 +1445,8 @@ FdoD0ToD3(
 
     __FdoSetDevicePowerState(Fdo, PowerDeviceD3);
 
+    ConsoleDisable(Fdo->Console);
+
     KeRaiseIrql(DISPATCH_LEVEL, &Irql);
 
     XENBUS_SUSPEND(Deregister,
-- 
2.8.3


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

 


Rackspace

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