update_domain() is the only place where domain->pt_root will be got and set into dev entry. So before the device driver initialization we do nothing if it's in previously enabled translation status.
Signed-off-by: Baoquan He <b...@redhat.com> --- drivers/iommu/amd_iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index 0d59f79..aee1ae4 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -2350,7 +2350,7 @@ static void update_device_table(struct protection_domain *domain) static void update_domain(struct protection_domain *domain) { - if (!domain->updated) + if (!domain->updated || translation_pre_enabled()) return; update_device_table(domain); -- 2.4.0 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu