Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:Update
xen.26348
xsa299-5.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xsa299-5.patch of Package xen.26348
From 13660d718ec3a119ff0ab1f1197d0796ca79c668 Mon Sep 17 00:00:00 2001 From: George Dunlap <george.dunlap@citrix.com> Date: Thu, 10 Oct 2019 17:57:49 +0100 Subject: [PATCH 05/12] 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> --- xen/arch/x86/mm.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -1391,7 +1391,7 @@ get_page_from_l4e( l3e_remove_flags((pl3e), _PAGE_USER|_PAGE_RW|_PAGE_ACCESSED); \ } while ( 0 ) -static int _put_page_type(struct page_info *page, bool_t 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) @@ -1474,7 +1474,7 @@ static int put_page_from_l2e(l2_pgentry_ PTF_partial_set ) { ASSERT(!(flags & PTF_defer)); - rc = _put_page_type(pg, 1, ptpg); + rc = _put_page_type(pg, PTF_preemptible, ptpg); } else if ( flags & PTF_defer ) { @@ -1483,7 +1483,7 @@ static int put_page_from_l2e(l2_pgentry_ } else { - rc = _put_page_type(pg, 1, ptpg); + rc = _put_page_type(pg, PTF_preemptible, ptpg); if ( likely(!rc) ) put_page(pg); } @@ -1520,7 +1520,7 @@ static int put_page_from_l3e(l3_pgentry_ PTF_partial_set ) { ASSERT(!(flags & PTF_defer)); - return _put_page_type(pg, 1, mfn_to_page(pfn)); + return _put_page_type(pg, PTF_preemptible, mfn_to_page(pfn)); } if ( flags & PTF_defer ) @@ -1530,7 +1530,7 @@ static int put_page_from_l3e(l3_pgentry_ return 0; } - rc = _put_page_type(pg, 1, mfn_to_page(pfn)); + rc = _put_page_type(pg, PTF_preemptible, mfn_to_page(pfn)); if ( likely(!rc) ) put_page(pg); @@ -1551,7 +1551,7 @@ static int put_page_from_l4e(l4_pgentry_ PTF_partial_set ) { ASSERT(!(flags & PTF_defer)); - return _put_page_type(pg, 1, mfn_to_page(pfn)); + return _put_page_type(pg, PTF_preemptible, mfn_to_page(pfn)); } if ( flags & PTF_defer ) @@ -1561,7 +1561,7 @@ static int put_page_from_l4e(l4_pgentry_ return 0; } - rc = _put_page_type(pg, 1, mfn_to_page(pfn)); + rc = _put_page_type(pg, PTF_preemptible, mfn_to_page(pfn)); if ( likely(!rc) ) put_page(pg); } @@ -2826,11 +2826,12 @@ static int _put_final_page_type(struct p } -static int _put_page_type(struct page_info *page, bool_t 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; int rc = 0; + bool_t preemptible = !!(flags & PTF_preemptible); for ( ; ; ) { @@ -3060,7 +3061,7 @@ int get_page_type(struct page_info *page int put_page_type_preemptible(struct page_info *page) { - return _put_page_type(page, 1, NULL); + return _put_page_type(page, PTF_preemptible, NULL); } int get_page_type_preemptible(struct page_info *page, unsigned long type) @@ -3266,7 +3267,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, 1, + switch ( rc = _put_page_type(v->arch.old_guest_table, PTF_preemptible, v->arch.old_guest_ptpg) ) { case -EINTR:
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor