From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v2 02/15] xen/arm: move vgic rank data to gic header file Date: Fri, 04 Apr 2014 14:16:06 +0100 Message-ID: <533EB096.1000006@linaro.org> References: <1396612593-443-1-git-send-email-vijay.kilari@gmail.com> <1396612593-443-3-git-send-email-vijay.kilari@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1396612593-443-3-git-send-email-vijay.kilari@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: vijay.kilari@gmail.com Cc: Ian.Campbell@citrix.com, stefano.stabellini@eu.citrix.com, Prasun.Kapoor@caviumnetworks.com, vijaya.kumar@caviumnetworks.com, xen-devel@lists.xen.org, stefano.stabellini@citrix.com List-Id: xen-devel@lists.xenproject.org Hello Vijay, Thank you for the patch. On 04/04/2014 12:56 PM, vijay.kilari@gmail.com wrote: > From: Vijaya Kumar K > > vgic_irq_rank structure contains gic specific > data elements. Move this out of domain.h and > allocate memory dynamically in vgic driver. I guess it's because you hit the maximum size of vgic structure, right? If so can you specify it in the commit message? [..] > diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c > index 77b561e..d86bede 100644 > --- a/xen/arch/arm/vgic.c > +++ b/xen/arch/arm/vgic.c > @@ -67,7 +67,7 @@ static struct vgic_irq_rank *vgic_irq_rank(struct vcpu *v, int b, int n) > int rank = REG_RANK_NR(b, n); > > if ( rank == 0 ) > - return &v->arch.vgic.private_irqs; > + return v->arch.vgic.private_irqs; > else if ( rank <= DOMAIN_NR_RANKS(v->domain) ) > return &v->domain->arch.vgic.shared_irqs[rank - 1]; > else > @@ -121,9 +121,14 @@ void domain_vgic_free(struct domain *d) > int vcpu_vgic_init(struct vcpu *v) > { > int i; > + > + v->arch.vgic.private_irqs = xzalloc(struct vgic_irq_rank); > + if ( v->arch.vgic.private_irqs == NULL ) > + return -ENOMEM; > + > memset(&v->arch.vgic.private_irqs, 0, sizeof(v->arch.vgic.private_irqs)); You forgot to remove & in front of v->arch.vgic.private_irqs. Regards, -- Julien Grall