From 60e7732ed89d4a6123097d15e570f73e92bacca9 Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Thu, 18 Jan 2007 16:48:11 +0000 Subject: [PATCH] [HVM] Save/restore: Sometimes the hg changeset is not available. Signed-off-by: Tim Deegan --- xen/arch/x86/hvm/intercept.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/intercept.c b/xen/arch/x86/hvm/intercept.c index 8ea9bbb8a1..c7b56c0111 100644 --- a/xen/arch/x86/hvm/intercept.c +++ b/xen/arch/x86/hvm/intercept.c @@ -210,7 +210,11 @@ int hvm_save(struct vcpu *v, hvm_domain_context_t *h) hvm_put_32u(h, HVM_FILE_VERSION); /* save xen changeset */ - chgset = strrchr(XEN_CHANGESET, ' ') + 1; + chgset = strrchr(XEN_CHANGESET, ' '); + if ( chgset ) + chgset++; + else + chgset = XEN_CHANGESET; len = strlen(chgset); hvm_put_8u(h, len); @@ -303,7 +307,11 @@ int hvm_load(struct vcpu *v, hvm_domain_context_t *h) } /* check xen change set */ - cur_chgset = strrchr(XEN_CHANGESET, ' ') + 1; + cur_chgset = strrchr(XEN_CHANGESET, ' '); + if ( cur_chgset ) + cur_chgset++; + else + cur_chgset = XEN_CHANGESET; len = hvm_get_8u(h); if (len > 20) { /*typical length is 18 -- "revision number:changeset id" */ @@ -317,6 +325,11 @@ int hvm_load(struct vcpu *v, hvm_domain_context_t *h) printk("warnings: try to restore hvm guest(%s) on a different changeset %s.\n", chgset, cur_chgset); + + if ( !strcmp(cur_chgset, "unavailable") ) + printk("warnings: try to restore hvm guest when changeset is unavailable.\n"); + + /* check cpuid */ cpuid(1, &eax, &ebx, &ecx, &edx); ebx = hvm_get_32u(h); -- 2.30.2