swiotlb: Remove the swiotlb variable usage

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>
This commit is contained in:
FUJITA Tomonori 2009-11-12 00:03:28 +09:00 committed by Ingo Molnar
parent b4941a9a60
commit b18485e7ac
4 changed files with 18 additions and 10 deletions

View file

@ -9,11 +9,12 @@ extern int swiotlb_force;
#ifdef CONFIG_SWIOTLB #ifdef CONFIG_SWIOTLB
extern int swiotlb; extern int swiotlb;
extern void pci_swiotlb_init(void); extern int pci_swiotlb_init(void);
#else #else
#define swiotlb 0 #define swiotlb 0
static inline void pci_swiotlb_init(void) static inline int pci_swiotlb_init(void)
{ {
return 0;
} }
#endif #endif

View 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 #ifdef CONFIG_X86_64
/* free the range so iommu could get some range less than 4G */ /* free the range so iommu could get some range less than 4G */
dma32_free_bootmem(); dma32_free_bootmem();
#else #else
dma_ops = &nommu_dma_ops; dma_ops = &nommu_dma_ops;
#endif #endif
pci_swiotlb_init(); if (pci_swiotlb_init())
if (use_swiotlb)
return; return;
gart_iommu_hole_init(); gart_iommu_hole_init();

View 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) */ /* don't initialize swiotlb if iommu=off (no_iommu=1) */
#ifdef CONFIG_X86_64 #ifdef CONFIG_X86_64
if (!no_iommu && max_pfn > MAX_DMA32_PFN) if (!no_iommu && max_pfn > MAX_DMA32_PFN)
swiotlb = 1; swiotlb = 1;
#endif #endif
if (swiotlb_force)
swiotlb = 1;
if (swiotlb) { if (swiotlb) {
swiotlb_init(0); swiotlb_init(0);
dma_ops = &swiotlb_dma_ops; dma_ops = &swiotlb_dma_ops;
} else } else
dma_ops = &nommu_dma_ops; dma_ops = &nommu_dma_ops;
return swiotlb_force;
} }

View file

@ -109,10 +109,9 @@ setup_io_tlb_npages(char *str)
} }
if (*str == ',') if (*str == ',')
++str; ++str;
if (!strcmp(str, "force")) { if (!strcmp(str, "force"))
swiotlb_force = 1; swiotlb_force = 1;
swiotlb = 1;
}
return 1; return 1;
} }
__setup("swiotlb=", setup_io_tlb_npages); __setup("swiotlb=", setup_io_tlb_npages);