Explorar o código

amd-iommu: resume cleanup

Now that enable_iommus() will call iommu_disable() for each iommu,
the call to disable_iommus() during resume is redundant.  Also, the order
for an invalidation is to invalidate device table entries first, then
domain translations.

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Chris Wright %!s(int64=16) %!d(string=hai) anos
pai
achega
6a047d8b9e
Modificáronse 1 ficheiros con 1 adicións e 7 borrados
  1. 1 7
      arch/x86/kernel/amd_iommu_init.c

+ 1 - 7
arch/x86/kernel/amd_iommu_init.c

@@ -1079,12 +1079,6 @@ static void disable_iommus(void)
 
 
 static int amd_iommu_resume(struct sys_device *dev)
 static int amd_iommu_resume(struct sys_device *dev)
 {
 {
-	/*
-	 * Disable IOMMUs before reprogramming the hardware registers.
-	 * IOMMU is still enabled from the resume kernel.
-	 */
-	disable_iommus();
-
 	/* re-load the hardware */
 	/* re-load the hardware */
 	enable_iommus();
 	enable_iommus();
 
 
@@ -1092,8 +1086,8 @@ static int amd_iommu_resume(struct sys_device *dev)
 	 * we have to flush after the IOMMUs are enabled because a
 	 * we have to flush after the IOMMUs are enabled because a
 	 * disabled IOMMU will never execute the commands we send
 	 * disabled IOMMU will never execute the commands we send
 	 */
 	 */
-	amd_iommu_flush_all_domains();
 	amd_iommu_flush_all_devices();
 	amd_iommu_flush_all_devices();
+	amd_iommu_flush_all_domains();
 
 
 	return 0;
 	return 0;
 }
 }