From bcd6606b65a4af74f5701de97aa1bcd35dba748e Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Tue, 10 Nov 2009 19:46:13 +0900 Subject: [PATCH] --- yaml --- r: 169214 b: refs/heads/master c: d7b9f7be216b04ff9d108f856bc03d96e7b3439c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/include/asm/calgary.h | 2 -- trunk/arch/x86/kernel/pci-calgary_64.c | 11 +++++------ trunk/arch/x86/kernel/pci-dma.c | 2 -- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index b701e9e6df43..f91ec1b46f11 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d07c1be0693e0902d743160b8b638585b808f8ac +refs/heads/master: d7b9f7be216b04ff9d108f856bc03d96e7b3439c diff --git a/trunk/arch/x86/include/asm/calgary.h b/trunk/arch/x86/include/asm/calgary.h index b03bedb62aa7..0918654305af 100644 --- a/trunk/arch/x86/include/asm/calgary.h +++ b/trunk/arch/x86/include/asm/calgary.h @@ -62,10 +62,8 @@ struct cal_chipset_ops { extern int use_calgary; #ifdef CONFIG_CALGARY_IOMMU -extern int calgary_iommu_init(void); extern void detect_calgary(void); #else -static inline int calgary_iommu_init(void) { return 1; } static inline void detect_calgary(void) { return; } #endif diff --git a/trunk/arch/x86/kernel/pci-calgary_64.c b/trunk/arch/x86/kernel/pci-calgary_64.c index 971a3bec47a8..47bd419ea4d2 100644 --- a/trunk/arch/x86/kernel/pci-calgary_64.c +++ b/trunk/arch/x86/kernel/pci-calgary_64.c @@ -46,6 +46,7 @@ #include #include #include +#include #ifdef CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT int use_calgary __read_mostly = 1; @@ -1344,6 +1345,8 @@ static void __init get_tce_space_from_tar(void) return; } +int __init calgary_iommu_init(void); + void __init detect_calgary(void) { int bus; @@ -1445,6 +1448,8 @@ void __init detect_calgary(void) /* swiotlb for devices that aren't behind the Calgary. */ if (max_pfn > MAX_DMA32_PFN) swiotlb = 1; + + x86_init.iommu.iommu_init = calgary_iommu_init; } return; @@ -1461,12 +1466,6 @@ int __init calgary_iommu_init(void) { int ret; - if (no_iommu || (swiotlb && !calgary_detected)) - return -ENODEV; - - if (!calgary_detected) - return -ENODEV; - /* ok, we're trying to use Calgary - let's roll */ printk(KERN_INFO "PCI-DMA: Using Calgary IOMMU\n"); diff --git a/trunk/arch/x86/kernel/pci-dma.c b/trunk/arch/x86/kernel/pci-dma.c index a13478da533c..0224da88256a 100644 --- a/trunk/arch/x86/kernel/pci-dma.c +++ b/trunk/arch/x86/kernel/pci-dma.c @@ -294,8 +294,6 @@ static int __init pci_iommu_init(void) x86_init.iommu.iommu_init(); - calgary_iommu_init(); - intel_iommu_init(); amd_iommu_init();