iommu/amd: Call domain_flush_complete() in update_domain()
authorJoerg Roedel <jroedel@suse.de>
Mon, 4 May 2020 12:54:11 +0000 (14:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 May 2020 15:46:35 +0000 (17:46 +0200)
[ Upstream commit f44a4d7e4f1cdef73c90b1dc749c4d8a7372a8eb ]

The update_domain() function is expected to also inform the hardware
about domain changes. This needs a COMPLETION_WAIT command to be sent
to all IOMMUs which use the domain.

Signed-off-by: Joerg Roedel <jroedel@suse.de>
Tested-by: Qian Cai <cai@lca.pw>
Link: https://lore.kernel.org/r/20200504125413.16798-4-joro@8bytes.org
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iommu/amd_iommu.c

index bc77714..32de8e7 100644 (file)
@@ -2386,6 +2386,7 @@ static void update_domain(struct protection_domain *domain)
 
        domain_flush_devices(domain);
        domain_flush_tlb_pde(domain);
+       domain_flush_complete(domain);
 }
 
 static int dir2prot(enum dma_data_direction direction)