[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [TOOLS] Fix PAE save/restore/migrate: we must flush
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxxxx # Node ID b0ba792f393520a4262aa06f5ab2395efa1a32c2 # Parent a734745bf058c775140e5d86c4e11128ef866ec1 [TOOLS] Fix PAE save/restore/migrate: we must flush all pending 'mmu updates' before moving page directories below 4GB. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- tools/libxc/xc_linux_restore.c | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) diff -r a734745bf058 -r b0ba792f3935 tools/libxc/xc_linux_restore.c --- a/tools/libxc/xc_linux_restore.c Tue Jun 13 16:07:16 2006 +0100 +++ b/tools/libxc/xc_linux_restore.c Tue Jun 13 17:30:30 2006 +0100 @@ -456,6 +456,15 @@ int xc_linux_restore(int xc_handle, int n+= j; /* crude stats */ } + /* + * Ensure we flush all machphys updates before potential PAE-specific + * reallocations below. + */ + if (xc_finish_mmu_updates(xc_handle, mmu)) { + ERR("Error doing finish_mmu_updates()"); + goto out; + } + DPRINTF("Received all pages (%d races)\n", nraces); if ((pt_levels == 3) && !pae_extended_cr3) { @@ -550,14 +559,11 @@ int xc_linux_restore(int xc_handle, int } } - } - - - if (xc_finish_mmu_updates(xc_handle, mmu)) { - ERR("Error doing finish_mmu_updates()"); - goto out; - } - + if (xc_finish_mmu_updates(xc_handle, mmu)) { + ERR("Error doing finish_mmu_updates()"); + goto out; + } + } /* * Pin page tables. Do this after writing to them as otherwise Xen _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |