diff options
author | arr <arr@FreeBSD.org> | 2002-06-27 06:34:03 +0000 |
---|---|---|
committer | arr <arr@FreeBSD.org> | 2002-06-27 06:34:03 +0000 |
commit | 479ff2a2a0461dc56fe114d6525376c96617cf1b (patch) | |
tree | 6507139e3b532f4c7b00434c8034480a1f0c6ae2 /sys | |
parent | 9d6ea37a8c07017a9c7d29a675fcdacc3bce608b (diff) | |
download | FreeBSD-src-479ff2a2a0461dc56fe114d6525376c96617cf1b.zip FreeBSD-src-479ff2a2a0461dc56fe114d6525376c96617cf1b.tar.gz |
Fix for the problem stated below by Tor Egge:
(from: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=832566+0+ \
current/freebsd-current)
"Too many pages were prefaulted in pmap_object_init_pt, thus
the wrong physical page was entered in the pmap for the virtual
address where the .dynamic section was supposed to be."
Submitted by: tegge
Approved by: tegge's patches never fail
Diffstat (limited to 'sys')
-rw-r--r-- | sys/amd64/amd64/pmap.c | 2 | ||||
-rw-r--r-- | sys/i386/i386/pmap.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 9f380d6..e2cebaf 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2493,7 +2493,7 @@ retry: ((objpgs > 0) && (p != NULL)); p = TAILQ_NEXT(p, listq)) { - if (p->pindex < pindex || p->pindex - pindex > psize) { + if (p->pindex < pindex || p->pindex - pindex >= psize) { continue; } tmpidx = p->pindex - pindex; diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 9f380d6..e2cebaf 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -2493,7 +2493,7 @@ retry: ((objpgs > 0) && (p != NULL)); p = TAILQ_NEXT(p, listq)) { - if (p->pindex < pindex || p->pindex - pindex > psize) { + if (p->pindex < pindex || p->pindex - pindex >= psize) { continue; } tmpidx = p->pindex - pindex; |