On 1/12/23 13:49, Xenia Ragiadakou wrote:
On 1/12/23 13:31, Jan Beulich wrote:
On 04.01.2023 09:44, Xenia Ragiadakou wrote:
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -82,11 +82,13 @@ static int __init cf_check
parse_iommu_param(const char *s)
else if ( ss == s + 23 && !strncmp(s,
"quarantine=scratch-page", 23) )
iommu_quarantine = IOMMU_quarantine_scratch_page;
#endif
-#ifdef CONFIG_X86
+#ifdef CONFIG_INTEL_IOMMU
else if ( (val = parse_boolean("igfx", s, ss)) >= 0 )
iommu_igfx = val;
else if ( (val = parse_boolean("qinval", s, ss)) >= 0 )
iommu_qinval = val;
+#endif
You want to use no_config_param() here as well then.
Yes. I will fix it.
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -74,9 +74,13 @@ extern enum __packed iommu_intremap {
iommu_intremap_restricted,
iommu_intremap_full,
} iommu_intremap;
-extern bool iommu_igfx, iommu_qinval, iommu_snoop;
#else
# define iommu_intremap false
+#endif
+
+#ifdef CONFIG_INTEL_IOMMU
+extern bool iommu_igfx, iommu_qinval, iommu_snoop;
+#else
# define iommu_snoop false
#endif
Do these declarations really need touching? In patch 2 you didn't move
amd_iommu_perdev_intremap's either.
Ok, I will revert this change (as I did in v2 of patch 2) since it is
not needed.
Actually, my patch was altering the current behavior by defining
iommu_snoop as false when !INTEL_IOMMU.
IIUC, there is no control over snoop behavior when using the AMD iommu.
Hence, iommu_snoop should evaluate to true for AMD iommu.
However, when using the INTEL iommu the user can disable it via the
"iommu" param, right?
If that's the case then iommu_snoop needs to be moved from vtd/iommu.c
to x86/iommu.c and iommu_snoop assignment via iommu param needs to be
guarded by CONFIG_INTEL_IOMMU.
--
Xenia