From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v2 10/15] xen/arm: vgic-v2: Correctly set GICD_TYPER.CPUNumber Date: Thu, 29 Jan 2015 18:25:45 +0000 Message-ID: <1422555950-31821-11-git-send-email-julien.grall@linaro.org> References: <1422555950-31821-1-git-send-email-julien.grall@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YGtno-0004fJ-QS for xen-devel@lists.xenproject.org; Thu, 29 Jan 2015 18:26:52 +0000 Received: by mail-wi0-f173.google.com with SMTP id r20so30239226wiv.0 for ; Thu, 29 Jan 2015 10:26:51 -0800 (PST) In-Reply-To: <1422555950-31821-1-git-send-email-julien.grall@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: stefano.stabellini@citrix.com, Vijaya.Kumar@caviumnetworks.com, Julien Grall , tim@xen.org, ian.campbell@citrix.com List-Id: xen-devel@lists.xenproject.org The number of implemented CPU interfaces is one more than the value of this field. Also avoid hardcoding the shift and remove useless mask. Signed-off-by: Julien Grall Acked-by: Ian Campbell --- This patch should be backported to Xen 4.4 and Xen 4.5. Although this patch won't apply directly for Xen 4.4 and may require to define GICD_TYPE_CPUS_SHIFT if "xen/arm: vgic-v3: Correctly set GICD_TYPER.CPUNumber" is not backported. Changes in v2: - Add Ian's ack - Fix typoes --- xen/arch/arm/vgic-v2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index 515faf7..5faef12 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -55,7 +55,7 @@ static int vgic_v2_distr_mmio_read(struct vcpu *v, mmio_info_t *info) if ( dabt.size != DABT_WORD ) goto bad_width; /* No secure world support for guests. */ vgic_lock(v); - *r = ( (v->domain->max_vcpus << 5) & GICD_TYPE_CPUS ) + *r = ( ((v->domain->max_vcpus - 1) << GICD_TYPE_CPUS_SHIFT) ) |( ((v->domain->arch.vgic.nr_spis / 32)) & GICD_TYPE_LINES ); vgic_unlock(v); return 1; -- 2.1.4