UnmapPages(), UnmapArea(): Fixed incorrect check. All actually mapped pages
would be skipped. Concerned non-x86 only, as for x86 the methods are overridden. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37031 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -47,7 +47,7 @@ VMTranslationMap::UnmapPages(VMArea* area, addr_t base, size_t size,
|
|||||||
phys_addr_t physicalAddress;
|
phys_addr_t physicalAddress;
|
||||||
uint32 flags;
|
uint32 flags;
|
||||||
if (Query(address, &physicalAddress, &flags) == B_OK
|
if (Query(address, &physicalAddress, &flags) == B_OK
|
||||||
&& (flags & PAGE_PRESENT) == 0) {
|
&& (flags & PAGE_PRESENT) != 0) {
|
||||||
vm_page* page = vm_lookup_page(physicalAddress / B_PAGE_SIZE);
|
vm_page* page = vm_lookup_page(physicalAddress / B_PAGE_SIZE);
|
||||||
if (page != NULL) {
|
if (page != NULL) {
|
||||||
DEBUG_PAGE_ACCESS_START(page);
|
DEBUG_PAGE_ACCESS_START(page);
|
||||||
@@ -88,7 +88,7 @@ VMTranslationMap::UnmapArea(VMArea* area, bool deletingAddressSpace,
|
|||||||
phys_addr_t physicalAddress;
|
phys_addr_t physicalAddress;
|
||||||
uint32 flags;
|
uint32 flags;
|
||||||
if (Query(address, &physicalAddress, &flags) == B_OK
|
if (Query(address, &physicalAddress, &flags) == B_OK
|
||||||
&& (flags & PAGE_PRESENT) == 0) {
|
&& (flags & PAGE_PRESENT) != 0) {
|
||||||
vm_page* page = vm_lookup_page(physicalAddress / B_PAGE_SIZE);
|
vm_page* page = vm_lookup_page(physicalAddress / B_PAGE_SIZE);
|
||||||
if (page != NULL) {
|
if (page != NULL) {
|
||||||
DEBUG_PAGE_ACCESS_START(page);
|
DEBUG_PAGE_ACCESS_START(page);
|
||||||
|
|||||||
Reference in New Issue
Block a user