hey,
I think I found a bug somewhere in the code chain of msync(..., MS_INVALIDATE),
if refering to mmap()ed device memory.
device memory has pages of type PG_FICTITIOUS, but pmap_remove_all() complains:
#if defined(PMAP_DIAGNOSTIC)
/*
* XXX this makes pmap_page_protect(NONE) illegal for non-managed
* pages!
*/
if (!pmap_initialized || (m->flags & PG_FICTITIOUS)) {
panic("pmap_page_protect: illegal for unmanaged page, va:
0x%08llx", (long long)VM_PAGE_TO_PHYS(m));
}
#endif
I guess the XXX is correct and we need to either a) avoid calling
pmap_remove_all() or b) return without error.
cheers
simon
--
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \