diff options
| author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2008-09-22 22:35:07 +0900 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-09-22 16:47:50 +0200 | 
| commit | d26dbc5cf94b0a28acc947285c3b54814a73cb2e (patch) | |
| tree | ba6d44e5945b491166159fee791761ebe4b39134 | |
| parent | 832a90c30485117d65180cc9a8d9869c1b158570 (diff) | |
| download | olio-linux-3.10-d26dbc5cf94b0a28acc947285c3b54814a73cb2e.tar.xz olio-linux-3.10-d26dbc5cf94b0a28acc947285c3b54814a73cb2e.zip  | |
iommu: export iommu_area_reserve helper function
x86 has set_bit_string() that does the exact same thing that
set_bit_area() in lib/iommu-helper.c does.
This patch exports set_bit_area() in lib/iommu-helper.c as
iommu_area_reserve(), converts GART, Calgary, and AMD IOMMU to use it.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | arch/x86/kernel/amd_iommu.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/pci-calgary_64.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/pci-gart_64.c | 2 | ||||
| -rw-r--r-- | include/linux/iommu-helper.h | 1 | ||||
| -rw-r--r-- | lib/iommu-helper.c | 5 | 
5 files changed, 6 insertions, 6 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index 6f7b9744573..70537d117a9 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c @@ -572,7 +572,7 @@ static void dma_ops_reserve_addresses(struct dma_ops_domain *dom,  	if (start_page + pages > last_page)  		pages = last_page - start_page; -	set_bit_string(dom->bitmap, start_page, pages); +	iommu_area_reserve(dom->bitmap, start_page, pages);  }  static void dma_ops_free_pagetable(struct dma_ops_domain *dma_dom) diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c index fe7695e4caa..080d1d27f37 100644 --- a/arch/x86/kernel/pci-calgary_64.c +++ b/arch/x86/kernel/pci-calgary_64.c @@ -261,7 +261,7 @@ static void iommu_range_reserve(struct iommu_table *tbl,  			       badbit, tbl, start_addr, npages);  	} -	set_bit_string(tbl->it_map, index, npages); +	iommu_area_reserve(tbl->it_map, index, npages);  	spin_unlock_irqrestore(&tbl->it_lock, flags);  } diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c index 508ef470b27..3dcb1ad86e3 100644 --- a/arch/x86/kernel/pci-gart_64.c +++ b/arch/x86/kernel/pci-gart_64.c @@ -827,7 +827,7 @@ void __init gart_iommu_init(void)  	 * Out of IOMMU space handling.  	 * Reserve some invalid pages at the beginning of the GART.  	 */ -	set_bit_string(iommu_gart_bitmap, 0, EMERGENCY_PAGES); +	iommu_area_reserve(iommu_gart_bitmap, 0, EMERGENCY_PAGES);  	agp_memory_reserved = iommu_size;  	printk(KERN_INFO diff --git a/include/linux/iommu-helper.h b/include/linux/iommu-helper.h index 58f41107e4a..786539e432d 100644 --- a/include/linux/iommu-helper.h +++ b/include/linux/iommu-helper.h @@ -11,6 +11,7 @@ static inline unsigned long iommu_device_max_index(unsigned long size,  extern int iommu_is_span_boundary(unsigned int index, unsigned int nr,  				  unsigned long shift,  				  unsigned long boundary_size); +extern void iommu_area_reserve(unsigned long *map, unsigned long i, int len);  extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,  				      unsigned long start, unsigned int nr,  				      unsigned long shift, diff --git a/lib/iommu-helper.c b/lib/iommu-helper.c index a3b8d4c3f77..5d90074dca7 100644 --- a/lib/iommu-helper.c +++ b/lib/iommu-helper.c @@ -30,8 +30,7 @@ again:  	return index;  } -static inline void set_bit_area(unsigned long *map, unsigned long i, -				int len) +void iommu_area_reserve(unsigned long *map, unsigned long i, int len)  {  	unsigned long end = i + len;  	while (i < end) { @@ -64,7 +63,7 @@ again:  			start = index + 1;  			goto again;  		} -		set_bit_area(map, index, nr); +		iommu_area_reserve(map, index, nr);  	}  	return index;  }  |