cvs commit: src/sys/vm vm_object.c
John Baldwin
jhb at FreeBSD.org
Wed Sep 24 17:50:09 UTC 2008
jhb 2008-09-24 17:49:54 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_6)
sys/vm vm_object.c
Log:
SVN rev 183327 on 2008-09-24 17:49:54Z by jhb
MFC: 176526,176596
- Correct a long-standing error in vm_object_deallocate(). Specifically,
only anonymous default (OBJT_DEFAULT) and swap (OBJT_SWAP) objects should
ever have OBJ_ONEMAPPING set. However, vm_object_deallocate() was
setting it on device (OBJT_DEVICE) objects. As a result,
vm_object_page_remove() could be called on a device object and if that
occurred pmap_remove_all() would be called on the device object's pages.
However, a device object's pages are fictitious, and fictitious pages do
not have an initialized pv list (struct md_page).
- Correct a long-standing error in vm_object_page_remove(). Specifically,
pmap_remove_all() must not be called on fictitious pages. To date,
fictitious pages have been allocated from zeroed memory, effectively
hiding this problem because the fictitious pages appear to have an empty
pv list.
- Rewrite the comments describing vm_object_page_remove() to better
describe what it does. Add an assertion.
Approved by: re (kib), alc
Revision Changes Path
1.349.2.9 +25 -6 src/sys/vm/vm_object.c
More information about the cvs-src
mailing list