Re: 2.6.25-rc2-mm1: WARNING at arch/x86/mm/ioremap.c:129

From: Arjan van de Ven
Date: Sun Mar 02 2008 - 11:58:32 EST


Fabio Checconi wrote:
[cc'd relevant maintainers]

Hi,

From: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Date: Mon, Feb 25, 2008 02:44:53PM -0800

Gabriel C wrote:
...
With your patch from http://marc.info/?l=linux-kernel&m=120336371506283&w=2 I don't have a warning anymore.

that is ... odd since it's the same in theory, just with some added printk's ;-(

the same here on 2.6.25-rc3, with the innocent ibmphp_access_ebda()
that fires the WARN_ON() in __ioremap() asking for the pfn 0, even
after the page_is_ram() change. With your patch the warning
disappears.

I think this is because the pfn checked by the original code (before
your patch) is the one after the last iteration, while your patch
checks for each pfn that is going to be mapped. The latter should
be the intended behavior. If I've understood the problem, the
(trivial) patch below should fix it.

Also, note that if last_addr is at the beginning of a page we can
__ioremap() normal RAM (in fact we only emit the warning with the
old code, instead of returning NULL.) Is that possible/intended
behavior? If not the loop should do one more iteration.


__ioremap() emits a warning if the pfn after the last one it's going
to map is of normal ram. Correct this and emit the warning (once)
only if one of the asked pages is.



looks good to me; Ingo please apply
(Note: if no legit users show up I want to just remove support for mapping ram altogether
in 2.6.26 or so)
--
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/