On Wed, 2007-09-26 at 08:32 +0100, Jan Beulich wrote: > >ioremap_nocache() does __ioremap(..., _PAGE_PCD);, then __ioremap() does > >ioremap_page_range(..., _PAGE_PCD | other_stuff) That's one. > > > >__ioremap() then does ioremap_change_attr(..., _PAGE_PCD);. That's two. > > > >So I _think_ we're setting _PAGE_PCD twice on those pte's? Unclear. The > >implementation is rather different from i386, too. > > > >I dunno why __change_page_attr() failed though. Perhaps this, in > >change_page_attr_addr(): > > > > if (!kernel_map || pte_present(pfn_pte(0, prot))) { > > > >should be && > > Definitely not, and this code has been that way for a while. > > I rather suspect this change > > - if (!kpte) return 0; > + if (!kpte) > + return -EINVAL; > > to be the reason for the failure (and I had already sent a comment to this > respect to Andi upon his review request).
This change exposes the problem. The question is why we do not have a page table entry for the address, which was mapped right before that. tglx - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/