[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] x86/mm: Plumb a error return through {paging, hap, shadow}_vcpu_init()
On 30/01/17 17:26, Andrew Cooper wrote: > No functional change yet, but required for subsequent changes. > > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: George Dunlap <george.dunlap@xxxxxxxxxx> > --- > CC: Jan Beulich <JBeulich@xxxxxxxx> > CC: Tim Deegan <tim@xxxxxxx> > CC: George Dunlap <george.dunlap@xxxxxxxxxxxxx> > --- > xen/arch/x86/domain.c | 3 ++- > xen/arch/x86/mm/hap/hap.c | 3 ++- > xen/arch/x86/mm/paging.c | 6 +++--- > xen/arch/x86/mm/shadow/common.c | 3 ++- > xen/arch/x86/mm/shadow/none.c | 3 ++- > xen/include/asm-x86/hap.h | 2 +- > xen/include/asm-x86/paging.h | 2 +- > xen/include/asm-x86/shadow.h | 2 +- > 8 files changed, 14 insertions(+), 10 deletions(-) > > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c > index 71c0e3c..4edc4c8 100644 > --- a/xen/arch/x86/domain.c > +++ b/xen/arch/x86/domain.c > @@ -384,7 +384,8 @@ int vcpu_initialise(struct vcpu *v) > > if ( !is_idle_domain(d) ) > { > - paging_vcpu_init(v); > + if ( (rc = paging_vcpu_init(v)) ) > + return rc; > > if ( (rc = vcpu_init_fpu(v)) != 0 ) > return rc; > diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c > index 6dbb3cc..2d52dbd 100644 > --- a/xen/arch/x86/mm/hap/hap.c > +++ b/xen/arch/x86/mm/hap/hap.c > @@ -641,10 +641,11 @@ static const struct paging_mode > hap_paging_protected_mode; > static const struct paging_mode hap_paging_pae_mode; > static const struct paging_mode hap_paging_long_mode; > > -void hap_vcpu_init(struct vcpu *v) > +int hap_vcpu_init(struct vcpu *v) > { > v->arch.paging.mode = &hap_paging_real_mode; > v->arch.paging.nestedmode = &hap_paging_real_mode; > + return 0; > } > > /************************************************/ > diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c > index d964ed5..bd4f469 100644 > --- a/xen/arch/x86/mm/paging.c > +++ b/xen/arch/x86/mm/paging.c > @@ -673,12 +673,12 @@ int paging_domain_init(struct domain *d, unsigned int > domcr_flags) > } > > /* vcpu paging struct initialization goes here */ > -void paging_vcpu_init(struct vcpu *v) > +int paging_vcpu_init(struct vcpu *v) > { > if ( hap_enabled(v->domain) ) > - hap_vcpu_init(v); > + return hap_vcpu_init(v); > else > - shadow_vcpu_init(v); > + return shadow_vcpu_init(v); > } > > > diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c > index a619d65..aa0b8f0 100644 > --- a/xen/arch/x86/mm/shadow/common.c > +++ b/xen/arch/x86/mm/shadow/common.c > @@ -81,7 +81,7 @@ int shadow_domain_init(struct domain *d, unsigned int > domcr_flags) > * matter to have v->arch.paging.mode pointing to any mode, as long as it can > * be compiled. > */ > -void shadow_vcpu_init(struct vcpu *v) > +int shadow_vcpu_init(struct vcpu *v) > { > #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) > int i, j; > @@ -98,6 +98,7 @@ void shadow_vcpu_init(struct vcpu *v) > v->arch.paging.mode = is_pv_vcpu(v) ? > &SHADOW_INTERNAL_NAME(sh_paging_mode, 4) : > &SHADOW_INTERNAL_NAME(sh_paging_mode, 3); > + return 0; > } > > #if SHADOW_AUDIT > diff --git a/xen/arch/x86/mm/shadow/none.c b/xen/arch/x86/mm/shadow/none.c > index 69e56c5..81ab42a 100644 > --- a/xen/arch/x86/mm/shadow/none.c > +++ b/xen/arch/x86/mm/shadow/none.c > @@ -71,8 +71,9 @@ static const struct paging_mode sh_paging_none = { > .write_p2m_entry = _write_p2m_entry, > }; > > -void shadow_vcpu_init(struct vcpu *v) > +int shadow_vcpu_init(struct vcpu *v) > { > ASSERT(is_pv_vcpu(v)); > v->arch.paging.mode = &sh_paging_none; > + return 0; > } > diff --git a/xen/include/asm-x86/hap.h b/xen/include/asm-x86/hap.h > index 88587c4..ca55328 100644 > --- a/xen/include/asm-x86/hap.h > +++ b/xen/include/asm-x86/hap.h > @@ -39,7 +39,7 @@ int hap_domctl(struct domain *d, xen_domctl_shadow_op_t > *sc, > int hap_enable(struct domain *d, u32 mode); > void hap_final_teardown(struct domain *d); > void hap_teardown(struct domain *d, bool *preempted); > -void hap_vcpu_init(struct vcpu *v); > +int hap_vcpu_init(struct vcpu *v); > int hap_track_dirty_vram(struct domain *d, > unsigned long begin_pfn, > unsigned long nr, > diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h > index cec6bfd..4857871 100644 > --- a/xen/include/asm-x86/paging.h > +++ b/xen/include/asm-x86/paging.h > @@ -197,7 +197,7 @@ struct sh_dirty_vram { > > /* Initialize the paging resource for vcpu struct. It is called by > * vcpu_initialise() in domain.c */ > -void paging_vcpu_init(struct vcpu *v); > +int paging_vcpu_init(struct vcpu *v); > > /* Set up the paging-assistance-specific parts of a domain struct at > * start of day. Called for every domain from arch_domain_create() */ > diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h > index 7e1ed3b..da83188 100644 > --- a/xen/include/asm-x86/shadow.h > +++ b/xen/include/asm-x86/shadow.h > @@ -52,7 +52,7 @@ int shadow_domain_init(struct domain *d, unsigned int > domcr_flags); > > /* Setup the shadow-specific parts of a vcpu struct. It is called by > * paging_vcpu_init() in paging.c */ > -void shadow_vcpu_init(struct vcpu *v); > +int shadow_vcpu_init(struct vcpu *v); > > #ifdef CONFIG_SHADOW_PAGING > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |