]> xenbits.xensource.com Git - people/dariof/xen.git/commitdiff
xen/x86: p2m-pod: Clean-up p2m_pod_zero_check
authorJulien Grall <julien.grall@arm.com>
Mon, 2 Oct 2017 12:59:37 +0000 (13:59 +0100)
committerGeorge Dunlap <george.dunlap@citrix.com>
Mon, 2 Oct 2017 16:32:32 +0000 (17:32 +0100)
Signed-off-by: Julien Grall <julien.grall@arm.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: George Dunlap <george.dunlap@citrix.com>
xen/arch/x86/mm/p2m-pod.c

index 176d06cb42ce004719cec9d51907abc62a7d7a15..6581f8d82f511f85e40c2a578f229108303387ab 100644 (file)
@@ -861,17 +861,19 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count)
     for ( i = 0; i < count; i++ )
     {
         p2m_access_t a;
+        struct page_info *pg;
 
         mfns[i] = p2m->get_entry(p2m, _gfn(gfns[i]), types + i, &a,
                                  0, NULL, NULL);
+        pg = mfn_to_page(mfns[i]);
+
         /*
          * If this is ram, and not a pagetable or from the xen heap, and
          * probably not mapped elsewhere, map it; otherwise, skip.
          */
-        if ( p2m_is_ram(types[i])
-             && ( (mfn_to_page(mfns[i])->count_info & PGC_allocated) != 0 )
-             && ( (mfn_to_page(mfns[i])->count_info & (PGC_page_table|PGC_xen_heap)) == 0 )
-             && ( (mfn_to_page(mfns[i])->count_info & PGC_count_mask) <= max_ref ) )
+        if ( p2m_is_ram(types[i]) && (pg->count_info & PGC_allocated) &&
+             !(pg->count_info & (PGC_page_table | PGC_xen_heap)) &&
+             ((pg->count_info & PGC_count_mask) <= max_ref) )
             map[i] = map_domain_page(mfns[i]);
         else
             map[i] = NULL;