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

Jeremy Fitzhardinge
2008-09-10T16:49:39Z

Ingo Molnar wrote:
>> So i'd suggest a different, more carful approach: keep the new code
>> you wrote, but print a WARN()ing if prev_map is not unmapped yet when
>> the next mapping is acquired. That way the ACPI code can be fixed
>> gradually and without breaking existing functionality.
>>
>
> ok, i stuck in your patches into tip/master today and -tip testing
> quickly found an early-ioremap leak:
>
> [ 36.625100] calling check_early_ioremap_leak+0x0/0x3d
> [ 36.630253] ------------[ cut here ]------------
> [ 36.634884] WARNING: at arch/x86/mm/ioremap.c:577 check_early_ioremap_leak+0x28/0x3d()
> [ 36.642811] Debug warning: early ioremap leak of 1 areas detected.
>
> find the full log below with ioremap-leak-tracing turned on. I've
> excluded these commits for now from tip/master.
>

Yes, that leak is expected, unfortunately. __acpi_map_table() has no
corresponding unmap, and only maintains one mapping. So it will leak
its last mapping when it switches over from using __acpi_map_table() to
ioremap().

So, yes, its ugly, but its guaranteed to be a single leaked mapping.
But I'm not sure what the best approach to deal with it is.

(All those other backtraces are just informational, right?)

J