From patchwork Wed Apr 2 15:01:37 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 27623 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ie0-f197.google.com (mail-ie0-f197.google.com [209.85.223.197]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id A3B0E20341 for ; Wed, 2 Apr 2014 15:03:30 +0000 (UTC) Received: by mail-ie0-f197.google.com with SMTP id rd18sf1594655iec.8 for ; Wed, 02 Apr 2014 08:03:30 -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=gWNF21a2zZy7YeBlTsAVKdsHXjkOAp9xfLZrEfSRvyImfQ6/Xa7IT9rc0AT8/mFtMu FSJ05gF5Sam92O3ZimlAAgZ4Nn8aSNx7CSQ+J51e/S3FVCamJyQArvc7ihXDcx/WZppY EqntWyN3RdU1vIhY7rw8AHNdClUvqDJSo3tSDssdMPuQttIyYoHLzjRNquBGjujCSwgN cyK/AHj+KTs9c/jlSZYI9ye0yTTBjIgNupql8OdXin4qQE+Lter5zHAP7+dXAXUflCN5 F/tdZptWboyjQFbzoM1Mi17IJacG9q+NnAXPJROmc0YkjPUnTulg2HSR6tvezTpsHeUo AdZw== X-Gm-Message-State: ALoCoQna7l5xCCjGuMy1nXHU5aSc835E+ocgJ0Z6VZ5OMGPQLDB9YweUkObrbcTieoQZNS1QIbfc X-Received: by 10.43.135.4 with SMTP id ie4mr535094icc.1.1396451010116; Wed, 02 Apr 2014 08:03:30 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.50.81 with SMTP id r75ls335563qga.71.gmail; Wed, 02 Apr 2014 08:03:30 -0700 (PDT) X-Received: by 10.52.170.16 with SMTP id ai16mr491054vdc.69.1396451010016; Wed, 02 Apr 2014 08:03:30 -0700 (PDT) Received: from mail-vc0-f172.google.com (mail-vc0-f172.google.com [209.85.220.172]) by mx.google.com with ESMTPS id sq9si605673vdc.35.2014.04.02.08.03.29 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 02 Apr 2014 08:03:30 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.220.172 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.172; Received: by mail-vc0-f172.google.com with SMTP id la4so476722vcb.31 for ; Wed, 02 Apr 2014 08:03:29 -0700 (PDT) X-Received: by 10.52.164.175 with SMTP id yr15mr979325vdb.59.1396451009916; Wed, 02 Apr 2014 08:03:29 -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.12.8 with SMTP id v8csp330774vcv; Wed, 2 Apr 2014 08:03:29 -0700 (PDT) X-Received: by 10.52.37.196 with SMTP id a4mr1021751vdk.33.1396451009033; Wed, 02 Apr 2014 08:03:29 -0700 (PDT) Received: from lists.xen.org (lists.xen.org. [50.57.142.19]) by mx.google.com with ESMTPS id be7si605280vcb.35.2014.04.02.08.03.28 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 02 Apr 2014 08:03:29 -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 1WVMg0-0004ta-Fr; Wed, 02 Apr 2014 15:02:04 +0000 Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WVMfz-0004tE-2V for xen-devel@lists.xensource.com; Wed, 02 Apr 2014 15:02:03 +0000 Received: from [85.158.143.35:47995] by server-3.bemta-4.messagelabs.com id FF/12-13602-A662C335; Wed, 02 Apr 2014 15:02:02 +0000 X-Env-Sender: Stefano.Stabellini@citrix.com X-Msg-Ref: server-15.tower-21.messagelabs.com!1396450920!5795894!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 19025 invoked from network); 2 Apr 2014 15:02:01 -0000 Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89) by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP; 2 Apr 2014 15:02:01 -0000 X-IronPort-AV: E=Sophos;i="4.97,780,1389744000"; d="scan'208";a="117348303" Received: from accessns.citrite.net (HELO FTLPEX01CL02.citrite.net) ([10.9.154.239]) by FTLPIPO01.CITRIX.COM with ESMTP; 02 Apr 2014 15:01:59 +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.2.342.4; Wed, 2 Apr 2014 11:01:58 -0400 Received: from kaball.uk.xensource.com ([10.80.2.59]) by ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from ) id 1WVMfp-0003fd-5I; Wed, 02 Apr 2014 16:01:53 +0100 From: Stefano Stabellini To: Date: Wed, 2 Apr 2014 16:01:37 +0100 Message-ID: <1396450906-542-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.172 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,