Skip to content

Commit 7b8aa99

Browse files
LuBaolujoergroedel
authored andcommitted
iommu/vt-d: Remove unnecessary checks in iopf disabling path
iommu_unregister_device_fault_handler() and iopf_queue_remove_device() are called after device has stopped issuing new page falut requests and all outstanding page requests have been drained. They should never fail. Trigger a warning if it happens unfortunately. Reviewed-by: Kevin Tian <kevin.tian@intel.com> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Link: https://lore.kernel.org/r/20230324120234.313643-7-baolu.lu@linux.intel.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
1 parent fbcde5b commit 7b8aa99

1 file changed

Lines changed: 8 additions & 9 deletions

File tree

drivers/iommu/intel/iommu.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4707,7 +4707,6 @@ static int intel_iommu_disable_iopf(struct device *dev)
47074707
{
47084708
struct device_domain_info *info = dev_iommu_priv_get(dev);
47094709
struct intel_iommu *iommu = info->iommu;
4710-
int ret;
47114710

47124711
if (!info->pri_enabled)
47134712
return -EINVAL;
@@ -4723,15 +4722,15 @@ static int intel_iommu_disable_iopf(struct device *dev)
47234722
pci_disable_pri(to_pci_dev(dev));
47244723
info->pri_enabled = 0;
47254724

4726-
ret = iommu_unregister_device_fault_handler(dev);
4727-
if (ret)
4728-
return ret;
4729-
4730-
ret = iopf_queue_remove_device(iommu->iopf_queue, dev);
4731-
if (ret)
4732-
iommu_register_device_fault_handler(dev, iommu_queue_iopf, dev);
4725+
/*
4726+
* With PRI disabled and outstanding PRQs drained, unregistering
4727+
* fault handler and removing device from iopf queue should never
4728+
* fail.
4729+
*/
4730+
WARN_ON(iommu_unregister_device_fault_handler(dev));
4731+
WARN_ON(iopf_queue_remove_device(iommu->iopf_queue, dev));
47334732

4734-
return ret;
4733+
return 0;
47354734
}
47364735

47374736
static int

0 commit comments

Comments
 (0)