diff mbox series

[v2,2/8] x86/iommu: amd_iommu_perdev_intremap is AMD-Vi specific

Message ID 20230104084502.61734-3-burzalodowa@gmail.com (mailing list archive)
State Superseded
Headers show
Series Make x86 IOMMU driver support configurable | expand

Commit Message

Xenia Ragiadakou Jan. 4, 2023, 8:44 a.m. UTC
Move its definition to the AMD-Vi driver and use CONFIG_AMD_IOMMU
to guard its usage in common code.

Take the opportunity to replace bool_t with bool, __read_mostly with
__ro_after_init and 1 with true.

No functional change intended.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
---

Changes in v2:
  - declare amd_iommu_perdev_intremap __ro_after_init
  - use no_config_param() to print a warning when the user sets an AMD_IOMMU
    specific string in the iommu boot parameter and AMD_IOMMU is disabled
  - remove the #ifdef CONFIG_AMD_IOMMU guard from the declaration of
    amd_iommu_perdev_intremap in xen/iommu.h

 xen/drivers/passthrough/amd/iommu_init.c | 2 ++
 xen/drivers/passthrough/iommu.c          | 5 ++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

Comments

Jan Beulich Jan. 11, 2023, 3:03 p.m. UTC | #1
On 04.01.2023 09:44, Xenia Ragiadakou wrote:
> @@ -116,7 +115,11 @@ static int __init cf_check parse_iommu_param(const char *s)
>                  iommu_verbose = 1;
>          }
>          else if ( (val = parse_boolean("amd-iommu-perdev-intremap", s, ss)) >= 0 )
> +#ifdef CONFIG_AMD_IOMMU
>              amd_iommu_perdev_intremap = val;
> +#else
> +            no_config_param("AMD_IOMMU", "amd-iommu-perdev-intremap", s, ss);

The string literal wants to be "iommu", I think. Please see other uses of
no_config_param().

Jan
Xenia Ragiadakou Jan. 11, 2023, 3:19 p.m. UTC | #2
On 1/11/23 17:03, Jan Beulich wrote:
> On 04.01.2023 09:44, Xenia Ragiadakou wrote:
>> @@ -116,7 +115,11 @@ static int __init cf_check parse_iommu_param(const char *s)
>>                   iommu_verbose = 1;
>>           }
>>           else if ( (val = parse_boolean("amd-iommu-perdev-intremap", s, ss)) >= 0 )
>> +#ifdef CONFIG_AMD_IOMMU
>>               amd_iommu_perdev_intremap = val;
>> +#else
>> +            no_config_param("AMD_IOMMU", "amd-iommu-perdev-intremap", s, ss);
> 
> The string literal wants to be "iommu", I think. Please see other uses of
> no_config_param().

Thanks for reviewing this. You are right. I will fix it.
diff mbox series

Patch

diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 1f14aaf49e..9773ccfcb4 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -36,6 +36,8 @@  static struct radix_tree_root ivrs_maps;
 LIST_HEAD_READ_MOSTLY(amd_iommu_head);
 bool_t iommuv2_enabled;
 
+bool __ro_after_init amd_iommu_perdev_intremap = true;
+
 static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
 {
     return iommu->ht_flags & mask;
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 5e2a720d29..998dfaf20d 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -58,7 +58,6 @@  bool __read_mostly iommu_hap_pt_share = true;
 #endif
 
 bool_t __read_mostly iommu_debug;
-bool_t __read_mostly amd_iommu_perdev_intremap = 1;
 
 DEFINE_PER_CPU(bool_t, iommu_dont_flush_iotlb);
 
@@ -116,7 +115,11 @@  static int __init cf_check parse_iommu_param(const char *s)
                 iommu_verbose = 1;
         }
         else if ( (val = parse_boolean("amd-iommu-perdev-intremap", s, ss)) >= 0 )
+#ifdef CONFIG_AMD_IOMMU
             amd_iommu_perdev_intremap = val;
+#else
+            no_config_param("AMD_IOMMU", "amd-iommu-perdev-intremap", s, ss);
+#endif
         else if ( (val = parse_boolean("dom0-passthrough", s, ss)) >= 0 )
             iommu_hwdom_passthrough = val;
         else if ( (val = parse_boolean("dom0-strict", s, ss)) >= 0 )