summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2012-03-27 01:26:00 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2012-03-27 01:26:00 +0000
commit78cf971b20065b4a5a59338c546670616a46f26f (patch)
treeab83f7837208e3b2d023346ae5ff626cb75b5f4a /sys/powerpc/aim
parent3bbb70297a6689f73dbb71ef4cd588d142737626 (diff)
downloadFreeBSD-src-78cf971b20065b4a5a59338c546670616a46f26f.zip
FreeBSD-src-78cf971b20065b4a5a59338c546670616a46f26f.tar.gz
Make sure to call vm_page_dirty() before the pmap lock is released to
prevent a race where another process could conclude the page was clean. Submitted by: alc
Diffstat (limited to 'sys/powerpc/aim')
-rw-r--r--sys/powerpc/aim/mmu_oea64.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/powerpc/aim/mmu_oea64.c b/sys/powerpc/aim/mmu_oea64.c
index dd79415..794f891 100644
--- a/sys/powerpc/aim/mmu_oea64.c
+++ b/sys/powerpc/aim/mmu_oea64.c
@@ -1582,11 +1582,11 @@ moea64_remove_write(mmu_t mmu, vm_page_t m)
isync();
}
}
+ if ((lo & LPTE_CHG) != 0)
+ vm_page_dirty(m);
PMAP_UNLOCK(pmap);
}
UNLOCK_TABLE_RD();
- if ((lo & LPTE_CHG) != 0)
- vm_page_dirty(m);
vm_page_aflag_clear(m, PGA_WRITEABLE);
}
OpenPOWER on IntegriCloud