|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Make sure SYNC per-processor structures are zeroed after resume
Since the per-processor data in the SYNC code was split out from the
main context structure, the code that zeroes that structure on resume
no longer clears the per-processor Exit flag. This means that a multi-
vcpu VM can only be suspended once; subsequent attempts will fail.
This patch fixes the problem by zeroing the full page containing the SYNC
context structure and any per-processor data.
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
src/xenbus/sync.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/xenbus/sync.c b/src/xenbus/sync.c
index 835b46b..661aabe 100644
--- a/src/xenbus/sync.c
+++ b/src/xenbus/sync.c
@@ -255,7 +255,7 @@ SyncCapture(
Trace("====> (%u:%u)\n", Group, Number);
- ASSERT(IsZeroMemory(Context, sizeof (SYNC_CONTEXT)));
+ ASSERT(IsZeroMemory(Context, PAGE_SIZE));
Context->Sequence++;
Context->CompletionCount = 0;
@@ -427,7 +427,7 @@ SyncRelease(
KeMemoryBarrier();
}
- RtlZeroMemory(Context, sizeof (SYNC_CONTEXT));
+ RtlZeroMemory(Context, PAGE_SIZE);
Index = KeGetCurrentProcessorNumberEx(NULL);
__SyncRelease(Index);
--
2.1.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 |