diff options
| author | Lu Baolu <[email protected]> | 2019-03-01 11:23:11 +0800 |
|---|---|---|
| committer | Joerg Roedel <[email protected]> | 2019-03-01 10:23:35 +0100 |
| commit | 41b80db227993394f210f0eb705a326db5f605b6 (patch) | |
| tree | 279b488d3ea250a190bd7f643c21d9c8ef731ed1 | |
| parent | d8b8591054575f33237556c32762d54e30774d28 (diff) | |
iommu/vt-d: Set context field after value initialized
Otherwise, the translation type field of a context entry for
a PCI device will always be 0. All translated DMA requests
will be blocked by IOMMU. As the result, the PCI devices with
PCI ATS (device IOTBL) support won't work as expected.
Cc: Ashok Raj <[email protected]>
Cc: Jacob Pan <[email protected]>
Suggested-by: Kevin Tian <[email protected]>
Fixes: 7373a8cc38197 ("iommu/vt-d: Setup context and enable RID2PASID support")
Signed-off-by: Lu Baolu <[email protected]>
Signed-off-by: Joerg Roedel <[email protected]>
| -rw-r--r-- | drivers/iommu/intel-iommu.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 64ce780336a8..d7f10fd4ac2d 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -2056,7 +2056,6 @@ static int domain_context_mapping_one(struct dmar_domain *domain, int agaw; context_set_domain_id(context, did); - context_set_translation_type(context, translation); if (translation != CONTEXT_TT_PASS_THROUGH) { /* @@ -2086,6 +2085,8 @@ static int domain_context_mapping_one(struct dmar_domain *domain, */ context_set_address_width(context, iommu->msagaw); } + + context_set_translation_type(context, translation); } context_set_fault_enable(context); |