[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5d13cab5-1f0a-51c7-78a3-fb5d3d793ab1@linux.intel.com>
Date: Tue, 21 Jun 2022 11:39:22 +0800
From: Baolu Lu <baolu.lu@...ux.intel.com>
To: "Tian, Kevin" <kevin.tian@...el.com>,
Joerg Roedel <joro@...tes.org>,
"Raj, Ashok" <ashok.raj@...el.com>
Cc: baolu.lu@...ux.intel.com, "Qiang, Chenyi" <chenyi.qiang@...el.com>,
"Liu, Yi L" <yi.l.liu@...el.com>,
"Pan, Jacob jun" <jacob.jun.pan@...el.com>,
"iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"stable@...r.kernel.org" <stable@...r.kernel.org>
Subject: Re: [PATCH 1/1] iommu/vt-d: Fix RID2PASID setup failure
On 2022/6/21 10:54, Tian, Kevin wrote:
>> From: Lu Baolu <baolu.lu@...ux.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
Powered by blists - more mailing lists