upgrade to linux 2.6.10-1.12_FC2
[linux-2.6.git] / include / asm-alpha / pgtable.h
index 3f1ed39..b3f8c7d 100644 (file)
@@ -327,8 +327,12 @@ extern inline pte_t mk_swap_pte(unsigned long type, unsigned long offset)
 #define kern_addr_valid(addr)  (1)
 #endif
 
-#define io_remap_page_range(vma, start, busaddr, size, prot) \
-    remap_page_range(vma, start, virt_to_phys((void *)__ioremap(busaddr, size)), size, prot)
+#define io_remap_page_range(vma, start, busaddr, size, prot)   \
+({                                                             \
+       void *va = (void __force *)ioremap(busaddr, size);      \
+       unsigned long pfn = virt_to_phys(va) >> PAGE_SHIFT;     \
+       remap_pfn_range(vma, start, pfn, size, prot);           \
+})
 
 #define pte_ERROR(e) \
        printk("%s:%d: bad pte %016lx.\n", __FILE__, __LINE__, pte_val(e))