forked from luck/tmp_suning_uos_patched
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: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Acked-by: Len Brown <len.brown@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
eecb9a697f
commit
05876f88ed
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user