diff options
author | alc <alc@FreeBSD.org> | 2005-08-26 05:18:46 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2005-08-26 05:18:46 +0000 |
commit | 534105e83bf98da8edf41cd5bb9cec288c35ff15 (patch) | |
tree | b2395eb6da314e3a7c3b3768b51adf721c23009e /usr.bin | |
parent | d3e1bd8576000af810ceae701bc5812718ddf972 (diff) | |
download | FreeBSD-src-534105e83bf98da8edf41cd5bb9cec288c35ff15.zip FreeBSD-src-534105e83bf98da8edf41cd5bb9cec288c35ff15.tar.gz |
Remedy the following three problems:
1. The amd64 pmap, unlike the i386 pmap, maintains a reference count
for each page directory (PD) page. However, in the transformation
of the i386 pmap into the amd64 pmap, operations, such as
pmap_copy() and pmap_object_init_pt(), that create 2MB "superpage"
mappings by setting the PG_PS bit in a PD entry were not modified
to adjust the underlying PD page's reference count. Consequently,
superpage mappings could disappear prematurely.
2. pmap_object_init_pt() could crash or corrupt memory if either the
virtual address range being mapped crosses a 1GB boundary in the
virtual address space or nothing is mapped in the 1GB area.
3. When pmap_allocpte() destroys a 2MB "superpage" mapping it does not
reduce the pmap's resident count accordingly. It should. (This
bug is inherited from i386.)
Discussed with: peter
Reviewed by: tegge
Diffstat (limited to 'usr.bin')
0 files changed, 0 insertions, 0 deletions