File tree Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -4644,8 +4644,12 @@ static int intel_iommu_enable_sva(struct device *dev)
4644
4644
return - EINVAL ;
4645
4645
4646
4646
ret = iopf_queue_add_device (iommu -> iopf_queue , dev );
4647
- if (!ret )
4648
- ret = iommu_register_device_fault_handler (dev , iommu_queue_iopf , dev );
4647
+ if (ret )
4648
+ return ret ;
4649
+
4650
+ ret = iommu_register_device_fault_handler (dev , iommu_queue_iopf , dev );
4651
+ if (ret )
4652
+ iopf_queue_remove_device (iommu -> iopf_queue , dev );
4649
4653
4650
4654
return ret ;
4651
4655
}
@@ -4657,8 +4661,12 @@ static int intel_iommu_disable_sva(struct device *dev)
4657
4661
int ret ;
4658
4662
4659
4663
ret = iommu_unregister_device_fault_handler (dev );
4660
- if (!ret )
4661
- ret = iopf_queue_remove_device (iommu -> iopf_queue , dev );
4664
+ if (ret )
4665
+ return ret ;
4666
+
4667
+ ret = iopf_queue_remove_device (iommu -> iopf_queue , dev );
4668
+ if (ret )
4669
+ iommu_register_device_fault_handler (dev , iommu_queue_iopf , dev );
4662
4670
4663
4671
return ret ;
4664
4672
}
You can’t perform that action at this time.
0 commit comments