mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-21 00:38:28 +00:00
hv: page: add free_page
Add free_page to free page when unmap pagetable. Signed-off-by: Li Fei1 <fei1.li@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com> Tracked-On: #5788
This commit is contained in:
@@ -73,6 +73,20 @@ struct page *alloc_page(struct page_pool *pool)
|
||||
return page;
|
||||
}
|
||||
|
||||
/*
|
||||
*@pre: ((page - pool->start_page) >> 6U) < pool->bitmap_size
|
||||
*/
|
||||
void free_page(struct page_pool *pool, struct page *page)
|
||||
{
|
||||
uint64_t idx, bit;
|
||||
|
||||
spinlock_obtain(&pool->lock);
|
||||
idx = (page - pool->start_page) >> 6U;
|
||||
bit = (page - pool->start_page) & 0x3fUL;
|
||||
bitmap_clear_nolock(bit, pool->bitmap + idx);
|
||||
spinlock_release(&pool->lock);
|
||||
}
|
||||
|
||||
/* @pre: The PPT and EPT have same page granularity */
|
||||
static inline bool large_page_support(enum _page_table_level level)
|
||||
{
|
||||
|
Reference in New Issue
Block a user