mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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@xen.org> Tested-and-Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
1 parent
224f81b97f
commit
8f5f42e36f
1 file changed
+5
-1
@@ -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;
|
||||
}
|
||||
|
||||