On Wed, 27 Aug 2008 20:47:24 -0700
vb <[EMAIL PROTECTED]> wrote:

> On Wed, Aug 27, 2008 at 8:12 PM, Roland Dreier <[EMAIL PROTECTED]> wrote:
> > OK, please try this and let me know if it helps:
> >
> > diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
> > index 1c93c25..98d7bf9 100644
> > --- a/arch/powerpc/mm/mem.c
> > +++ b/arch/powerpc/mm/mem.c
> > @@ -75,11 +75,10 @@ static inline pte_t *virt_to_kpte(unsigned long vaddr)
> >
> >  int page_is_ram(unsigned long pfn)
> >  {
> > -       unsigned long paddr = (pfn << PAGE_SHIFT);
> > -
> >  #ifndef CONFIG_PPC64   /* XXX for now */
> > -       return paddr < __pa(high_memory);
> > +       return pfn < max_pfn;
> >  #else
> > +       unsigned long paddr = (pfn << PAGE_SHIFT);
> >        int i;
> >        for (i=0; i < lmb.memory.cnt; i++) {
> >                unsigned long base;
> >
> 
> Ronald, thank you for the hint,  I actually tried something slightly 
> different:
> 
> return pfn < (__pa(high_memory) >> PAGE_SHIFT);
> 
> and it worked. I guess your fix is faster, I'll try it tomorrow.
> 
> I also checked that the problem is there in the top of the tree in
> Linus' git - isn't it amazing - I guess very few people use mmap()
> nowadays, everybody must be using UIO device :-)

No, most people use device drivers in the kernel.

josh
_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to