From: Andrew Cooper Date: Mon, 9 Dec 2013 13:13:23 +0000 (+0100) Subject: defer the domain mapping in scrub_one_page() X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~5795 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=7dd4f9da063cb2cd43426c785535534c9d958ce5;p=xen.git defer the domain mapping in scrub_one_page() This avoids a resource leak and needless playing with the pagetables in the case that the page is broken. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich Reviewed-by: Keir Fraser --- diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index 8002bd2517..5f484a2ecc 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -1652,11 +1652,13 @@ __initcall(pagealloc_keyhandler_init); void scrub_one_page(struct page_info *pg) { - void *p = __map_domain_page(pg); + void *p; if ( unlikely(pg->count_info & PGC_broken) ) return; + p = __map_domain_page(pg); + #ifndef NDEBUG /* Avoid callers relying on allocations returning zeroed pages. */ memset(p, 0xc2, PAGE_SIZE);