[RFC patch] init default dma_ops to prepare intel_iommu_init failure

From: Luming Yu
Date: Wed Aug 12 2009 - 05:20:23 EST


Hi there,

On ia64 platform with dmar table and new upstream
kernel(config_dmar_default_on enabled),
if intel_iommu_init ends up without dma_ops initialized or other iommu
failures.
We got nothing to fall back. The following patch fixes it.

Please review. If make sense, please apply.

**The patch is enclosed in text attachment*
**Using web client to send the patch* *
**below is for review, please apply attached patch*/

Thanks,
Luming

Signed-off-by: Yu Luming <luming.yu@xxxxxxxxx>

arch/ia64/kernel/pci-swiotlb.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/arch/ia64/kernel/pci-swiotlb.c b/arch/ia64/kernel/pci-swiotlb.c
index 223abb1..d5dcaf5 100644
--- a/arch/ia64/kernel/pci-swiotlb.c
+++ b/arch/ia64/kernel/pci-swiotlb.c
@@ -46,15 +46,13 @@ void __init swiotlb_dma_init(void)

void __init pci_swiotlb_init(void)
{
- if (!iommu_detected || iommu_pass_through) {
#ifdef CONFIG_IA64_GENERIC
- swiotlb = 1;
- printk(KERN_INFO "PCI-DMA: Re-initialize machine vector.\n");
- machvec_init("dig");
- swiotlb_init();
- dma_ops = &swiotlb_dma_ops;
+ swiotlb = 1;
+ printk(KERN_INFO "PCI-DMA: Re-initialize machine vector.\n");
+ machvec_init("dig");
+ swiotlb_init();
+ dma_ops = &swiotlb_dma_ops;
#else
- panic("Unable to find Intel IOMMU");
+ panic("Unable to find Intel IOMMU");
#endif
- }
}

Attachment: 5
Description: Binary data