The domain_init callback can return error. Check it and progate the error if necessary.
Signed-off-by: Julien Grall <julien.gr...@citrix.com> Acked-by: Ian Campbell <ian.campb...@citrix.com> --- Changes in v2: - Add Ian's ack --- xen/arch/arm/vgic.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c index dfd959a..fe6c7a2 100644 --- a/xen/arch/arm/vgic.c +++ b/xen/arch/arm/vgic.c @@ -71,6 +71,7 @@ static void vgic_init_pending_irq(struct pending_irq *p, unsigned int virq) int domain_vgic_init(struct domain *d, unsigned int nr_spis) { int i; + int ret; d->arch.vgic.ctlr = 0; @@ -114,7 +115,9 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis) for (i=0; i<DOMAIN_NR_RANKS(d); i++) spin_lock_init(&d->arch.vgic.shared_irqs[i].lock); - d->arch.vgic.handler->domain_init(d); + ret = d->arch.vgic.handler->domain_init(d); + if ( ret ) + return ret; d->arch.vgic.allocated_irqs = xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d))); -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel