summaryrefslogtreecommitdiffstats
path: root/drivers/iommu/amd_iommu_init.c
diff options
context:
space:
mode:
authorJoerg Roedel <jroedel@suse.de>2017-06-16 16:09:59 +0200
committerJoerg Roedel <jroedel@suse.de>2017-06-22 12:54:21 +0200
commit7ad820e43330bbf974792c5ab4e2c2355e08d597 (patch)
tree45bcfe3f92893314f76441b09fd26931b84d2d38 /drivers/iommu/amd_iommu_init.c
parentf601927136d69be49f0a14ae820b44c02fa591ba (diff)
downloadop-kernel-dev-7ad820e43330bbf974792c5ab4e2c2355e08d597.zip
op-kernel-dev-7ad820e43330bbf974792c5ab4e2c2355e08d597.tar.gz
iommu/amd: Free IOMMU resources when disabled on command line
After we made sure that all IOMMUs have been disabled we need to make sure that all resources we allocated are released again. Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/amd_iommu_init.c')
-rw-r--r--drivers/iommu/amd_iommu_init.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 8cc507f..128f966 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -2430,6 +2430,13 @@ static int __init state_next(void)
case IOMMU_IVRS_DETECTED:
ret = early_amd_iommu_init();
init_state = ret ? IOMMU_INIT_ERROR : IOMMU_ACPI_FINISHED;
+ if (init_state == IOMMU_ACPI_FINISHED && amd_iommu_disabled) {
+ pr_info("AMD-Vi: AMD IOMMU disabled on kernel command-line\n");
+ free_dma_resources();
+ free_iommu_resources();
+ init_state = IOMMU_CMDLINE_DISABLED;
+ ret = -EINVAL;
+ }
break;
case IOMMU_ACPI_FINISHED:
early_enable_iommus();
OpenPOWER on IntegriCloud