diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index c3b79aaf12b7974c226a0d4eba51eb6805404256..761185ac12c5e229c3097e9418a04b81296cb1f0 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -5284,7 +5284,8 @@ static void intel_iommu_get_resv_regions(struct device *device,
 			struct iommu_resv_region *resv;
 			size_t length;
 
-			if (i_dev != device)
+			if (i_dev != device &&
+			    !is_downstream_to_pci_bridge(device, i_dev))
 				continue;
 
 			length = rmrr->end_address - rmrr->base_address + 1;