|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Cs 13594 - broken?
> i'm almost sure following change set break 32b HVM guest
> save/restore on
> 64b hypvisor:
> r13594: Make domctl/sysctl interfaces 32-/64-bit invariant.
>
> restoring 32b linux cause a guest kernel panic, but restoring saved
> image from previous changeset is okay. i.e. saved image
> become damaged
> in r13594.
Looking at that patch (and the current changeset matches the patch for
the below code with about +30 lines offset), I think this code is
broken:
@@ -976,10 +976,16 @@ int xc_linux_save(int xc_handle, int io_
goto out;
}
- if (xc_get_pfn_type_batch(xc_handle, dom, batch, pfn_type))
{
+ for ( j = 0; j < batch; j++ )
+ ((uint32_t *)pfn_type)[i] = pfn_type[i];
Shouldn't that be [j] in both places?
+ if ( xc_get_pfn_type_batch(xc_handle, dom, batch,
+ (uint32_t *)pfn_type) )
+ {
ERROR("get_pfn_type_batch failed");
goto out;
}
+ for ( j = batch-1; j >= 0; j-- )
+ pfn_type[i] = ((uint32_t *)pfn_type)[i];
And here, as well?
Admittedly, this probably won't fix the 32/64 HVM restore being broken,
but I doubt that the code ACTUALLY works as it stands today.
I'm still trying to find a reason for the restore not working...
--
Mats
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|