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