Re: [Xen-devel] [PATCH for 4.6] x86/VPMU: Set VPMU context pointer to NULL when freeing it
>>> On 09.09.15 at 04:55,wrote: > Otherwise we may hit assertion in vpmu_initialise() if vcpu is offlined > and then onlined again. > > For tidyness, set priv_context to NULL as well. > > Signed-off-by: Boris Ostrovsky Acked-by: Jan Beulich ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH for 4.6] x86/VPMU: Set VPMU context pointer to NULL when freeing it
On Tue, Sep 08, 2015 at 10:55:52PM -0400, Boris Ostrovsky wrote: > Otherwise we may hit assertion in vpmu_initialise() if vcpu is offlined > and then onlined again. > > For tidyness, set priv_context to NULL as well. > > Signed-off-by: Boris OstrovskyRelease-acked-by: Wei Liu > --- > xen/arch/x86/cpu/vpmu_amd.c | 2 ++ > xen/arch/x86/cpu/vpmu_intel.c | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c > index 825be72..04da81a 100644 > --- a/xen/arch/x86/cpu/vpmu_amd.c > +++ b/xen/arch/x86/cpu/vpmu_amd.c > @@ -438,6 +438,8 @@ static void amd_vpmu_destroy(struct vcpu *v) > amd_vpmu_unset_msr_bitmap(v); > > xfree(vpmu->context); > +vpmu->context = NULL; > +vpmu->priv_context = NULL; > > if ( vpmu_is_set(vpmu, VPMU_RUNNING) ) > release_pmu_ownship(PMU_OWNER_HVM); > diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c > index b3750d7..12f80ae 100644 > --- a/xen/arch/x86/cpu/vpmu_intel.c > +++ b/xen/arch/x86/cpu/vpmu_intel.c > @@ -828,7 +828,9 @@ static void core2_vpmu_destroy(struct vcpu *v) > struct vpmu_struct *vpmu = vcpu_vpmu(v); > > xfree(vpmu->context); > +vpmu->context = NULL; > xfree(vpmu->priv_context); > +vpmu->priv_context = NULL; > if ( has_hvm_container_vcpu(v) && cpu_has_vmx_msr_bitmap ) > core2_vpmu_unset_msr_bitmap(v->arch.hvm_vmx.msr_bitmap); > release_pmu_ownship(PMU_OWNER_HVM); > -- > 1.8.1.4 ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH for 4.6] x86/VPMU: Set VPMU context pointer to NULL when freeing it
Am Dienstag 08 September 2015, 22:55:52 schrieb Boris Ostrovsky: > Otherwise we may hit assertion in vpmu_initialise() if vcpu is offlined > and then onlined again. > > For tidyness, set priv_context to NULL as well. Reviewed-by: Dietmar Hahn> > Signed-off-by: Boris Ostrovsky > --- > xen/arch/x86/cpu/vpmu_amd.c | 2 ++ > xen/arch/x86/cpu/vpmu_intel.c | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c > index 825be72..04da81a 100644 > --- a/xen/arch/x86/cpu/vpmu_amd.c > +++ b/xen/arch/x86/cpu/vpmu_amd.c > @@ -438,6 +438,8 @@ static void amd_vpmu_destroy(struct vcpu *v) > amd_vpmu_unset_msr_bitmap(v); > > xfree(vpmu->context); > +vpmu->context = NULL; > +vpmu->priv_context = NULL; > > if ( vpmu_is_set(vpmu, VPMU_RUNNING) ) > release_pmu_ownship(PMU_OWNER_HVM); > diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c > index b3750d7..12f80ae 100644 > --- a/xen/arch/x86/cpu/vpmu_intel.c > +++ b/xen/arch/x86/cpu/vpmu_intel.c > @@ -828,7 +828,9 @@ static void core2_vpmu_destroy(struct vcpu *v) > struct vpmu_struct *vpmu = vcpu_vpmu(v); > > xfree(vpmu->context); > +vpmu->context = NULL; > xfree(vpmu->priv_context); > +vpmu->priv_context = NULL; > if ( has_hvm_container_vcpu(v) && cpu_has_vmx_msr_bitmap ) > core2_vpmu_unset_msr_bitmap(v->arch.hvm_vmx.msr_bitmap); > release_pmu_ownship(PMU_OWNER_HVM); > -- Company details: http://ts.fujitsu.com/imprint.html ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [PATCH for 4.6] x86/VPMU: Set VPMU context pointer to NULL when freeing it
Otherwise we may hit assertion in vpmu_initialise() if vcpu is offlined and then onlined again. For tidyness, set priv_context to NULL as well. Signed-off-by: Boris Ostrovsky--- xen/arch/x86/cpu/vpmu_amd.c | 2 ++ xen/arch/x86/cpu/vpmu_intel.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c index 825be72..04da81a 100644 --- a/xen/arch/x86/cpu/vpmu_amd.c +++ b/xen/arch/x86/cpu/vpmu_amd.c @@ -438,6 +438,8 @@ static void amd_vpmu_destroy(struct vcpu *v) amd_vpmu_unset_msr_bitmap(v); xfree(vpmu->context); +vpmu->context = NULL; +vpmu->priv_context = NULL; if ( vpmu_is_set(vpmu, VPMU_RUNNING) ) release_pmu_ownship(PMU_OWNER_HVM); diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c index b3750d7..12f80ae 100644 --- a/xen/arch/x86/cpu/vpmu_intel.c +++ b/xen/arch/x86/cpu/vpmu_intel.c @@ -828,7 +828,9 @@ static void core2_vpmu_destroy(struct vcpu *v) struct vpmu_struct *vpmu = vcpu_vpmu(v); xfree(vpmu->context); +vpmu->context = NULL; xfree(vpmu->priv_context); +vpmu->priv_context = NULL; if ( has_hvm_container_vcpu(v) && cpu_has_vmx_msr_bitmap ) core2_vpmu_unset_msr_bitmap(v->arch.hvm_vmx.msr_bitmap); release_pmu_ownship(PMU_OWNER_HVM); -- 1.8.1.4 ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel