[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH Altp2m cleanup 2/3 v12 3/3] Moving ept code to ept specific files.
On 10/11/16 23:45, Paul Lai wrote: > The was requested in: > https://lists.xenproject.org/archives/html/xen-devel/2015-07/msg04323.html > Renamed p2m_init_altp2m_helper() to p2m_init_altp2m_ept(). > > Signed-off-by: Paul Lai <paul.c.lai@xxxxxxxxx> > Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> I think ideally the request reference should go below a '---' at the bottom of the commit message: It's information to the reviewers, but it's not really that relevant to archaeologists (and the link is not unlikely to be broken anyway). That can be fixed up on check-in, so: Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxx> > --- > xen/arch/x86/mm/p2m-ept.c | 39 +++++++++++++++++++++++++++++++++++ > xen/arch/x86/mm/p2m.c | 43 > ++------------------------------------- > xen/include/asm-x86/hvm/vmx/vmx.h | 3 +++ > xen/include/asm-x86/p2m.h | 9 +++----- > 4 files changed, 47 insertions(+), 47 deletions(-) > > diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c > index 13cab24..04878f5 100644 > --- a/xen/arch/x86/mm/p2m-ept.c > +++ b/xen/arch/x86/mm/p2m-ept.c > @@ -1329,6 +1329,45 @@ void setup_ept_dump(void) > register_keyhandler('D', ept_dump_p2m_table, "dump VT-x EPT tables", 0); > } > > +void p2m_init_altp2m_ept(struct domain *d, unsigned int i) > +{ > + struct p2m_domain *p2m = d->arch.altp2m_p2m[i]; > + struct ept_data *ept; > + > + p2m->min_remapped_gfn = gfn_x(INVALID_GFN); > + p2m->max_remapped_gfn = 0; > + ept = &p2m->ept; > + ept->asr = pagetable_get_pfn(p2m_get_pagetable(p2m)); > + d->arch.altp2m_eptp[i] = ept_get_eptp(ept); > +} > + > +unsigned int p2m_find_altp2m_by_eptp(struct domain *d, uint64_t eptp) > +{ > + struct p2m_domain *p2m; > + struct ept_data *ept; > + unsigned int i; > + > + altp2m_list_lock(d); > + > + for ( i = 0; i < MAX_ALTP2M; i++ ) > + { > + if ( d->arch.altp2m_eptp[i] == mfn_x(INVALID_MFN) ) > + continue; > + > + p2m = d->arch.altp2m_p2m[i]; > + ept = &p2m->ept; > + > + if ( eptp == ept_get_eptp(ept) ) > + goto out; > + } > + > + i = INVALID_ALTP2M; > + > + out: > + altp2m_list_unlock(d); > + return i; > +} > + > /* > * Local variables: > * mode: C > diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c > index 6a45185..aa627d8 100644 > --- a/xen/arch/x86/mm/p2m.c > +++ b/xen/arch/x86/mm/p2m.c > @@ -2342,33 +2342,6 @@ int unmap_mmio_regions(struct domain *d, > return i == nr ? 0 : i ?: ret; > } > > -unsigned int p2m_find_altp2m_by_eptp(struct domain *d, uint64_t eptp) > -{ > - struct p2m_domain *p2m; > - struct ept_data *ept; > - unsigned int i; > - > - altp2m_list_lock(d); > - > - for ( i = 0; i < MAX_ALTP2M; i++ ) > - { > - if ( d->arch.altp2m_eptp[i] == mfn_x(INVALID_MFN) ) > - continue; > - > - p2m = d->arch.altp2m_p2m[i]; > - ept = &p2m->ept; > - > - if ( eptp == ept_get_eptp(ept) ) > - goto out; > - } > - > - i = INVALID_ALTP2M; > - > - out: > - altp2m_list_unlock(d); > - return i; > -} > - > bool_t p2m_switch_vcpu_altp2m_by_id(struct vcpu *v, unsigned int idx) > { > struct domain *d = v->domain; > @@ -2474,18 +2447,6 @@ void p2m_flush_altp2m(struct domain *d) > altp2m_list_unlock(d); > } > > -static void p2m_init_altp2m_helper(struct domain *d, unsigned int i) > -{ > - struct p2m_domain *p2m = d->arch.altp2m_p2m[i]; > - struct ept_data *ept; > - > - p2m->min_remapped_gfn = gfn_x(INVALID_GFN); > - p2m->max_remapped_gfn = 0; > - ept = &p2m->ept; > - ept->asr = pagetable_get_pfn(p2m_get_pagetable(p2m)); > - d->arch.altp2m_eptp[i] = ept_get_eptp(ept); > -} > - > int p2m_init_altp2m_by_id(struct domain *d, unsigned int idx) > { > int rc = -EINVAL; > @@ -2497,7 +2458,7 @@ int p2m_init_altp2m_by_id(struct domain *d, unsigned > int idx) > > if ( d->arch.altp2m_eptp[idx] == mfn_x(INVALID_MFN) ) > { > - p2m_init_altp2m_helper(d, idx); > + p2m_init_altp2m_ept(d, idx); > rc = 0; > } > > @@ -2517,7 +2478,7 @@ int p2m_init_next_altp2m(struct domain *d, uint16_t > *idx) > if ( d->arch.altp2m_eptp[i] != mfn_x(INVALID_MFN) ) > continue; > > - p2m_init_altp2m_helper(d, i); > + p2m_init_altp2m_ept(d, i); > *idx = i; > rc = 0; > > diff --git a/xen/include/asm-x86/hvm/vmx/vmx.h > b/xen/include/asm-x86/hvm/vmx/vmx.h > index 4cdd9b1..9f4c7de 100644 > --- a/xen/include/asm-x86/hvm/vmx/vmx.h > +++ b/xen/include/asm-x86/hvm/vmx/vmx.h > @@ -561,6 +561,9 @@ void ept_p2m_uninit(struct p2m_domain *p2m); > void ept_walk_table(struct domain *d, unsigned long gfn); > bool_t ept_handle_misconfig(uint64_t gpa); > void setup_ept_dump(void); > +void p2m_init_altp2m_ept(struct domain *d, unsigned int i); > +/* Locate an alternate p2m by its EPTP */ > +unsigned int p2m_find_altp2m_by_eptp(struct domain *d, uint64_t eptp); > > void update_guest_eip(void); > > diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h > index 7035860..0e72880 100644 > --- a/xen/include/asm-x86/p2m.h > +++ b/xen/include/asm-x86/p2m.h > @@ -23,8 +23,8 @@ > * along with this program; If not, see <http://www.gnu.org/licenses/>. > */ > > -#ifndef _XEN_P2M_H > -#define _XEN_P2M_H > +#ifndef _XEN_ASM_X86_P2M_H > +#define _XEN_ASM_X86_P2M_H > > #include <xen/config.h> > #include <xen/paging.h> > @@ -784,9 +784,6 @@ static inline struct p2m_domain *p2m_get_altp2m(struct > vcpu *v) > return v->domain->arch.altp2m_p2m[index]; > } > > -/* Locate an alternate p2m by its EPTP */ > -unsigned int p2m_find_altp2m_by_eptp(struct domain *d, uint64_t eptp); > - > /* Switch alternate p2m for a single vcpu */ > bool_t p2m_switch_vcpu_altp2m_by_id(struct vcpu *v, unsigned int idx); > > @@ -848,7 +845,7 @@ static inline unsigned int p2m_get_iommu_flags(p2m_type_t > p2mt) > return flags; > } > > -#endif /* _XEN_P2M_H */ > +#endif /* _XEN_ASM_X86_P2M_H */ > > /* > * Local variables: > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |