x86/amd-iommu: Flush all internal TLBs when IOMMUs are enabled
authorJoerg Roedel <joerg.roedel@amd.com>
Thu, 7 Apr 2011 06:16:10 +0000 (08:16 +0200)
committerJoerg Roedel <joerg.roedel@amd.com>
Thu, 7 Apr 2011 09:04:32 +0000 (11:04 +0200)
commit7d0c5cc5be73f7ce26fdcca7b8ec2203f661eb93
treefbe4ff16580783316f3b2435130865f45387a4c3
parentd8c13085775c72e2d46edc54ed0c803c3a944ddb
x86/amd-iommu: Flush all internal TLBs when IOMMUs are enabled

The old code only flushed a DTE or a domain TLB before it is
actually used by the IOMMU driver. While this is efficient
and works when done right it is more likely to introduce new
bugs when changing code (which happened in the past).
This patch adds code to flush all DTEs and all domain TLBs
in each IOMMU right after it is enabled (at boot and after
resume). This reduces the complexity of the driver and makes
it less likely to introduce stale-TLB bugs in the future.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
arch/x86/include/asm/amd_iommu_proto.h
arch/x86/kernel/amd_iommu.c
arch/x86/kernel/amd_iommu_init.c