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
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user