summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_fault.c
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1998-08-06 08:33:19 +0000
committerdfr <dfr@FreeBSD.org>1998-08-06 08:33:19 +0000
commit0864bef6791e1818c64fa41c0eb3e69ffe0066d9 (patch)
tree7d9411f07b566d86fd0730872a748080ff8a6d8b /sys/vm/vm_fault.c
parent203de4af5d0b4c199f18b2451ea9b044b2c8a6b2 (diff)
downloadFreeBSD-src-0864bef6791e1818c64fa41c0eb3e69ffe0066d9.zip
FreeBSD-src-0864bef6791e1818c64fa41c0eb3e69ffe0066d9.tar.gz
Protect all modifications to paging_in_progress with splvm(). The i386
managed to avoid corruption of this variable by luck (the compiler used a memory read-modify-write instruction which wasn't interruptable) but other architectures cannot. With this change, I am now able to 'make buildworld' on the alpha (sfx: the crowd goes wild...)
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r--sys/vm/vm_fault.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 850dfdc..f074234 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -66,7 +66,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_fault.c,v 1.84 1998/07/11 12:07:52 bde Exp $
+ * $Id: vm_fault.c,v 1.85 1998/07/22 09:38:04 dg Exp $
*/
/*
@@ -241,7 +241,7 @@ RetryFault:;
* they will stay around as well.
*/
vm_object_reference(fs.first_object);
- fs.first_object->paging_in_progress++;
+ vm_object_pip_add(fs.first_object, 1);
fs.vp = vnode_pager_lock(fs.first_object);
if ((fault_type & VM_PROT_WRITE) &&
@@ -525,7 +525,7 @@ readrest:
vm_object_pip_wakeup(fs.object);
}
fs.object = next_object;
- fs.object->paging_in_progress++;
+ vm_object_pip_add(fs.object, 1);
}
}
OpenPOWER on IntegriCloud