Commit 05876f88 authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge Committed by Ingo Molnar
Browse files

acpi: remove final __acpi_map_table mapping before setting acpi_gbl_permanent_mmap

On x86, __acpi_map_table uses early_ioremap() to create the mapping,
replacing the previous mapping with a new one.  Once enough of the
kernel is up an running it switches to using normal ioremap().  At
that point, we need to clean up the final mapping to avoid a warning
from the early_ioremap subsystem.

This can be removed after all the instances in the ACPI code are fixed
that rely on early-ioremap's implicit overmapping of previously
mapped tables.
Signed-off-by: default avatarJeremy Fitzhardinge <>
Acked-by: default avatarLen Brown <>
Signed-off-by: default avatarIngo Molnar <>
parent eecb9a69
......@@ -124,12 +124,14 @@ char *__init __acpi_map_table(unsigned long phys, unsigned long size)
static char *prev_map;
static unsigned long prev_size;
if (prev_map) {
early_iounmap(prev_map, prev_size);
prev_map = NULL;
if (!phys || !size)
return NULL;
if (prev_map)
early_iounmap(prev_map, prev_size);
prev_size = size;
prev_map = early_ioremap(phys, size);
......@@ -694,6 +694,12 @@ void __init acpi_early_init(void)
if (!acpi_strict)
acpi_gbl_enable_interpreter_slack = TRUE;
* Doing a zero-sized mapping will clear out the previous
* __acpi_map_table() mapping, if any.
__acpi_map_table(0, 0);
acpi_gbl_permanent_mmap = 1;
status = acpi_reallocate_root_table();
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment