diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2010-05-31 15:05:20 +0200 |
---|---|---|
committer | Joerg Roedel <joerg.roedel@amd.com> | 2010-06-01 10:20:15 +0200 |
commit | d7f0776975334070a93370ae048fda0c31a91c38 (patch) | |
tree | e1eb9681756be538f8108a1b1fd54f8b1eb0e294 /arch/x86/kernel/amd_iommu_init.c | |
parent | e82752d8b5a7e0a5e4d607fd8713549e2a4e2741 (diff) |
x86/amd-iommu: Fall back to GART if initialization fails
This patch implements a fallback to the GART IOMMU if this
is possible and the AMD IOMMU initialization failed.
Otherwise the fallback would be nommu which is very
problematic on machines with more than 4GB of memory or
swiotlb which hurts io-performance.
Cc: stable@kernel.org
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Diffstat (limited to 'arch/x86/kernel/amd_iommu_init.c')
-rw-r--r-- | arch/x86/kernel/amd_iommu_init.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 1405346c62b4..3cc63e2b8dd4 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c @@ -1358,6 +1358,15 @@ free: free_unity_maps(); +#ifdef CONFIG_GART_IOMMU + /* + * We failed to initialize the AMD IOMMU - try fallback to GART + * if possible. + */ + gart_iommu_init(); + +#endif + goto out; } |