goto err;
        }
 
-       extlog_l1_hdr = acpi_os_map_memory(l1_dirbase, l1_hdr_size);
+       extlog_l1_hdr = acpi_os_map_iomem(l1_dirbase, l1_hdr_size);
        l1_head = (struct extlog_l1_head *)extlog_l1_hdr;
        l1_size = l1_head->total_len;
        l1_percpu_entry = l1_head->entries;
        elog_base = l1_head->elog_base;
        elog_size = l1_head->elog_len;
-       acpi_os_unmap_memory(extlog_l1_hdr, l1_hdr_size);
+       acpi_os_unmap_iomem(extlog_l1_hdr, l1_hdr_size);
        release_mem_region(l1_dirbase, l1_hdr_size);
 
        /* remap L1 header again based on completed information */
                        (unsigned long long)l1_dirbase + l1_size);
                goto err;
        }
-       extlog_l1_addr = acpi_os_map_memory(l1_dirbase, l1_size);
+       extlog_l1_addr = acpi_os_map_iomem(l1_dirbase, l1_size);
        l1_entry_base = (u64 *)((u8 *)extlog_l1_addr + l1_hdr_size);
 
        /* remap elog table */
                        (unsigned long long)elog_base + elog_size);
                goto err_release_l1_dir;
        }
-       elog_addr = acpi_os_map_memory(elog_base, elog_size);
+       elog_addr = acpi_os_map_iomem(elog_base, elog_size);
 
        rc = -ENOMEM;
        /* allocate buffer to save elog record */
 
 err_release_elog:
        if (elog_addr)
-               acpi_os_unmap_memory(elog_addr, elog_size);
+               acpi_os_unmap_iomem(elog_addr, elog_size);
        release_mem_region(elog_base, elog_size);
 err_release_l1_dir:
        if (extlog_l1_addr)
-               acpi_os_unmap_memory(extlog_l1_addr, l1_size);
+               acpi_os_unmap_iomem(extlog_l1_addr, l1_size);
        release_mem_region(l1_dirbase, l1_size);
 err:
        pr_warn(FW_BUG "Extended error log disabled because of problems parsing f/w tables\n");
        mce_unregister_decode_chain(&extlog_mce_dec);
        ((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN;
        if (extlog_l1_addr)
-               acpi_os_unmap_memory(extlog_l1_addr, l1_size);
+               acpi_os_unmap_iomem(extlog_l1_addr, l1_size);
        if (elog_addr)
-               acpi_os_unmap_memory(elog_addr, elog_size);
+               acpi_os_unmap_iomem(elog_addr, elog_size);
        release_mem_region(elog_base, elog_size);
        release_mem_region(l1_dirbase, l1_size);
        kfree(elog_buf);
 
 
        if (!offset)
                return;
-       v = acpi_os_map_memory(paddr + offset, sizeof(*v));
+       v = acpi_os_map_iomem(paddr + offset, sizeof(*v));
        if (!v)
                return;
        sbdf = v->pcie_sbdf;
                sbdf >> 24, (sbdf >> 16) & 0xff,
                (sbdf >> 11) & 0x1f, (sbdf >> 8) & 0x7,
                 v->vendor_id, v->device_id, v->rev_id);
-       acpi_os_unmap_memory(v, sizeof(*v));
+       acpi_os_unmap_iomem(v, sizeof(*v));
 }
 
 static void *einj_get_parameter_address(void)
        if (pa_v5) {
                struct set_error_type_with_address *v5param;
 
-               v5param = acpi_os_map_memory(pa_v5, sizeof(*v5param));
+               v5param = acpi_os_map_iomem(pa_v5, sizeof(*v5param));
                if (v5param) {
                        acpi5 = 1;
                        check_vendor_extension(pa_v5, v5param);
        if (param_extension && pa_v4) {
                struct einj_parameter *v4param;
 
-               v4param = acpi_os_map_memory(pa_v4, sizeof(*v4param));
+               v4param = acpi_os_map_iomem(pa_v4, sizeof(*v4param));
                if (!v4param)
                        return NULL;
                if (v4param->reserved1 || v4param->reserved2) {
-                       acpi_os_unmap_memory(v4param, sizeof(*v4param));
+                       acpi_os_unmap_iomem(v4param, sizeof(*v4param));
                        return NULL;
                }
                return v4param;
                        sizeof(struct set_error_type_with_address) :
                        sizeof(struct einj_parameter);
 
-               acpi_os_unmap_memory(einj_param, size);
+               acpi_os_unmap_iomem(einj_param, size);
        }
        apei_exec_post_unmap_gars(&ctx);
 err_release:
                        sizeof(struct set_error_type_with_address) :
                        sizeof(struct einj_parameter);
 
-               acpi_os_unmap_memory(einj_param, size);
+               acpi_os_unmap_iomem(einj_param, size);
        }
        einj_exec_ctx_init(&ctx);
        apei_exec_post_unmap_gars(&ctx);
 
                                        iounmap(entry->kaddr);
                                        entry->unmap = false;
                                } else {
-                                       acpi_os_unmap_memory(entry->kaddr,
-                                                            entry->size);
+                                       acpi_os_unmap_iomem(entry->kaddr,
+                                                           entry->size);
                                }
                                entry->kaddr = NULL;
                        }
 
 }
 
 void __iomem *__init_refok
-acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
+acpi_os_map_iomem(acpi_physical_address phys, acpi_size size)
 {
        struct acpi_ioremap *map;
        void __iomem *virt;
 
        list_add_tail_rcu(&map->list, &acpi_ioremaps);
 
- out:
+out:
        mutex_unlock(&acpi_ioremap_lock);
        return map->virt + (phys - map->phys);
 }
+EXPORT_SYMBOL_GPL(acpi_os_map_iomem);
+
+void *__init_refok
+acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
+{
+       return (void *)acpi_os_map_iomem(phys, size);
+}
 EXPORT_SYMBOL_GPL(acpi_os_map_memory);
 
 static void acpi_os_drop_map_ref(struct acpi_ioremap *map)
        }
 }
 
-void __ref acpi_os_unmap_memory(void __iomem *virt, acpi_size size)
+void __ref acpi_os_unmap_iomem(void __iomem *virt, acpi_size size)
 {
        struct acpi_ioremap *map;
 
 
        acpi_os_map_cleanup(map);
 }
+EXPORT_SYMBOL_GPL(acpi_os_unmap_iomem);
+
+void __ref acpi_os_unmap_memory(void *virt, acpi_size size)
+{
+       return acpi_os_unmap_iomem((void __iomem *)virt, size);
+}
 EXPORT_SYMBOL_GPL(acpi_os_unmap_memory);
 
 void __init early_acpi_os_unmap_memory(void __iomem *virt, acpi_size size)
        if (!addr || !gas->bit_width)
                return -EINVAL;
 
-       virt = acpi_os_map_memory(addr, gas->bit_width / 8);
+       virt = acpi_os_map_iomem(addr, gas->bit_width / 8);
        if (!virt)
                return -EIO;
 
 
 
        log->bios_event_log_end = log->bios_event_log + len;
 
-       virt = acpi_os_map_memory(start, len);
+       virt = acpi_os_map_iomem(start, len);
        if (!virt) {
                kfree(log->bios_event_log);
                printk("%s: ERROR - Unable to map memory\n", __func__);
 
        memcpy_fromio(log->bios_event_log, virt, len);
 
-       acpi_os_unmap_memory(virt, len);
+       acpi_os_unmap_iomem(virt, len);
        return 0;
 }
 
        return ioremap_cache(phys, size);
 }
 
+void __iomem *__init_refok
+acpi_os_map_iomem(acpi_physical_address phys, acpi_size size);
+void __ref acpi_os_unmap_iomem(void __iomem *virt, acpi_size size);
 void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
 
 int acpi_os_map_generic_address(struct acpi_generic_address *addr);
 
 #define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_object
 #define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_thread_id
 #define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_lock
-#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_map_memory
-#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_unmap_memory
 
 /*
  * OSL interfaces used by debugger/disassembler
 #define __init
 #endif
 
-#ifndef __iomem
-#define __iomem
-#endif
-
 /* Host-dependent types and defines for user-space ACPICA */
 
 #define ACPI_FLUSH_CPU_CACHE()
 
                lock ? AE_OK : AE_NO_MEMORY; \
        })
 
-void __iomem *acpi_os_map_memory(acpi_physical_address where, acpi_size length);
-
-void acpi_os_unmap_memory(void __iomem * logical_address, acpi_size size);
-
 /*
  * OSL interfaces added by Linux
  */