[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/mm: PV GDT handling cleanup
commit cb1daee1b505aafe9f6fd79a5e5b789be4674c1d Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Thu May 21 08:56:24 2015 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Thu May 21 08:56:24 2015 +0200 x86/mm: PV GDT handling cleanup These are a few bits of cleanup noticed when double checking the PV GDT handling for migration v2. * Drop write-only 'mfn' variable in set_gdt() * Hoist page_get_owner() call in alloc_segdesc_page() and unify exit paths No functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/arch/x86/mm.c | 20 ++++++++------------ 1 files changed, 8 insertions(+), 12 deletions(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 5fe08df..74e146d 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -545,21 +545,17 @@ static void invalidate_shadow_ldt(struct vcpu *v, int flush) static int alloc_segdesc_page(struct page_info *page) { - struct desc_struct *descs; - int i; - - descs = __map_domain_page(page); + const struct domain *owner = page_get_owner(page); + struct desc_struct *descs = __map_domain_page(page); + unsigned i; for ( i = 0; i < 512; i++ ) - if ( unlikely(!check_descriptor(page_get_owner(page), &descs[i])) ) - goto fail; + if ( unlikely(!check_descriptor(owner, &descs[i])) ) + break; unmap_domain_page(descs); - return 0; - fail: - unmap_domain_page(descs); - return -EINVAL; + return i == 512 ? 0 : -EINVAL; } @@ -4382,7 +4378,7 @@ long set_gdt(struct vcpu *v, l1_pgentry_t *pl1e; /* NB. There are 512 8-byte entries per GDT page. */ int i, nr_pages = (entries + 511) / 512; - unsigned long mfn, *pfns; + unsigned long *pfns; if ( entries > FIRST_RESERVED_GDT_ENTRY ) return -EINVAL; @@ -4404,7 +4400,7 @@ long set_gdt(struct vcpu *v, put_page(page); goto fail; } - mfn = frames[i] = page_to_mfn(page); + frames[i] = page_to_mfn(page); } /* Tear down the old GDT. */ -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |