swiotlb: Remove the swiotlb variable usage
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Wed, 11 Nov 2009 15:03:28 +0000 (00:03 +0900)
committerIngo Molnar <mingo@elte.hu>
Wed, 11 Nov 2009 15:51:18 +0000 (16:51 +0100)
POWERPC doesn't expect it to be used.

This fixes the linux-next build failure reported by
Stephen Rothwell:

  lib/swiotlb.c: In function 'setup_io_tlb_npages':
  lib/swiotlb.c:114: error: 'swiotlb' undeclared (first use in this function)

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: peterz@infradead.org
LKML-Reference: <20091112000258F.fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/swiotlb.h
arch/x86/kernel/pci-dma.c
arch/x86/kernel/pci-swiotlb.c
lib/swiotlb.c

index b9e4e20..940f13a 100644 (file)
@@ -9,11 +9,12 @@ extern int swiotlb_force;
 
 #ifdef CONFIG_SWIOTLB
 extern int swiotlb;
 
 #ifdef CONFIG_SWIOTLB
 extern int swiotlb;
-extern void pci_swiotlb_init(void);
+extern int pci_swiotlb_init(void);
 #else
 #define swiotlb 0
 #else
 #define swiotlb 0
-static inline void pci_swiotlb_init(void)
+static inline int pci_swiotlb_init(void)
 {
 {
+       return 0;
 }
 #endif
 
 }
 #endif
 
index f79870e..0b11bf1 100644 (file)
@@ -125,16 +125,13 @@ static void __init dma32_free_bootmem(void)
 
 void __init pci_iommu_alloc(void)
 {
 
 void __init pci_iommu_alloc(void)
 {
-       /* swiotlb is forced by the boot option */
-       int use_swiotlb = swiotlb;
 #ifdef CONFIG_X86_64
        /* free the range so iommu could get some range less than 4G */
        dma32_free_bootmem();
 #else
        dma_ops = &nommu_dma_ops;
 #endif
 #ifdef CONFIG_X86_64
        /* free the range so iommu could get some range less than 4G */
        dma32_free_bootmem();
 #else
        dma_ops = &nommu_dma_ops;
 #endif
-       pci_swiotlb_init();
-       if (use_swiotlb)
+       if (pci_swiotlb_init())
                return;
 
        gart_iommu_hole_init();
                return;
 
        gart_iommu_hole_init();
index 17ce422..a6e5d0f 100644 (file)
@@ -42,16 +42,27 @@ static struct dma_map_ops swiotlb_dma_ops = {
        .dma_supported = NULL,
 };
 
        .dma_supported = NULL,
 };
 
-void __init pci_swiotlb_init(void)
+/*
+ * pci_swiotlb_init - initialize swiotlb if necessary
+ *
+ * This returns non-zero if we are forced to use swiotlb (by the boot
+ * option).
+ */
+int __init pci_swiotlb_init(void)
 {
        /* don't initialize swiotlb if iommu=off (no_iommu=1) */
 #ifdef CONFIG_X86_64
        if (!no_iommu && max_pfn > MAX_DMA32_PFN)
                swiotlb = 1;
 #endif
 {
        /* don't initialize swiotlb if iommu=off (no_iommu=1) */
 #ifdef CONFIG_X86_64
        if (!no_iommu && max_pfn > MAX_DMA32_PFN)
                swiotlb = 1;
 #endif
+       if (swiotlb_force)
+               swiotlb = 1;
+
        if (swiotlb) {
                swiotlb_init(0);
                dma_ops = &swiotlb_dma_ops;
        } else
                dma_ops = &nommu_dma_ops;
        if (swiotlb) {
                swiotlb_init(0);
                dma_ops = &swiotlb_dma_ops;
        } else
                dma_ops = &nommu_dma_ops;
+
+       return swiotlb_force;
 }
 }
index e6755a0..795472d 100644 (file)
@@ -109,10 +109,9 @@ setup_io_tlb_npages(char *str)
        }
        if (*str == ',')
                ++str;
        }
        if (*str == ',')
                ++str;
-       if (!strcmp(str, "force")) {
+       if (!strcmp(str, "force"))
                swiotlb_force = 1;
                swiotlb_force = 1;
-               swiotlb = 1;
-       }
+
        return 1;
 }
 __setup("swiotlb=", setup_io_tlb_npages);
        return 1;
 }
 __setup("swiotlb=", setup_io_tlb_npages);