From: Joerg Roedel <joro@8bytes.org>
To: Joerg Roedel <joro@8bytes.org>
Cc: corbet@lwn.net, tony.luck@intel.com, fenghua.yu@intel.com,
tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
hpa@zytor.com, x86@kernel.org, linux-doc@vger.kernel.org,
linux-ia64@vger.kernel.org, iommu@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, Thomas.Lendacky@amd.com,
Suravee.Suthikulpanit@amd.com, Joerg Roedel <jroedel@suse.de>
Subject: [PATCH 01/10] iommu: Add helpers to set/get default domain type
Date: Wed, 14 Aug 2019 15:38:32 +0200 [thread overview]
Message-ID: <20190814133841.7095-2-joro@8bytes.org> (raw)
In-Reply-To: <20190814133841.7095-1-joro@8bytes.org>
From: Joerg Roedel <jroedel@suse.de>
Add a couple of functions to allow changing the default
domain type from architecture code and a function for iommu
drivers to request whether the default domain is
passthrough.
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
drivers/iommu/iommu.c | 16 ++++++++++++++++
include/linux/iommu.h | 16 ++++++++++++++++
2 files changed, 32 insertions(+)
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 0c674d80c37f..f187e85a074b 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -2196,6 +2196,22 @@ int iommu_request_dma_domain_for_dev(struct device *dev)
return request_default_domain_for_dev(dev, IOMMU_DOMAIN_DMA);
}
+void iommu_set_default_passthrough(void)
+{
+ iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY;
+}
+
+void iommu_set_default_translated(void)
+{
+ iommu_def_domain_type = IOMMU_DOMAIN_DMA;
+}
+
+bool iommu_default_passthrough(void)
+{
+ return iommu_def_domain_type == IOMMU_DOMAIN_IDENTITY;
+}
+EXPORT_SYMBOL_GPL(iommu_default_passthrough);
+
const struct iommu_ops *iommu_ops_from_fwnode(struct fwnode_handle *fwnode)
{
const struct iommu_ops *ops = NULL;
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index fdc355ccc570..58c3e3e5f157 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -413,6 +413,9 @@ extern void iommu_get_resv_regions(struct device *dev, struct list_head *list);
extern void iommu_put_resv_regions(struct device *dev, struct list_head *list);
extern int iommu_request_dm_for_dev(struct device *dev);
extern int iommu_request_dma_domain_for_dev(struct device *dev);
+extern void iommu_set_default_passthrough(void);
+extern void iommu_set_default_translated(void);
+extern bool iommu_default_passthrough(void);
extern struct iommu_resv_region *
iommu_alloc_resv_region(phys_addr_t start, size_t length, int prot,
enum iommu_resv_type type);
@@ -694,6 +697,19 @@ static inline int iommu_request_dma_domain_for_dev(struct device *dev)
return -ENODEV;
}
+static inline void iommu_set_default_passthrough(void)
+{
+}
+
+static inline void iommu_set_default_translated(void)
+{
+}
+
+static inline bool iommu_default_passthrough(void)
+{
+ return true;
+}
+
static inline int iommu_attach_group(struct iommu_domain *domain,
struct iommu_group *group)
{
--
2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Joerg Roedel <joro@8bytes.org>
To: Joerg Roedel <joro@8bytes.org>
Cc: corbet@lwn.net, tony.luck@intel.com, fenghua.yu@intel.com,
tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
hpa@zytor.com, x86@kernel.org, linux-doc@vger.kernel.org,
linux-ia64@vger.kernel.org, iommu@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, Thomas.Lendacky@amd.com,
Suravee.Suthikulpanit@amd.com, Joerg Roedel <jroedel@suse.de>
Subject: [PATCH 01/10] iommu: Add helpers to set/get default domain type
Date: Wed, 14 Aug 2019 13:38:32 +0000 [thread overview]
Message-ID: <20190814133841.7095-2-joro@8bytes.org> (raw)
In-Reply-To: <20190814133841.7095-1-joro@8bytes.org>
From: Joerg Roedel <jroedel@suse.de>
Add a couple of functions to allow changing the default
domain type from architecture code and a function for iommu
drivers to request whether the default domain is
passthrough.
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
drivers/iommu/iommu.c | 16 ++++++++++++++++
include/linux/iommu.h | 16 ++++++++++++++++
2 files changed, 32 insertions(+)
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 0c674d80c37f..f187e85a074b 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -2196,6 +2196,22 @@ int iommu_request_dma_domain_for_dev(struct device *dev)
return request_default_domain_for_dev(dev, IOMMU_DOMAIN_DMA);
}
+void iommu_set_default_passthrough(void)
+{
+ iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY;
+}
+
+void iommu_set_default_translated(void)
+{
+ iommu_def_domain_type = IOMMU_DOMAIN_DMA;
+}
+
+bool iommu_default_passthrough(void)
+{
+ return iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY;
+}
+EXPORT_SYMBOL_GPL(iommu_default_passthrough);
+
const struct iommu_ops *iommu_ops_from_fwnode(struct fwnode_handle *fwnode)
{
const struct iommu_ops *ops = NULL;
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index fdc355ccc570..58c3e3e5f157 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -413,6 +413,9 @@ extern void iommu_get_resv_regions(struct device *dev, struct list_head *list);
extern void iommu_put_resv_regions(struct device *dev, struct list_head *list);
extern int iommu_request_dm_for_dev(struct device *dev);
extern int iommu_request_dma_domain_for_dev(struct device *dev);
+extern void iommu_set_default_passthrough(void);
+extern void iommu_set_default_translated(void);
+extern bool iommu_default_passthrough(void);
extern struct iommu_resv_region *
iommu_alloc_resv_region(phys_addr_t start, size_t length, int prot,
enum iommu_resv_type type);
@@ -694,6 +697,19 @@ static inline int iommu_request_dma_domain_for_dev(struct device *dev)
return -ENODEV;
}
+static inline void iommu_set_default_passthrough(void)
+{
+}
+
+static inline void iommu_set_default_translated(void)
+{
+}
+
+static inline bool iommu_default_passthrough(void)
+{
+ return true;
+}
+
static inline int iommu_attach_group(struct iommu_domain *domain,
struct iommu_group *group)
{
--
2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Joerg Roedel <joro@8bytes.org>
To: Joerg Roedel <joro@8bytes.org>
Cc: fenghua.yu@intel.com, tony.luck@intel.com,
linux-ia64@vger.kernel.org, corbet@lwn.net,
Joerg Roedel <jroedel@suse.de>,
x86@kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
mingo@redhat.com, bp@alien8.de, Thomas.Lendacky@amd.com,
hpa@zytor.com, tglx@linutronix.de
Subject: [PATCH 01/10] iommu: Add helpers to set/get default domain type
Date: Wed, 14 Aug 2019 15:38:32 +0200 [thread overview]
Message-ID: <20190814133841.7095-2-joro@8bytes.org> (raw)
In-Reply-To: <20190814133841.7095-1-joro@8bytes.org>
From: Joerg Roedel <jroedel@suse.de>
Add a couple of functions to allow changing the default
domain type from architecture code and a function for iommu
drivers to request whether the default domain is
passthrough.
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
drivers/iommu/iommu.c | 16 ++++++++++++++++
include/linux/iommu.h | 16 ++++++++++++++++
2 files changed, 32 insertions(+)
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 0c674d80c37f..f187e85a074b 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -2196,6 +2196,22 @@ int iommu_request_dma_domain_for_dev(struct device *dev)
return request_default_domain_for_dev(dev, IOMMU_DOMAIN_DMA);
}
+void iommu_set_default_passthrough(void)
+{
+ iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY;
+}
+
+void iommu_set_default_translated(void)
+{
+ iommu_def_domain_type = IOMMU_DOMAIN_DMA;
+}
+
+bool iommu_default_passthrough(void)
+{
+ return iommu_def_domain_type == IOMMU_DOMAIN_IDENTITY;
+}
+EXPORT_SYMBOL_GPL(iommu_default_passthrough);
+
const struct iommu_ops *iommu_ops_from_fwnode(struct fwnode_handle *fwnode)
{
const struct iommu_ops *ops = NULL;
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index fdc355ccc570..58c3e3e5f157 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -413,6 +413,9 @@ extern void iommu_get_resv_regions(struct device *dev, struct list_head *list);
extern void iommu_put_resv_regions(struct device *dev, struct list_head *list);
extern int iommu_request_dm_for_dev(struct device *dev);
extern int iommu_request_dma_domain_for_dev(struct device *dev);
+extern void iommu_set_default_passthrough(void);
+extern void iommu_set_default_translated(void);
+extern bool iommu_default_passthrough(void);
extern struct iommu_resv_region *
iommu_alloc_resv_region(phys_addr_t start, size_t length, int prot,
enum iommu_resv_type type);
@@ -694,6 +697,19 @@ static inline int iommu_request_dma_domain_for_dev(struct device *dev)
return -ENODEV;
}
+static inline void iommu_set_default_passthrough(void)
+{
+}
+
+static inline void iommu_set_default_translated(void)
+{
+}
+
+static inline bool iommu_default_passthrough(void)
+{
+ return true;
+}
+
static inline int iommu_attach_group(struct iommu_domain *domain,
struct iommu_group *group)
{
--
2.17.1
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2019-08-14 13:39 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-14 13:38 [PATCH 00/10 v2] Cleanup IOMMU passthrough setting (and disable IOMMU Passthrough when SME is active) Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` [PATCH 00/10 v2] Cleanup IOMMU passthrough setting (and disable IOMMU Passthrough when SME is active Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel [this message]
2019-08-14 13:38 ` [PATCH 01/10] iommu: Add helpers to set/get default domain type Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` [PATCH 02/10] iommu/amd: Request passthrough mode from IOMMU core Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` [PATCH 03/10] iommu/vt-d: " Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-15 4:46 ` Lu Baolu
2019-08-15 4:46 ` Lu Baolu
2019-08-15 4:46 ` Lu Baolu
2019-08-14 13:38 ` [PATCH 04/10] x86/dma: Get rid of iommu_pass_through Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-15 4:53 ` Lu Baolu
2019-08-15 4:53 ` Lu Baolu
2019-08-15 4:53 ` Lu Baolu
2019-08-14 13:38 ` [PATCH 05/10] ia64: " Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` [PATCH 06/10] iommu: Remember when default domain type was set on kernel command line Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-15 5:01 ` Lu Baolu
2019-08-15 5:01 ` Lu Baolu
2019-08-15 5:01 ` Lu Baolu
2019-08-15 7:19 ` Joerg Roedel
2019-08-15 7:19 ` Joerg Roedel
2019-08-15 7:19 ` Joerg Roedel
2019-08-14 13:38 ` [PATCH 07/10] iommu: Print default domain type on boot Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-15 5:04 ` Lu Baolu
2019-08-15 5:04 ` Lu Baolu
2019-08-15 5:04 ` Lu Baolu
2019-08-14 13:38 ` [PATCH 08/10] iommu: Set default domain type at runtime Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-15 6:55 ` Lu Baolu
2019-08-15 6:55 ` Lu Baolu
2019-08-15 6:55 ` Lu Baolu
2019-08-14 13:38 ` [PATCH 09/10] iommu: Disable passthrough mode when SME is active Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` [PATCH 10/10] Documentation: Update Documentation for iommu.passthrough Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
2019-08-14 13:38 ` Joerg Roedel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190814133841.7095-2-joro@8bytes.org \
--to=joro@8bytes.org \
--cc=Suravee.Suthikulpanit@amd.com \
--cc=Thomas.Lendacky@amd.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=iommu@lists.linux-foundation.org \
--cc=jroedel@suse.de \
--cc=linux-doc@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.