From patchwork Thu May 22 12:32:18 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 30614 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ve0-f198.google.com (mail-ve0-f198.google.com [209.85.128.198]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 07B4320369 for ; Thu, 22 May 2014 12:34:18 +0000 (UTC) Received: by mail-ve0-f198.google.com with SMTP id sa20sf11956166veb.5 for ; Thu, 22 May 2014 05:34:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:from:to:date:message-id:in-reply-to :references:mime-version:cc:subject:precedence:list-id :list-unsubscribe:list-post:list-help:list-subscribe:sender :errors-to:x-original-sender:x-original-authentication-results :mailing-list:list-archive:content-type:content-transfer-encoding; bh=+fj1efffQSLId3Ljdp3Kuq5kS5WLgUVk5+Pe/WYW8Mc=; b=dVh7tS4LcvEplh87pI41wq8c2OpN80EPONlH8GjtVjFTmt1N6wzVFtW+DyqpPgPWyR OhNa2jpNq0vFf4zCssBIcJgaX+R/TFkspmgkCvNK0tTjsdq3RthVIdeLr/o1+wTJJtN5 XaUvxkNmDYUZPVLQZ8ovGaB81GBKu0AYSIhHcuJmHQDWAYprgrG8mxnWwLTZmIBFYzNz fuGlq32gh9/5BFBVvOI19lMPrEz5DTG2/j5HRjc0qkvWevTjP2/bVLlkuZujSkenvl0f PUm0F4UVOttnpicd02M1QSDuR02OOX95N+fDVzpbBAQXsuKPIrxNNcj89pD7/+WjGhWB rlOA== X-Gm-Message-State: ALoCoQmq+nWTxTayQYLb7NWgcUaMf4sr3yxSCpijhuPQzZUgZTfDMTQ5u3g+wKDkfuvgQbi4Dwnf X-Received: by 10.236.165.230 with SMTP id e66mr5538565yhl.6.1400762057840; Thu, 22 May 2014 05:34:17 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.92.44 with SMTP id a41ls1258438qge.72.gmail; Thu, 22 May 2014 05:34:17 -0700 (PDT) X-Received: by 10.58.228.163 with SMTP id sj3mr36132452vec.28.1400762057708; Thu, 22 May 2014 05:34:17 -0700 (PDT) Received: from mail-ve0-f182.google.com (mail-ve0-f182.google.com [209.85.128.182]) by mx.google.com with ESMTPS id y11si3037146vdg.44.2014.05.22.05.34.17 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 22 May 2014 05:34:17 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.128.182 as permitted sender) client-ip=209.85.128.182; Received: by mail-ve0-f182.google.com with SMTP id sa20so4265185veb.41 for ; Thu, 22 May 2014 05:34:17 -0700 (PDT) X-Received: by 10.58.85.65 with SMTP id f1mr49953223vez.20.1400762057637; Thu, 22 May 2014 05:34:17 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.220.221.72 with SMTP id ib8csp194928vcb; Thu, 22 May 2014 05:34:17 -0700 (PDT) X-Received: by 10.224.12.81 with SMTP id w17mr17684963qaw.52.1400762057199; Thu, 22 May 2014 05:34:17 -0700 (PDT) Received: from lists.xen.org (lists.xen.org. [50.57.142.19]) by mx.google.com with ESMTPS id g45si4953706qge.34.2014.05.22.05.34.16 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 22 May 2014 05:34:17 -0700 (PDT) Received-SPF: none (google.com: xen-devel-bounces@lists.xen.org does not designate permitted sender hosts) client-ip=50.57.142.19; Received: from localhost ([127.0.0.1] helo=lists.xen.org) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WnSBS-0004IR-9c; Thu, 22 May 2014 12:33:18 +0000 Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WnSBQ-0004I1-Uk for xen-devel@lists.xensource.com; Thu, 22 May 2014 12:33:17 +0000 Received: from [85.158.143.35:49826] by server-3.bemta-4.messagelabs.com id 91/5F-13602-C8EED735; Thu, 22 May 2014 12:33:16 +0000 X-Env-Sender: Stefano.Stabellini@citrix.com X-Msg-Ref: server-14.tower-21.messagelabs.com!1400761994!6613018!1 X-Originating-IP: [66.165.176.89] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n X-StarScan-Received: X-StarScan-Version: 6.11.3; banners=-,-,- X-VirusChecked: Checked Received: (qmail 29321 invoked from network); 22 May 2014 12:33:15 -0000 Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89) by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP; 22 May 2014 12:33:15 -0000 X-IronPort-AV: E=Sophos;i="4.98,887,1392163200"; d="scan'208";a="134537190" Received: from accessns.citrite.net (HELO FTLPEX01CL02.citrite.net) ([10.9.154.239]) by FTLPIPO01.CITRIX.COM with ESMTP; 22 May 2014 12:33:13 +0000 Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com (10.13.107.79) with Microsoft SMTP Server id 14.3.181.6; Thu, 22 May 2014 08:33:13 -0400 Received: from kaball.uk.xensource.com ([10.80.2.59]) by ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from ) id 1WnSBI-0003tn-3o; Thu, 22 May 2014 13:33:08 +0100 From: Stefano Stabellini To: Date: Thu, 22 May 2014 13:32:18 +0100 Message-ID: <1400761950-25035-1-git-send-email-stefano.stabellini@eu.citrix.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: MIME-Version: 1.0 X-DLP: MIA1 Cc: julien.grall@citrix.com, Ian.Campbell@citrix.com, Stefano Stabellini Subject: [Xen-devel] [PATCH v8 01/13] xen/arm: no need to set HCR_VI when using the vgic to inject irqs X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Post: , List-Help: , List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: stefano.stabellini@eu.citrix.com X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.128.182 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Archive: HCR_VI forces the guest to resume execution in IRQ mode and can actually cause spurious interrupt injections. The GIC is capable of injecting interrupts into the guest and causing it to switch to IRQ mode automatically, without any need for the hypervisor to set HCR_VI manually. See ARM ARM B1.8.11 and chapter 5.4 of the Generic Interrupt Controller Architecture Specification. Signed-off-by: Stefano Stabellini Acked-by: Julien Grall Acked-by: Ian Campbell --- Changes in v4: - improve commit message. --- xen/arch/arm/gic.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c index 577d85b..a449ef3 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -643,22 +643,6 @@ void gic_clear_pending_irqs(struct vcpu *v) spin_unlock_irqrestore(&gic.lock, flags); } -static void gic_inject_irq_start(void) -{ - register_t hcr = READ_SYSREG(HCR_EL2); - WRITE_SYSREG(hcr | HCR_VI, HCR_EL2); - isb(); -} - -static void gic_inject_irq_stop(void) -{ - register_t hcr = READ_SYSREG(HCR_EL2); - if (hcr & HCR_VI) { - WRITE_SYSREG(hcr & ~HCR_VI, HCR_EL2); - isb(); - } -} - int gic_events_need_delivery(void) { return (!list_empty(¤t->arch.vgic.lr_pending) || @@ -671,10 +655,6 @@ void gic_inject(void) vgic_vcpu_inject_irq(current, current->domain->arch.evtchn_irq, 1); gic_restore_pending_irqs(current); - if (!gic_events_need_delivery()) - gic_inject_irq_stop(); - else - gic_inject_irq_start(); } static void do_sgi(struct cpu_user_regs *regs, int othercpu, enum gic_sgi sgi)