Subject: Re: 64-bit paddr_t and mmap()?
To: Matt Thomas <matt@3am-software.com>
From: Garrett D'Amore <garrett_damore@tadpole.com>
List: port-arc
Date: 03/29/2006 13:33:44
Matt Thomas wrote:
> Garrett D'Amore wrote:
>> I'm trying to mmap a framebuffer device under evbmips, using a 64-bit
>> paddr_t.   (Alchemy PCI space is located in the upper portion of the
>> 36-bit MIPS physical address space.)
>>
>> Anyway, the mmap works fine.  I'm able to draw a picture on screen.
>>
>> But when the application exits (and hence does an implicit munmap()), I
>> get a panic in pmap_remove_pv, called from pmap_remove, where it looks
>> like a NULL "pg" pointer is being passed.
>
> That sounds like a bug in the pmap.  Not all mapped pages will have a
> corresponding uvm_page (because of being able to map pages outside of
> uvm managed memory).  In that case, you just reap the PV entry.
>
> See line 1749 in powerpc/oea/pmap.c for instance.

Yep.  I've posted a diff that I think fixes it and send-pr'd it.  Still
waiting for the bug number to come back to me.  :-)

-- 
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134  Fax: 951 325-2191