diff options
| author | Alan Cox <alc@FreeBSD.org> | 2008-05-11 20:33:47 +0000 |
|---|---|---|
| committer | Alan Cox <alc@FreeBSD.org> | 2008-05-11 20:33:47 +0000 |
| commit | ef4d480cedcf362c8b4dfd5934c15ae3836e65de (patch) | |
| tree | d6293ecdd385d3aeb6c72af7cb8b07fd19d3234b /sys | |
| parent | 1ff2ab846d9d95806652b76b83aac80ca2e2366a (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/amd64/amd64/pmap.c | 5 | ||||
| -rw-r--r-- | sys/i386/i386/pmap.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index dcd6b2a9028b..5af214f5fe43 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -4480,11 +4480,12 @@ pmap_align_superpage(vm_object_t object, vm_ooffset_t offset, { vm_offset_t superpage_offset; + if (size < NBPDR) + return; if (object != NULL && (object->flags & OBJ_COLORED) != 0) offset += ptoa(object->pg_color); superpage_offset = offset & PDRMASK; - if (size < superpage_offset || - size - superpage_offset < NBPDR || + if (size - ((NBPDR - superpage_offset) & PDRMASK) < NBPDR || (*addr & PDRMASK) == superpage_offset) return; if ((*addr & PDRMASK) < superpage_offset) diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 474fea5c0387..a68881026757 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -4608,11 +4608,12 @@ pmap_align_superpage(vm_object_t object, vm_ooffset_t offset, { vm_offset_t superpage_offset; + if (size < NBPDR) + return; if (object != NULL && (object->flags & OBJ_COLORED) != 0) offset += ptoa(object->pg_color); superpage_offset = offset & PDRMASK; - if (size < superpage_offset || - size - superpage_offset < NBPDR || + if (size - ((NBPDR - superpage_offset) & PDRMASK) < NBPDR || (*addr & PDRMASK) == superpage_offset) return; if ((*addr & PDRMASK) < superpage_offset) |
