cvs commit: src/sys/machine/pc32/i386 pmap.c src/sys/machine/pc32/include pmap.h src/sys/machine/vkernel/include pmap.h src/sys/machine/vkernel/platform pmap.c

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Jan 15 01:31:48 PST 2007


dillon      2007/01/15 01:28:40 PST

DragonFly src repository

  Modified files:
    sys/machine/pc32/i386 pmap.c 
    sys/machine/pc32/include pmap.h 
    sys/machine/vkernel/include pmap.h 
    sys/machine/vkernel/platform pmap.c 
  Log:
  Close two holes in the pmap code.  The page table self mapping does not
  necessarily stay valid through a blocking condition, recheck it for every
  page.  The 'next' pointer in the loop that runs through PV entries is not
  safe when code blocks in the loop.  Add a generation count to detect
  unexpected removals and restart the loop.  Add a kprintf() to print when
  the condition is detected.
  
  Crash-Reported-by: Nuno Antunes <bugs at crater.dragonflybsd.org>
  
  Revision  Changes    Path
  1.72      +29 -12    src/sys/machine/pc32/i386/pmap.c
  1.6       +3 -2      src/sys/machine/pc32/include/pmap.h
  1.3       +1 -0      src/sys/machine/vkernel/include/pmap.h
  1.15      +29 -13    src/sys/machine/vkernel/platform/pmap.c


http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/pmap.c.diff?r1=1.71&r2=1.72&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/include/pmap.h.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/include/pmap.h.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/platform/pmap.c.diff?r1=1.14&r2=1.15&f=u





More information about the Commits mailing list