From patchwork Thu Feb 11 14:34:08 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Auger X-Patchwork-Id: 8281201 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id CCBAB9F3CD for ; Thu, 11 Feb 2016 14:42:37 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id E57A320222 for ; Thu, 11 Feb 2016 14:42:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E4F692035D for ; Thu, 11 Feb 2016 14:42:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752417AbcBKOmP (ORCPT ); Thu, 11 Feb 2016 09:42:15 -0500 Received: from mail-wm0-f53.google.com ([74.125.82.53]:38372 "EHLO mail-wm0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751001AbcBKOe4 (ORCPT ); Thu, 11 Feb 2016 09:34:56 -0500 Received: by mail-wm0-f53.google.com with SMTP id p63so70983870wmp.1 for ; Thu, 11 Feb 2016 06:34:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sPP4z9gz+YM5sgwa3CGYUoqQ4UJfqzZ1slgqlt9b3os=; b=UiDiIjBlfMcnlK0U4V7AWk3nDAxbhm2YoqJi1I1Ds41lE5APqIW1OKhFdUp15PtVxB 86EEbKkHszCTZqb7jc/c+bwxSlOS4SDiDWE8aC1R6ahOYKLcPdULgjA6j2V0X/WAf/uA iOCT/iA3RG7XUPgqAXvpHsT1Uq2svVxnKVXOU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sPP4z9gz+YM5sgwa3CGYUoqQ4UJfqzZ1slgqlt9b3os=; b=Lc9n39k2GVmJ1Uuhg7FceX7itKaceyI8q63o6nOH3vgl2qZjf/1TqVvI59ieH8sbqo /OqRSEsEfTQPQwC/4NHKwkgZk8lU8L2nbaQsq9cX6pQZycR4kSq+GrVyFBtILpsYeS42 urF5l/OPU5T6Nv4zPNoWtU64OSvSGn8WbIqZHblxwwhGMxQ2zGsQ/lrHVUxkguphAWWE f7O80vyCt11bLODGv1CX1UvAV6w/GQWm1c5hGNfn3Q6f3sfqKXxXRXGs28IYsbR/pehc GF3puzcEPV3QYbjwdf01nU85WIEsevTv22MwM024auYJFRxb9jEyRYIzkoZ4junBDYu2 D2jg== X-Gm-Message-State: AG10YOSOJla+JjD0K2NmdDffFg9X1eKfjwlp3XmdfiC/e5cETk1Jrfj5vyJASizIfH40Y3uW X-Received: by 10.28.105.136 with SMTP id z8mr18378941wmh.71.1455201295394; Thu, 11 Feb 2016 06:34:55 -0800 (PST) Received: from new-host-12.home (LMontsouris-657-1-37-90.w80-11.abo.wanadoo.fr. [80.11.198.90]) by smtp.gmail.com with ESMTPSA id t205sm8290751wmt.23.2016.02.11.06.34.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 11 Feb 2016 06:34:53 -0800 (PST) From: Eric Auger To: eric.auger@st.com, eric.auger@linaro.org, alex.williamson@redhat.com, will.deacon@arm.com, joro@8bytes.org, tglx@linutronix.de, jason@lakedaemon.net, marc.zyngier@arm.com, christoffer.dall@linaro.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org Cc: suravee.suthikulpanit@amd.com, patches@linaro.org, linux-kernel@vger.kernel.org, Manish.Jaggi@caviumnetworks.com, Bharat.Bhushan@freescale.com, pranav.sawargaonkar@gmail.com, p.fedin@samsung.com, iommu@lists.linux-foundation.org, sherry.hurwitz@amd.com, brijesh.singh@amd.com, leo.duran@amd.com, Thomas.Lendacky@amd.com Subject: [RFC v2 01/15] iommu: Add DOMAIN_ATTR_MSI_MAPPING attribute Date: Thu, 11 Feb 2016 14:34:08 +0000 Message-Id: <1455201262-5259-2-git-send-email-eric.auger@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1455201262-5259-1-git-send-email-eric.auger@linaro.org> References: <1455201262-5259-1-git-send-email-eric.auger@linaro.org> Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Introduce new DOMAIN_ATTR_MSI_MAPPING domain attribute. If supported, this means the MSI addresses need to be mapped in the IOMMU. ARM SMMUS and FSL PAMU, at least expose this attribute. x86 IOMMUs typically don't expose the attribute since on x86, MSI write transaction addresses always are within the 1MB PA region [FEE0_0000h - FEF0_000h] window which directly targets the APIC configuration space and hence bypass the sMMU. Signed-off-by: Bharat Bhushan Signed-off-by: Eric Auger --- RFC v1 -> v1: - the data field is not used - for this attribute domain_get_attr simply returns 0 if the MSI_MAPPING capability if needed or <0 if not. - removed struct iommu_domain_msi_maps --- drivers/iommu/arm-smmu.c | 2 ++ drivers/iommu/fsl_pamu_domain.c | 2 ++ include/linux/iommu.h | 1 + 3 files changed, 5 insertions(+) diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index 59ee4b8..c8b7e71 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c @@ -1409,6 +1409,8 @@ static int arm_smmu_domain_get_attr(struct iommu_domain *domain, case DOMAIN_ATTR_NESTING: *(int *)data = (smmu_domain->stage == ARM_SMMU_DOMAIN_NESTED); return 0; + case DOMAIN_ATTR_MSI_MAPPING: + return 0; default: return -ENODEV; } diff --git a/drivers/iommu/fsl_pamu_domain.c b/drivers/iommu/fsl_pamu_domain.c index da0e1e3..46d5c6a 100644 --- a/drivers/iommu/fsl_pamu_domain.c +++ b/drivers/iommu/fsl_pamu_domain.c @@ -856,6 +856,8 @@ static int fsl_pamu_get_domain_attr(struct iommu_domain *domain, case DOMAIN_ATTR_FSL_PAMUV1: *(int *)data = DOMAIN_ATTR_FSL_PAMUV1; break; + case DOMAIN_ATTR_MSI_MAPPING: + break; default: pr_debug("Unsupported attribute type\n"); ret = -EINVAL; diff --git a/include/linux/iommu.h b/include/linux/iommu.h index a5c539f..a4fe04a 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -112,6 +112,7 @@ enum iommu_attr { DOMAIN_ATTR_FSL_PAMU_ENABLE, DOMAIN_ATTR_FSL_PAMUV1, DOMAIN_ATTR_NESTING, /* two stages of translation */ + DOMAIN_ATTR_MSI_MAPPING, /* Require MSIs mapping in iommu */ DOMAIN_ATTR_MAX, };