diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c index d9c0decfc91ae2cef9ccf21c3a99afb455bbb9fa..36e3f430d2651af655480ae323dff48d919c5ecc 100644 --- a/drivers/iommu/dmar.c +++ b/drivers/iommu/dmar.c @@ -1108,8 +1108,10 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd) static void free_iommu(struct intel_iommu *iommu) { - iommu_device_sysfs_remove(&iommu->iommu); - iommu_device_unregister(&iommu->iommu); + if (intel_iommu_enabled) { + iommu_device_unregister(&iommu->iommu); + iommu_device_sysfs_remove(&iommu->iommu); + } if (iommu->irq) { if (iommu->pr_irq) {