From patchwork Wed Aug 9 20:34:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "lan,Tianyu" X-Patchwork-Id: 9892619 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C2F3660350 for ; Thu, 10 Aug 2017 02:43:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A9DC828A03 for ; Thu, 10 Aug 2017 02:43:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9E84228A06; Thu, 10 Aug 2017 02:43:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=BAYES_00, DATE_IN_PAST_06_12, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7690028A03 for ; Thu, 10 Aug 2017 02:43:35 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dfdPw-0001R5-4o; Thu, 10 Aug 2017 02:41:48 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dfdPu-0001P0-JW for xen-devel@lists.xen.org; Thu, 10 Aug 2017 02:41:46 +0000 Received: from [193.109.254.147] by server-6.bemta-6.messagelabs.com id 53/1E-03937-9E7CB895; Thu, 10 Aug 2017 02:41:45 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRWlGSWpSXmKPExsXS1tbhqPvyeHe kwa8XXBZLPi5mcWD0OLr7N1MAYxRrZl5SfkUCa8aejydYCtbwVcxaeoC1gfECdxcjF4eQwDRG ieMT17F2MXJySAjwShxZNgPKDpC4uuETE0RRB6PExq4usASbgLrEicUTGUFsEQFpiWufLzOCF DELXGWUOL1tPjNIQljAQ+LrmtNMIDaLgKrEhZZ5YHFeAVeJXd0nGSE2KEhMefgeLM4JFJ+6ZS tYvZCAi8S65dMYJzDyLmBkWMWoUZxaVJZapGtoqJdUlJmeUZKbmJmja2hgppebWlycmJ6ak5h UrJecn7uJERgSDECwg/HTsoBDjJIcTEqivB0N3ZFCfEn5KZUZicUZ8UWlOanFhxhlODiUJHi7 jwHlBItS01Mr0jJzgMEJk5bg4FES4TUCSfMWFyTmFmemQ6ROMepyvJrw/xuTEEtefl6qlDivL kiRAEhRRmke3AhYpFxilJUS5mUEOkqIpyC1KDezBFX+FaM4B6OSMG8FyBSezLwSuE2vgI5gAj oiwrcT5IiSRISUVAOjxUpj20nfO9TXGjIHib0xbzOvkjiWbHXf9tqx5pk7s29ySbsXT+9ov+k VauHDwCMX+mPte5ctWUH3Ym+8EYso729pPKvAMrN0w+EJ+495FxWnK7PNtv5/Z7MJr9Teql+/ Pr/SCuqbtS9eeZLImoQsvtuH9y6KXb/TSCHrcGpekKV7mQt7m7ISS3FGoqEWc1FxIgAwYHVAj wIAAA== X-Env-Sender: tianyu.lan@intel.com X-Msg-Ref: server-8.tower-27.messagelabs.com!1502332902!100216550!1 X-Originating-IP: [134.134.136.65] X-SpamReason: No, hits=0.8 required=7.0 tests=DATE_IN_PAST_06_12 X-StarScan-Received: X-StarScan-Version: 9.4.45; banners=-,-,- X-VirusChecked: Checked Received: (qmail 14676 invoked from network); 10 Aug 2017 02:41:44 -0000 Received: from mga03.intel.com (HELO mga03.intel.com) (134.134.136.65) by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 10 Aug 2017 02:41:44 -0000 Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Aug 2017 19:41:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos; i="5.41,349,1498546800"; d="scan'208"; a="1001966462" Received: from sky-ws.sh.intel.com (HELO localhost) ([10.239.48.141]) by orsmga003.jf.intel.com with ESMTP; 09 Aug 2017 19:41:40 -0700 From: Lan Tianyu To: xen-devel@lists.xen.org Date: Wed, 9 Aug 2017 16:34:16 -0400 Message-Id: <1502310866-10450-16-git-send-email-tianyu.lan@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1502310866-10450-1-git-send-email-tianyu.lan@intel.com> References: <1502310866-10450-1-git-send-email-tianyu.lan@intel.com> Cc: Lan Tianyu , kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, julien.grall@arm.com, jbeulich@suse.com, Chao Gao Subject: [Xen-devel] [PATCH V2 15/25] x86/vvtd: decode interrupt attribute from IRTE X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Chao Gao Previously, interrupt attributes can be extracted from msi message or IOAPIC RTE. However, with interrupt remapping enabled, the attributes are enclosed in the associated IRTE. This callback is for cases in which the caller wants to acquire interrupt attributes. Signed-off-by: Chao Gao Signed-off-by: Lan Tianyu --- xen/drivers/passthrough/vtd/vvtd.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/xen/drivers/passthrough/vtd/vvtd.c b/xen/drivers/passthrough/vtd/vvtd.c index 2bee352..374fd88 100644 --- a/xen/drivers/passthrough/vtd/vvtd.c +++ b/xen/drivers/passthrough/vtd/vvtd.c @@ -532,6 +532,25 @@ static int vvtd_handle_irq_request(struct domain *d, return -EFAULT; } +static int vvtd_get_irq_info(struct domain *d, + struct irq_remapping_request *irq, + struct irq_remapping_info *info) +{ + int ret; + struct iremap_entry irte; + struct vvtd *vvtd = domain_vvtd(d); + + ret = vvtd_get_entry(vvtd, irq, &irte, false); + if ( ret ) + return ret; + + info->vector = irte.remap.vector; + info->dest = irte_dest(vvtd, irte.remap.dst); + info->dest_mode = irte.remap.dm; + info->delivery_mode = irte.remap.dlm; + return 0; +} + static void vvtd_reset(struct vvtd *vvtd, uint64_t capability) { uint64_t cap = DMA_CAP_NFR | DMA_CAP_SLLPS | DMA_CAP_FRO | @@ -608,7 +627,8 @@ struct viommu_ops vvtd_hvm_vmx_ops = { .query_caps = vvtd_query_caps, .create = vvtd_create, .destroy = vvtd_destroy, - .handle_irq_request = vvtd_handle_irq_request + .handle_irq_request = vvtd_handle_irq_request, + .get_irq_info = vvtd_get_irq_info }; static int vvtd_register(void)