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)
 
                               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);
 }
 
         * 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
 
 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,
 
        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) {
                        start = index + 1;
                        goto again;
                }
-               set_bit_area(map, index, nr);
+               iommu_area_reserve(map, index, nr);
        }
        return index;
 }