Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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 <jeremy.fitzhardinge@citrix.com>
Acked-by: default avatarLen Brown <len.brown@intel.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent eecb9a69
Loading
Loading
Loading
Loading
+5 −3
Original line number Original line Diff line number Diff line
@@ -124,12 +124,14 @@ char *__init __acpi_map_table(unsigned long phys, unsigned long size)
	static char *prev_map;
	static char *prev_map;
	static unsigned long prev_size;
	static unsigned long prev_size;


	if (prev_map) {
		early_iounmap(prev_map, prev_size);
		prev_map = NULL;
	}

	if (!phys || !size)
	if (!phys || !size)
		return NULL;
		return NULL;


	if (prev_map)
		early_iounmap(prev_map, prev_size);

	prev_size = size;
	prev_size = size;
	prev_map = early_ioremap(phys, size);
	prev_map = early_ioremap(phys, size);


+6 −0
Original line number Original line Diff line number Diff line
@@ -694,6 +694,12 @@ void __init acpi_early_init(void)
	if (!acpi_strict)
	if (!acpi_strict)
		acpi_gbl_enable_interpreter_slack = TRUE;
		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;
	acpi_gbl_permanent_mmap = 1;


	status = acpi_reallocate_root_table();
	status = acpi_reallocate_root_table();