[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-4.2-testing] hvmloader: Do not zero the wallclock fields in shared-info.
# HG changeset patch # User Keir Fraser <keir@xxxxxxx> # Date 1351497340 -3600 # Node ID 2bca7e58a3dff0c2d21993423e37bb01a942785c # Parent 25eda7e7b4e602d2fff2792460c6be748847c683 hvmloader: Do not zero the wallclock fields in shared-info. These fields need to be valid at all times. Hypervisor ensures this even across 32/64-bit guest transitions. This fixes a bug where wallclock time is incorrect for booting 32-bit HVM guests. This should be backported to Xen 4.1 and 4.2. Signed-off-by: Keir Fraser <keir@xxxxxxx> Tested-and-Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> xen-unstable changeset: 25908:12fa949b9060 xen-unstable date: Fri Sep 14 18:47:57 UTC 2012 --- diff -r 25eda7e7b4e6 -r 2bca7e58a3df tools/firmware/hvmloader/xenbus.c --- a/tools/firmware/hvmloader/xenbus.c Fri Oct 26 16:49:45 2012 +0100 +++ b/tools/firmware/hvmloader/xenbus.c Mon Oct 29 08:55:40 2012 +0100 @@ -64,6 +64,8 @@ void xenbus_setup(void) /* Reset the xenbus connection so the next kernel can start again. */ void xenbus_shutdown(void) { + struct shared_info *shinfo = get_shared_info(); + ASSERT(rings != NULL); /* We zero out the whole ring -- the backend can handle this, and it's @@ -72,7 +74,9 @@ void xenbus_shutdown(void) memset(rings, 0, sizeof *rings); /* Clear the event-channel state too. */ - memset(get_shared_info(), 0, PAGE_SIZE); + memset(shinfo->vcpu_info, 0, sizeof(shinfo->vcpu_info)); + memset(shinfo->evtchn_pending, 0, sizeof(shinfo->evtchn_pending)); + memset(shinfo->evtchn_mask, 0, sizeof(shinfo->evtchn_mask)); rings = NULL; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |