diff options
author | Tim Deegan <Tim.Deegan@xensource.com> | 2007-01-18 16:48:11 +0000 |
---|---|---|
committer | Tim Deegan <Tim.Deegan@xensource.com> | 2007-01-18 16:48:11 +0000 |
commit | 60e7732ed89d4a6123097d15e570f73e92bacca9 (patch) | |
tree | ce3e4576142e8c304478c03586bb9a15c62c000e /xen/arch/x86/hvm/intercept.c | |
parent | 7b56849fa7b8624a6c762a49153912c34a0a95e4 (diff) | |
download | xen-60e7732ed89d4a6123097d15e570f73e92bacca9.tar.gz xen-60e7732ed89d4a6123097d15e570f73e92bacca9.tar.bz2 xen-60e7732ed89d4a6123097d15e570f73e92bacca9.zip |
[HVM] Save/restore: Sometimes the hg changeset is not available.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Diffstat (limited to 'xen/arch/x86/hvm/intercept.c')
-rw-r--r-- | xen/arch/x86/hvm/intercept.c | 17 |
1 files 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); |