Re: [PATCH 6 of 7] x86: use early_ioremap in __acpi_map_table

From: Jeremy Fitzhardinge
Date: Thu Sep 11 2008 - 17:07:56 EST


Yinghai Lu wrote:
> void __iomem *__init_refok
> acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
> {
> if (phys > ULONG_MAX) {
> printk(KERN_ERR PREFIX "Cannot map memory that high\n");
> return NULL;
> }
> if (acpi_gbl_permanent_mmap)
> /*
> * ioremap checks to ensure this is in reserved space
> */
> return ioremap((unsigned long)phys, size);
> else
> return __acpi_map_table((unsigned long)phys, size);
> }
> EXPORT_SYMBOL_GPL(acpi_os_map_memory);
>
> void acpi_os_unmap_memory(void __iomem * virt, acpi_size size)
> {
> if (acpi_gbl_permanent_mmap) {
> iounmap(virt);
> }
> }
> EXPORT_SYMBOL_GPL(acpi_os_unmap_memory);
>
> just let acpi_os_unmap_memory to call __acpi_unmap_table...
>

That was my first attempt. Unfortunately a lot of the acpi code seems
pretty sloppy about unmapping its tables, and basically relies on
__acpi_map_table's current behaviour of removing the previous mapping
when creating the new mapping.

J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/