diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/vm/phys_pager.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/vm/phys_pager.c b/sys/vm/phys_pager.c index d34672b..b3355c7 100644 --- a/sys/vm/phys_pager.c +++ b/sys/vm/phys_pager.c @@ -78,6 +78,7 @@ phys_pager_alloc(void *handle, vm_ooffset_t size, vm_prot_t prot, phys_pager_alloc_lock = -1; msleep(&phys_pager_alloc_lock, &vm_mtx, PVM, "swpalc", 0); } + phys_pager_alloc_lock = 1; /* * Look up pager, creating as necessary. @@ -102,7 +103,7 @@ phys_pager_alloc(void *handle, vm_ooffset_t size, vm_prot_t prot, if (OFF_TO_IDX(foff + size) > object->size) object->size = OFF_TO_IDX(foff + size); } - if (phys_pager_alloc_lock) + if (phys_pager_alloc_lock == -1) wakeup(&phys_pager_alloc_lock); phys_pager_alloc_lock = 0; |