* [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules.
@ 2018-12-01 19:19 Paul Gortmaker
2018-12-01 19:19 ` [PATCH 2/9] iommu/rockchip: Make it explicitly non-modular Paul Gortmaker
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Paul Gortmaker @ 2018-12-01 19:19 UTC (permalink / raw)
To: Joerg Roedel
Cc: Heiko Stuebner, Will Deacon, Daniel Kurtz, Paul Gortmaker,
Thierry Reding, Laurent Pinchart, Alexandre Courbot, Simon Xue,
Rob Clark, linux-rockchip, linux-tegra, Stephen Warren,
linux-arm-msm, Jeffy Chen, linux-mediatek, Stepan Moskovchenko,
Honghui Zhang, Matthias Brugger, linux-arm-kernel, linux-kernel,
iommu, Robin Murphy, Nate Watterson, Hiroshi Doyu
The work here represents a scan over the iommu dir, looking for files/drivers
that have nothing to do with a modular use case, but are using modular
infrastructure regardless.
We are trying to make driver code consistent with the Makefiles/Kconfigs that
control them. This means not using modular functions/macros for drivers that
can never be built as a module. I've done this in other subsystem dirs
already, and some of this has already happened in drivers/iommu by others;
such as 98b72b94def9 ("iommu/rockchip: Prohibit unbind and remove").
Using modular infrastructure in non-modules might seem harmless, but some
of the downfalls this leads to are:
(1) it is easy to accidentally write unused module_exit and remove code
(2) it can be misleading when reading the source, thinking it can be
modular when the Makefile and/or Kconfig prohibit it
(3) it requires the include of the module.h header file which in turn
includes nearly everything else, thus adding to CPP overhead.
(4) it gets copied/replicated into other drivers and spreads quickly.
The last two commits (arm-smmu related ones) deserve an extra mention,
and I put them at the end in case they want to be deferred for later or
altered. Normally a "module-ectomy" allows us to delete the ".remove"
function, as per the rockchip commit above, but ...
A kexec commit (7aa8619a66ae) tried to improve reliability by trying to
shutdown the iommu in the compromised/crashing kernel, but of course the
better solution is to have the recovery kernel be able to handle all of
the possible initial conditions. It appears this was done later in the
commit b63b3439b856 - but I don't know if that means relying on an
orderly shutdown is no longer required - I don't have the platform and
am only going on what is in git history.
So, as the kexec commit recycled the ".remove" handle to also be the
".shutdown" handle, in this series the remove function was renamed to
shutdown, and the ".remove" handle was deleted. This was IMHO the most
back compatible way to make this update. If the reliance on the
compromised kernel to run ".shutdown" is no longer necessary, then it
can be removed in a future change.
Patches were build tested on top of next-20181128 for ARM, ARM64, x86-64
on an allyesconfig.
Paul.
---
[ v2: use recommended iommu subject format, add Acks, trivial tweaks. ]
Cc: Alexandre Courbot <gnurou@gmail.com>
Cc: Daniel Kurtz <djkurtz@chromium.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Hiroshi Doyu <hdoyu@nvidia.com>
Cc: Honghui Zhang <honghui.zhang@mediatek.com>
Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Nate Watterson <nwatters@codeaurora.org>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Simon Xue <xxm@rock-chips.com>
Cc: Stepan Moskovchenko <stepanm@codeaurora.org>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: iommu@lists.linux-foundation.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-tegra@vger.kernel.org
Paul Gortmaker (9):
iommu: audit and remove any unnecessary uses of module.h
iommu/rockchip: Make it explicitly non-modular
iommu/msm: Make it explicitly non-modular
iommu/mediatek: Make it explicitly non-modular
iommu/ipmmu-vmsa: Make it explicitly non-modular
iommu/qcom: Make it explicitly non-modular
iommu/tegra: Make it explicitly non-modular
iommu/arm-smmu: Make arm-smmu explicitly non-modular
iommu/arm-smmu: Make arm-smmu-v3 explicitly non-modular
drivers/iommu/arm-smmu-v3.c | 25 +++++++++----------------
drivers/iommu/arm-smmu.c | 32 +++++++++++++-------------------
drivers/iommu/iommu-sysfs.c | 2 +-
drivers/iommu/iommu.c | 3 ++-
drivers/iommu/ipmmu-vmsa.c | 18 +++---------------
drivers/iommu/msm_iommu.c | 13 +++----------
drivers/iommu/mtk_iommu_v1.c | 15 +++------------
drivers/iommu/qcom_iommu.c | 16 ++--------------
drivers/iommu/rockchip-iommu.c | 13 ++++++-------
drivers/iommu/tegra-gart.c | 37 +++++++------------------------------
10 files changed, 49 insertions(+), 125 deletions(-)
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/9] iommu/rockchip: Make it explicitly non-modular
2018-12-01 19:19 [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules Paul Gortmaker
@ 2018-12-01 19:19 ` Paul Gortmaker
2018-12-01 19:19 ` [PATCH 8/9] iommu/arm-smmu: Make arm-smmu " Paul Gortmaker
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Paul Gortmaker @ 2018-12-01 19:19 UTC (permalink / raw)
To: Joerg Roedel
Cc: Simon Xue, linux-rockchip, Jeffy Chen, linux-kernel, Daniel Kurtz,
Paul Gortmaker, iommu, linux-arm-kernel, Heiko Stuebner
The Kconfig currently controlling compilation of this code is:
drivers/iommu/Kconfig:config ROCKCHIP_IOMMU
drivers/iommu/Kconfig: bool "Rockchip IOMMU Support"
...meaning that it currently is not being built as a module by anyone.
The bind/unbind/remove was already explicitly disabled in commit
98b72b94def9 ("iommu/rockchip: Prohibit unbind and remove").
Lets remove the remaining traces of modular infrastructure, so that
when reading the driver there is no doubt it is builtin-only.
Since module_init was not in use by this code, the init ordering
remains unchanged with this commit.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
We also delete the MODULE_LICENSE tag etc. since all that information
was (or is now) contained at the top of the file in the comments.
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Simon Xue <xxm@rock-chips.com>
Cc: Daniel Kurtz <djkurtz@chromium.org>
Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
Cc: iommu@lists.linux-foundation.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Acked-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/iommu/rockchip-iommu.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c
index ad3e2b97469e..c9ba9f377f63 100644
--- a/drivers/iommu/rockchip-iommu.c
+++ b/drivers/iommu/rockchip-iommu.c
@@ -1,4 +1,9 @@
/*
+ * IOMMU API for Rockchip
+ *
+ * Module Authors: Simon Xue <xxm@rock-chips.com>
+ * Daniel Kurtz <djkurtz@chromium.org>
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
@@ -17,7 +22,7 @@
#include <linux/iopoll.h>
#include <linux/list.h>
#include <linux/mm.h>
-#include <linux/module.h>
+#include <linux/init.h>
#include <linux/of.h>
#include <linux/of_iommu.h>
#include <linux/of_platform.h>
@@ -1281,7 +1286,6 @@ static const struct of_device_id rk_iommu_dt_ids[] = {
{ .compatible = "rockchip,iommu" },
{ /* sentinel */ }
};
-MODULE_DEVICE_TABLE(of, rk_iommu_dt_ids);
static struct platform_driver rk_iommu_driver = {
.probe = rk_iommu_probe,
@@ -1299,8 +1303,3 @@ static int __init rk_iommu_init(void)
return platform_driver_register(&rk_iommu_driver);
}
subsys_initcall(rk_iommu_init);
-
-MODULE_DESCRIPTION("IOMMU API for Rockchip");
-MODULE_AUTHOR("Simon Xue <xxm@rock-chips.com> and Daniel Kurtz <djkurtz@chromium.org>");
-MODULE_ALIAS("platform:rockchip-iommu");
-MODULE_LICENSE("GPL v2");
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 8/9] iommu/arm-smmu: Make arm-smmu explicitly non-modular
2018-12-01 19:19 [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules Paul Gortmaker
2018-12-01 19:19 ` [PATCH 2/9] iommu/rockchip: Make it explicitly non-modular Paul Gortmaker
@ 2018-12-01 19:19 ` Paul Gortmaker
2018-12-01 19:19 ` [PATCH 9/9] iommu/arm-smmu: Make arm-smmu-v3 " Paul Gortmaker
2018-12-03 13:32 ` [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules Joerg Roedel
3 siblings, 0 replies; 5+ messages in thread
From: Paul Gortmaker @ 2018-12-01 19:19 UTC (permalink / raw)
To: Joerg Roedel
Cc: Will Deacon, linux-kernel, Paul Gortmaker, iommu,
linux-arm-kernel, Robin Murphy, Nate Watterson
The Kconfig currently controlling compilation of this code is:
drivers/iommu/Kconfig:config ARM_SMMU
drivers/iommu/Kconfig: bool "ARM Ltd. System MMU (SMMU) Support"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.
We explicitly disallow a driver unbind, since that doesn't have a
sensible use case anyway, but unlike most drivers, we can't delete the
function tied to the ".remove" field. This is because as of commit
7aa8619a66ae ("iommu/arm-smmu-v3: Implement shutdown method") the
.remove function was given a one line wrapper and re-used to provide a
.shutdown service. So we delete the wrapper and re-name the function
from remove to shutdown.
We add a moduleparam.h include since the file does actually declare
some module parameters, and leaving them as such is the easiest way
currently to remain backwards compatible with existing use cases.
We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.
Cc: Will Deacon <will.deacon@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Nate Watterson <nwatters@codeaurora.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: iommu@lists.linux-foundation.org
Acked-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/iommu/arm-smmu.c | 32 +++++++++++++-------------------
1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 5a28ae892504..4a2e143fdf52 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -41,7 +41,8 @@
#include <linux/io-64-nonatomic-hi-lo.h>
#include <linux/iommu.h>
#include <linux/iopoll.h>
-#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/moduleparam.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
@@ -101,6 +102,10 @@
#define MSI_IOVA_LENGTH 0x100000
static int force_stage;
+/*
+ * not really modular, but the easiest way to keep compat with existing
+ * bootargs behaviour is to continue using module_param() here.
+ */
module_param(force_stage, int, S_IRUGO);
MODULE_PARM_DESC(force_stage,
"Force SMMU mappings to be installed at a particular stage of translation. A value of '1' or '2' forces the corresponding stage. All other values are ignored (i.e. no stage is forced). Note that selecting a specific stage will disable support for nested translation.");
@@ -1964,7 +1969,6 @@ static const struct of_device_id arm_smmu_of_match[] = {
{ .compatible = "cavium,smmu-v2", .data = &cavium_smmuv2 },
{ },
};
-MODULE_DEVICE_TABLE(of, arm_smmu_of_match);
#ifdef CONFIG_ACPI
static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu)
@@ -2224,24 +2228,18 @@ static int arm_smmu_legacy_bus_init(void)
}
device_initcall_sync(arm_smmu_legacy_bus_init);
-static int arm_smmu_device_remove(struct platform_device *pdev)
+static void arm_smmu_device_shutdown(struct platform_device *pdev)
{
struct arm_smmu_device *smmu = platform_get_drvdata(pdev);
if (!smmu)
- return -ENODEV;
+ return;
if (!bitmap_empty(smmu->context_map, ARM_SMMU_MAX_CBS))
dev_err(&pdev->dev, "removing device with active domains!\n");
/* Turn the thing off */
writel(sCR0_CLIENTPD, ARM_SMMU_GR0_NS(smmu) + ARM_SMMU_GR0_sCR0);
- return 0;
-}
-
-static void arm_smmu_device_shutdown(struct platform_device *pdev)
-{
- arm_smmu_device_remove(pdev);
}
static int __maybe_unused arm_smmu_pm_resume(struct device *dev)
@@ -2256,16 +2254,12 @@ static SIMPLE_DEV_PM_OPS(arm_smmu_pm_ops, NULL, arm_smmu_pm_resume);
static struct platform_driver arm_smmu_driver = {
.driver = {
- .name = "arm-smmu",
- .of_match_table = of_match_ptr(arm_smmu_of_match),
- .pm = &arm_smmu_pm_ops,
+ .name = "arm-smmu",
+ .of_match_table = of_match_ptr(arm_smmu_of_match),
+ .pm = &arm_smmu_pm_ops,
+ .suppress_bind_attrs = true,
},
.probe = arm_smmu_device_probe,
- .remove = arm_smmu_device_remove,
.shutdown = arm_smmu_device_shutdown,
};
-module_platform_driver(arm_smmu_driver);
-
-MODULE_DESCRIPTION("IOMMU API for ARM architected SMMU implementations");
-MODULE_AUTHOR("Will Deacon <will.deacon@arm.com>");
-MODULE_LICENSE("GPL v2");
+builtin_platform_driver(arm_smmu_driver);
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 9/9] iommu/arm-smmu: Make arm-smmu-v3 explicitly non-modular
2018-12-01 19:19 [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules Paul Gortmaker
2018-12-01 19:19 ` [PATCH 2/9] iommu/rockchip: Make it explicitly non-modular Paul Gortmaker
2018-12-01 19:19 ` [PATCH 8/9] iommu/arm-smmu: Make arm-smmu " Paul Gortmaker
@ 2018-12-01 19:19 ` Paul Gortmaker
2018-12-03 13:32 ` [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules Joerg Roedel
3 siblings, 0 replies; 5+ messages in thread
From: Paul Gortmaker @ 2018-12-01 19:19 UTC (permalink / raw)
To: Joerg Roedel
Cc: Will Deacon, linux-kernel, Paul Gortmaker, iommu,
linux-arm-kernel, Robin Murphy, Nate Watterson
The Kconfig currently controlling compilation of this code is:
drivers/iommu/Kconfig:config ARM_SMMU_V3
drivers/iommu/Kconfig: bool "ARM Ltd. System MMU Version 3 (SMMUv3) Support"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.
We explicitly disallow a driver unbind, since that doesn't have a
sensible use case anyway, but unlike most drivers, we can't delete the
function tied to the ".remove" field. This is because as of commit
7aa8619a66ae ("iommu/arm-smmu-v3: Implement shutdown method") the
.remove function was given a one line wrapper and re-used to provide a
.shutdown service. So we delete the wrapper and re-name the function
from remove to shutdown.
We add a moduleparam.h include since the file does actually declare
some module parameters, and leaving them as such is the easiest way
currently to remain backwards compatible with existing use cases.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.
Cc: Will Deacon <will.deacon@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Nate Watterson <nwatters@codeaurora.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: iommu@lists.linux-foundation.org
Acked-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/iommu/arm-smmu-v3.c | 25 +++++++++----------------
1 file changed, 9 insertions(+), 16 deletions(-)
diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
index 6947ccf26512..1189c06079d4 100644
--- a/drivers/iommu/arm-smmu-v3.c
+++ b/drivers/iommu/arm-smmu-v3.c
@@ -20,7 +20,8 @@
#include <linux/interrupt.h>
#include <linux/iommu.h>
#include <linux/iopoll.h>
-#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/moduleparam.h>
#include <linux/msi.h>
#include <linux/of.h>
#include <linux/of_address.h>
@@ -356,6 +357,10 @@
#define MSI_IOVA_BASE 0x8000000
#define MSI_IOVA_LENGTH 0x100000
+/*
+ * not really modular, but the easiest way to keep compat with existing
+ * bootargs behaviour is to continue using module_param_named here.
+ */
static bool disable_bypass = 1;
module_param_named(disable_bypass, disable_bypass, bool, S_IRUGO);
MODULE_PARM_DESC(disable_bypass,
@@ -2928,37 +2933,25 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
return 0;
}
-static int arm_smmu_device_remove(struct platform_device *pdev)
+static void arm_smmu_device_shutdown(struct platform_device *pdev)
{
struct arm_smmu_device *smmu = platform_get_drvdata(pdev);
arm_smmu_device_disable(smmu);
-
- return 0;
-}
-
-static void arm_smmu_device_shutdown(struct platform_device *pdev)
-{
- arm_smmu_device_remove(pdev);
}
static const struct of_device_id arm_smmu_of_match[] = {
{ .compatible = "arm,smmu-v3", },
{ },
};
-MODULE_DEVICE_TABLE(of, arm_smmu_of_match);
static struct platform_driver arm_smmu_driver = {
.driver = {
.name = "arm-smmu-v3",
.of_match_table = of_match_ptr(arm_smmu_of_match),
+ .suppress_bind_attrs = true,
},
.probe = arm_smmu_device_probe,
- .remove = arm_smmu_device_remove,
.shutdown = arm_smmu_device_shutdown,
};
-module_platform_driver(arm_smmu_driver);
-
-MODULE_DESCRIPTION("IOMMU API for ARM architected SMMUv3 implementations");
-MODULE_AUTHOR("Will Deacon <will.deacon@arm.com>");
-MODULE_LICENSE("GPL v2");
+builtin_platform_driver(arm_smmu_driver);
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules.
2018-12-01 19:19 [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules Paul Gortmaker
` (2 preceding siblings ...)
2018-12-01 19:19 ` [PATCH 9/9] iommu/arm-smmu: Make arm-smmu-v3 " Paul Gortmaker
@ 2018-12-03 13:32 ` Joerg Roedel
3 siblings, 0 replies; 5+ messages in thread
From: Joerg Roedel @ 2018-12-03 13:32 UTC (permalink / raw)
To: Paul Gortmaker
Cc: Heiko Stuebner, Will Deacon, Daniel Kurtz, linux-tegra,
Thierry Reding, Laurent Pinchart, Alexandre Courbot, Simon Xue,
Rob Clark, linux-rockchip, Stephen Warren, linux-arm-msm,
Jeffy Chen, linux-mediatek, Stepan Moskovchenko, Honghui Zhang,
Matthias Brugger, linux-arm-kernel, linux-kernel, iommu,
Robin Murphy, Nate Watterson, Hiroshi Doyu
On Sat, Dec 01, 2018 at 02:19:08PM -0500, Paul Gortmaker wrote:
> Paul Gortmaker (9):
> iommu: audit and remove any unnecessary uses of module.h
> iommu/rockchip: Make it explicitly non-modular
> iommu/msm: Make it explicitly non-modular
> iommu/mediatek: Make it explicitly non-modular
> iommu/ipmmu-vmsa: Make it explicitly non-modular
> iommu/qcom: Make it explicitly non-modular
> iommu/tegra: Make it explicitly non-modular
> iommu/arm-smmu: Make arm-smmu explicitly non-modular
> iommu/arm-smmu: Make arm-smmu-v3 explicitly non-modular
Applied all, thanks Paul.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-12-03 13:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-01 19:19 [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules Paul Gortmaker
2018-12-01 19:19 ` [PATCH 2/9] iommu/rockchip: Make it explicitly non-modular Paul Gortmaker
2018-12-01 19:19 ` [PATCH 8/9] iommu/arm-smmu: Make arm-smmu " Paul Gortmaker
2018-12-01 19:19 ` [PATCH 9/9] iommu/arm-smmu: Make arm-smmu-v3 " Paul Gortmaker
2018-12-03 13:32 ` [PATCH v2 0/9] iommu: clean up/remove modular stuff from non-modules Joerg Roedel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).