map, &vm->vm_pmap, va, vadr, ftype, FALSE, rv, pc);
map, vm->vm_map.pmap, va, vadr, ftype, FALSE, rv, pc);
	dofault:	    {		register vm_offset_t va;		register struct vmspace *vm;		register vm_map_t map;		int rv;		vm = p->p_vmspace;		map = &vm->vm_map;		va = trunc_page((vm_offset_t)vadr);		rv = vm_fault(map, va, ftype, FALSE);#ifdef VMFAULT_TRACE		printf("vm_fault(%x (pmap %x), %x (%x), %x, %d) -> %x at pc %x\n",		       map, &vm->vm_pmap, va, vadr, ftype, FALSE, rv, pc);#endif		/*		 * If this was a stack access we keep track of the maximum		 * accessed stack size.  Also, if vm_fault gets a protection		 * failure it is due to accessing the stack region outside		 * the current limit and we need to reflect that as an access		 * error.		 */		if ((caddr_t)va >= vm->vm_maxsaddr) {			if (rv == KERN_SUCCESS) {				unsigned nss;				nss = clrnd(btoc(USRSTACK-(unsigned)va));				if (nss > vm->vm_ssize)					vm->vm_ssize = nss;			} else if (rv == KERN_PROTECTION_FAILURE)				rv = KERN_INVALID_ADDRESS;		}		if (rv == KERN_SUCCESS) {			if (!USERMODE(statusReg))				return (pc);			goto out;		}		if (!USERMODE(statusReg)) {			if ((i = ((struct pcb *)UADDR)->pcb_onfault) != 0) {				((struct pcb *)UADDR)->pcb_onfault = 0;				return (onfault_table[i]);			}			goto err;		}		ucode = ftype;		i = SIGSEGV;		typ = SEGV_MAPERR;		break;	    }