Re: [PATCH 1/1] EFI iounpam fix for acpi_os_unmap_memory

Andi Kleen
2006-02-21T14:15:21Z

Andrew Morton <akpm@osdl.org> writes:

>
> void acpi_os_unmap_memory(void __iomem * virt, acpi_size size)
> {
> + /* Don't unmap memory which was not mapped by acpi_os_map_memory */
> + if (efi_enabled &&
> + (efi_mem_attributes(virt_to_phys(virt)) & EFI_MEMORY_WB))
> + return;

The patch is wrong because if the address came from ioremap
virt_to_phys doesn't give the real physical address. Also looking
at acpi_os_map_memory it doesn't quite match the logic there.

One working way to check for ioremap memory is
virt >= VMALLOC_START && virt < VMALLOC_END

-Andi