[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] do_memory_op: cleanup if copy_to_guest fails
Undo the page allocation in the ulikely event the copy_to_guest fails. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> --- I have not exercised this code path, it was found during code inspection in 4.0 xen/common/memory.c | 9 +++++++++ 1 file changed, 9 insertions(+) --- xen-unstable.hg-4.1.22548.orig/xen/common/memory.c +++ xen-unstable.hg-4.1.22548/xen/common/memory.c @@ -82,7 +82,10 @@ static void increase_reservation(struct { mfn = page_to_mfn(page); if ( unlikely(__copy_to_guest_offset(a->extent_list, i, &mfn, 1)) ) + { + free_domheap_pages(page, a->extent_order); goto out; + } } } @@ -144,7 +147,13 @@ static void populate_physmap(struct memo /* Inform the domain of the new page's machine address. */ if ( unlikely(__copy_to_guest_offset(a->extent_list, i, &mfn, 1)) ) + { + for ( j = 0; j < (1 << a->extent_order); j++ ) + set_gpfn_from_mfn(mfn + j, INVALID_M2P_ENTRY); + guest_physmap_remove_page(d, gpfn, mfn, a->extent_order); + free_domheap_pages(page, a->extent_order); goto out; + } } } } _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |