Re: [PATCH 9/9] iommu: Use fault cookie to store iopf_param

From: Baolu Lu
Date: Wed Jul 12 2023 - 23:44:30 EST


On 2023/7/13 11:24, Tian, Kevin wrote:
From: Baolu Lu <baolu.lu@xxxxxxxxxxxxxxx>
Sent: Wednesday, July 12, 2023 11:13 AM

On 2023/7/12 6:02, Jacob Pan wrote:
On Tue, 11 Jul 2023 09:06:42 +0800, Lu Baolu<baolu.lu@xxxxxxxxxxxxxxx>
wrote:

@@ -158,7 +158,7 @@ int iommu_queue_iopf(struct iommu_fault *fault,
struct device *dev)
* As long as we're holding param->lock, the queue can't be
unlinked
* from the device and therefore cannot disappear.
*/
- iopf_param = param->iopf_param;
+ iopf_param = iommu_get_device_fault_cookie(dev, 0);
I am not sure I understand how does it know the cookie type is iopf_param
for PASID 0?

Between IOPF and IOMMUFD use of the cookie, cookie types are different,
right?


The fault cookie is managed by the code that delivers or handles the
faults. The sva and IOMMUFD paths are exclusive.


what about siov? A siov-capable device can support sva and iommufd
simultaneously.

For siov case, the pasid should be global. RID and each pasid are still
exclusive, so I don't see any problem. Did I overlook anything?

Best regards,
baolu