From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v2 05/15] xen/arm: vgic-v3: Correctly implement read into GICR_NSACR Date: Thu, 29 Jan 2015 18:25:40 +0000 Message-ID: <1422555950-31821-6-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YGtnj-0004cf-Ja for xen-devel@lists.xenproject.org; Thu, 29 Jan 2015 18:26:47 +0000 Received: by mail-wi0-f173.google.com with SMTP id r20so30237663wiv.0 for ; Thu, 29 Jan 2015 10:26:43 -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 32-bit register GICR_NSACR is RAZ/WI on non-secure state. Therefore we should not inject a data abort to the guest. Signed-off-by: Julien Grall --- This patch should be backport to Xen 4.5. The current implementation will inject a data abort into the guest. Changes in v2: - Patch added --- xen/arch/arm/vgic-v3.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c index 1145972..2c14717 100644 --- a/xen/arch/arm/vgic-v3.c +++ b/xen/arch/arm/vgic-v3.c @@ -530,8 +530,9 @@ static int vgic_v3_rdistr_sgi_mmio_read(struct vcpu *v, mmio_info_t *info, vgic_unlock_rank(v, rank, flags); return 1; case GICR_NSACR: - if ( dabt.size != DABT_WORD ) goto bad_width; - return 1; + /* We do not implement security extensions for guests, read zero */ + goto read_as_zero_32; + default: printk(XENLOG_G_ERR "%pv: vGICR: SGI: read r%d offset %#08x\n not found", -- 2.1.4