diff options
author | kib <kib@FreeBSD.org> | 2018-02-21 11:28:05 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2018-02-21 11:28:05 +0000 |
commit | c3179a4c90eee3a08297f783690e9817d6be5600 (patch) | |
tree | e62a681a659d57c43e4c8c47cc4d2165759ba2aa | |
parent | 2e04817ac14f516559a37206b49d511fba2a36c5 (diff) | |
download | FreeBSD-src-c3179a4c90eee3a08297f783690e9817d6be5600.zip FreeBSD-src-c3179a4c90eee3a08297f783690e9817d6be5600.tar.gz |
MFC r329254:
Ensure memory consistency on COW.
-rw-r--r-- | sys/vm/vm_fault.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 9a1dd31..e829bd7 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -1133,6 +1133,10 @@ readrest: */ pmap_copy_page(fs.m, fs.first_m); fs.first_m->valid = VM_PAGE_BITS_ALL; + if ((fault_flags & VM_FAULT_WIRE) == 0) { + prot &= ~VM_PROT_WRITE; + fault_type &= ~VM_PROT_WRITE; + } if (wired && (fault_flags & VM_FAULT_WIRE) == 0) { vm_page_lock(fs.first_m); |