Re: 64-bit paddr_t and mmap()?
"Garrett D'Amore" <[email protected]> Wed, 29 Mar 2006 13:33:44 -0800
| Newsgroups | gmane.os.netbsd.ports.mips.devel,gmane.os.netbsd.ports.arc |
|---|---|
| Message-ID | <[email protected]> |
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