Subject: Re: 64-bit paddr_t and mmap()?
To: Garrett D'Amore <garrett_damore@tadpole.com>
From: Matt Thomas <matt@3am-software.com>
List: port-mips
Date: 03/29/2006 13:30:06
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.
--
Matt Thomas email: matt@3am-software.com
3am Software Foundry www: http://3am-software.com/bio/matt/
Cupertino, CA disclaimer: I avow all knowledge of this message.