[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen stable-4.9] x86/mm: Use flags for _put_page_type rather than a boolean
commit 79538bab468369837466975df0f2e420c50eb171 Author: George Dunlap <george.dunlap@xxxxxxxxxx> AuthorDate: Mon Nov 4 15:04:18 2019 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Nov 4 15:04:18 2019 +0100 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@xxxxxxxxxx> Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> master commit: 0121588ec0f6950ed65d906d860df49be2c8e655 master date: 2019-10-31 16:12:53 +0100 --- xen/arch/x86/mm.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 9d225e3c28..2cf0c33d18 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -1417,7 +1417,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 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) @@ -1501,7 +1501,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 ) { @@ -1510,7 +1510,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); } @@ -1547,7 +1547,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(pfn)); + return _put_page_type(pg, PTF_preemptible, mfn_to_page(pfn)); } if ( flags & PTF_defer ) @@ -1557,7 +1557,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(pfn)); + rc = _put_page_type(pg, PTF_preemptible, mfn_to_page(pfn)); if ( likely(!rc) ) put_page(pg); @@ -1578,7 +1578,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(pfn)); + return _put_page_type(pg, PTF_preemptible, mfn_to_page(pfn)); } if ( flags & PTF_defer ) @@ -1588,7 +1588,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(pfn)); + rc = _put_page_type(pg, PTF_preemptible, mfn_to_page(pfn)); if ( likely(!rc) ) put_page(pg); } @@ -2859,11 +2859,12 @@ 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; int rc = 0; + bool preemptible = flags & PTF_preemptible; for ( ; ; ) { @@ -3063,7 +3064,7 @@ static int __get_page_type(struct page_info *page, unsigned long type, if ( unlikely(iommu_ret) ) { - _put_page_type(page, false, NULL); + _put_page_type(page, 0, NULL); rc = iommu_ret; goto out; } @@ -3090,7 +3091,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; } @@ -3106,7 +3107,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) @@ -3316,7 +3317,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: -- generated by git-patchbot for /home/xen/git/xen.git#stable-4.9 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |