Virtualbox

Jacques Fourie jacques.fourie at gmail.com
Wed Feb 24 11:44:09 UTC 2010


As a test you can apply the following mod to sys/i386/include/pmap.h
and re-compile vboxdrv.ko. It fixed the problem for me but I'm by no
means an expert on the i386 pmap stuff so use at your own risk. Also
revert the change to pmap.h after re-compiling vboxdrv just so that
you don't inadvertently break something else.

Index: pmap.h
===================================================================
--- pmap.h      (revision 204194)
+++ pmap.h      (working copy)
@@ -296,7 +296,10 @@
                 * however, safe to use the old PDE because the page table
                 * page is preserved by the promotion.
                 */
-               pa = KPTmap[i386_btop(va)];
+               if (va >= KERNBASE)
+                       pa = KPTmap[i386_btop(va)];
+               else
+                       pa = *vtopte(va);
                pa = (pa & PG_FRAME) | (va & PAGE_MASK);
        }
        return (pa);


More information about the freebsd-current mailing list