diff options
Diffstat (limited to 'arch/x86/kernel/pci-calgary_64.c')
-rw-r--r-- | arch/x86/kernel/pci-calgary_64.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c index 971a3bec47a8..47bd419ea4d2 100644 --- a/arch/x86/kernel/pci-calgary_64.c +++ b/arch/x86/kernel/pci-calgary_64.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #include <asm/dma.h> | 46 | #include <asm/dma.h> |
47 | #include <asm/rio.h> | 47 | #include <asm/rio.h> |
48 | #include <asm/bios_ebda.h> | 48 | #include <asm/bios_ebda.h> |
49 | #include <asm/x86_init.h> | ||
49 | 50 | ||
50 | #ifdef CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT | 51 | #ifdef CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT |
51 | int use_calgary __read_mostly = 1; | 52 | int use_calgary __read_mostly = 1; |
@@ -1344,6 +1345,8 @@ static void __init get_tce_space_from_tar(void) | |||
1344 | return; | 1345 | return; |
1345 | } | 1346 | } |
1346 | 1347 | ||
1348 | int __init calgary_iommu_init(void); | ||
1349 | |||
1347 | void __init detect_calgary(void) | 1350 | void __init detect_calgary(void) |
1348 | { | 1351 | { |
1349 | int bus; | 1352 | int bus; |
@@ -1445,6 +1448,8 @@ void __init detect_calgary(void) | |||
1445 | /* swiotlb for devices that aren't behind the Calgary. */ | 1448 | /* swiotlb for devices that aren't behind the Calgary. */ |
1446 | if (max_pfn > MAX_DMA32_PFN) | 1449 | if (max_pfn > MAX_DMA32_PFN) |
1447 | swiotlb = 1; | 1450 | swiotlb = 1; |
1451 | |||
1452 | x86_init.iommu.iommu_init = calgary_iommu_init; | ||
1448 | } | 1453 | } |
1449 | return; | 1454 | return; |
1450 | 1455 | ||
@@ -1461,12 +1466,6 @@ int __init calgary_iommu_init(void) | |||
1461 | { | 1466 | { |
1462 | int ret; | 1467 | int ret; |
1463 | 1468 | ||
1464 | if (no_iommu || (swiotlb && !calgary_detected)) | ||
1465 | return -ENODEV; | ||
1466 | |||
1467 | if (!calgary_detected) | ||
1468 | return -ENODEV; | ||
1469 | |||
1470 | /* ok, we're trying to use Calgary - let's roll */ | 1469 | /* ok, we're trying to use Calgary - let's roll */ |
1471 | printk(KERN_INFO "PCI-DMA: Using Calgary IOMMU\n"); | 1470 | printk(KERN_INFO "PCI-DMA: Using Calgary IOMMU\n"); |
1472 | 1471 | ||