[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86/vIO-APIC: make use of xmalloc_flex_struct()
commit d218fb11884346bb079fa2226ab8786a7bfeee16 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Mon Dec 7 14:53:20 2020 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Dec 7 14:53:20 2020 +0100 x86/vIO-APIC: make use of xmalloc_flex_struct() ... instead of effectively open-coding it in a type-unsafe way. Drop hvm_vioapic_size() altogether, folding the other use in a memset() invocation into the subsequent loop. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/arch/x86/hvm/vioapic.c | 7 ++++--- xen/include/asm-x86/hvm/vioapic.h | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c index e64abee7a9..7c462a44d4 100644 --- a/xen/arch/x86/hvm/vioapic.c +++ b/xen/arch/x86/hvm/vioapic.c @@ -622,9 +622,9 @@ void vioapic_reset(struct domain *d) unsigned int nr_pins = vioapic->nr_pins, base_gsi = vioapic->base_gsi; unsigned int pin; - memset(vioapic, 0, hvm_vioapic_size(nr_pins)); + memset(vioapic, 0, offsetof(typeof(*vioapic), redirtbl)); for ( pin = 0; pin < nr_pins; pin++ ) - vioapic->redirtbl[pin].fields.mask = 1; + vioapic->redirtbl[pin] = (union vioapic_redir_entry){ .fields.mask = 1 }; if ( !is_hardware_domain(d) ) { @@ -685,7 +685,8 @@ int vioapic_init(struct domain *d) } if ( (domain_vioapic(d, i) = - xmalloc_bytes(hvm_vioapic_size(nr_pins))) == NULL ) + xmalloc_flex_struct(struct hvm_vioapic, redirtbl, + nr_pins)) == NULL ) { vioapic_free(d, nr_vioapics); return -ENOMEM; diff --git a/xen/include/asm-x86/hvm/vioapic.h b/xen/include/asm-x86/hvm/vioapic.h index d6f4e12d54..36b64d20d6 100644 --- a/xen/include/asm-x86/hvm/vioapic.h +++ b/xen/include/asm-x86/hvm/vioapic.h @@ -56,7 +56,6 @@ struct hvm_vioapic { }; }; -#define hvm_vioapic_size(cnt) offsetof(struct hvm_vioapic, redirtbl[cnt]) #define domain_vioapic(d, i) ((d)->arch.hvm.vioapic[i]) #define vioapic_domain(v) ((v)->domain) -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |