From patchwork Mon Mar 24 18:49:26 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 26950 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-yk0-f198.google.com (mail-yk0-f198.google.com [209.85.160.198]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 69BCF20143 for ; Mon, 24 Mar 2014 18:51:56 +0000 (UTC) Received: by mail-yk0-f198.google.com with SMTP id 9sf33147743ykp.1 for ; Mon, 24 Mar 2014 11:51:55 -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=dh/CgNV9ZDZ7PfjzZFx2ZCKxQVDLoR4BqDlaF+enWz76VoTVL1ufpzM4OVbaTvcNHH HctMkqZNKVaBD1iYqmIafv8eq+u9654vRfo+RJzh/g92896EDYn4pJYcsEMavXmBRjva TD9ATIN+JlU3VGlYAbJDxzc7K8d/A1Gj8Si8wHrEvjl6qLu7c4Wu1hBQu4Kh/u/f82NW vjJjkkAchO5XROI9L7z2qE4yvc7onh85YN0RTU52MXL53R4bSdF8lTe73BvZMvIGjm0K fbETM+QXVrZv2BHFE7AGhJ/6YODoyNcKSx9G5/JN2rVCznYMB+Z/Zt9yt3iRN7kpIs5T PDqw== X-Gm-Message-State: ALoCoQkSMOde+EOIy7kz0G4Z6xdsevF7oPPMrCTxxz3yE0BmNcvYcXTCRj1w3peCKaMFB1K8B7ht X-Received: by 10.58.154.228 with SMTP id vr4mr17826935veb.0.1395687115945; Mon, 24 Mar 2014 11:51:55 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.87.233 with SMTP id r96ls1712097qgd.98.gmail; Mon, 24 Mar 2014 11:51:55 -0700 (PDT) X-Received: by 10.220.247.68 with SMTP id mb4mr321329vcb.37.1395687115742; Mon, 24 Mar 2014 11:51:55 -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 bp12si3179371veb.27.2014.03.24.11.51.55 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 24 Mar 2014 11:51:55 -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 lg15so6312106vcb.16 for ; Mon, 24 Mar 2014 11:51:55 -0700 (PDT) X-Received: by 10.52.108.164 with SMTP id hl4mr3187615vdb.25.1395687115644; Mon, 24 Mar 2014 11:51:55 -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 i9csp246660vck; Mon, 24 Mar 2014 11:51:55 -0700 (PDT) X-Received: by 10.140.47.203 with SMTP id m69mr73121079qga.21.1395687115011; Mon, 24 Mar 2014 11:51:55 -0700 (PDT) Received: from lists.xen.org (lists.xen.org. [50.57.142.19]) by mx.google.com with ESMTPS id r10si1340213qar.1.2014.03.24.11.51.54 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Mon, 24 Mar 2014 11:51:55 -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 1WS9wv-0007T3-TB; Mon, 24 Mar 2014 18:50:17 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WS9wt-0007SJ-NA for xen-devel@lists.xensource.com; Mon, 24 Mar 2014 18:50:15 +0000 Received: from [85.158.137.68:55823] by server-8.bemta-3.messagelabs.com id 29/54-21547-76E70335; Mon, 24 Mar 2014 18:50:15 +0000 X-Env-Sender: Stefano.Stabellini@citrix.com X-Msg-Ref: server-13.tower-31.messagelabs.com!1395687012!2659126!1 X-Originating-IP: [66.165.176.63] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n X-StarScan-Received: X-StarScan-Version: 6.11.1; banners=-,-,- X-VirusChecked: Checked Received: (qmail 13348 invoked from network); 24 Mar 2014 18:50:13 -0000 Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63) by server-13.tower-31.messagelabs.com with RC4-SHA encrypted SMTP; 24 Mar 2014 18:50:13 -0000 X-IronPort-AV: E=Sophos;i="4.97,722,1389744000"; d="scan'208";a="113089143" Received: from accessns.citrite.net (HELO FTLPEX01CL03.citrite.net) ([10.9.154.239]) by FTLPIPO02.CITRIX.COM with ESMTP; 24 Mar 2014 18:50:11 +0000 Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com (10.13.107.80) with Microsoft SMTP Server id 14.2.342.4; Mon, 24 Mar 2014 14:50:10 -0400 Received: from kaball.uk.xensource.com ([10.80.2.59]) by ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from ) id 1WS9wj-0005Cs-J8; Mon, 24 Mar 2014 18:50:05 +0000 From: Stefano Stabellini To: Date: Mon, 24 Mar 2014 18:49:26 +0000 Message-ID: <1395686975-12649-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 v5 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,