mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86/mm: Use flags for _put_page_type rather than a boolean
This is in mainly in preparation for _put_page_type taking the partial_flags value in the future. It also makes it easier to read in the caller (since you see a flag name rather than `true` or `false`). No functional change intended. This is part of XSA-299. Reported-by: George Dunlap <george.dunlap@citrix.com> Signed-off-by: George Dunlap <george.dunlap@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
1b6fa638d2
commit
0121588ec0
1 file changed
+13
-12
+13
-12
@@ -1170,7 +1170,7 @@ get_page_from_l4e(
|
||||
}
|
||||
#endif /* CONFIG_PV */
|
||||
|
||||
static int _put_page_type(struct page_info *page, bool preemptible,
|
||||
static int _put_page_type(struct page_info *page, unsigned int flags,
|
||||
struct page_info *ptpg);
|
||||
|
||||
void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner)
|
||||
@@ -1290,7 +1290,7 @@ static int put_page_from_l2e(l2_pgentry_t l2e, unsigned long pfn,
|
||||
PTF_partial_set )
|
||||
{
|
||||
ASSERT(!(flags & PTF_defer));
|
||||
rc = _put_page_type(pg, true, ptpg);
|
||||
rc = _put_page_type(pg, PTF_preemptible, ptpg);
|
||||
}
|
||||
else if ( flags & PTF_defer )
|
||||
{
|
||||
@@ -1299,7 +1299,7 @@ static int put_page_from_l2e(l2_pgentry_t l2e, unsigned long pfn,
|
||||
}
|
||||
else
|
||||
{
|
||||
rc = _put_page_type(pg, true, ptpg);
|
||||
rc = _put_page_type(pg, PTF_preemptible, ptpg);
|
||||
if ( likely(!rc) )
|
||||
put_page(pg);
|
||||
}
|
||||
@@ -1336,7 +1336,7 @@ static int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn,
|
||||
PTF_partial_set )
|
||||
{
|
||||
ASSERT(!(flags & PTF_defer));
|
||||
return _put_page_type(pg, true, mfn_to_page(_mfn(pfn)));
|
||||
return _put_page_type(pg, PTF_preemptible, mfn_to_page(_mfn(pfn)));
|
||||
}
|
||||
|
||||
if ( flags & PTF_defer )
|
||||
@@ -1346,7 +1346,7 @@ static int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn,
|
||||
return 0;
|
||||
}
|
||||
|
||||
rc = _put_page_type(pg, true, mfn_to_page(_mfn(pfn)));
|
||||
rc = _put_page_type(pg, PTF_preemptible, mfn_to_page(_mfn(pfn)));
|
||||
if ( likely(!rc) )
|
||||
put_page(pg);
|
||||
|
||||
@@ -1367,7 +1367,7 @@ static int put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn,
|
||||
PTF_partial_set )
|
||||
{
|
||||
ASSERT(!(flags & PTF_defer));
|
||||
return _put_page_type(pg, true, mfn_to_page(_mfn(pfn)));
|
||||
return _put_page_type(pg, PTF_preemptible, mfn_to_page(_mfn(pfn)));
|
||||
}
|
||||
|
||||
if ( flags & PTF_defer )
|
||||
@@ -1377,7 +1377,7 @@ static int put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn,
|
||||
return 0;
|
||||
}
|
||||
|
||||
rc = _put_page_type(pg, true, mfn_to_page(_mfn(pfn)));
|
||||
rc = _put_page_type(pg, PTF_preemptible, mfn_to_page(_mfn(pfn)));
|
||||
if ( likely(!rc) )
|
||||
put_page(pg);
|
||||
}
|
||||
@@ -2727,10 +2727,11 @@ static int _put_final_page_type(struct page_info *page, unsigned long type,
|
||||
}
|
||||
|
||||
|
||||
static int _put_page_type(struct page_info *page, bool preemptible,
|
||||
static int _put_page_type(struct page_info *page, unsigned int flags,
|
||||
struct page_info *ptpg)
|
||||
{
|
||||
unsigned long nx, x, y = page->u.inuse.type_info;
|
||||
bool preemptible = flags & PTF_preemptible;
|
||||
|
||||
ASSERT(current_locked_page_ne_check(page));
|
||||
|
||||
@@ -2936,7 +2937,7 @@ static int _get_page_type(struct page_info *page, unsigned long type,
|
||||
|
||||
if ( unlikely(rc) )
|
||||
{
|
||||
_put_page_type(page, false, NULL);
|
||||
_put_page_type(page, 0, NULL);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
@@ -2962,7 +2963,7 @@ static int _get_page_type(struct page_info *page, unsigned long type,
|
||||
|
||||
void put_page_type(struct page_info *page)
|
||||
{
|
||||
int rc = _put_page_type(page, false, NULL);
|
||||
int rc = _put_page_type(page, 0, NULL);
|
||||
ASSERT(rc == 0);
|
||||
(void)rc;
|
||||
}
|
||||
@@ -2979,7 +2980,7 @@ int get_page_type(struct page_info *page, unsigned long type)
|
||||
|
||||
int put_page_type_preemptible(struct page_info *page)
|
||||
{
|
||||
return _put_page_type(page, true, NULL);
|
||||
return _put_page_type(page, PTF_preemptible, NULL);
|
||||
}
|
||||
|
||||
int get_page_type_preemptible(struct page_info *page, unsigned long type)
|
||||
@@ -2996,7 +2997,7 @@ int put_old_guest_table(struct vcpu *v)
|
||||
if ( !v->arch.old_guest_table )
|
||||
return 0;
|
||||
|
||||
switch ( rc = _put_page_type(v->arch.old_guest_table, true,
|
||||
switch ( rc = _put_page_type(v->arch.old_guest_table, PTF_preemptible,
|
||||
v->arch.old_guest_ptpg) )
|
||||
{
|
||||
case -EINTR:
|
||||
|
||||