cvs commit: src/sys/amd64/amd64 pmap.c src/sys/amd64/include
pmap.h src/sys/i386/i386 pmap.c src/sys/i386/include pmap.h
Alan Cox
alc at FreeBSD.org
Wed Sep 29 12:20:40 PDT 2004
alc 2004-09-29 19:20:40 UTC
FreeBSD src repository
Modified files:
sys/amd64/amd64 pmap.c
sys/amd64/include pmap.h
sys/i386/i386 pmap.c
sys/i386/include pmap.h
Log:
Prevent the unexpected deallocation of a page table page while performing
pmap_copy(). This entails additional locking in pmap_copy() and the
addition of a "flags" parameter to the page table page allocator for
specifying whether it may sleep when memory is unavailable. (Already,
pmap_copy() checks the availability of memory, aborting if it is scarce.
In theory, another CPU could, however, allocate memory between
pmap_copy()'s check and the call to the page table page allocator,
causing the current thread to release its locks and sleep. This change
makes this scenario impossible.)
Reviewed by: tegge@
Revision Changes Path
1.503 +44 -21 src/sys/amd64/amd64/pmap.c
1.124 +1 -1 src/sys/amd64/include/pmap.h
1.509 +38 -18 src/sys/i386/i386/pmap.c
1.114 +1 -1 src/sys/i386/include/pmap.h
More information about the cvs-src
mailing list