Date: Sat, 10 Apr 2010 02:11:01 +0000 (UTC) From: Juli Mallett <jmallett@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r206439 - in user/jmallett/octeon/sys: conf mips/include mips/mips Message-ID: <201004100211.o3A2B1ZQ039025@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jmallett Date: Sat Apr 10 02:11:00 2010 New Revision: 206439 URL: http://svn.freebsd.org/changeset/base/206439 Log: o) Destroy pmap locks correctly. o) Remove another unused file. o) Adjust freebsd32 sysvec to be more correct. o) Define the top of the user stack as being a page below the max user address. Because of problems related to USRSTACK (by way of PS_STRINGS) being compiled into binaries, page sizes will probably be going back to 4k in this branch in the near future, meaning this macro will return to its original value. o) Use PTR_S for what's really a SIZE_T_S instead of sw. o) Correct segtab shifting in trap. XXX trap really shouldn't be doing this by hand. Deleted: user/jmallett/octeon/sys/mips/mips/copystr.S Modified: user/jmallett/octeon/sys/conf/files.mips user/jmallett/octeon/sys/mips/include/vmparam.h user/jmallett/octeon/sys/mips/mips/freebsd32_machdep.c user/jmallett/octeon/sys/mips/mips/pmap.c user/jmallett/octeon/sys/mips/mips/support.S user/jmallett/octeon/sys/mips/mips/trap.c Modified: user/jmallett/octeon/sys/conf/files.mips ============================================================================== --- user/jmallett/octeon/sys/conf/files.mips Sat Apr 10 01:49:40 2010 (r206438) +++ user/jmallett/octeon/sys/conf/files.mips Sat Apr 10 02:11:00 2010 (r206439) @@ -50,7 +50,6 @@ mips/mips/bus_space_generic.c standard mips/mips/busdma_machdep.c standard mips/mips/cache.c standard mips/mips/cache_mipsNN.c standard -#mips/mips/copystr.S standard mips/mips/db_disasm.c optional ddb mips/mips/db_interface.c optional ddb mips/mips/db_trace.c optional ddb Modified: user/jmallett/octeon/sys/mips/include/vmparam.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/vmparam.h Sat Apr 10 01:49:40 2010 (r206438) +++ user/jmallett/octeon/sys/mips/include/vmparam.h Sat Apr 10 02:11:00 2010 (r206439) @@ -60,9 +60,9 @@ * and some QED CPUs perform some virtual address checks before the * offset is calculated. */ -#define USRSTACK 0x7fffe000 /* Start of user stack */ +#define USRSTACK (VM_MAXUSER_ADDRESS - PAGE_SIZE) /* Start of user stack */ #if defined(COMPAT_FREEBSD32) -#define FREEBSD32_USRSTACK USRSTACK +#define FREEBSD32_USRSTACK (0x80000000 - PAGE_SIZE) #endif /* Modified: user/jmallett/octeon/sys/mips/mips/freebsd32_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/freebsd32_machdep.c Sat Apr 10 01:49:40 2010 (r206438) +++ user/jmallett/octeon/sys/mips/mips/freebsd32_machdep.c Sat Apr 10 02:11:00 2010 (r206439) @@ -61,7 +61,7 @@ __FBSDID("$FreeBSD: user/jmallett/octeon */ struct sysentvec elf32_freebsd_sysvec = { .sv_size = SYS_MAXSYSCALL, - .sv_table = sysent, + .sv_table = freebsd32_sysent, .sv_mask = 0, .sv_sigsize = 0, .sv_sigtbl = NULL, @@ -79,11 +79,11 @@ struct sysentvec elf32_freebsd_sysvec = .sv_minsigstksz = MINSIGSTKSZ, .sv_pagesize = PAGE_SIZE, .sv_minuser = VM_MIN_ADDRESS, - .sv_maxuser = VM_MAXUSER_ADDRESS, + .sv_maxuser = (vm_offset_t)0x80000000, .sv_usrstack = FREEBSD32_USRSTACK, - .sv_psstrings = PS_STRINGS, + .sv_psstrings = FREEBSD32_USRSTACK - sizeof(struct ps_strings), .sv_stackprot = VM_PROT_ALL, - .sv_copyout_strings = exec_copyout_strings, + .sv_copyout_strings = freebsd32_copyout_strings, .sv_setregs = exec_setregs, .sv_fixlimit = NULL, .sv_maxssiz = NULL, Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Sat Apr 10 01:49:40 2010 (r206438) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Sat Apr 10 02:11:00 2010 (r206439) @@ -1263,6 +1263,7 @@ pmap_release(pmap_t pmap) ptdpg->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free_zero(ptdpg); + PMAP_LOCK_DESTROY(pmap); } /* Modified: user/jmallett/octeon/sys/mips/mips/support.S ============================================================================== --- user/jmallett/octeon/sys/mips/mips/support.S Sat Apr 10 01:49:40 2010 (r206438) +++ user/jmallett/octeon/sys/mips/mips/support.S Sat Apr 10 02:11:00 2010 (r206439) @@ -159,7 +159,7 @@ LEAF(copystr) 2: beq a3, zero, 3f # return num. of copied bytes PTR_SUBU a2, t0, a2 # if the 4th arg was non-NULL - sw a2, 0(a3) + PTR_S a2, 0(a3) 3: j ra # v0 is 0 or ENAMETOOLONG nop Modified: user/jmallett/octeon/sys/mips/mips/trap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/trap.c Sat Apr 10 01:49:40 2010 (r206438) +++ user/jmallett/octeon/sys/mips/mips/trap.c Sat Apr 10 02:11:00 2010 (r206439) @@ -1304,7 +1304,7 @@ get_mapping_info(vm_offset_t va, pd_entr pd_entry_t *pdep; struct proc *p = curproc; - pdep = (&(p->p_vmspace->vm_pmap.pm_segtab[(uint32_t)va >> SEGSHIFT])); + pdep = (&(p->p_vmspace->vm_pmap.pm_segtab[(va >> SEGSHIFT) & (NPDEPG - 1)])); if (*pdep) ptep = pmap_pte(&p->p_vmspace->vm_pmap, va); else
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004100211.o3A2B1ZQ039025>