Messages in this thread |  | | | Date | Sun, 02 Mar 2008 08:58:05 -0800 | | From | Arjan van de Ven <> | | Subject | Re: 2.6.25-rc2-mm1: WARNING at arch/x86/mm/ioremap.c:129 |
| |
Fabio Checconi wrote: > [cc'd relevant maintainers] > > Hi, > >> From: Arjan van de Ven <arjan@linux.intel.com> >> 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)
|  |