Introduce a new helper to initialize fields that have different uses for
free pages.
Signed-off-by: Carlo Nonato
Signed-off-by: Marco Solieri
---
v5:
- new patch
---
xen/common/page_alloc.c | 16 +---
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index d874525916..9ee3981bb5 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -928,6 +928,13 @@ static struct page_info *get_free_buddy(unsigned int
zone_lo,
}
}
+/* Initialise fields which have other uses for free pages. */
+static void init_free_page_fields(struct page_info *pg)
+{
+pg->u.inuse.type_info = PGT_TYPE_INFO_INITIALIZER;
+page_set_owner(pg, NULL);
+}
+
/* Allocate 2^@order contiguous pages. */
static struct page_info *alloc_heap_pages(
unsigned int zone_lo, unsigned int zone_hi,
@@ -1036,10 +1043,7 @@ static struct page_info *alloc_heap_pages(
accumulate_tlbflush(_tlbflush, [i],
_timestamp);
-/* Initialise fields which have other uses for free pages. */
-pg[i].u.inuse.type_info = PGT_TYPE_INFO_INITIALIZER;
-page_set_owner([i], NULL);
-
+init_free_page_fields([i]);
}
spin_unlock(_lock);
@@ -2802,9 +2806,7 @@ static bool prepare_staticmem_pages(struct page_info *pg,
unsigned long nr_mfns,
* to PGC_state_inuse.
*/
pg[i].count_info = PGC_static | PGC_state_inuse;
-/* Initialise fields which have other uses for free pages. */
-pg[i].u.inuse.type_info = PGT_TYPE_INFO_INITIALIZER;
-page_set_owner([i], NULL);
+init_free_page_fields([i]);
}
spin_unlock(_lock);
--
2.34.1