[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-next v3 04/12] x86/domain: factor out pv_vcpu_destroy
The function is made idempotent on purpose. Note that free_compact_l4, release_compact_l4 and pv_destroy_gdt_ldt_l1tab are idempotent already. No functional change. Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- v3: update commit message Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/arch/x86/domain.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 8596cee099..bdf51785e6 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -487,17 +487,24 @@ int vcpu_initialise(struct vcpu *v) return rc; } -void vcpu_destroy(struct vcpu *v) +static void pv_vcpu_destroy(struct vcpu *v) { - xfree(v->arch.vm_event); - v->arch.vm_event = NULL; - if ( is_pv_32bit_vcpu(v) ) { free_compat_arg_xlat(v); release_compat_l4(v); } + pv_destroy_gdt_ldt_l1tab(v); + xfree(v->arch.pv_vcpu.trap_ctxt); + v->arch.pv_vcpu.trap_ctxt = NULL; +} + +void vcpu_destroy(struct vcpu *v) +{ + xfree(v->arch.vm_event); + v->arch.vm_event = NULL; + vcpu_destroy_fpu(v); if ( !is_idle_domain(v->domain) ) @@ -506,10 +513,7 @@ void vcpu_destroy(struct vcpu *v) if ( is_hvm_vcpu(v) ) hvm_vcpu_destroy(v); else - { - pv_destroy_gdt_ldt_l1tab(v); - xfree(v->arch.pv_vcpu.trap_ctxt); - } + pv_vcpu_destroy(v); } static bool emulation_flags_ok(const struct domain *d, uint32_t emflags) -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |