In pmap_copy(), when the copied region is mapped with superpage but does
not cover entire superpage, avoid copying. Doing partial copy would require demotion, which is incompatible with the already held locks. Reported by: cperciva Reviewed by: alc Sponsored by: The FreeBSD Foundation MFC after: 1 week Approved by: re (delphij)
This commit is contained in:
parent
9feec372db
commit
70b9173019
@ -4356,6 +4356,8 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len,
|
||||
continue;
|
||||
|
||||
if (srcptepaddr & PG_PS) {
|
||||
if ((addr & PDRMASK) != 0 || addr + NBPDR > end_addr)
|
||||
continue;
|
||||
dstmpde = pmap_allocpde(dst_pmap, addr, NULL);
|
||||
if (dstmpde == NULL)
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user