From patchwork Thu Mar 27 15:13:30 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 27199 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-oa0-f69.google.com (mail-oa0-f69.google.com [209.85.219.69]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id E7816202FA for ; Thu, 27 Mar 2014 15:16:52 +0000 (UTC) Received: by mail-oa0-f69.google.com with SMTP id i7sf13346307oag.4 for ; Thu, 27 Mar 2014 08:16:52 -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=LG17iMuqWh3eQkJyFUgaPgZGEz6bXSBtaEmiGZ7NssM=; b=WHCBIwD3l09dYFfrjGQXwxBVxCCrtPOvS4zf4wdl7+LD7BcDqnJCKjr67CsQ+WJGcJ a52Oi+jLk3lj0QVtqME7yaJrz91J8/oQEdoVzALUvklzvVSORMZn/Tj6beSibFSUE6WS X/gYCgJ/UHYtpuCEbMmLZnQNFLy7+fhTTXxlTYnuQ35ZR/DAqkUMUk7Jt8/22dvLiV+I nZyJ/+/6WvTvFlTErwtUgs+ej7XS43n0XyRgCt3N/zEbEdP1wOO97V0UIl2vmGeqd26s p1shupifJ8+GDk4CydOgHRqqzSbknHvSpkqwnYWVQBfPv0xJB9u8qZPy2iPZ9D9ZPYmU Zx6w== X-Gm-Message-State: ALoCoQmbMlHdnqBl11dasl0ea+GvPyvWF+oWk0ml5sM5ULabgaesO2RIyP9QfyxRcc96SS51wsFz X-Received: by 10.182.24.5 with SMTP id q5mr890799obf.23.1395933412427; Thu, 27 Mar 2014 08:16:52 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.34.233 with SMTP id l96ls1125416qgl.90.gmail; Thu, 27 Mar 2014 08:16:52 -0700 (PDT) X-Received: by 10.52.15.132 with SMTP id x4mr1581707vdc.31.1395933412341; Thu, 27 Mar 2014 08:16:52 -0700 (PDT) Received: from mail-vc0-f171.google.com (mail-vc0-f171.google.com [209.85.220.171]) by mx.google.com with ESMTPS id h5si489554vcz.106.2014.03.27.08.16.52 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 27 Mar 2014 08:16:52 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.220.171 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.220.171; Received: by mail-vc0-f171.google.com with SMTP id lg15so4442158vcb.30 for ; Thu, 27 Mar 2014 08:16:52 -0700 (PDT) X-Received: by 10.58.90.99 with SMTP id bv3mr849046veb.34.1395933412249; Thu, 27 Mar 2014 08:16:52 -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.78.9 with SMTP id i9csp36054vck; Thu, 27 Mar 2014 08:16:51 -0700 (PDT) X-Received: by 10.224.62.13 with SMTP id v13mr2936488qah.10.1395933411757; Thu, 27 Mar 2014 08:16:51 -0700 (PDT) Received: from lists.xen.org (lists.xen.org. [50.57.142.19]) by mx.google.com with ESMTPS id f6si1167241qap.31.2014.03.27.08.16.51 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 27 Mar 2014 08:16:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of xen-devel-bounces@lists.xen.org designates 50.57.142.19 as permitted sender) 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 1WTC0w-0003ws-Jw; Thu, 27 Mar 2014 15:14:42 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WTC0u-0003wE-CF for xen-devel@lists.xensource.com; Thu, 27 Mar 2014 15:14:40 +0000 Received: from [85.158.139.211:6647] by server-15.bemta-5.messagelabs.com id 19/0E-11079-F5044335; Thu, 27 Mar 2014 15:14:39 +0000 X-Env-Sender: Stefano.Stabellini@citrix.com X-Msg-Ref: server-2.tower-206.messagelabs.com!1395933277!3778274!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.1; banners=-,-,- X-VirusChecked: Checked Received: (qmail 31552 invoked from network); 27 Mar 2014 15:14:38 -0000 Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89) by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP; 27 Mar 2014 15:14:38 -0000 X-IronPort-AV: E=Sophos;i="4.97,743,1389744000"; d="scan'208";a="115483899" Received: from accessns.citrite.net (HELO FTLPEX01CL01.citrite.net) ([10.9.154.239]) by FTLPIPO01.CITRIX.COM with ESMTP; 27 Mar 2014 15:14:20 +0000 Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com (10.13.107.78) with Microsoft SMTP Server id 14.2.342.4; Thu, 27 Mar 2014 11:14:19 -0400 Received: from kaball.uk.xensource.com ([10.80.2.59]) by ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from ) id 1WTC0U-0004xQ-9P; Thu, 27 Mar 2014 15:14:14 +0000 From: Stefano Stabellini To: Date: Thu, 27 Mar 2014 15:13:30 +0000 Message-ID: <1395933219-18495-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: MIA2 Cc: julien.grall@citrix.com, Ian.Campbell@citrix.com, Stefano Stabellini Subject: [Xen-devel] [PATCH v6 01/10] 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=neutral (google.com: 209.85.220.171 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) 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 91a2982..b388ef3 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -726,22 +726,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) || @@ -754,10 +738,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(); } int gic_route_irq_to_guest(struct domain *d, const struct dt_irq *irq,