Page MenuHomeFreeBSD

D14347.1775856224.diff
No OneTemporary

Size
702 B
Referenced Files
None
Subscribers
None

D14347.1775856224.diff

Index: sys/vm/vm_fault.c
===================================================================
--- sys/vm/vm_fault.c
+++ sys/vm/vm_fault.c
@@ -1135,6 +1135,10 @@
*/
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);
@@ -1219,6 +1223,12 @@
* write-enabled after all.
*/
prot &= retry_prot;
+ fault_type &= retry_prot;
+ if (prot == 0) {
+ release_page(&fs);
+ unlock_and_deallocate(&fs);
+ goto RetryFault;
+ }
}
}

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 10, 9:23 PM (4 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28319929
Default Alt Text
D14347.1775856224.diff (702 B)

Event Timeline