From owner-p4-projects@FreeBSD.ORG Fri Jul 10 03:56:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9893D106567C; Fri, 10 Jul 2009 03:56:17 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4A49A1065674 for ; Fri, 10 Jul 2009 03:56:17 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 36D1B8FC12 for ; Fri, 10 Jul 2009 03:56:17 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6A3uHhb046418 for ; Fri, 10 Jul 2009 03:56:17 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6A3uH1I046416 for perforce@freebsd.org; Fri, 10 Jul 2009 03:56:17 GMT (envelope-from scottl@freebsd.org) Date: Fri, 10 Jul 2009 03:56:17 GMT Message-Id: <200907100356.n6A3uH1I046416@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 165895 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jul 2009 03:56:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=165895 Change 165895 by scottl@scottl-y1 on 2009/07/10 03:55:29 IFC Affected files ... .. //depot/projects/scottl-camlock/src/bin/ps/ps.1#3 integrate .. //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/head/thread.h#2 integrate .. //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#2 integrate .. //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#2 integrate .. //depot/projects/scottl-camlock/src/include/unistd.h#4 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/Makefile.inc#5 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/Symbol.map#7 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/pathconf.2#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/pcm.4#7 integrate .. //depot/projects/scottl-camlock/src/share/man/man5/procfs.5#2 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/cpu_switch.S#11 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/exception.S#10 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/genassym.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/machdep.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/sys_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/vm_machdep.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/ia32/ia32_exception.S#5 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/ia32/ia32_reg.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/ia32/ia32_signal.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/pcb.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/linux32/linux32_sysvec.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/bsm/audit_kevents.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_proto.h#22 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscall.h#22 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscalls.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_sysent.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/syscalls.master#24 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_stat.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/cxgb_sge.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/drm_pciids.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/r600_cp.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/radeon_drv.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder_rate.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/xl/if_xl.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfs/nfs_var.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clrpcops.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clstate.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/i386/ibcs2/ibcs2_misc.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/kern/init_sysent.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_exit.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_prot.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/syscalls.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/syscalls.master#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/systrace_args.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/kern/tty.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/tty_pts.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_syscalls.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_ageq.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/sys/namei.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/sys/syscall.h#19 integrate .. //depot/projects/scottl-camlock/src/sys/sys/syscall.mk#19 integrate .. //depot/projects/scottl-camlock/src/sys/sys/syscallsubr.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/sys/sysproto.h#19 integrate .. //depot/projects/scottl-camlock/src/tools/regression/usr.bin/jot/regress.dddd.out#1 branch .. //depot/projects/scottl-camlock/src/tools/regression/usr.bin/jot/regress.sh#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/fstat/fstat.1#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/jot/jot.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/netstat/netstat.1#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/sockstat/sockstat.1#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/jail/jail.8#6 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/jls/jls.8#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/jls/jls.c#6 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/dispatch.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/install.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/menus.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/sysinstall.h#5 integrate Differences ... ==== //depot/projects/scottl-camlock/src/bin/ps/ps.1#3 (text+ko) ==== @@ -27,9 +27,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 -.\" $FreeBSD: src/bin/ps/ps.1,v 1.91 2009/05/17 04:00:43 brian Exp $ +.\" $FreeBSD: src/bin/ps/ps.1,v 1.92 2009/07/09 16:40:00 trasz Exp $ .\" -.Dd May 16, 2009 +.Dd July 9, 2009 .Dt PS 1 .Os .Sh NAME @@ -637,6 +637,7 @@ .Xr kill 1 , .Xr pgrep 1 , .Xr pkill 1 , +.Xr procstat 1 , .Xr w 1 , .Xr kvm 3 , .Xr strftime 3 , ==== //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/head/thread.h#2 (text+ko) ==== @@ -53,7 +53,6 @@ #define mutex_lock(l) pthread_mutex_lock(l) #define mutex_trylock(l) pthread_mutex_trylock(l) #define mutex_unlock(l) pthread_mutex_unlock(l) -#define mutex_owned(l) pthread_mutex_isowned_np(l) #define rwlock_init(l,f,a) pthread_rwlock_init(l,NULL) #define rwlock_destroy(l) pthread_rwlock_destroy(l) #define rw_rdlock(l) pthread_rwlock_rdlock(l) ==== //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#2 (text+ko) ==== @@ -115,6 +115,14 @@ mp->initialized = B_FALSE; } +int +zmutex_owned(kmutex_t *mp) +{ + ASSERT(mp->initialized == B_TRUE); + + return (mp->m_owner == curthread); +} + void mutex_enter(kmutex_t *mp) { ==== //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#2 (text+ko) ==== @@ -237,9 +237,11 @@ #define mutex_init(mp, b, c, d) zmutex_init((kmutex_t *)(mp)) #define mutex_destroy(mp) zmutex_destroy((kmutex_t *)(mp)) +#define mutex_owned(mp) zmutex_owned((kmutex_t *)(mp)) extern void zmutex_init(kmutex_t *mp); extern void zmutex_destroy(kmutex_t *mp); +extern int zmutex_owned(kmutex_t *mp); extern void mutex_enter(kmutex_t *mp); extern void mutex_exit(kmutex_t *mp); extern int mutex_tryenter(kmutex_t *mp); ==== //depot/projects/scottl-camlock/src/include/unistd.h#4 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)unistd.h 8.12 (Berkeley) 4/27/95 - * $FreeBSD: src/include/unistd.h,v 1.94 2009/06/15 20:38:55 jhb Exp $ + * $FreeBSD: src/include/unistd.h,v 1.95 2009/07/08 15:23:18 trasz Exp $ */ #ifndef _UNISTD_H_ @@ -513,6 +513,7 @@ int iruserok(unsigned long, int, const char *, const char *); int iruserok_sa(const void *, int, int, const char *, const char *); int issetugid(void); +long lpathconf(const char *, int); #ifndef _MKDTEMP_DECLARED char *mkdtemp(char *); #define _MKDTEMP_DECLARED ==== //depot/projects/scottl-camlock/src/lib/libc/sys/Makefile.inc#5 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.3 (Berkeley) 10/24/94 -# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.140 2009/06/24 21:10:52 jhb Exp $ +# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.141 2009/07/08 15:23:18 trasz Exp $ # sys sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/sys ${.CURDIR}/sys @@ -159,6 +159,7 @@ MLINKS+=ntp_adjtime.2 ntp_gettime.2 MLINKS+=open.2 openat.2 MLINKS+=pathconf.2 fpathconf.2 +MLINKS+=pathconf.2 lpathconf.2 MLINKS+=read.2 pread.2 read.2 preadv.2 read.2 readv.2 MLINKS+=readlink.2 readlinkat.2 MLINKS+=recv.2 recvfrom.2 recv.2 recvmsg.2 ==== //depot/projects/scottl-camlock/src/lib/libc/sys/Symbol.map#7 (text) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/lib/libc/sys/Symbol.map,v 1.26 2009/06/29 01:33:59 kan Exp $ + * $FreeBSD: src/lib/libc/sys/Symbol.map,v 1.27 2009/07/08 15:23:18 trasz Exp $ */ /* @@ -346,6 +346,7 @@ jail_set; jail_remove; linkat; + lpathconf; mkdirat; mkfifoat; mknodat; ==== //depot/projects/scottl-camlock/src/lib/libc/sys/pathconf.2#4 (text+ko) ==== @@ -26,13 +26,14 @@ .\" SUCH DAMAGE. .\" .\" @(#)pathconf.2 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/sys/pathconf.2,v 1.23 2009/06/25 12:53:50 trasz Exp $ +.\" $FreeBSD: src/lib/libc/sys/pathconf.2,v 1.24 2009/07/08 15:23:18 trasz Exp $ .\" -.Dd June 25, 2009 +.Dd July 7, 2009 .Dt PATHCONF 2 .Os .Sh NAME .Nm pathconf , +.Nm lpathconf , .Nm fpathconf .Nd get configurable pathname variables .Sh LIBRARY @@ -42,10 +43,13 @@ .Ft long .Fn pathconf "const char *path" "int name" .Ft long +.Fn lpathconf "const char *path" "int name" +.Ft long .Fn fpathconf "int fd" "int name" .Sh DESCRIPTION The -.Fn pathconf +.Fn pathconf , +.Fn lpathconf and .Fn fpathconf system calls provide a method for applications to determine the current @@ -53,7 +57,9 @@ with a pathname or file descriptor. .Pp For -.Fn pathconf , +.Fn pathconf +and +.Fn lpathconf , the .Fa path argument is the name of a file or directory. @@ -68,6 +74,18 @@ Symbolic constants for each name value are found in the include file .Li . .Pp +The +.Fn lpathconf +system call is like +.Fn pathconf +except in the case where the named file is a symbolic link, +in which case +.Fn lpathconf +returns information about the link, +while +.Fn pathconf +returns information about the file the link references. +.Pp The available values are as follows: .Pp .Bl -tag -width 6n @@ -239,3 +257,7 @@ .Fn fpathconf system calls first appeared in .Bx 4.4 . +The +.Fn lpathconf +system call first appeared in +.Fx 8.0 . ==== //depot/projects/scottl-camlock/src/share/man/man4/pcm.4#7 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/pcm.4,v 1.58 2009/07/07 13:58:47 joel Exp $ +.\" $FreeBSD: src/share/man/man4/pcm.4,v 1.59 2009/07/09 16:59:29 joel Exp $ .\" -.Dd July 7, 2009 +.Dd July 9, 2009 .Dt SOUND 4 .Os .Sh NAME @@ -210,10 +210,22 @@ are device specific. .Bl -tag -width indent .It Va hw.snd.compat_linux_mmap -Enable to allow PROT_EXEC page mappings. -All Linux applications using sound and +Linux +.Xr mmap 2 +compability. +The following values are supported (default is 0): +.Bl -tag -width 2n +.It -1 +Force disabling/denying PROT_EXEC +.Xr mmap 2 +requests. +.It 0 +Auto detect proc/ABI type, allow .Xr mmap 2 -require this. +for Linux applications, and deny for everything else. +.It 1 +Always allow PROT_EXEC page mappings. +.El .It Va hw.snd.default_auto Enable to automatically assign default sound unit to the most recent attached device. @@ -240,6 +252,8 @@ .It Va hw.snd.feeder_rate_polyphase_max Adjust to set the maximum number of allowed polyphase entries during the process of building resampling filters. +Disabling polyphase resampling has the benefit of reducing memory usage, at +the expense of slower and lower quality conversion. Only applicable when the SINC interpolator is used. Default value is 183040. Set to 0 to disable polyphase resampling. ==== //depot/projects/scottl-camlock/src/share/man/man5/procfs.5#2 (text+ko) ==== @@ -1,8 +1,8 @@ -.\" $FreeBSD: src/share/man/man5/procfs.5,v 1.33 2006/05/19 00:23:29 rodrigc Exp $ +.\" $FreeBSD: src/share/man/man5/procfs.5,v 1.34 2009/07/09 16:40:00 trasz Exp $ .\" Written by Garrett Wollman .\" This file is in the public domain. .\" -.Dd September 3, 2004 +.Dd July 9, 2009 .Dt PROCFS 5 .Os .Sh NAME @@ -252,6 +252,7 @@ .Pp .Dl "mount -t procfs proc /proc" .Sh SEE ALSO +.Xr procstat 1 , .Xr mount 2 , .Xr sigaction 2 , .Xr unmount 2 , ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/cpu_switch.S#11 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.168 2009/04/01 13:09:26 kib Exp $ + * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.169 2009/07/09 09:34:11 kib Exp $ */ #include @@ -97,6 +97,7 @@ ENTRY(cpu_switch) /* Switch to new thread. First, save context. */ movq TD_PCB(%rdi),%r8 + movb $1,PCB_FULL_IRET(%r8) movq (%rsp),%rax /* Hardware registers */ movq %r15,PCB_R15(%r8) ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/exception.S#10 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.138 2009/04/01 13:09:26 kib Exp $ + * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.139 2009/07/09 09:34:11 kib Exp $ */ #include "opt_atpic.h" @@ -162,19 +162,20 @@ .globl alltraps .type alltraps,@function alltraps: + movq %rdi,TF_RDI(%rsp) testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */ jz alltraps_testi /* already running with kernel GS.base */ swapgs + movq PCPU(CURPCB),%rdi + movb $0,PCB_FULL_IRET(%rdi) movw %fs,TF_FS(%rsp) movw %gs,TF_GS(%rsp) movw %es,TF_ES(%rsp) movw %ds,TF_DS(%rsp) alltraps_testi: testl $PSL_I,TF_RFLAGS(%rsp) - jz alltraps_pushregs + jz alltraps_pushregs_no_rdi sti -alltraps_pushregs: - movq %rdi,TF_RDI(%rsp) alltraps_pushregs_no_rdi: movq %rsi,TF_RSI(%rsp) movq %rdx,TF_RDX(%rsp) @@ -233,14 +234,17 @@ .globl alltraps_noen .type alltraps_noen,@function alltraps_noen: + movq %rdi,TF_RDI(%rsp) testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */ jz 1f /* already running with kernel GS.base */ swapgs + movq PCPU(CURPCB),%rdi + movb $0,PCB_FULL_IRET(%rdi) 1: movw %fs,TF_FS(%rsp) movw %gs,TF_GS(%rsp) movw %es,TF_ES(%rsp) movw %ds,TF_DS(%rsp) - jmp alltraps_pushregs + jmp alltraps_pushregs_no_rdi IDTVEC(dblfault) subq $TF_ERR,%rsp @@ -278,12 +282,13 @@ IDTVEC(page) subq $TF_ERR,%rsp movl $T_PAGEFLT,TF_TRAPNO(%rsp) + movq %rdi,TF_RDI(%rsp) /* free up a GP register */ testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */ jz 1f /* already running with kernel GS.base */ swapgs -1: - movq %rdi,TF_RDI(%rsp) /* free up a GP register */ - movq %cr2,%rdi /* preserve %cr2 before .. */ + movq PCPU(CURPCB),%rdi + movb $0,PCB_FULL_IRET(%rdi) +1: movq %cr2,%rdi /* preserve %cr2 before .. */ movq %rdi,TF_ADDR(%rsp) /* enabling interrupts. */ movw %fs,TF_FS(%rsp) movw %gs,TF_GS(%rsp) @@ -311,7 +316,9 @@ testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */ jz 2f /* already running with kernel GS.base */ 1: swapgs -2: movw %fs,TF_FS(%rsp) +2: movq PCPU(CURPCB),%rdi + movb $1,PCB_FULL_IRET(%rdi) /* always full iret from GPF */ + movw %fs,TF_FS(%rsp) movw %gs,TF_GS(%rsp) movw %es,TF_ES(%rsp) movw %ds,TF_DS(%rsp) @@ -341,6 +348,8 @@ movw %gs,TF_GS(%rsp) movw %es,TF_ES(%rsp) movw %ds,TF_DS(%rsp) + movq PCPU(CURPCB),%r11 + movb $0,PCB_FULL_IRET(%r11) sti movq $KUDSEL,TF_SS(%rsp) movq $KUCSEL,TF_CS(%rsp) @@ -644,7 +653,8 @@ */ testb $SEL_RPL_MASK,TF_CS(%rsp) jz ld_regs - + cmpb $0,PCB_FULL_IRET(%r8) + je ld_regs testl $TF_HASSEGS,TF_FLAGS(%rsp) je set_segs ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/genassym.c#13 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.176 2009/07/01 07:34:28 dfr Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.177 2009/07/09 09:34:11 kib Exp $"); #include "opt_compat.h" #include "opt_hwpmc_hooks.h" @@ -141,6 +141,7 @@ ASSYM(PCB_DR6, offsetof(struct pcb, pcb_dr6)); ASSYM(PCB_DR7, offsetof(struct pcb, pcb_dr7)); ASSYM(PCB_TSSP, offsetof(struct pcb, pcb_tssp)); +ASSYM(PCB_FULL_IRET, offsetof(struct pcb, pcb_full_iret)); ASSYM(PCB_DBREGS, PCB_DBREGS); ASSYM(PCB_32BIT, PCB_32BIT); ASSYM(PCB_GS32BIT, PCB_GS32BIT); ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/machdep.c#24 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.704 2009/07/06 18:10:27 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.705 2009/07/09 09:34:11 kib Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -382,6 +382,7 @@ regs->tf_fs = _ufssel; regs->tf_gs = _ugssel; regs->tf_flags = TF_HASSEGS; + td->td_pcb->pcb_full_iret = 1; PROC_LOCK(p); mtx_lock(&psp->ps_mtx); } @@ -483,6 +484,7 @@ signotify(td); PROC_UNLOCK(p); td->td_pcb->pcb_flags |= PCB_FULLCTX; + td->td_pcb->pcb_full_iret = 1; return (EJUSTRETURN); } @@ -853,6 +855,7 @@ pcb->pcb_gsbase = 0; pcb->pcb_flags &= ~(PCB_32BIT | PCB_GS32BIT); pcb->pcb_initial_fpucw = __INITIAL_FPUCW__; + pcb->pcb_full_iret = 1; bzero((char *)regs, sizeof(struct trapframe)); regs->tf_rip = entry; @@ -2031,6 +2034,7 @@ td->td_pcb->pcb_gsbase = mcp->mc_gsbase; } td->td_pcb->pcb_flags |= PCB_FULLCTX; + td->td_pcb->pcb_full_iret = 1; return (0); } ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/sys_machdep.c#6 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.93 2009/06/27 15:03:50 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.94 2009/07/09 09:34:11 kib Exp $"); #include #include @@ -103,6 +103,7 @@ error = amd64_get_ldt(td, largs); break; case I386_SET_LDT: + td->td_pcb->pcb_full_iret = 1; if (largs->descs != NULL) { lp = (struct user_segment_descriptor *) kmem_alloc(kernel_map, largs->num * @@ -132,6 +133,7 @@ if (td != curthread) return; + td->td_pcb->pcb_full_iret = 1; critical_enter(); sd = PCPU_GET(gs32p); sd->sd_lobase = base & 0xffffff; @@ -146,6 +148,7 @@ if (td != curthread) return; + td->td_pcb->pcb_full_iret = 1; critical_enter(); sd = PCPU_GET(fs32p); sd->sd_lobase = base & 0xffffff; @@ -201,6 +204,7 @@ if (!error) { pcb->pcb_fsbase = i386base; td->td_frame->tf_fs = _ufssel; + pcb->pcb_full_iret = 1; update_gdt_fsbase(td, i386base); } break; @@ -212,6 +216,7 @@ error = copyin(uap->parms, &i386base, sizeof(i386base)); if (!error) { pcb->pcb_gsbase = i386base; + pcb->pcb_full_iret = 1; td->td_frame->tf_gs = _ugssel; update_gdt_gsbase(td, i386base); } @@ -225,6 +230,7 @@ if (!error) { if (a64base < VM_MAXUSER_ADDRESS) { pcb->pcb_fsbase = a64base; + pcb->pcb_full_iret = 1; td->td_frame->tf_fs = _ufssel; } else error = EINVAL; @@ -240,6 +246,7 @@ if (!error) { if (a64base < VM_MAXUSER_ADDRESS) { pcb->pcb_gsbase = a64base; + pcb->pcb_full_iret = 1; td->td_frame->tf_gs = _ugssel; } else error = EINVAL; @@ -525,6 +532,7 @@ uap->start, uap->num, (void *)uap->descs); #endif + td->td_pcb->pcb_full_iret = 1; p = td->td_proc; if (descs == NULL) { /* Free descriptors */ ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/vm_machdep.c#13 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.263 2009/04/01 13:09:26 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.264 2009/07/09 09:34:11 kib Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -186,6 +186,9 @@ /* As an i386, do not copy io permission bitmap. */ pcb2->pcb_tssp = NULL; + /* New segment registers. */ + pcb2->pcb_full_iret = 1; + /* Copy the LDT, if necessary. */ mdp1 = &td1->td_proc->p_md; mdp2 = &p2->p_md; @@ -336,6 +339,7 @@ */ bcopy(td0->td_pcb, pcb2, sizeof(*pcb2)); pcb2->pcb_flags &= ~PCB_FPUINITDONE; + pcb2->pcb_full_iret = 1; /* * Create a new fresh stack for the new thread. @@ -450,6 +454,7 @@ } #endif td->td_pcb->pcb_fsbase = (register_t)tls_base; + td->td_pcb->pcb_full_iret = 1; return (0); } ==== //depot/projects/scottl-camlock/src/sys/amd64/ia32/ia32_exception.S#5 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/ia32/ia32_exception.S,v 1.6 2009/04/01 13:09:26 kib Exp $ + * $FreeBSD: src/sys/amd64/ia32/ia32_exception.S,v 1.7 2009/07/09 09:34:11 kib Exp $ */ #include @@ -42,10 +42,16 @@ SUPERALIGN_TEXT IDTVEC(int0x80_syscall) swapgs - sti pushq $2 /* sizeof "int 0x80" */ subq $TF_ERR,%rsp /* skip over tf_trapno */ movq %rdi,TF_RDI(%rsp) + movq PCPU(CURPCB),%rdi + movb $0,PCB_FULL_IRET(%rdi) + movw %fs,TF_FS(%rsp) + movw %gs,TF_GS(%rsp) + movw %es,TF_ES(%rsp) + movw %ds,TF_DS(%rsp) + sti movq %rsi,TF_RSI(%rsp) movq %rdx,TF_RDX(%rsp) movq %rcx,TF_RCX(%rsp) @@ -60,10 +66,6 @@ movq %r13,TF_R13(%rsp) movq %r14,TF_R14(%rsp) movq %r15,TF_R15(%rsp) - movw %fs,TF_FS(%rsp) - movw %gs,TF_GS(%rsp) - movw %es,TF_ES(%rsp) - movw %ds,TF_DS(%rsp) movl $TF_HASSEGS,TF_FLAGS(%rsp) FAKE_MCOUNT(TF_RIP(%rsp)) movq %rsp, %rdi ==== //depot/projects/scottl-camlock/src/sys/amd64/ia32/ia32_reg.c#4 (text+ko) ==== @@ -23,11 +23,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/ia32/ia32_reg.c,v 1.4 2009/04/01 13:09:26 kib Exp $ + * $FreeBSD: src/sys/amd64/ia32/ia32_reg.c,v 1.5 2009/07/09 09:34:11 kib Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_reg.c,v 1.4 2009/04/01 13:09:26 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_reg.c,v 1.5 2009/07/09 09:34:11 kib Exp $"); #include "opt_compat.h" @@ -125,6 +125,7 @@ tp->tf_fs = regs->r_fs; tp->tf_es = regs->r_es; tp->tf_ds = regs->r_ds; + td->td_pcb->pcb_full_iret = 1; tp->tf_flags = TF_HASSEGS; tp->tf_rdi = regs->r_edi; tp->tf_rsi = regs->r_esi; ==== //depot/projects/scottl-camlock/src/sys/amd64/ia32/ia32_signal.c#8 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.22 2009/04/01 13:09:26 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.23 2009/07/09 09:34:11 kib Exp $"); #include "opt_compat.h" @@ -159,6 +159,7 @@ ia32_get_fpcontext(td, mcp); mcp->mc_fsbase = td->td_pcb->pcb_fsbase; mcp->mc_gsbase = td->td_pcb->pcb_gsbase; + td->td_pcb->pcb_full_iret = 1; return (0); } @@ -201,6 +202,7 @@ tp->tf_rsp = mcp->mc_esp; tp->tf_ss = mcp->mc_ss; td->td_pcb->pcb_flags |= PCB_FULLCTX; + td->td_pcb->pcb_full_iret = 1; return (0); } @@ -394,6 +396,7 @@ regs->tf_ss = _udatasel; regs->tf_ds = _udatasel; regs->tf_es = _udatasel; + td->td_pcb->pcb_full_iret = 1; /* leave user %fs and %gs untouched */ PROC_LOCK(p); mtx_lock(&psp->ps_mtx); @@ -514,6 +517,7 @@ regs->tf_ss = _udatasel; regs->tf_ds = _udatasel; regs->tf_es = _udatasel; + td->td_pcb->pcb_full_iret = 1; /* XXXKIB leave user %fs and %gs untouched */ PROC_LOCK(p); mtx_lock(&psp->ps_mtx); @@ -611,6 +615,7 @@ SIG_CANTMASK(td->td_sigmask); signotify(td); PROC_UNLOCK(p); + td->td_pcb->pcb_full_iret = 1; return (EJUSTRETURN); } #endif /* COMPAT_FREEBSD4 */ @@ -702,6 +707,7 @@ SIG_CANTMASK(td->td_sigmask); signotify(td); PROC_UNLOCK(p); + td->td_pcb->pcb_full_iret = 1; return (EJUSTRETURN); } @@ -747,5 +753,6 @@ /* Return via doreti so that we can change to a different %cs */ pcb->pcb_flags |= PCB_FULLCTX | PCB_32BIT; pcb->pcb_flags &= ~PCB_GS32BIT; + td->td_pcb->pcb_full_iret = 1; td->td_retval[1] = 0; } ==== //depot/projects/scottl-camlock/src/sys/amd64/include/pcb.h#9 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)pcb.h 5.10 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pcb.h,v 1.71 2009/04/01 16:24:24 jkim Exp $ + * $FreeBSD: src/sys/amd64/include/pcb.h,v 1.72 2009/07/09 09:34:11 kib Exp $ */ #ifndef _AMD64_PCB_H_ @@ -72,12 +72,13 @@ struct savefpu pcb_save; uint16_t pcb_initial_fpucw; - caddr_t pcb_onfault; /* copyin/out fault recovery */ + caddr_t pcb_onfault; /* copyin/out fault recovery */ /* 32-bit segment descriptor */ struct user_segment_descriptor pcb_gs32sd; /* local tss, with i/o bitmap; NULL for common */ struct amd64tss *pcb_tssp; + char pcb_full_iret; }; struct xpcb { ==== //depot/projects/scottl-camlock/src/sys/amd64/linux32/linux32_sysvec.c#16 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.51 2009/05/10 18:43:43 dchagin Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.52 2009/07/09 09:34:11 kib Exp $"); #include "opt_compat.h" #ifndef COMPAT_IA32 @@ -423,6 +423,7 @@ regs->tf_fs = _ufssel; regs->tf_gs = _ugssel; regs->tf_flags = TF_HASSEGS; + td->td_pcb->pcb_full_iret = 1; PROC_LOCK(p); mtx_lock(&psp->ps_mtx); } @@ -545,6 +546,7 @@ regs->tf_fs = _ufssel; regs->tf_gs = _ugssel; regs->tf_flags = TF_HASSEGS; + td->td_pcb->pcb_full_iret = 1; PROC_LOCK(p); mtx_lock(&psp->ps_mtx); } @@ -645,6 +647,7 @@ regs->tf_rflags = eflags; regs->tf_rsp = frame.sf_sc.sc_esp_at_signal; regs->tf_ss = frame.sf_sc.sc_ss; + td->td_pcb->pcb_full_iret = 1; return (EJUSTRETURN); } @@ -746,6 +749,7 @@ regs->tf_rflags = eflags; regs->tf_rsp = context->sc_esp_at_signal; regs->tf_ss = context->sc_ss; + td->td_pcb->pcb_full_iret = 1; /* * call sigaltstack & ignore results.. @@ -864,6 +868,7 @@ regs->tf_flags = TF_HASSEGS; regs->tf_cs = _ucode32sel; regs->tf_rbx = ps_strings; + td->td_pcb->pcb_full_iret = 1; load_cr0(rcr0() | CR0_MP | CR0_TS); fpstate_drop(td); ==== //depot/projects/scottl-camlock/src/sys/bsm/audit_kevents.h#12 (text+ko) ==== @@ -27,7 +27,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#6 - * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.20 2009/04/19 14:53:17 rwatson Exp $ + * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.21 2009/07/08 15:23:18 trasz Exp $ */ #ifndef _BSM_AUDIT_KEVENTS_H_ @@ -597,6 +597,7 @@ #define AUE_PWRITE 43193 /* Darwin/FreeBSD. */ #define AUE_FSCTL 43194 /* Darwin. */ #define AUE_FFSCTL 43195 /* Darwin. */ +#define AUE_LPATHCONF 43196 /* FreeBSD. */ /* * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the ==== //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_proto.h#22 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.105 2009/06/24 21:54:08 jhb Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 194910 2009-06-24 21:10:52Z jhb + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.106 2009/07/08 16:30:34 trasz Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz */ #ifndef _FREEBSD32_SYSPROTO_H_ ==== //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscall.h#22 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.104 2009/06/24 21:54:08 jhb Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 194910 2009-06-24 21:10:52Z jhb + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.105 2009/07/08 16:30:34 trasz Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz */ #define FREEBSD32_SYS_syscall 0 @@ -381,4 +381,5 @@ #define FREEBSD32_SYS_freebsd32_semctl 510 #define FREEBSD32_SYS_freebsd32_msgctl 511 #define FREEBSD32_SYS_freebsd32_shmctl 512 -#define FREEBSD32_SYS_MAXSYSCALL 513 +#define FREEBSD32_SYS_lpathconf 513 +#define FREEBSD32_SYS_MAXSYSCALL 514 ==== //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscalls.c#22 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.95 2009/06/24 21:54:08 jhb Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 194910 2009-06-24 21:10:52Z jhb + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.96 2009/07/08 16:30:34 trasz Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz */ const char *freebsd32_syscallnames[] = { @@ -520,4 +520,5 @@ "freebsd32_semctl", /* 510 = freebsd32_semctl */ "freebsd32_msgctl", /* 511 = freebsd32_msgctl */ "freebsd32_shmctl", /* 512 = freebsd32_shmctl */ + "lpathconf", /* 513 = lpathconf */ }; ==== //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_sysent.c#22 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.106 2009/06/24 21:54:08 jhb Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 194910 2009-06-24 21:10:52Z jhb + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.107 2009/07/08 16:30:34 trasz Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz */ #include "opt_compat.h" @@ -557,4 +557,5 @@ { AS(freebsd32_semctl_args), (sy_call_t *)freebsd32_semctl, AUE_SEMCTL, NULL, 0, 0, 0 }, /* 510 = freebsd32_semctl */ { AS(freebsd32_msgctl_args), (sy_call_t *)freebsd32_msgctl, AUE_MSGCTL, NULL, 0, 0, 0 }, /* 511 = freebsd32_msgctl */ { AS(freebsd32_shmctl_args), (sy_call_t *)freebsd32_shmctl, AUE_SHMCTL, NULL, 0, 0, 0 }, /* 512 = freebsd32_shmctl */ + { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ }; ==== //depot/projects/scottl-camlock/src/sys/compat/freebsd32/syscalls.master#24 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.121 2009/06/24 21:10:52 jhb Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -900,3 +900,4 @@ struct msqid_ds32 *buf); } 512 AUE_SHMCTL STD { int freebsd32_shmctl(int shmid, int cmd, \ struct shmid_ds32 *buf); } +513 AUE_LPATHCONF NOPROTO { int lpathconf(char *path, int name); } ==== //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_stat.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stat.c,v 1.32 2009/06/13 00:12:02 jamie Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stat.c,v 1.33 2009/07/08 15:23:18 trasz Exp $"); #include #include @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -669,7 +670,7 @@ return (0); default: CHECKALTEXIST(td, uap->path, &path); - error = kern_pathconf(td, path, UIO_SYSSPACE, name); + error = kern_pathconf(td, path, UIO_SYSSPACE, name, FOLLOW); free(path, M_TEMP); return (error); } ==== //depot/projects/scottl-camlock/src/sys/dev/cxgb/cxgb_sge.c#15 (text+ko) ==== @@ -28,7 +28,7 @@ ***************************************************************************/ #include -__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_sge.c,v 1.76 2009/06/25 21:50:15 np Exp $"); >>> TRUNCATED FOR MAIL (1000 lines) <<<