Messages in this thread | | | Date | Tue, 21 Jun 2022 11:39:22 +0800 | Subject | Re: [PATCH 1/1] iommu/vt-d: Fix RID2PASID setup failure | From | Baolu Lu <> |
| |
On 2022/6/21 10:54, Tian, Kevin wrote: >> From: Lu Baolu <baolu.lu@linux.intel.com> >> Sent: Monday, June 20, 2022 4:17 PM >> @@ -2564,7 +2564,7 @@ static int domain_add_dev_info(struct >> dmar_domain *domain, struct device *dev) >> ret = intel_pasid_setup_second_level(iommu, >> domain, >> dev, PASID_RID2PASID); >> spin_unlock_irqrestore(&iommu->lock, flags); >> - if (ret) { >> + if (ret && ret != -EBUSY) { >> dev_err(dev, "Setup RID2PASID failed\n"); >> dmar_remove_one_dev_info(dev); >> return ret; >> -- >> 2.25.1 > > It's cleaner to avoid this error at the first place, i.e. only do the > setup when the first device is attached to the pasid table.
The logic that identifies the first device might introduce additional unnecessary complexity. Devices that share a pasid table are rare. I even prefer to give up sharing tables so that the code can be simpler.:-)
-- Best regards, baolu
| |