panic: pmap_page_protect: illegal for unmanaged page

Simon 'corecode' Schubert corecode at
Thu Jan 10 16:52:33 PST 2008


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));

I guess the XXX is correct and we need to either a) avoid calling pmap_remove_all() or b) return without error.

Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |      Against  HTML   \
Dude 2c 2 the max   !       Mail + News   / \

More information about the Bugs mailing list