mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
xen/page_alloc: introduce init_free_page_fields() helper
Introduce a new helper to initialize fields that have different uses for free pages. Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech> Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
18cd984905
commit
1aee91fe98
1 file changed
+9
-7
@@ -925,6 +925,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,
|
||||
@@ -1033,10 +1040,7 @@ static struct page_info *alloc_heap_pages(
|
||||
accumulate_tlbflush(&need_tlbflush, &pg[i],
|
||||
&tlbflush_timestamp);
|
||||
|
||||
/* Initialise fields which have other uses for free pages. */
|
||||
pg[i].u.inuse.type_info = PGT_TYPE_INFO_INITIALIZER;
|
||||
page_set_owner(&pg[i], NULL);
|
||||
|
||||
init_free_page_fields(&pg[i]);
|
||||
}
|
||||
|
||||
spin_unlock(&heap_lock);
|
||||
@@ -2799,9 +2803,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(&pg[i], NULL);
|
||||
init_free_page_fields(&pg[i]);
|
||||
}
|
||||
|
||||
spin_unlock(&heap_lock);
|
||||
|
||||