aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/iommu/intel/prq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/iommu/intel/prq.c')
-rw-r--r--drivers/iommu/intel/prq.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/iommu/intel/prq.c b/drivers/iommu/intel/prq.c
index c2d792db52c3..064194399b38 100644
--- a/drivers/iommu/intel/prq.c
+++ b/drivers/iommu/intel/prq.c
@@ -87,7 +87,9 @@ prq_retry:
struct page_req_dsc *req;
req = &iommu->prq[head / sizeof(*req)];
- if (!req->pasid_present || req->pasid != pasid) {
+ if (req->rid != sid ||
+ (req->pasid_present && pasid != req->pasid) ||
+ (!req->pasid_present && pasid != IOMMU_NO_PASID)) {
head = (head + sizeof(*req)) & PRQ_RING_MASK;
continue;
}