[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 |