From: Jan Beulich Date: Fri, 9 Apr 2021 07:25:17 +0000 (+0200) Subject: x86/vPMU: avoid effectively open-coding xzalloc_flex_struct() X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~42^2~727 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=463e8e6cf764beda5f58117a422dcb3a06fed405;p=xen.git x86/vPMU: avoid effectively open-coding xzalloc_flex_struct() There is a difference in generated code: xzalloc_bytes() forces SMP_CACHE_BYTES alignment. I think we not only don't need this here, but actually don't want it. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c index 6e97ce7900..64334c5fab 100644 --- a/xen/arch/x86/cpu/vpmu_intel.c +++ b/xen/arch/x86/cpu/vpmu_intel.c @@ -461,10 +461,10 @@ static int core2_vpmu_alloc_resource(struct vcpu *v) goto out_err; } - core2_vpmu_cxt = xzalloc_bytes(sizeof(*core2_vpmu_cxt) + - sizeof(uint64_t) * fixed_pmc_cnt + - sizeof(struct xen_pmu_cntr_pair) * - arch_pmc_cnt); + core2_vpmu_cxt = xzalloc_flex_struct(struct xen_pmu_intel_ctxt, regs, + fixed_pmc_cnt + arch_pmc_cnt * + (sizeof(struct xen_pmu_cntr_pair) / + sizeof(*core2_vpmu_cxt->regs))); p = xzalloc(uint64_t); if ( !core2_vpmu_cxt || !p ) goto out_err;