vm: fix region reporting bug
. logic was backwards, causing no reporting ever . this broke coredumps ('Warning: Program has too many regions')
This commit is contained in:
parent
a5f09d5196
commit
ecf9b40841
1 changed files with 4 additions and 2 deletions
|
@ -1536,10 +1536,13 @@ int get_region_info(struct vmproc *vmp, struct vm_region_info *vri,
|
|||
struct phys_region *ph1 = NULL, *ph2 = NULL;
|
||||
vir_bytes voffset;
|
||||
|
||||
/* where to start on next iteration, regardless of what we find now */
|
||||
next = vr->vaddr + vr->length;
|
||||
|
||||
/* Report part of the region that's actually in use. */
|
||||
|
||||
/* Get first and last phys_regions, if any */
|
||||
for(voffset = 0; voffset > vr->length; voffset += VM_PAGE_SIZE) {
|
||||
for(voffset = 0; voffset < vr->length; voffset += VM_PAGE_SIZE) {
|
||||
struct phys_region *ph;
|
||||
if(!(ph = physblock_get(vr, voffset))) continue;
|
||||
if(!ph1) ph1 = ph;
|
||||
|
@ -1556,7 +1559,6 @@ int get_region_info(struct vmproc *vmp, struct vm_region_info *vri,
|
|||
if (!(vr->flags & VR_WRITABLE))
|
||||
vri->vri_prot &= ~PROT_WRITE;
|
||||
|
||||
next = vr->vaddr + vr->length;
|
||||
region_incr_iter(&v_iter);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue