iommu: Set default domain type at runtime
Set the default domain-type at runtime, not at compile-time. This keeps default domain type setting in one place when we have to change it at runtime. Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
Родитель
5fa9e7c5fa
Коммит
22bb182c83
|
@ -26,11 +26,8 @@
|
|||
|
||||
static struct kset *iommu_group_kset;
|
||||
static DEFINE_IDA(iommu_group_ida);
|
||||
#ifdef CONFIG_IOMMU_DEFAULT_PASSTHROUGH
|
||||
static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY;
|
||||
#else
|
||||
static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_DMA;
|
||||
#endif
|
||||
|
||||
static unsigned int iommu_def_domain_type __read_mostly;
|
||||
static bool iommu_dma_strict __read_mostly = true;
|
||||
static u32 iommu_cmd_line __read_mostly;
|
||||
|
||||
|
@ -76,7 +73,7 @@ static void iommu_set_cmd_line_dma_api(void)
|
|||
iommu_cmd_line |= IOMMU_CMD_LINE_DMA_API;
|
||||
}
|
||||
|
||||
static bool __maybe_unused iommu_cmd_line_dma_api(void)
|
||||
static bool iommu_cmd_line_dma_api(void)
|
||||
{
|
||||
return !!(iommu_cmd_line & IOMMU_CMD_LINE_DMA_API);
|
||||
}
|
||||
|
@ -115,8 +112,18 @@ static const char *iommu_domain_type_str(unsigned int t)
|
|||
|
||||
static int __init iommu_subsys_init(void)
|
||||
{
|
||||
pr_info("Default domain type: %s\n",
|
||||
iommu_domain_type_str(iommu_def_domain_type));
|
||||
bool cmd_line = iommu_cmd_line_dma_api();
|
||||
|
||||
if (!cmd_line) {
|
||||
if (IS_ENABLED(CONFIG_IOMMU_DEFAULT_PASSTHROUGH))
|
||||
iommu_set_default_passthrough(false);
|
||||
else
|
||||
iommu_set_default_translated(false);
|
||||
}
|
||||
|
||||
pr_info("Default domain type: %s %s\n",
|
||||
iommu_domain_type_str(iommu_def_domain_type),
|
||||
cmd_line ? "(set via kernel command line)" : "");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче