*/
  void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
  {
-       void *addr;
+       void __iomem *addr;
        struct vm_struct *area;
        unsigned long offset, last_addr;
 +      pgprot_t pgprot;
  
  #ifdef CONFIG_EISA
        unsigned long end = phys_addr + size - 1;
        if (!area)
                return NULL;
  
-       addr = area->addr;
+       addr = (void __iomem *) area->addr;
 -      if (remap_area_pages((unsigned long) addr, phys_addr, size, flags)) {
 +      if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size,
 +                             phys_addr, pgprot)) {
                vfree(addr);
                return NULL;
        }