panic: pmap_page_protect: illegal for unmanaged page

Simon 'corecode' Schubert corecode at fs.ei.tum.de
Thu Jan 10 16:52:33 PST 2008


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   / \




More information about the Bugs mailing list