mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 08:43:19 -04:00
On architectures with non-tree-based page tables like PowerPC, every page
in a range must be checked when calling pmap_remove(). Calling pmap_remove() from vm_pageout_map_deactivate_pages() with the entire range of the map could result in attempting to demap an extraordinary number of pages (> 10^15), so iterate through each map entry and unmap each of them individually. MFC after: 6 weeks
This commit is contained in:
parent
c14e163ad1
commit
42768fec0f
1 changed files with 5 additions and 2 deletions
|
|
@ -701,8 +701,11 @@ vm_pageout_map_deactivate_pages(map, desired)
|
|||
* table pages.
|
||||
*/
|
||||
if (desired == 0 && nothingwired) {
|
||||
pmap_remove(vm_map_pmap(map), vm_map_min(map),
|
||||
vm_map_max(map));
|
||||
tmpe = map->header.next;
|
||||
while (tmpe != &map->header) {
|
||||
pmap_remove(vm_map_pmap(map), tmpe->start, tmpe->end);
|
||||
tmpe = tmpe->next;
|
||||
}
|
||||
}
|
||||
vm_map_unlock(map);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue