[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/paging: invlpg() hook returns boolean
commit 344e852bf0866dfa9886c8328b23a2563aca8a32 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Thu Jan 21 16:10:19 2016 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Thu Jan 21 16:10:19 2016 +0100 x86/paging: invlpg() hook returns boolean ... so make its return type reflect this. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Tim Deegan <tim@xxxxxxx> Acked-by: George Dunlap <george.dunlap@xxxxxxxxxx> --- xen/arch/x86/mm.c | 3 +-- xen/arch/x86/mm/hap/hap.c | 2 +- xen/arch/x86/mm/shadow/multi.c | 9 +++++---- xen/arch/x86/mm/shadow/none.c | 4 ++-- xen/include/asm-x86/paging.h | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index f5b89de..fcf6577 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -4392,8 +4392,7 @@ static int __do_update_va_mapping( switch ( (bmap_ptr = flags & ~UVMF_FLUSHTYPE_MASK) ) { case UVMF_LOCAL: - if ( !paging_mode_enabled(d) || - (paging_invlpg(v, va) != 0) ) + if ( !paging_mode_enabled(d) || paging_invlpg(v, va) ) flush_tlb_one_local(va); break; case UVMF_ALL: diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c index 17a380f..ee87825 100644 --- a/xen/arch/x86/mm/hap/hap.c +++ b/xen/arch/x86/mm/hap/hap.c @@ -680,7 +680,7 @@ static int hap_page_fault(struct vcpu *v, unsigned long va, * HAP guests can handle invlpg without needing any action from Xen, so * should not be intercepting it. */ -static int hap_invlpg(struct vcpu *v, unsigned long va) +static bool_t hap_invlpg(struct vcpu *v, unsigned long va) { if (nestedhvm_enabled(v->domain)) { /* Emulate INVLPGA: diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c index 58f7e72..162c06f 100644 --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -3510,11 +3510,12 @@ propagate: } -static int -sh_invlpg(struct vcpu *v, unsigned long va) -/* Called when the guest requests an invlpg. Returns 1 if the invlpg +/* + * Called when the guest requests an invlpg. Returns 1 if the invlpg * instruction should be issued on the hardware, or 0 if it's safe not - * to do so. */ + * to do so. + */ +static bool_t sh_invlpg(struct vcpu *v, unsigned long va) { mfn_t sl1mfn; shadow_l2e_t sl2e; diff --git a/xen/arch/x86/mm/shadow/none.c b/xen/arch/x86/mm/shadow/none.c index 9526443..38bdf92 100644 --- a/xen/arch/x86/mm/shadow/none.c +++ b/xen/arch/x86/mm/shadow/none.c @@ -32,10 +32,10 @@ static int _page_fault(struct vcpu *v, unsigned long va, return 0; } -static int _invlpg(struct vcpu *v, unsigned long va) +static bool_t _invlpg(struct vcpu *v, unsigned long va) { ASSERT_UNREACHABLE(); - return -EOPNOTSUPP; + return 1; } static unsigned long _gva_to_gfn(struct vcpu *v, struct p2m_domain *p2m, diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h index c412953..9a8653d 100644 --- a/xen/include/asm-x86/paging.h +++ b/xen/include/asm-x86/paging.h @@ -104,7 +104,7 @@ struct shadow_paging_mode { struct paging_mode { int (*page_fault )(struct vcpu *v, unsigned long va, struct cpu_user_regs *regs); - int (*invlpg )(struct vcpu *v, unsigned long va); + bool_t (*invlpg )(struct vcpu *v, unsigned long va); unsigned long (*gva_to_gfn )(struct vcpu *v, struct p2m_domain *p2m, unsigned long va, @@ -243,7 +243,7 @@ paging_fault(unsigned long va, struct cpu_user_regs *regs) /* Handle invlpg requests on vcpus. * Returns 1 if the invlpg instruction should be issued on the hardware, * or 0 if it's safe not to do so. */ -static inline int paging_invlpg(struct vcpu *v, unsigned long va) +static inline bool_t paging_invlpg(struct vcpu *v, unsigned long va) { return (paging_mode_external(v->domain) ? is_canonical_address(va) : __addr_ok(va)) && -- 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 |