diff options
-rw-r--r-- | sys/vm/vm_fault.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 7d44af6..bd3b08f 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -1372,11 +1372,12 @@ vm_fault_prefault(const struct faultstate *fs, vm_offset_t addra, entry = fs->entry; - starta = addra - backward * PAGE_SIZE; - if (starta < entry->start) { + if (addra < backward * PAGE_SIZE) { starta = entry->start; - } else if (starta > addra) { - starta = 0; + } else { + starta = addra - backward * PAGE_SIZE; + if (starta < entry->start) + starta = entry->start; } /* |