diff options
author | Andrew Thompson <thompsa@FreeBSD.org> | 2009-06-18 20:42:37 +0000 |
---|---|---|
committer | Andrew Thompson <thompsa@FreeBSD.org> | 2009-06-18 20:42:37 +0000 |
commit | f06a3a36acaaf0eed2c9c9ae46ea8ae8b1b2b8f0 (patch) | |
tree | fcb8769e53ae7f9a45ff483fe9ee1aa93674e156 /sys/vm/vm_phys.c | |
parent | c45c00344f46bea16a17804f66bab64afec6752c (diff) | |
download | src-f06a3a36acaaf0eed2c9c9ae46ea8ae8b1b2b8f0.tar.gz src-f06a3a36acaaf0eed2c9c9ae46ea8ae8b1b2b8f0.zip |
Track the kernel mapping of a physical page by a new entry in vm_page
structure. When the page is shared, the kernel mapping becomes a special
type of managed page to force the cache off the page mappings. This is
needed to avoid stale entries on all ARM VIVT caches, and VIPT caches
with cache color issue.
Submitted by: Mark Tinguely
Reviewed by: alc
Tested by: Grzegorz Bernacki, thompsa
Notes
Notes:
svn path=/head/; revision=194459
Diffstat (limited to 'sys/vm/vm_phys.c')
-rw-r--r-- | sys/vm/vm_phys.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/vm/vm_phys.c b/sys/vm/vm_phys.c index 9c140a59c433..b6d1cb3e1e49 100644 --- a/sys/vm/vm_phys.c +++ b/sys/vm/vm_phys.c @@ -382,8 +382,7 @@ vm_phys_paddr_to_vm_page(vm_paddr_t pa) if (pa >= seg->start && pa < seg->end) return (&seg->first_page[atop(pa - seg->start)]); } - panic("vm_phys_paddr_to_vm_page: paddr %#jx is not in any segment", - (uintmax_t)pa); + return (NULL); } /* |