Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1344501

[RFC v4 01/14] iommu: Add DOMAIN_ATTR_MSI_MAPPING attribute

From Eric Auger <eric.auger@linaro.org>
Newsgroups linux.kernel
Subject [RFC v4 01/14] iommu: Add DOMAIN_ATTR_MSI_MAPPING attribute
Date 2016-02-26 18:40 +0100
Message-ID <r6uwX-6GL-49@gated-at.bofh.it> (permalink)
References <r6uwW-6GL-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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 <Bharat.Bhushan@freescale.com>
Signed-off-by: Eric Auger <eric.auger@linaro.org>

---

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,
 };
 
-- 
1.9.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[RFC v4 00/14] KVM PCIe/MSI passthrough on ARM/ARM64 Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:40 +0100
  [RFC v4 09/14] msi: IOMMU map the doorbell address when needed Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:40 +0100
    Re: [RFC v4 09/14] msi: IOMMU map the doorbell address when needed Thomas Gleixner <tglx@linutronix.de> - 2016-02-26 19:30 +0100
      Re: [RFC v4 09/14] msi: IOMMU map the doorbell address when needed Eric Auger <eric.auger@linaro.org> - 2016-02-29 16:30 +0100
  [RFC v4 12/14] vfio/type1: also check IRQ remapping capability at msi domain Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:40 +0100
  [RFC v4 07/14] msi: Add a new MSI_FLAG_IRQ_REMAPPING flag Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:40 +0100
    Re: [RFC v4 07/14] msi: Add a new MSI_FLAG_IRQ_REMAPPING flag Thomas Gleixner <tglx@linutronix.de> - 2016-02-26 19:10 +0100
      Re: [RFC v4 07/14] msi: Add a new MSI_FLAG_IRQ_REMAPPING flag Eric Auger <eric.auger@linaro.org> - 2016-02-29 16:30 +0100
  [RFC v4 02/14] iommu: introduce a reserved iova cookie Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:40 +0100
  [RFC v4 01/14] iommu: Add DOMAIN_ATTR_MSI_MAPPING attribute Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:40 +0100
  [RFC v4 10/14] vfio: introduce VFIO_IOVA_RESERVED vfio_dma type Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:40 +0100
  [RFC v4 08/14] msi: export msi_get_domain_info Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:40 +0100
  [RFC v4 03/14] dma-reserved-iommu: alloc/free_reserved_iova_domain Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:40 +0100
  [RFC v4 06/14] dma-reserved-iommu: iommu_unmap_reserved Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:50 +0100
  [RFC v4 05/14] dma-reserved-iommu: iommu_get/put_single_reserved Eric Auger <eric.auger@linaro.org> - 2016-02-26 18:50 +0100

csiph-web