From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 09:43:14 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 576FD106566B; Sun, 11 Sep 2011 09:43:14 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 466798FC13; Sun, 11 Sep 2011 09:43:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8B9hEQd061088; Sun, 11 Sep 2011 09:43:14 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8B9hEE0061085; Sun, 11 Sep 2011 09:43:14 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201109110943.p8B9hEE0061085@svn.freebsd.org> From: Adrian Chadd Date: Sun, 11 Sep 2011 09:43:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225473 - head/sys/dev/ath/ath_rate/sample X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 09:43:14 -0000 Author: adrian Date: Sun Sep 11 09:43:13 2011 New Revision: 225473 URL: http://svn.freebsd.org/changeset/base/225473 Log: Fix the order of parameters passed to the HT frame duration calculation. Approved by: re (kib) Modified: head/sys/dev/ath/ath_rate/sample/sample.h Modified: head/sys/dev/ath/ath_rate/sample/sample.h ============================================================================== --- head/sys/dev/ath/ath_rate/sample/sample.h Sun Sep 11 07:26:36 2011 (r225472) +++ head/sys/dev/ath/ath_rate/sample/sample.h Sun Sep 11 09:43:13 2011 (r225473) @@ -199,8 +199,8 @@ static unsigned calc_usecs_unicast_packe ctsduration += rt->info[cix].spAckDuration; /* XXX assumes short preamble */ - /* XXX assumes HT/20; the node info isn't yet available here */ - ctsduration += ath_hal_pkt_txtime(sc->sc_ah, rt, length, rix, 0, is_ht40); + ctsduration += ath_hal_pkt_txtime(sc->sc_ah, rt, length, rix, + is_ht40, 0); if (cts) /* SIFS + ACK */ ctsduration += rt->info[cix].spAckDuration; @@ -210,8 +210,9 @@ static unsigned calc_usecs_unicast_packe tt += t_difs; /* XXX assumes short preamble */ - /* XXX assumes HT/20; the node info isn't yet available here */ - tt += (long_retries+1)*ath_hal_pkt_txtime(sc->sc_ah, rt, length, rix, 0, is_ht40); + tt += (long_retries+1)*ath_hal_pkt_txtime(sc->sc_ah, rt, length, rix, + is_ht40, 0); + tt += (long_retries+1)*(t_sifs + rt->info[rix].spAckDuration); for (x = 0; x <= short_retries + long_retries; x++) { From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 16:05:10 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 01095106564A; Sun, 11 Sep 2011 16:05:10 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E1DF58FC08; Sun, 11 Sep 2011 16:05:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8BG59FD084601; Sun, 11 Sep 2011 16:05:09 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8BG59cc084589; Sun, 11 Sep 2011 16:05:09 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201109111605.p8BG59cc084589@svn.freebsd.org> From: Konstantin Belousov Date: Sun, 11 Sep 2011 16:05:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225474 - in head/sys: amd64/amd64 amd64/ia32 i386/i386 ia64/ia32 ia64/ia64 kern powerpc/aim powerpc/booke sparc64/sparc64 sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 16:05:10 -0000 Author: kib Date: Sun Sep 11 16:05:09 2011 New Revision: 225474 URL: http://svn.freebsd.org/changeset/base/225474 Log: Inline the syscallenter() and syscallret(). This reduces the time measured by the syscall entry speed microbenchmarks by ~10% on amd64. Submitted by: jhb Approved by: re (bz) MFC after: 2 weeks Added: head/sys/kern/subr_syscall.c - copied, changed from r225473, head/sys/kern/subr_trap.c Modified: head/sys/amd64/amd64/trap.c head/sys/amd64/ia32/ia32_syscall.c head/sys/i386/i386/trap.c head/sys/ia64/ia32/ia32_trap.c head/sys/ia64/ia64/trap.c head/sys/kern/subr_trap.c head/sys/powerpc/aim/trap.c head/sys/powerpc/booke/trap.c head/sys/sparc64/sparc64/trap.c head/sys/sys/proc.h Modified: head/sys/amd64/amd64/trap.c ============================================================================== --- head/sys/amd64/amd64/trap.c Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/amd64/amd64/trap.c Sun Sep 11 16:05:09 2011 (r225474) @@ -883,6 +883,8 @@ cpu_fetch_syscall_args(struct thread *td return (error); } +#include "../../kern/subr_syscall.c" + /* * syscall - system call request C handler * Modified: head/sys/amd64/ia32/ia32_syscall.c ============================================================================== --- head/sys/amd64/ia32/ia32_syscall.c Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/amd64/ia32/ia32_syscall.c Sun Sep 11 16:05:09 2011 (r225474) @@ -163,6 +163,8 @@ ia32_fetch_syscall_args(struct thread *t return (error); } +#include "../../kern/subr_syscall.c" + void ia32_syscall(struct trapframe *frame) { Modified: head/sys/i386/i386/trap.c ============================================================================== --- head/sys/i386/i386/trap.c Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/i386/i386/trap.c Sun Sep 11 16:05:09 2011 (r225474) @@ -1054,6 +1054,8 @@ cpu_fetch_syscall_args(struct thread *td return (error); } +#include "../../kern/subr_syscall.c" + /* * syscall - system call request C handler * Modified: head/sys/ia64/ia32/ia32_trap.c ============================================================================== --- head/sys/ia64/ia32/ia32_trap.c Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/ia64/ia32/ia32_trap.c Sun Sep 11 16:05:09 2011 (r225474) @@ -144,6 +144,8 @@ ia32_fetch_syscall_args(struct thread *t return (error); } +#include "../../kern/subr_syscall.c" + static void ia32_syscall(struct trapframe *tf) { Modified: head/sys/ia64/ia64/trap.c ============================================================================== --- head/sys/ia64/ia64/trap.c Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/ia64/ia64/trap.c Sun Sep 11 16:05:09 2011 (r225474) @@ -929,6 +929,8 @@ cpu_fetch_syscall_args(struct thread *td return (0); } +#include "../../kern/subr_syscall.c" + /* * Process a system call. * Copied and modified: head/sys/kern/subr_syscall.c (from r225473, head/sys/kern/subr_trap.c) ============================================================================== --- head/sys/kern/subr_trap.c Sun Sep 11 09:43:13 2011 (r225473, copy source) +++ head/sys/kern/subr_syscall.c Sun Sep 11 16:05:09 2011 (r225474) @@ -2,14 +2,11 @@ * Copyright (C) 1994, David Greenman * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. - * Copyright (c) 2007 The FreeBSD Foundation + * Copyright (C) 2010 Konstantin Belousov * * This code is derived from software contributed to Berkeley by * the University of Utah, and William Jolitz. * - * Portions of this software were developed by A. Joseph Koshy under - * sponsorship from the FreeBSD Foundation and Google, Inc. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -41,231 +38,21 @@ * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 */ -#include -__FBSDID("$FreeBSD$"); - #include "opt_capsicum.h" #include "opt_ktrace.h" #include "opt_kdtrace.h" -#include "opt_sched.h" -#include -#include +__FBSDID("$FreeBSD$"); + #include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #ifdef KTRACE #include #include #endif #include -#include - -#ifdef VIMAGE -#include -#endif - -#ifdef XEN -#include -#include -#include -#endif - -#include - -/* - * Define the code needed before returning to user mode, for trap and - * syscall. - */ -void -userret(struct thread *td, struct trapframe *frame) -{ - struct proc *p = td->td_proc; - - CTR3(KTR_SYSC, "userret: thread %p (pid %d, %s)", td, p->p_pid, - td->td_name); -#if 0 -#ifdef DIAGNOSTIC - /* Check that we called signotify() enough. */ - PROC_LOCK(p); - thread_lock(td); - if (SIGPENDING(td) && ((td->td_flags & TDF_NEEDSIGCHK) == 0 || - (td->td_flags & TDF_ASTPENDING) == 0)) - printf("failed to set signal flags properly for ast()\n"); - thread_unlock(td); - PROC_UNLOCK(p); -#endif -#endif -#ifdef KTRACE - KTRUSERRET(td); -#endif - /* - * If this thread tickled GEOM, we need to wait for the giggling to - * stop before we return to userland - */ - if (td->td_pflags & TDP_GEOM) - g_waitidle(); - - /* - * Charge system time if profiling. - */ - if (p->p_flag & P_PROFIL) - addupc_task(td, TRAPF_PC(frame), td->td_pticks * psratio); - /* - * Let the scheduler adjust our priority etc. - */ - sched_userret(td); - KASSERT(td->td_locks == 0, - ("userret: Returning with %d locks held.", td->td_locks)); -#ifdef VIMAGE - /* Unfortunately td_vnet_lpush needs VNET_DEBUG. */ - VNET_ASSERT(curvnet == NULL, - ("%s: Returning on td %p (pid %d, %s) with vnet %p set in %s", - __func__, td, p->p_pid, td->td_name, curvnet, - (td->td_vnet_lpush != NULL) ? td->td_vnet_lpush : "N/A")); -#endif -#ifdef XEN - PT_UPDATES_FLUSH(); -#endif -} - -/* - * Process an asynchronous software trap. - * This is relatively easy. - * This function will return with preemption disabled. - */ -void -ast(struct trapframe *framep) -{ - struct thread *td; - struct proc *p; - int flags; - int sig; - - td = curthread; - p = td->td_proc; - - CTR3(KTR_SYSC, "ast: thread %p (pid %d, %s)", td, p->p_pid, - p->p_comm); - KASSERT(TRAPF_USERMODE(framep), ("ast in kernel mode")); - WITNESS_WARN(WARN_PANIC, NULL, "Returning to user mode"); - mtx_assert(&Giant, MA_NOTOWNED); - THREAD_LOCK_ASSERT(td, MA_NOTOWNED); - td->td_frame = framep; - td->td_pticks = 0; - - /* - * This updates the td_flag's for the checks below in one - * "atomic" operation with turning off the astpending flag. - * If another AST is triggered while we are handling the - * AST's saved in flags, the astpending flag will be set and - * ast() will be called again. - */ - thread_lock(td); - flags = td->td_flags; - td->td_flags &= ~(TDF_ASTPENDING | TDF_NEEDSIGCHK | TDF_NEEDSUSPCHK | - TDF_NEEDRESCHED | TDF_ALRMPEND | TDF_PROFPEND | TDF_MACPEND); - thread_unlock(td); - PCPU_INC(cnt.v_trap); - - if (td->td_ucred != p->p_ucred) - cred_update_thread(td); - if (td->td_pflags & TDP_OWEUPC && p->p_flag & P_PROFIL) { - addupc_task(td, td->td_profil_addr, td->td_profil_ticks); - td->td_profil_ticks = 0; - td->td_pflags &= ~TDP_OWEUPC; - } - if (flags & TDF_ALRMPEND) { - PROC_LOCK(p); - psignal(p, SIGVTALRM); - PROC_UNLOCK(p); - } - if (flags & TDF_PROFPEND) { - PROC_LOCK(p); - psignal(p, SIGPROF); - PROC_UNLOCK(p); - } -#ifdef MAC - if (flags & TDF_MACPEND) - mac_thread_userret(td); -#endif - if (flags & TDF_NEEDRESCHED) { -#ifdef KTRACE - if (KTRPOINT(td, KTR_CSW)) - ktrcsw(1, 1); -#endif - thread_lock(td); - sched_prio(td, td->td_user_pri); - mi_switch(SW_INVOL | SWT_NEEDRESCHED, NULL); - thread_unlock(td); -#ifdef KTRACE - if (KTRPOINT(td, KTR_CSW)) - ktrcsw(0, 1); -#endif - } - - /* - * Check for signals. Unlocked reads of p_pendingcnt or - * p_siglist might cause process-directed signal to be handled - * later. - */ - if (flags & TDF_NEEDSIGCHK || p->p_pendingcnt > 0 || - !SIGISEMPTY(p->p_siglist)) { - PROC_LOCK(p); - mtx_lock(&p->p_sigacts->ps_mtx); - while ((sig = cursig(td, SIG_STOP_ALLOWED)) != 0) - postsig(sig); - mtx_unlock(&p->p_sigacts->ps_mtx); - PROC_UNLOCK(p); - } - /* - * We need to check to see if we have to exit or wait due to a - * single threading requirement or some other STOP condition. - */ - if (flags & TDF_NEEDSUSPCHK) { - PROC_LOCK(p); - thread_suspend_check(0); - PROC_UNLOCK(p); - } - - if (td->td_pflags & TDP_OLDMASK) { - td->td_pflags &= ~TDP_OLDMASK; - kern_sigprocmask(td, SIG_SETMASK, &td->td_oldsigmask, NULL, 0); - } - - userret(td, framep); - mtx_assert(&Giant, MA_NOTOWNED); -} - -#ifdef HAVE_SYSCALL_ARGS_DEF -const char * -syscallname(struct proc *p, u_int code) -{ - static const char unknown[] = "unknown"; - struct sysentvec *sv; - - sv = p->p_sysent; - if (sv->sv_syscallnames == NULL || code >= sv->sv_size) - return (unknown); - return (sv->sv_syscallnames[code]); -} - -int +static inline int syscallenter(struct thread *td, struct syscall_args *sa) { struct proc *p; @@ -371,7 +158,7 @@ syscallenter(struct thread *td, struct s return (error); } -void +static inline void syscallret(struct thread *td, int error, struct syscall_args *sa __unused) { struct proc *p; @@ -424,4 +211,3 @@ syscallret(struct thread *td, int error, PROC_UNLOCK(p); } } -#endif /* HAVE_SYSCALL_ARGS_DEF */ Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/kern/subr_trap.c Sun Sep 11 16:05:09 2011 (r225474) @@ -252,7 +252,6 @@ ast(struct trapframe *framep) mtx_assert(&Giant, MA_NOTOWNED); } -#ifdef HAVE_SYSCALL_ARGS_DEF const char * syscallname(struct proc *p, u_int code) { @@ -264,164 +263,3 @@ syscallname(struct proc *p, u_int code) return (unknown); return (sv->sv_syscallnames[code]); } - -int -syscallenter(struct thread *td, struct syscall_args *sa) -{ - struct proc *p; - int error, traced; - - PCPU_INC(cnt.v_syscall); - p = td->td_proc; - - td->td_pticks = 0; - if (td->td_ucred != p->p_ucred) - cred_update_thread(td); - if (p->p_flag & P_TRACED) { - traced = 1; - PROC_LOCK(p); - td->td_dbgflags &= ~TDB_USERWR; - td->td_dbgflags |= TDB_SCE; - PROC_UNLOCK(p); - } else - traced = 0; - error = (p->p_sysent->sv_fetch_syscall_args)(td, sa); -#ifdef KTRACE - if (KTRPOINT(td, KTR_SYSCALL)) - ktrsyscall(sa->code, sa->narg, sa->args); -#endif - - CTR6(KTR_SYSC, -"syscall: td=%p pid %d %s (%#lx, %#lx, %#lx)", - td, td->td_proc->p_pid, syscallname(p, sa->code), - sa->args[0], sa->args[1], sa->args[2]); - - if (error == 0) { - STOPEVENT(p, S_SCE, sa->narg); - PTRACESTOP_SC(p, td, S_PT_SCE); - if (td->td_dbgflags & TDB_USERWR) { - /* - * Reread syscall number and arguments if - * debugger modified registers or memory. - */ - error = (p->p_sysent->sv_fetch_syscall_args)(td, sa); -#ifdef KTRACE - if (KTRPOINT(td, KTR_SYSCALL)) - ktrsyscall(sa->code, sa->narg, sa->args); -#endif - if (error != 0) - goto retval; - } - -#ifdef CAPABILITY_MODE - /* - * In capability mode, we only allow access to system calls - * flagged with SYF_CAPENABLED. - */ - if (IN_CAPABILITY_MODE(td) && - !(sa->callp->sy_flags & SYF_CAPENABLED)) { - error = ECAPMODE; - goto retval; - } -#endif - - error = syscall_thread_enter(td, sa->callp); - if (error != 0) - goto retval; - -#ifdef KDTRACE_HOOKS - /* - * If the systrace module has registered it's probe - * callback and if there is a probe active for the - * syscall 'entry', process the probe. - */ - if (systrace_probe_func != NULL && sa->callp->sy_entry != 0) - (*systrace_probe_func)(sa->callp->sy_entry, sa->code, - sa->callp, sa->args, 0); -#endif - - AUDIT_SYSCALL_ENTER(sa->code, td); - error = (sa->callp->sy_call)(td, sa->args); - AUDIT_SYSCALL_EXIT(error, td); - - /* Save the latest error return value. */ - td->td_errno = error; - -#ifdef KDTRACE_HOOKS - /* - * If the systrace module has registered it's probe - * callback and if there is a probe active for the - * syscall 'return', process the probe. - */ - if (systrace_probe_func != NULL && sa->callp->sy_return != 0) - (*systrace_probe_func)(sa->callp->sy_return, sa->code, - sa->callp, NULL, (error) ? -1 : td->td_retval[0]); -#endif - syscall_thread_exit(td, sa->callp); - CTR4(KTR_SYSC, "syscall: p=%p error=%d return %#lx %#lx", - p, error, td->td_retval[0], td->td_retval[1]); - } - retval: - if (traced) { - PROC_LOCK(p); - td->td_dbgflags &= ~TDB_SCE; - PROC_UNLOCK(p); - } - (p->p_sysent->sv_set_syscall_retval)(td, error); - return (error); -} - -void -syscallret(struct thread *td, int error, struct syscall_args *sa __unused) -{ - struct proc *p; - int traced; - - p = td->td_proc; - - /* - * Check for misbehavior. - */ - WITNESS_WARN(WARN_PANIC, NULL, "System call %s returning", - syscallname(p, sa->code)); - KASSERT(td->td_critnest == 0, - ("System call %s returning in a critical section", - syscallname(p, sa->code))); - KASSERT(td->td_locks == 0, - ("System call %s returning with %d locks held", - syscallname(p, sa->code), td->td_locks)); - - /* - * Handle reschedule and other end-of-syscall issues - */ - userret(td, td->td_frame); - - CTR4(KTR_SYSC, "syscall %s exit thread %p pid %d proc %s", - syscallname(p, sa->code), td, td->td_proc->p_pid, td->td_name); - -#ifdef KTRACE - if (KTRPOINT(td, KTR_SYSRET)) - ktrsysret(sa->code, error, td->td_retval[0]); -#endif - - if (p->p_flag & P_TRACED) { - traced = 1; - PROC_LOCK(p); - td->td_dbgflags |= TDB_SCX; - PROC_UNLOCK(p); - } else - traced = 0; - /* - * This works because errno is findable through the - * register set. If we ever support an emulation where this - * is not the case, this code will need to be revisited. - */ - STOPEVENT(p, S_SCX, sa->code); - PTRACESTOP_SC(p, td, S_PT_SCX); - if (traced || (td->td_dbgflags & (TDB_EXEC | TDB_FORK)) != 0) { - PROC_LOCK(p); - td->td_dbgflags &= ~(TDB_SCX | TDB_EXEC | TDB_FORK); - PROC_UNLOCK(p); - } -} -#endif /* HAVE_SYSCALL_ARGS_DEF */ Modified: head/sys/powerpc/aim/trap.c ============================================================================== --- head/sys/powerpc/aim/trap.c Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/powerpc/aim/trap.c Sun Sep 11 16:05:09 2011 (r225474) @@ -445,6 +445,8 @@ cpu_fetch_syscall_args(struct thread *td return (error); } +#include "../../kern/subr_syscall.c" + void syscall(struct trapframe *frame) { Modified: head/sys/powerpc/booke/trap.c ============================================================================== --- head/sys/powerpc/booke/trap.c Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/powerpc/booke/trap.c Sun Sep 11 16:05:09 2011 (r225474) @@ -375,6 +375,8 @@ cpu_fetch_syscall_args(struct thread *td return (error); } +#include "../../kern/subr_syscall.c" + void syscall(struct trapframe *frame) { Modified: head/sys/sparc64/sparc64/trap.c ============================================================================== --- head/sys/sparc64/sparc64/trap.c Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/sparc64/sparc64/trap.c Sun Sep 11 16:05:09 2011 (r225474) @@ -606,6 +606,8 @@ cpu_fetch_syscall_args(struct thread *td return (error); } +#include "../../kern/subr_syscall.c" + /* * Syscall handler * The arguments to the syscall are passed in the out registers by the caller, Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Sun Sep 11 09:43:13 2011 (r225473) +++ head/sys/sys/proc.h Sun Sep 11 16:05:09 2011 (r225474) @@ -873,9 +873,6 @@ void cpu_switch(struct thread *, struct void cpu_throw(struct thread *, struct thread *) __dead2; void unsleep(struct thread *); void userret(struct thread *, struct trapframe *); -struct syscall_args; -int syscallenter(struct thread *, struct syscall_args *); -void syscallret(struct thread *, int, struct syscall_args *); void cpu_exit(struct thread *); void exit1(struct thread *, int) __dead2; From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 16:08:11 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C649106566B; Sun, 11 Sep 2011 16:08:11 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 017AF8FC0A; Sun, 11 Sep 2011 16:08:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8BG8AbK084806; Sun, 11 Sep 2011 16:08:10 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8BG8AdL084802; Sun, 11 Sep 2011 16:08:10 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201109111608.p8BG8AdL084802@svn.freebsd.org> From: Konstantin Belousov Date: Sun, 11 Sep 2011 16:08:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225475 - head/sys/amd64/amd64 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 16:08:11 -0000 Author: kib Date: Sun Sep 11 16:08:10 2011 New Revision: 225475 URL: http://svn.freebsd.org/changeset/base/225475 Log: Perform amd64-specific microoptimizations for native syscall entry sequence. The effect is ~1% on the microbenchmark. In particular, do not restore registers which are preserved by the C calling sequence. Align the jump target. Avoid unneeded memory accesses by calculating some data in syscall entry trampoline. Reviewed by: jhb Approved by: re (bz) MFC after: 2 weeks Modified: head/sys/amd64/amd64/exception.S head/sys/amd64/amd64/genassym.c head/sys/amd64/amd64/trap.c Modified: head/sys/amd64/amd64/exception.S ============================================================================== --- head/sys/amd64/amd64/exception.S Sun Sep 11 16:05:09 2011 (r225474) +++ head/sys/amd64/amd64/exception.S Sun Sep 11 16:08:10 2011 (r225475) @@ -380,8 +380,11 @@ IDTVEC(fast_syscall) movl $TF_HASSEGS,TF_FLAGS(%rsp) cld FAKE_MCOUNT(TF_RIP(%rsp)) - movq %rsp,%rdi - call syscall + movq PCPU(CURTHREAD),%rdi + movq %rsp,TD_FRAME(%rdi) + movl TF_RFLAGS(%rsp),%esi + andl $PSL_T,%esi + call amd64_syscall 1: movq PCPU(CURPCB),%rax /* Disable interrupts before testing PCB_FULL_IRET. */ cli @@ -396,17 +399,12 @@ IDTVEC(fast_syscall) call ast jmp 1b 2: /* Restore preserved registers. */ + .align 16 MEXITCOUNT movq TF_RDI(%rsp),%rdi /* bonus; preserve arg 1 */ movq TF_RSI(%rsp),%rsi /* bonus: preserve arg 2 */ movq TF_RDX(%rsp),%rdx /* return value 2 */ movq TF_RAX(%rsp),%rax /* return value 1 */ - movq TF_RBX(%rsp),%rbx /* C preserved */ - movq TF_RBP(%rsp),%rbp /* C preserved */ - movq TF_R12(%rsp),%r12 /* C preserved */ - movq TF_R13(%rsp),%r13 /* C preserved */ - movq TF_R14(%rsp),%r14 /* C preserved */ - movq TF_R15(%rsp),%r15 /* C preserved */ movq TF_RFLAGS(%rsp),%r11 /* original %rflags */ movq TF_RIP(%rsp),%rcx /* original %rip */ movq TF_RSP(%rsp),%r9 /* user stack pointer */ Modified: head/sys/amd64/amd64/genassym.c ============================================================================== --- head/sys/amd64/amd64/genassym.c Sun Sep 11 16:05:09 2011 (r225474) +++ head/sys/amd64/amd64/genassym.c Sun Sep 11 16:08:10 2011 (r225475) @@ -87,6 +87,7 @@ ASSYM(TD_PCB, offsetof(struct thread, td ASSYM(TD_PFLAGS, offsetof(struct thread, td_pflags)); ASSYM(TD_PROC, offsetof(struct thread, td_proc)); ASSYM(TD_TID, offsetof(struct thread, td_tid)); +ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); ASSYM(TDF_ASTPENDING, TDF_ASTPENDING); ASSYM(TDF_NEEDRESCHED, TDF_NEEDRESCHED); Modified: head/sys/amd64/amd64/trap.c ============================================================================== --- head/sys/amd64/amd64/trap.c Sun Sep 11 16:05:09 2011 (r225474) +++ head/sys/amd64/amd64/trap.c Sun Sep 11 16:08:10 2011 (r225475) @@ -885,41 +885,36 @@ cpu_fetch_syscall_args(struct thread *td #include "../../kern/subr_syscall.c" +void amd64_syscall(struct thread *td, int traced); /* * syscall - system call request C handler * * A system call is essentially treated as a trap. */ void -syscall(struct trapframe *frame) +amd64_syscall(struct thread *td, int traced) { - struct thread *td; struct syscall_args sa; - register_t orig_tf_rflags; int error; ksiginfo_t ksi; #ifdef DIAGNOSTIC - if (ISPL(frame->tf_cs) != SEL_UPL) { + if (ISPL(td->td_frame->tf_cs) != SEL_UPL) { panic("syscall"); /* NOT REACHED */ } #endif - orig_tf_rflags = frame->tf_rflags; - td = curthread; - td->td_frame = frame; - error = syscallenter(td, &sa); /* * Traced syscall. */ - if (orig_tf_rflags & PSL_T) { - frame->tf_rflags &= ~PSL_T; + if (__predict_false(traced)) { + td->td_frame->tf_rflags &= ~PSL_T; ksiginfo_init_trap(&ksi); ksi.ksi_signo = SIGTRAP; ksi.ksi_code = TRAP_TRACE; - ksi.ksi_addr = (void *)frame->tf_rip; + ksi.ksi_addr = (void *)td->td_frame->tf_rip; trapsignal(td, &ksi); } From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 17:39:52 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 630E0106564A; Sun, 11 Sep 2011 17:39:52 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1667B8FC13; Sun, 11 Sep 2011 17:39:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8BHdplX089067; Sun, 11 Sep 2011 17:39:51 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8BHdpTE089056; Sun, 11 Sep 2011 17:39:51 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <201109111739.p8BHdpTE089056@svn.freebsd.org> From: Christian Brueffer Date: Sun, 11 Sep 2011 17:39:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225482 - in head/sys: amd64/conf arm/conf i386/conf mips/conf pc98/conf sparc64/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 17:39:52 -0000 Author: brueffer Date: Sun Sep 11 17:39:51 2011 New Revision: 225482 URL: http://svn.freebsd.org/changeset/base/225482 Log: Fix a zyd(4) comment typo that was copy+pasted into most kernel config files. PR: 160276 Submitted by: MATSUMIYA Ryo Approved by: re (kib) MFC after: 1 week Modified: head/sys/amd64/conf/GENERIC head/sys/arm/conf/HL200 head/sys/arm/conf/HL201 head/sys/arm/conf/KB920X head/sys/arm/conf/QILA9G20 head/sys/arm/conf/SAM9G20EK head/sys/i386/conf/GENERIC head/sys/mips/conf/OCTEON1 head/sys/pc98/conf/GENERIC head/sys/sparc64/conf/GENERIC Modified: head/sys/amd64/conf/GENERIC ============================================================================== --- head/sys/amd64/conf/GENERIC Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/amd64/conf/GENERIC Sun Sep 11 17:39:51 2011 (r225482) @@ -326,7 +326,7 @@ device uath # Atheros AR5523 wireless device upgt # Conexant/Intersil PrismGT wireless NICs. device ural # Ralink Technology RT2500USB wireless NICs device urtw # Realtek RTL8187B/L wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs +device zyd # ZyDAS zd1211/zd1211b wireless NICs # FireWire support device firewire # FireWire bus code Modified: head/sys/arm/conf/HL200 ============================================================================== --- head/sys/arm/conf/HL200 Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/arm/conf/HL200 Sun Sep 11 17:39:51 2011 (r225482) @@ -126,7 +126,7 @@ device udav # Davicom DM9601E USB device rum # Ralink Technology RT2501USB wireless NICs device uath # Atheros AR5523 wireless NICs device ural # Ralink Technology RT2500USB wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs +device zyd # ZyDAS zd1211/zd1211b wireless NICs # SCSI peripherals device scbus # SCSI bus (required for SCSI) device da # Direct Access (disks) Modified: head/sys/arm/conf/HL201 ============================================================================== --- head/sys/arm/conf/HL201 Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/arm/conf/HL201 Sun Sep 11 17:39:51 2011 (r225482) @@ -117,7 +117,7 @@ device udav # Davicom DM9601E USB #device rum # Ralink Technology RT2501USB wireless NICs #device uath # Atheros AR5523 wireless NICs #device ural # Ralink Technology RT2500USB wireless NICs -#device zyd # ZyDAS zb1211/zb1211b wireless NICs +#device zyd # ZyDAS zd1211/zd1211b wireless NICs # SCSI peripherals device scbus # SCSI bus (required for SCSI) device da # Direct Access (disks) Modified: head/sys/arm/conf/KB920X ============================================================================== --- head/sys/arm/conf/KB920X Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/arm/conf/KB920X Sun Sep 11 17:39:51 2011 (r225482) @@ -126,7 +126,7 @@ device udav # Davicom DM9601E USB device rum # Ralink Technology RT2501USB wireless NICs device uath # Atheros AR5523 wireless NICs device ural # Ralink Technology RT2500USB wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs +device zyd # ZyDAS zd1211/zd1211b wireless NICs # SCSI peripherals device scbus # SCSI bus (required for SCSI) device da # Direct Access (disks) Modified: head/sys/arm/conf/QILA9G20 ============================================================================== --- head/sys/arm/conf/QILA9G20 Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/arm/conf/QILA9G20 Sun Sep 11 17:39:51 2011 (r225482) @@ -142,7 +142,7 @@ device udav # Davicom DM9601E USB #device rum # Ralink Technology RT2501USB wireless NICs #device uath # Atheros AR5523 wireless NICs #device ural # Ralink Technology RT2500USB wireless NICs -#device zyd # ZyDAS zb1211/zb1211b wireless NICs +#device zyd # ZyDAS zd1211/zd1211b wireless NICs # Wireless NIC cards #device wlan # 802.11 support Modified: head/sys/arm/conf/SAM9G20EK ============================================================================== --- head/sys/arm/conf/SAM9G20EK Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/arm/conf/SAM9G20EK Sun Sep 11 17:39:51 2011 (r225482) @@ -142,7 +142,7 @@ device udav # Davicom DM9601E USB #device rum # Ralink Technology RT2501USB wireless NICs #device uath # Atheros AR5523 wireless NICs #device ural # Ralink Technology RT2500USB wireless NICs -#device zyd # ZyDAS zb1211/zb1211b wireless NICs +#device zyd # ZyDAS zd1211/zd1211b wireless NICs # Wireless NIC cards #device wlan # 802.11 support Modified: head/sys/i386/conf/GENERIC ============================================================================== --- head/sys/i386/conf/GENERIC Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/i386/conf/GENERIC Sun Sep 11 17:39:51 2011 (r225482) @@ -339,7 +339,7 @@ device uath # Atheros AR5523 wireless device upgt # Conexant/Intersil PrismGT wireless NICs. device ural # Ralink Technology RT2500USB wireless NICs device urtw # Realtek RTL8187B/L wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs +device zyd # ZyDAS zd1211/zd1211b wireless NICs # FireWire support device firewire # FireWire bus code Modified: head/sys/mips/conf/OCTEON1 ============================================================================== --- head/sys/mips/conf/OCTEON1 Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/mips/conf/OCTEON1 Sun Sep 11 17:39:51 2011 (r225482) @@ -295,4 +295,4 @@ device udav # Davicom DM9601E USB device rum # Ralink Technology RT2501USB wireless NICs device uath # Atheros AR5523 wireless NICs device ural # Ralink Technology RT2500USB wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs +device zyd # ZyDAS zd1211/zd1211b wireless NICs Modified: head/sys/pc98/conf/GENERIC ============================================================================== --- head/sys/pc98/conf/GENERIC Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/pc98/conf/GENERIC Sun Sep 11 17:39:51 2011 (r225482) @@ -276,7 +276,7 @@ device bpf # Berkeley packet filter #device rum # Ralink Technology RT2501USB wireless NICs #device uath # Atheros AR5523 wireless NICs #device ural # Ralink Technology RT2500USB wireless NICs -#device zyd # ZyDAS zb1211/zb1211b wireless NICs +#device zyd # ZyDAS zd1211/zd1211b wireless NICs # FireWire support #device firewire # FireWire bus code Modified: head/sys/sparc64/conf/GENERIC ============================================================================== --- head/sys/sparc64/conf/GENERIC Sun Sep 11 17:07:33 2011 (r225481) +++ head/sys/sparc64/conf/GENERIC Sun Sep 11 17:39:51 2011 (r225482) @@ -257,7 +257,7 @@ device udav # Davicom DM9601E USB device rum # Ralink Technology RT2501USB wireless NICs device uath # Atheros AR5523 wireless NICs device ural # Ralink Technology RT2500USB wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs +device zyd # ZyDAS zd1211/zd1211b wireless NICs # FireWire support device firewire # FireWire bus code From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 18:00:46 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E07C106566B; Sun, 11 Sep 2011 18:00:46 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7DA088FC08; Sun, 11 Sep 2011 18:00:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8BI0kxq089746; Sun, 11 Sep 2011 18:00:46 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8BI0kT8089744; Sun, 11 Sep 2011 18:00:46 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201109111800.p8BI0kT8089744@svn.freebsd.org> From: Konstantin Belousov Date: Sun, 11 Sep 2011 18:00:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225483 - head/sys/amd64/amd64 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 18:00:46 -0000 Author: kib Date: Sun Sep 11 18:00:46 2011 New Revision: 225483 URL: http://svn.freebsd.org/changeset/base/225483 Log: The jump target shall be after the padding, not into it. Reported by: alc Approved by: re (bz) MFC after: 2 weeks Modified: head/sys/amd64/amd64/exception.S Modified: head/sys/amd64/amd64/exception.S ============================================================================== --- head/sys/amd64/amd64/exception.S Sun Sep 11 17:39:51 2011 (r225482) +++ head/sys/amd64/amd64/exception.S Sun Sep 11 18:00:46 2011 (r225483) @@ -398,8 +398,9 @@ IDTVEC(fast_syscall) movq %rsp, %rdi call ast jmp 1b -2: /* Restore preserved registers. */ + .align 16 +2: /* Restore preserved registers. */ MEXITCOUNT movq TF_RDI(%rsp),%rdi /* bonus; preserve arg 1 */ movq TF_RSI(%rsp),%rsi /* bonus: preserve arg 2 */ From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 20:25:58 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB3EC1065674; Sun, 11 Sep 2011 20:25:58 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C6A868FC17; Sun, 11 Sep 2011 20:25:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8BKPwc2094556; Sun, 11 Sep 2011 20:25:58 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8BKPwNN094511; Sun, 11 Sep 2011 20:25:58 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201109112025.p8BKPwNN094511@svn.freebsd.org> From: Marius Strobl Date: Sun, 11 Sep 2011 20:25:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225490 - in stable/7/sys: dev/ae dev/age dev/alc dev/ale dev/bce dev/bfe dev/bge dev/dc dev/et dev/fxp dev/jme dev/lge dev/mii dev/nfe dev/nge dev/nve dev/sf dev/sge dev/sis dev/ste de... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 20:25:59 -0000 Author: marius Date: Sun Sep 11 20:25:57 2011 New Revision: 225490 URL: http://svn.freebsd.org/changeset/base/225490 Log: MFC: r221407 (partial) - Let mii_phy_add_media() also announce the support of IFM_NONE. - Add a PHY-specific reset routine is for lxtphy(4) which disables MII interrupts. - Remove redundant checks in NIC drivers for mii->mii_instance not being zero before calling the reset routines because as soon as one PHY driver attaches mii->mii_instance is incremented and we hardly can end up in their media change callbacks etc if no PHY driver has attached as mii_attach() would have failed in that case and not attach a miibus(4) instance. - Convert the mebers of the MII data structure to unsigned where appropriate. This is partly inspired by NetBSD/OpenBSD. - Add MIIF_NOMANPAUSE and mii_phy_flowstatus() calls to drivers that weren't explicitly converted to support flow control before. It's unclear whether flow control actually works with these but typically it should and their net behavior should be more correct with these changes in place than without if the MAC driver sets MIIF_DOPAUSE. Obtained from: NetBSD (partially) Modified: stable/7/sys/dev/ae/if_ae.c stable/7/sys/dev/age/if_age.c stable/7/sys/dev/alc/if_alc.c stable/7/sys/dev/ale/if_ale.c stable/7/sys/dev/bce/if_bce.c stable/7/sys/dev/bfe/if_bfe.c stable/7/sys/dev/bge/if_bge.c stable/7/sys/dev/dc/dcphy.c stable/7/sys/dev/dc/pnphy.c stable/7/sys/dev/et/if_et.c stable/7/sys/dev/fxp/if_fxp.c stable/7/sys/dev/jme/if_jme.c stable/7/sys/dev/lge/if_lge.c stable/7/sys/dev/mii/acphy.c stable/7/sys/dev/mii/amphy.c stable/7/sys/dev/mii/atphy.c stable/7/sys/dev/mii/brgphy.c stable/7/sys/dev/mii/ciphy.c stable/7/sys/dev/mii/e1000phy.c stable/7/sys/dev/mii/exphy.c stable/7/sys/dev/mii/icsphy.c stable/7/sys/dev/mii/inphy.c stable/7/sys/dev/mii/jmphy.c stable/7/sys/dev/mii/lxtphy.c stable/7/sys/dev/mii/mii.c stable/7/sys/dev/mii/mii.h stable/7/sys/dev/mii/mii_physubr.c stable/7/sys/dev/mii/miivar.h stable/7/sys/dev/mii/mlphy.c stable/7/sys/dev/mii/nsphy.c stable/7/sys/dev/mii/nsphyter.c stable/7/sys/dev/mii/pnaphy.c stable/7/sys/dev/mii/qsphy.c stable/7/sys/dev/mii/rdcphy.c stable/7/sys/dev/mii/rlphy.c stable/7/sys/dev/mii/rlswitch.c stable/7/sys/dev/mii/ruephy.c stable/7/sys/dev/mii/tdkphy.c stable/7/sys/dev/mii/tlphy.c stable/7/sys/dev/mii/truephy.c stable/7/sys/dev/mii/xmphy.c stable/7/sys/dev/nfe/if_nfe.c stable/7/sys/dev/nge/if_nge.c stable/7/sys/dev/nve/if_nve.c stable/7/sys/dev/sf/if_sf.c stable/7/sys/dev/sge/if_sge.c stable/7/sys/dev/sis/if_sis.c stable/7/sys/dev/ste/if_ste.c stable/7/sys/dev/tx/if_tx.c stable/7/sys/dev/usb/if_aue.c stable/7/sys/dev/usb/if_axe.c stable/7/sys/dev/usb/if_rue.c stable/7/sys/dev/usb/if_udav.c stable/7/sys/dev/vr/if_vr.c stable/7/sys/dev/vte/if_vte.c stable/7/sys/pci/if_wb.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/ae/if_ae.c ============================================================================== --- stable/7/sys/dev/ae/if_ae.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/ae/if_ae.c Sun Sep 11 20:25:57 2011 (r225490) @@ -904,10 +904,8 @@ ae_mediachange(struct ifnet *ifp) KASSERT(sc != NULL, ("[ae, %d]: sc is NULL", __LINE__)); AE_LOCK(sc); mii = device_get_softc(sc->miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(mii_sc, &mii->mii_phys, mii_list) - mii_phy_reset(mii_sc); - } + LIST_FOREACH(mii_sc, &mii->mii_phys, mii_list) + mii_phy_reset(mii_sc); error = mii_mediachg(mii); AE_UNLOCK(sc); Modified: stable/7/sys/dev/age/if_age.c ============================================================================== --- stable/7/sys/dev/age/if_age.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/age/if_age.c Sun Sep 11 20:25:57 2011 (r225490) @@ -301,10 +301,8 @@ age_mediachange(struct ifnet *ifp) sc = ifp->if_softc; AGE_LOCK(sc); mii = device_get_softc(sc->age_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); AGE_UNLOCK(sc); Modified: stable/7/sys/dev/alc/if_alc.c ============================================================================== --- stable/7/sys/dev/alc/if_alc.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/alc/if_alc.c Sun Sep 11 20:25:57 2011 (r225490) @@ -365,10 +365,8 @@ alc_mediachange(struct ifnet *ifp) sc = ifp->if_softc; ALC_LOCK(sc); mii = device_get_softc(sc->alc_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); ALC_UNLOCK(sc); Modified: stable/7/sys/dev/ale/if_ale.c ============================================================================== --- stable/7/sys/dev/ale/if_ale.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/ale/if_ale.c Sun Sep 11 20:25:57 2011 (r225490) @@ -286,10 +286,8 @@ ale_mediachange(struct ifnet *ifp) sc = ifp->if_softc; ALE_LOCK(sc); mii = device_get_softc(sc->ale_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); ALE_UNLOCK(sc); Modified: stable/7/sys/dev/bce/if_bce.c ============================================================================== --- stable/7/sys/dev/bce/if_bce.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/bce/if_bce.c Sun Sep 11 20:25:57 2011 (r225490) @@ -5813,6 +5813,7 @@ bce_ifmedia_upd_locked(struct ifnet *ifp { struct bce_softc *sc = ifp->if_softc; struct mii_data *mii; + struct mii_softc *miisc; int error; DBENTER(BCE_VERBOSE_PHY); @@ -5825,12 +5826,8 @@ bce_ifmedia_upd_locked(struct ifnet *ifp /* Make sure the MII bus has been enumerated. */ if (mii) { sc->bce_link_up = FALSE; - if (mii->mii_instance) { - struct mii_softc *miisc; - - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); } Modified: stable/7/sys/dev/bfe/if_bfe.c ============================================================================== --- stable/7/sys/dev/bfe/if_bfe.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/bfe/if_bfe.c Sun Sep 11 20:25:57 2011 (r225490) @@ -1669,18 +1669,15 @@ bfe_ifmedia_upd(struct ifnet *ifp) { struct bfe_softc *sc; struct mii_data *mii; + struct mii_softc *miisc; int error; sc = ifp->if_softc; BFE_LOCK(sc); mii = device_get_softc(sc->bfe_miibus); - if (mii->mii_instance) { - struct mii_softc *miisc; - for (miisc = LIST_FIRST(&mii->mii_phys); miisc != NULL; - miisc = LIST_NEXT(miisc, mii_list)) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); BFE_UNLOCK(sc); Modified: stable/7/sys/dev/bge/if_bge.c ============================================================================== --- stable/7/sys/dev/bge/if_bge.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/bge/if_bge.c Sun Sep 11 20:25:57 2011 (r225490) @@ -4950,9 +4950,8 @@ bge_ifmedia_upd_locked(struct ifnet *ifp sc->bge_link_evt++; mii = device_get_softc(sc->bge_miibus); - if (mii->mii_instance) - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); mii_mediachg(mii); /* Modified: stable/7/sys/dev/dc/dcphy.c ============================================================================== --- stable/7/sys/dev/dc/dcphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/dc/dcphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -157,7 +157,7 @@ dcphy_attach(device_t dev) /* * Apparently, we can neither isolate nor do loopback. */ - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_NOMANPAUSE; /*dcphy_reset(sc);*/ dc_sc = mii->mii_ifp->if_softc; Modified: stable/7/sys/dev/dc/pnphy.c ============================================================================== --- stable/7/sys/dev/dc/pnphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/dc/pnphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -133,7 +133,7 @@ pnphy_attach(device_t dev) /* * Apparently, we can neither isolate nor do loopback. */ - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_NOMANPAUSE; sc->mii_capabilities = BMSR_100TXFDX | BMSR_100TXHDX | BMSR_10TFDX | BMSR_10THDX; Modified: stable/7/sys/dev/et/if_et.c ============================================================================== --- stable/7/sys/dev/et/if_et.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/et/if_et.c Sun Sep 11 20:25:57 2011 (r225490) @@ -515,13 +515,10 @@ et_ifmedia_upd_locked(struct ifnet *ifp) { struct et_softc *sc = ifp->if_softc; struct mii_data *mii = device_get_softc(sc->sc_miibus); + struct mii_softc *miisc; - if (mii->mii_instance != 0) { - struct mii_softc *miisc; - - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); mii_mediachg(mii); return (0); Modified: stable/7/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/7/sys/dev/fxp/if_fxp.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/fxp/if_fxp.c Sun Sep 11 20:25:57 2011 (r225490) @@ -2549,14 +2549,12 @@ fxp_ifmedia_upd(struct ifnet *ifp) { struct fxp_softc *sc = ifp->if_softc; struct mii_data *mii; + struct mii_softc *miisc; mii = device_get_softc(sc->miibus); FXP_LOCK(sc); - if (mii->mii_instance) { - struct mii_softc *miisc; - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); mii_mediachg(mii); FXP_UNLOCK(sc); return (0); Modified: stable/7/sys/dev/jme/if_jme.c ============================================================================== --- stable/7/sys/dev/jme/if_jme.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/jme/if_jme.c Sun Sep 11 20:25:57 2011 (r225490) @@ -318,10 +318,8 @@ jme_mediachange(struct ifnet *ifp) sc = ifp->if_softc; JME_LOCK(sc); mii = device_get_softc(sc->jme_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); JME_UNLOCK(sc); Modified: stable/7/sys/dev/lge/if_lge.c ============================================================================== --- stable/7/sys/dev/lge/if_lge.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/lge/if_lge.c Sun Sep 11 20:25:57 2011 (r225490) @@ -1404,18 +1404,15 @@ lge_ifmedia_upd_locked(ifp) { struct lge_softc *sc; struct mii_data *mii; + struct mii_softc *miisc; sc = ifp->if_softc; LGE_LOCK_ASSERT(sc); mii = device_get_softc(sc->lge_miibus); sc->lge_link = 0; - if (mii->mii_instance) { - struct mii_softc *miisc; - for (miisc = LIST_FIRST(&mii->mii_phys); miisc != NULL; - miisc = LIST_NEXT(miisc, mii_list)) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); mii_mediachg(mii); } Modified: stable/7/sys/dev/mii/acphy.c ============================================================================== --- stable/7/sys/dev/mii/acphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/acphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -138,6 +138,8 @@ acphy_attach(device_t dev) sc->mii_service = acphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + acphy_reset(sc); sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; @@ -245,7 +247,8 @@ acphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_10_T; if (diag & AC_DIAG_DUPLEX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; } else Modified: stable/7/sys/dev/mii/amphy.c ============================================================================== --- stable/7/sys/dev/mii/amphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/amphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -115,6 +115,8 @@ amphy_attach(device_t dev) sc->mii_service = amphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) #if 0 @@ -231,6 +233,8 @@ amphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_10_T|IFM_HDX; else if (par & DSCSR_10HDX) mii->mii_media_active |= IFM_10_T|IFM_HDX; + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= mii_phy_flowstatus(sc); } else mii->mii_media_active = ife->ifm_media; } Modified: stable/7/sys/dev/mii/atphy.c ============================================================================== --- stable/7/sys/dev/mii/atphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/atphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -119,6 +119,8 @@ atphy_attach(device_t dev) sc->mii_service = atphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + asc->mii_oui = MII_OUI(ma->mii_id1, ma->mii_id2); asc->mii_model = MII_MODEL(ma->mii_id2); asc->mii_rev = MII_REV(ma->mii_id2); @@ -318,12 +320,9 @@ static void atphy_reset(struct mii_softc *sc) { struct ifmedia_entry *ife = sc->mii_pdata->mii_media.ifm_cur; - struct atphy_softc *asc; uint32_t reg; int i; - asc = (struct atphy_softc *)sc; - /* Take PHY out of power down mode. */ PHY_WRITE(sc, 29, 0x29); PHY_WRITE(sc, 30, 0); Modified: stable/7/sys/dev/mii/brgphy.c ============================================================================== --- stable/7/sys/dev/mii/brgphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/brgphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -222,9 +222,6 @@ brgphy_attach(device_t dev) /* Handle any special cases based on the PHY ID */ switch (bsc->mii_oui) { - case MII_OUI_BROADCOM: - case MII_OUI_BROADCOM2: - break; case MII_OUI_xxBROADCOM: switch (bsc->mii_model) { case MII_MODEL_xxBROADCOM_BCM5706: @@ -257,11 +254,6 @@ brgphy_attach(device_t dev) break; } break; - case MII_OUI_xxBROADCOM_ALT2: - /* No special handling yet. */ - break; - default: - device_printf(dev, "Unrecognized OUI for PHY!\n"); } ifp = sc->mii_pdata->mii_ifp; @@ -400,8 +392,6 @@ brgphy_service(struct mii_softc *sc, str sc->mii_media_status != mii->mii_media_status || cmd == MII_MEDIACHG) { switch (bsc->mii_oui) { - case MII_OUI_BROADCOM: - break; case MII_OUI_xxBROADCOM: switch (bsc->mii_model) { case MII_MODEL_xxBROADCOM_BCM5400: @@ -419,8 +409,6 @@ brgphy_service(struct mii_softc *sc, str break; } break; - case MII_OUI_xxBROADCOM_ALT1: - break; } } mii_phy_update(sc, cmd); @@ -932,8 +920,6 @@ brgphy_reset(struct mii_softc *sc) /* Handle any PHY specific procedures following the reset. */ switch (bsc->mii_oui) { - case MII_OUI_BROADCOM: - break; case MII_OUI_xxBROADCOM: switch (bsc->mii_model) { case MII_MODEL_xxBROADCOM_BCM5400: @@ -951,9 +937,6 @@ brgphy_reset(struct mii_softc *sc) break; } break; - case MII_OUI_xxBROADCOM_ALT1: - case MII_OUI_xxBROADCOM_ALT2: - break; } ifp = sc->mii_pdata->mii_ifp; Modified: stable/7/sys/dev/mii/ciphy.c ============================================================================== --- stable/7/sys/dev/mii/ciphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/ciphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -122,7 +122,7 @@ ciphy_attach(device_t dev) sc->mii_service = ciphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; ciphy_reset(sc); Modified: stable/7/sys/dev/mii/e1000phy.c ============================================================================== --- stable/7/sys/dev/mii/e1000phy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/e1000phy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -91,7 +91,7 @@ DRIVER_MODULE(e1000phy, miibus, e1000phy static int e1000phy_service(struct mii_softc *, struct mii_data *, int); static void e1000phy_status(struct mii_softc *); static void e1000phy_reset(struct mii_softc *); -static int e1000phy_mii_phy_auto(struct e1000phy_softc *, int); +static int e1000phy_mii_phy_auto(struct mii_softc *, int); static const struct mii_phydesc e1000phys[] = { MII_PHY_DESC(MARVELL, E1000), @@ -313,7 +313,6 @@ static int e1000phy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) { struct ifmedia_entry *ife = mii->mii_media.ifm_cur; - struct e1000phy_softc *esc = (struct e1000phy_softc *)sc; uint16_t speed, gig; int reg; @@ -329,7 +328,7 @@ e1000phy_service(struct mii_softc *sc, s break; if (IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO) { - e1000phy_mii_phy_auto(esc, ife->ifm_media); + e1000phy_mii_phy_auto(sc, ife->ifm_media); break; } @@ -418,7 +417,7 @@ done: sc->mii_ticks = 0; e1000phy_reset(sc); - e1000phy_mii_phy_auto(esc, ife->ifm_media); + e1000phy_mii_phy_auto(sc, ife->ifm_media); break; } @@ -494,12 +493,10 @@ e1000phy_status(struct mii_softc *sc) } static int -e1000phy_mii_phy_auto(struct e1000phy_softc *esc, int media) +e1000phy_mii_phy_auto(struct mii_softc *sc, int media) { - struct mii_softc *sc; uint16_t reg; - sc = &esc->mii_sc; if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { reg = PHY_READ(sc, E1000_AR); reg &= ~(E1000_AR_PAUSE | E1000_AR_ASM_DIR); Modified: stable/7/sys/dev/mii/exphy.c ============================================================================== --- stable/7/sys/dev/mii/exphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/exphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -147,7 +147,7 @@ exphy_attach(device_t dev) /* * The 3Com PHY can never be isolated. */ - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) Modified: stable/7/sys/dev/mii/icsphy.c ============================================================================== --- stable/7/sys/dev/mii/icsphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/icsphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -147,7 +147,7 @@ icsphy_attach(device_t dev) sc->mii_service = icsphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; ifmedia_add(&mii->mii_media, IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst), @@ -240,7 +240,8 @@ icsphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_10_T; if (qpr & QPR_FDX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; } else Modified: stable/7/sys/dev/mii/inphy.c ============================================================================== --- stable/7/sys/dev/mii/inphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/inphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -114,7 +114,7 @@ inphy_attach(device_t dev) sc->mii_service = inphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOMANPAUSE; + sc->mii_flags |= MIIF_NOMANPAUSE | MIIF_NOMANPAUSE; ifmedia_add(&mii->mii_media, IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst), Modified: stable/7/sys/dev/mii/jmphy.c ============================================================================== --- stable/7/sys/dev/mii/jmphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/jmphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -269,12 +269,9 @@ jmphy_status(struct mii_softc *sc) static void jmphy_reset(struct mii_softc *sc) { - struct jmphy_softc *jsc; uint16_t t2cr, val; int i; - jsc = (struct jmphy_softc *)sc; - /* Disable sleep mode. */ PHY_WRITE(sc, JMPHY_TMCTL, PHY_READ(sc, JMPHY_TMCTL) & ~JMPHY_TMCTL_SLEEP_ENB); Modified: stable/7/sys/dev/mii/lxtphy.c ============================================================================== --- stable/7/sys/dev/mii/lxtphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/lxtphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -106,6 +106,7 @@ DRIVER_MODULE(lxtphy, miibus, lxtphy_dri static int lxtphy_service(struct mii_softc *, struct mii_data *, int); static void lxtphy_status(struct mii_softc *); +static void lxtphy_reset(struct mii_softc *); static void lxtphy_set_tp(struct mii_softc *); static void lxtphy_set_fx(struct mii_softc *); @@ -140,7 +141,9 @@ lxtphy_attach(device_t dev) sc->mii_service = lxtphy_service; sc->mii_pdata = mii; - mii_phy_reset(sc); + sc->mii_flags |= MIIF_NOMANPAUSE; + + lxtphy_reset(sc); sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; device_printf(dev, " "); @@ -248,6 +251,15 @@ lxtphy_status(struct mii_softc *sc) } static void +lxtphy_reset(struct mii_softc *sc) +{ + + mii_phy_reset(sc); + PHY_WRITE(sc, MII_LXTPHY_IER, + PHY_READ(sc, MII_LXTPHY_IER) & ~IER_INTEN); +} + +static void lxtphy_set_tp(struct mii_softc *sc) { int cfg; Modified: stable/7/sys/dev/mii/mii.c ============================================================================== --- stable/7/sys/dev/mii/mii.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/mii.c Sun Sep 11 20:25:57 2011 (r225490) @@ -44,7 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include @@ -87,9 +87,9 @@ static device_method_t miibus_methods[] /* MII interface */ DEVMETHOD(miibus_readreg, miibus_readreg), DEVMETHOD(miibus_writereg, miibus_writereg), - DEVMETHOD(miibus_statchg, miibus_statchg), - DEVMETHOD(miibus_linkchg, miibus_linkchg), - DEVMETHOD(miibus_mediainit, miibus_mediainit), + DEVMETHOD(miibus_statchg, miibus_statchg), + DEVMETHOD(miibus_linkchg, miibus_linkchg), + DEVMETHOD(miibus_mediainit, miibus_mediainit), { 0, 0 } }; @@ -270,7 +270,7 @@ miibus_linkchg(device_t dev) MIIBUS_LINKCHG(parent); mii = device_get_softc(dev); - + if (mii->mii_media_status & IFM_AVALID) { if (mii->mii_media_status & IFM_ACTIVE) link_state = LINK_STATE_UP; @@ -370,7 +370,7 @@ mii_attach(device_t dev, device_t *miibu * has been allocated. */ ma.mii_data = device_get_softc(*miibus); - } + } ma.mii_capmask = capmask; @@ -401,7 +401,7 @@ mii_attach(device_t dev, device_t *miibu * Check to see if there is a PHY at this address. Note, * many braindead PHYs report 0/0 in their ID registers, * so we test for media in the BMSR. - */ + */ bmsr = MIIBUS_READREG(dev, ma.mii_phyno, MII_BMSR); if (bmsr == 0 || bmsr == 0xffff || (bmsr & (BMSR_EXTSTAT | BMSR_MEDIAMASK)) == 0) { @@ -420,7 +420,7 @@ mii_attach(device_t dev, device_t *miibu * Extract the IDs. Braindead PHYs will be handled by * the `ukphy' driver, as we have no ID information to * match on. - */ + */ ma.mii_id1 = MIIBUS_READREG(dev, ma.mii_phyno, MII_PHYIDR1); ma.mii_id2 = MIIBUS_READREG(dev, ma.mii_phyno, MII_PHYIDR2); Modified: stable/7/sys/dev/mii/mii.h ============================================================================== --- stable/7/sys/dev/mii/mii.h Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/mii.h Sun Sep 11 20:25:57 2011 (r225490) @@ -89,15 +89,9 @@ * info available in register 15, but 802.3 section 22.2.4.3 also * states that that all 1000 Mb/s capable PHYs will set this bit to 1. */ -#if 0 -#define BMSR_MEDIAMASK (BMSR_100T4|BMSR_100TXFDX|BMSR_100TXHDX|BMSR_10TFDX| \ - BMSR_10THDX|BMSR_ANEG) -#else -/* NetBSD uses: */ #define BMSR_MEDIAMASK (BMSR_100T4|BMSR_100TXFDX|BMSR_100TXHDX| \ BMSR_10TFDX|BMSR_10THDX|BMSR_100T2FDX|BMSR_100T2HDX) -#endif /* * Convert BMSR media capabilities to ANAR bits for autonegotiation. Modified: stable/7/sys/dev/mii/mii_physubr.c ============================================================================== --- stable/7/sys/dev/mii/mii_physubr.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/mii_physubr.c Sun Sep 11 20:25:57 2011 (r225490) @@ -428,9 +428,11 @@ mii_phy_add_media(struct mii_softc *sc) #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) #define PRINT(s) printf("%s%s", sep, s); sep = ", " - if ((sc->mii_flags & MIIF_NOISOLATE) == 0) + if ((sc->mii_flags & MIIF_NOISOLATE) == 0) { ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst), MII_MEDIA_NONE); + PRINT("none"); + } /* * There are different interpretations for the bits in Modified: stable/7/sys/dev/mii/miivar.h ============================================================================== --- stable/7/sys/dev/mii/miivar.h Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/miivar.h Sun Sep 11 20:25:57 2011 (r225490) @@ -38,7 +38,7 @@ #include /* - * Media Independent Interface configuration defintions. + * Media Independent Interface data structure defintions */ struct mii_softc; @@ -65,13 +65,13 @@ struct mii_data { * request is made. */ LIST_HEAD(mii_listhead, mii_softc) mii_phys; - int mii_instance; + u_int mii_instance; /* * PHY driver fills this in with active media status. */ - int mii_media_status; - int mii_media_active; + u_int mii_media_status; + u_int mii_media_active; /* * Calls from MII layer into network interface driver. @@ -105,19 +105,19 @@ struct mii_softc { LIST_ENTRY(mii_softc) mii_list; /* entry on parent's PHY list */ - int mii_phy; /* our MII address */ - int mii_inst; /* instance for ifmedia */ + u_int mii_phy; /* our MII address */ + u_int mii_inst; /* instance for ifmedia */ mii_downcall_t mii_service; /* our downcall */ struct mii_data *mii_pdata; /* pointer to parent's mii_data */ - int mii_flags; /* misc. flags; see below */ - int mii_capabilities; /* capabilities from BMSR */ - int mii_extcapabilities; /* extended capabilities */ - int mii_ticks; /* MII_TICK counter */ - int mii_anegticks; /* ticks before retrying aneg */ - int mii_media_active; /* last active media */ - int mii_media_status; /* last active status */ + u_int mii_flags; /* misc. flags; see below */ + u_int mii_capabilities; /* capabilities from BMSR */ + u_int mii_extcapabilities; /* extended capabilities */ + u_int mii_ticks; /* MII_TICK counter */ + u_int mii_anegticks; /* ticks before retrying aneg */ + u_int mii_media_active; /* last active media */ + u_int mii_media_status; /* last active status */ }; typedef struct mii_softc mii_softc_t; @@ -161,10 +161,11 @@ typedef struct mii_softc mii_softc_t; */ struct mii_attach_args { struct mii_data *mii_data; /* pointer to parent data */ - int mii_phyno; /* MII address */ - int mii_id1; /* PHY ID register 1 */ - int mii_id2; /* PHY ID register 2 */ - int mii_capmask; /* capability mask from BMSR */ + u_int mii_phyno; /* MII address */ + u_int mii_offset; /* first PHY, second PHY, etc. */ + uint32_t mii_id1; /* PHY ID register 1 */ + uint32_t mii_id2; /* PHY ID register 2 */ + u_int mii_capmask; /* capability mask for BMSR */ }; typedef struct mii_attach_args mii_attach_args_t; @@ -172,8 +173,8 @@ typedef struct mii_attach_args mii_attac * Used to match a PHY. */ struct mii_phydesc { - u_int32_t mpd_oui; /* the PHY's OUI */ - u_int32_t mpd_model; /* the PHY's model */ + uint32_t mpd_oui; /* the PHY's OUI */ + uint32_t mpd_model; /* the PHY's model */ const char *mpd_name; /* the PHY's name */ }; #define MII_PHY_DESC(a, b) { MII_OUI_ ## a, MII_MODEL_ ## a ## _ ## b, \ @@ -184,9 +185,9 @@ struct mii_phydesc { * An array of these structures map MII media types to BMCR/ANAR settings. */ struct mii_media { - int mm_bmcr; /* BMCR settings for this media */ - int mm_anar; /* ANAR settings for this media */ - int mm_gtcr; /* 100base-T2 or 1000base-T CR */ + u_int mm_bmcr; /* BMCR settings for this media */ + u_int mm_anar; /* ANAR settings for this media */ + u_int mm_gtcr; /* 100base-T2 or 1000base-T CR */ }; #define MII_MEDIA_NONE 0 @@ -219,7 +220,7 @@ enum miibus_device_ivars { #define MIIBUS_ACCESSOR(var, ivar, type) \ __BUS_ACCESSOR(miibus, var, MIIBUS, ivar, type) -MIIBUS_ACCESSOR(flags, FLAGS, int) +MIIBUS_ACCESSOR(flags, FLAGS, u_int) extern devclass_t miibus_devclass; extern driver_t miibus_driver; Modified: stable/7/sys/dev/mii/mlphy.c ============================================================================== --- stable/7/sys/dev/mii/mlphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/mlphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -154,6 +154,8 @@ mlphy_attach(dev) sc->mii_service = mlphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst), Modified: stable/7/sys/dev/mii/nsphy.c ============================================================================== --- stable/7/sys/dev/mii/nsphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/nsphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -139,6 +139,8 @@ nsphy_attach(device_t dev) sc->mii_service = nsphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + nic = device_get_name(device_get_parent(sc->mii_dev)); /* * Am79C971 wedge when isolating all of their external PHYs. @@ -296,6 +298,9 @@ nsphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_10_T|IFM_HDX; else mii->mii_media_active |= IFM_NONE; + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= + mii_phy_flowstatus(sc); return; } Modified: stable/7/sys/dev/mii/nsphyter.c ============================================================================== --- stable/7/sys/dev/mii/nsphyter.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/nsphyter.c Sun Sep 11 20:25:57 2011 (r225490) @@ -110,7 +110,7 @@ static int nsphyter_service(struct mii_s static void nsphyter_status(struct mii_softc *); static void nsphyter_reset(struct mii_softc *); -static const struct mii_phydesc nsphys[] = { +static const struct mii_phydesc nsphyters[] = { MII_PHY_DESC(NATSEMI, DP83815), MII_PHY_DESC(NATSEMI, DP83843), MII_PHY_DESC(NATSEMI, DP83847), @@ -121,7 +121,7 @@ static int nsphyter_probe(device_t dev) { - return (mii_phy_dev_probe(dev, nsphys, BUS_PROBE_DEFAULT)); + return (mii_phy_dev_probe(dev, nsphyters, BUS_PROBE_DEFAULT)); } static int Modified: stable/7/sys/dev/mii/pnaphy.c ============================================================================== --- stable/7/sys/dev/mii/pnaphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/pnaphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -115,7 +115,8 @@ pnaphy_attach(device_t dev) sc->mii_service = pnaphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_IS_HPNA; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_IS_HPNA | + MIIF_NOMANPAUSE; mii_phy_reset(sc); Modified: stable/7/sys/dev/mii/qsphy.c ============================================================================== --- stable/7/sys/dev/mii/qsphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/qsphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -139,6 +139,8 @@ qsphy_attach(device_t dev) sc->mii_service = qsphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + qsphy_reset(sc); sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; @@ -238,6 +240,8 @@ qsphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_NONE; break; } + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= mii_phy_flowstatus(sc); } static void Modified: stable/7/sys/dev/mii/rdcphy.c ============================================================================== --- stable/7/sys/dev/mii/rdcphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/rdcphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -115,6 +115,8 @@ rdcphy_attach(device_t dev) sc->mii_service = rdcphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + rsc->mii_model = MII_MODEL(ma->mii_id2); if (bootverbose) device_printf(dev, "OUI 0x%06x, model 0x%04x, rev. %d\n", Modified: stable/7/sys/dev/mii/rlphy.c ============================================================================== --- stable/7/sys/dev/mii/rlphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/rlphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -150,7 +150,7 @@ rlphy_attach(device_t dev) /* * The RealTek PHY can never be isolated. */ - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) @@ -259,6 +259,9 @@ rlphy_status(struct mii_softc *phy) mii->mii_media_active |= IFM_10_T|IFM_HDX; else mii->mii_media_active |= IFM_NONE; + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= + mii_phy_flowstatus(phy); return; } /* @@ -279,10 +282,10 @@ rlphy_status(struct mii_softc *phy) * To determine the link speed, we have to do one * of two things: * - * - If this is a standalone RealTek RTL8201(L) PHY, - * we can determine the link speed by testing bit 0 - * in the magic, vendor-specific register at offset - * 0x19. + * - If this is a standalone RealTek RTL8201(L) or + * workalike PHY, we can determine the link speed by + * testing bit 0 in the magic, vendor-specific register + * at offset 0x19. * * - If this is a RealTek MAC with integrated PHY, we * can test the 'SPEED10' bit of the MAC's media status Modified: stable/7/sys/dev/mii/rlswitch.c ============================================================================== --- stable/7/sys/dev/mii/rlswitch.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/rlswitch.c Sun Sep 11 20:25:57 2011 (r225490) @@ -129,7 +129,7 @@ rlswitch_attach(device_t dev) /* * We handle all pseudo PHYs in a single instance. */ - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) @@ -390,7 +390,8 @@ rlswitch_status(struct mii_softc *phy) mii->mii_media_status = IFM_AVALID; mii->mii_media_active = IFM_ETHER; mii->mii_media_status |= IFM_ACTIVE; - mii->mii_media_active |= IFM_100_TX|IFM_FDX; + mii->mii_media_active |= + IFM_100_TX | IFM_FDX | mii_phy_flowstatus(phy); } #ifdef RL_DEBUG Modified: stable/7/sys/dev/mii/ruephy.c ============================================================================== --- stable/7/sys/dev/mii/ruephy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/ruephy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -120,7 +120,7 @@ ruephy_attach(device_t dev) /* * Apparently, we can neither isolate nor do loopback on this PHY. */ - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_NOMANPAUSE; ruephy_reset(sc); @@ -244,7 +244,8 @@ ruephy_status(struct mii_softc *phy) mii->mii_media_active |= IFM_10_T; if (msr & RUEPHY_MSR_DUPLEX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(phy); else mii->mii_media_active |= IFM_HDX; } else Modified: stable/7/sys/dev/mii/tdkphy.c ============================================================================== --- stable/7/sys/dev/mii/tdkphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/tdkphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -125,7 +125,7 @@ tdkphy_attach(device_t dev) /* * Apparently, we can't do loopback on this PHY. */ - sc->mii_flags |= MIIF_NOLOOP; + sc->mii_flags |= MIIF_NOLOOP | MIIF_NOMANPAUSE; mii_phy_reset(sc); @@ -247,6 +247,8 @@ tdkphy_status(struct mii_softc *phy) mii->mii_media_active |= IFM_10_T; } } + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= mii_phy_flowstatus(phy); } else mii->mii_media_active = ife->ifm_media; } Modified: stable/7/sys/dev/mii/tlphy.c ============================================================================== --- stable/7/sys/dev/mii/tlphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/tlphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -153,6 +153,8 @@ tlphy_attach(device_t dev) sc->sc_mii.mii_service = tlphy_service; sc->sc_mii.mii_pdata = mii; + sc->sc_mii.mii_flags |= MIIF_NOMANPAUSE; + /* * Note that if we're on a device that also supports 100baseTX, * we are not going to want to use the built-in 10baseT port, @@ -338,7 +340,8 @@ tlphy_status(struct tlphy_softc *sc) * just have to report what's in the BMCR. */ if (bmcr & BMCR_FDX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(&sc->sc_mii); else mii->mii_media_active |= IFM_HDX; mii->mii_media_active |= IFM_10_T; Modified: stable/7/sys/dev/mii/truephy.c ============================================================================== --- stable/7/sys/dev/mii/truephy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/truephy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -157,7 +157,7 @@ truephy_attach(device_t dev) sc->mii_service = truephy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_NOMANPAUSE; if (MII_MODEL(ma->mii_id2) == MII_MODEL_AGERE_ET1011) mii_phy_reset(sc); @@ -210,7 +210,7 @@ truephy_service(struct mii_softc *sc, st if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) { PHY_WRITE(sc, MII_BMCR, - bmcr | BMCR_AUTOEN | BMCR_STARTNEG); + bmcr | BMCR_AUTOEN | BMCR_STARTNEG); } } break; @@ -326,7 +326,7 @@ truephy_status(struct mii_softc *sc) } if (sr & TRUEPHY_SR_FDX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; } Modified: stable/7/sys/dev/mii/xmphy.c ============================================================================== --- stable/7/sys/dev/mii/xmphy.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/mii/xmphy.c Sun Sep 11 20:25:57 2011 (r225490) @@ -116,7 +116,7 @@ xmphy_attach(device_t dev) sc->mii_service = xmphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; sc->mii_anegticks = MII_ANEGTICKS; mii_phy_reset(sc); @@ -134,6 +134,7 @@ xmphy_attach(device_t dev) PRINT("auto"); printf("\n"); + #undef ADD #undef PRINT @@ -247,7 +248,6 @@ xmphy_status(struct mii_softc *sc) if (bmcr & XMPHY_BMCR_LOOP) mii->mii_media_active |= IFM_LOOP; - if (bmcr & XMPHY_BMCR_AUTOEN) { if ((bmsr & XMPHY_BMSR_ACOMP) == 0) { if (bmsr & XMPHY_BMSR_LINK) { Modified: stable/7/sys/dev/nfe/if_nfe.c ============================================================================== --- stable/7/sys/dev/nfe/if_nfe.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/nfe/if_nfe.c Sun Sep 11 20:25:57 2011 (r225490) @@ -3286,14 +3286,10 @@ nfe_set_linkspeed(struct nfe_softc *sc) break; } } - phyno = 0; - if (mii->mii_instance) { - miisc = LIST_FIRST(&mii->mii_phys); - phyno = miisc->mii_phy; - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } else - return; + miisc = LIST_FIRST(&mii->mii_phys); + phyno = miisc->mii_phy; + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); nfe_miibus_writereg(sc->nfe_dev, phyno, MII_100T2CR, 0); nfe_miibus_writereg(sc->nfe_dev, phyno, MII_ANAR, ANAR_TX_FD | ANAR_TX | ANAR_10_FD | ANAR_10 | ANAR_CSMA); Modified: stable/7/sys/dev/nge/if_nge.c ============================================================================== --- stable/7/sys/dev/nge/if_nge.c Sun Sep 11 20:17:44 2011 (r225489) +++ stable/7/sys/dev/nge/if_nge.c Sun Sep 11 20:25:57 2011 (r225490) @@ -2391,10 +2391,8 @@ nge_mediachange(struct ifnet *ifp) sc = ifp->if_softc; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 20:38:35 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B5D3106566C; Sun, 11 Sep 2011 20:38:35 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 06B668FC16; Sun, 11 Sep 2011 20:38:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8BKcZin095035; Sun, 11 Sep 2011 20:38:35 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8BKcYVi094991; Sun, 11 Sep 2011 20:38:34 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201109112038.p8BKcYVi094991@svn.freebsd.org> From: Marius Strobl Date: Sun, 11 Sep 2011 20:38:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225492 - in stable/8/sys: dev/ae dev/age dev/alc dev/ale dev/bce dev/bfe dev/bge dev/dc dev/ed dev/et dev/fxp dev/jme dev/lge dev/mii dev/nfe dev/nge dev/nve dev/sf dev/sge dev/sis dev... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 20:38:35 -0000 Author: marius Date: Sun Sep 11 20:38:33 2011 New Revision: 225492 URL: http://svn.freebsd.org/changeset/base/225492 Log: MFC: r221407 (partial) - Let mii_phy_add_media() also announce the support of IFM_NONE. - Add a PHY-specific reset routine is for lxtphy(4) which disables MII interrupts. - Remove redundant checks in NIC drivers for mii->mii_instance not being zero before calling the reset routines because as soon as one PHY driver attaches mii->mii_instance is incremented and we hardly can end up in their media change callbacks etc if no PHY driver has attached as mii_attach() would have failed in that case and not attach a miibus(4) instance. - Convert the mebers of the MII data structure to unsigned where appropriate. This is partly inspired by NetBSD/OpenBSD. - Add MIIF_NOMANPAUSE and mii_phy_flowstatus() calls to drivers that weren't explicitly converted to support flow control before. It's unclear whether flow control actually works with these but typically it should and their net behavior should be more correct with these changes in place than without if the MAC driver sets MIIF_DOPAUSE. Obtained from: NetBSD (partially) Modified: stable/8/sys/dev/ae/if_ae.c stable/8/sys/dev/age/if_age.c stable/8/sys/dev/alc/if_alc.c stable/8/sys/dev/ale/if_ale.c stable/8/sys/dev/bce/if_bce.c stable/8/sys/dev/bfe/if_bfe.c stable/8/sys/dev/bge/if_bge.c stable/8/sys/dev/dc/dcphy.c stable/8/sys/dev/dc/pnphy.c stable/8/sys/dev/ed/if_ed_pccard.c stable/8/sys/dev/et/if_et.c stable/8/sys/dev/fxp/if_fxp.c stable/8/sys/dev/jme/if_jme.c stable/8/sys/dev/lge/if_lge.c stable/8/sys/dev/mii/acphy.c stable/8/sys/dev/mii/amphy.c stable/8/sys/dev/mii/atphy.c stable/8/sys/dev/mii/axphy.c stable/8/sys/dev/mii/brgphy.c stable/8/sys/dev/mii/ciphy.c stable/8/sys/dev/mii/e1000phy.c stable/8/sys/dev/mii/exphy.c stable/8/sys/dev/mii/icsphy.c stable/8/sys/dev/mii/inphy.c stable/8/sys/dev/mii/jmphy.c stable/8/sys/dev/mii/lxtphy.c stable/8/sys/dev/mii/mii.c stable/8/sys/dev/mii/mii.h stable/8/sys/dev/mii/mii_physubr.c stable/8/sys/dev/mii/miivar.h stable/8/sys/dev/mii/mlphy.c stable/8/sys/dev/mii/nsphy.c stable/8/sys/dev/mii/nsphyter.c stable/8/sys/dev/mii/pnaphy.c stable/8/sys/dev/mii/qsphy.c stable/8/sys/dev/mii/rdcphy.c stable/8/sys/dev/mii/rlphy.c stable/8/sys/dev/mii/rlswitch.c stable/8/sys/dev/mii/ruephy.c stable/8/sys/dev/mii/smcphy.c stable/8/sys/dev/mii/tdkphy.c stable/8/sys/dev/mii/tlphy.c stable/8/sys/dev/mii/truephy.c stable/8/sys/dev/mii/xmphy.c stable/8/sys/dev/nfe/if_nfe.c stable/8/sys/dev/nge/if_nge.c stable/8/sys/dev/nve/if_nve.c stable/8/sys/dev/sf/if_sf.c stable/8/sys/dev/sge/if_sge.c stable/8/sys/dev/sis/if_sis.c stable/8/sys/dev/ste/if_ste.c stable/8/sys/dev/tx/if_tx.c stable/8/sys/dev/usb/net/if_aue.c stable/8/sys/dev/usb/net/if_axe.c stable/8/sys/dev/usb/net/if_rue.c stable/8/sys/dev/usb/net/if_udav.c stable/8/sys/dev/vr/if_vr.c stable/8/sys/dev/vte/if_vte.c stable/8/sys/dev/wb/if_wb.c stable/8/sys/mips/atheros/if_arge.c stable/8/sys/mips/cavium/octe/octe.c stable/8/sys/mips/idt/if_kr.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/ae/if_ae.c ============================================================================== --- stable/8/sys/dev/ae/if_ae.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/ae/if_ae.c Sun Sep 11 20:38:33 2011 (r225492) @@ -904,10 +904,8 @@ ae_mediachange(struct ifnet *ifp) KASSERT(sc != NULL, ("[ae, %d]: sc is NULL", __LINE__)); AE_LOCK(sc); mii = device_get_softc(sc->miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(mii_sc, &mii->mii_phys, mii_list) - mii_phy_reset(mii_sc); - } + LIST_FOREACH(mii_sc, &mii->mii_phys, mii_list) + mii_phy_reset(mii_sc); error = mii_mediachg(mii); AE_UNLOCK(sc); Modified: stable/8/sys/dev/age/if_age.c ============================================================================== --- stable/8/sys/dev/age/if_age.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/age/if_age.c Sun Sep 11 20:38:33 2011 (r225492) @@ -301,10 +301,8 @@ age_mediachange(struct ifnet *ifp) sc = ifp->if_softc; AGE_LOCK(sc); mii = device_get_softc(sc->age_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); AGE_UNLOCK(sc); Modified: stable/8/sys/dev/alc/if_alc.c ============================================================================== --- stable/8/sys/dev/alc/if_alc.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/alc/if_alc.c Sun Sep 11 20:38:33 2011 (r225492) @@ -365,10 +365,8 @@ alc_mediachange(struct ifnet *ifp) sc = ifp->if_softc; ALC_LOCK(sc); mii = device_get_softc(sc->alc_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); ALC_UNLOCK(sc); Modified: stable/8/sys/dev/ale/if_ale.c ============================================================================== --- stable/8/sys/dev/ale/if_ale.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/ale/if_ale.c Sun Sep 11 20:38:33 2011 (r225492) @@ -286,10 +286,8 @@ ale_mediachange(struct ifnet *ifp) sc = ifp->if_softc; ALE_LOCK(sc); mii = device_get_softc(sc->ale_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); ALE_UNLOCK(sc); Modified: stable/8/sys/dev/bce/if_bce.c ============================================================================== --- stable/8/sys/dev/bce/if_bce.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/bce/if_bce.c Sun Sep 11 20:38:33 2011 (r225492) @@ -5813,6 +5813,7 @@ bce_ifmedia_upd_locked(struct ifnet *ifp { struct bce_softc *sc = ifp->if_softc; struct mii_data *mii; + struct mii_softc *miisc; int error; DBENTER(BCE_VERBOSE_PHY); @@ -5825,12 +5826,8 @@ bce_ifmedia_upd_locked(struct ifnet *ifp /* Make sure the MII bus has been enumerated. */ if (mii) { sc->bce_link_up = FALSE; - if (mii->mii_instance) { - struct mii_softc *miisc; - - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); } Modified: stable/8/sys/dev/bfe/if_bfe.c ============================================================================== --- stable/8/sys/dev/bfe/if_bfe.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/bfe/if_bfe.c Sun Sep 11 20:38:33 2011 (r225492) @@ -1736,18 +1736,15 @@ bfe_ifmedia_upd(struct ifnet *ifp) { struct bfe_softc *sc; struct mii_data *mii; + struct mii_softc *miisc; int error; sc = ifp->if_softc; BFE_LOCK(sc); mii = device_get_softc(sc->bfe_miibus); - if (mii->mii_instance) { - struct mii_softc *miisc; - for (miisc = LIST_FIRST(&mii->mii_phys); miisc != NULL; - miisc = LIST_NEXT(miisc, mii_list)) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); BFE_UNLOCK(sc); Modified: stable/8/sys/dev/bge/if_bge.c ============================================================================== --- stable/8/sys/dev/bge/if_bge.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/bge/if_bge.c Sun Sep 11 20:38:33 2011 (r225492) @@ -4954,9 +4954,8 @@ bge_ifmedia_upd_locked(struct ifnet *ifp sc->bge_link_evt++; mii = device_get_softc(sc->bge_miibus); - if (mii->mii_instance) - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); mii_mediachg(mii); /* Modified: stable/8/sys/dev/dc/dcphy.c ============================================================================== --- stable/8/sys/dev/dc/dcphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/dc/dcphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -158,7 +158,7 @@ dcphy_attach(device_t dev) /* * Apparently, we can neither isolate nor do loopback. */ - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_NOMANPAUSE; /*dcphy_reset(sc);*/ dc_sc = mii->mii_ifp->if_softc; Modified: stable/8/sys/dev/dc/pnphy.c ============================================================================== --- stable/8/sys/dev/dc/pnphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/dc/pnphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -133,7 +133,7 @@ pnphy_attach(device_t dev) /* * Apparently, we can neither isolate nor do loopback. */ - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_NOMANPAUSE; sc->mii_capabilities = BMSR_100TXFDX | BMSR_100TXHDX | BMSR_10TFDX | BMSR_10THDX; Modified: stable/8/sys/dev/ed/if_ed_pccard.c ============================================================================== --- stable/8/sys/dev/ed/if_ed_pccard.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/ed/if_ed_pccard.c Sun Sep 11 20:38:33 2011 (r225492) @@ -401,17 +401,9 @@ ed_pccard_kick_phy(struct ed_softc *sc) struct mii_softc *miisc; struct mii_data *mii; - /* - * Many of the PHYs that wind up on PC Cards are weird in - * this way. Generally, we don't need to worry so much about - * the Isolation protocol since there's only one PHY in - * these designs, so this workaround is reasonable. - */ mii = device_get_softc(sc->miibus); - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) { - miisc->mii_flags |= MIIF_FORCEANEG; + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) mii_phy_reset(miisc); - } return (mii_mediachg(mii)); } @@ -582,13 +574,13 @@ ed_pccard_attach(device_t dev) ed_pccard_dl100xx_mii_reset(sc); (void)mii_attach(dev, &sc->miibus, sc->ifp, ed_ifmedia_upd, ed_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY, - MII_OFFSET_ANY, 0); + MII_OFFSET_ANY, MIIF_FORCEANEG); } else if (sc->chip_type == ED_CHIP_TYPE_AX88190 || sc->chip_type == ED_CHIP_TYPE_AX88790 || sc->chip_type == ED_CHIP_TYPE_TC5299J) { error = mii_attach(dev, &sc->miibus, sc->ifp, ed_ifmedia_upd, ed_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY, - MII_OFFSET_ANY, 0); + MII_OFFSET_ANY, MIIF_FORCEANEG); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); goto bad; Modified: stable/8/sys/dev/et/if_et.c ============================================================================== --- stable/8/sys/dev/et/if_et.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/et/if_et.c Sun Sep 11 20:38:33 2011 (r225492) @@ -515,13 +515,10 @@ et_ifmedia_upd_locked(struct ifnet *ifp) { struct et_softc *sc = ifp->if_softc; struct mii_data *mii = device_get_softc(sc->sc_miibus); + struct mii_softc *miisc; - if (mii->mii_instance != 0) { - struct mii_softc *miisc; - - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); mii_mediachg(mii); return (0); Modified: stable/8/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/8/sys/dev/fxp/if_fxp.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/fxp/if_fxp.c Sun Sep 11 20:38:33 2011 (r225492) @@ -2555,14 +2555,12 @@ fxp_ifmedia_upd(struct ifnet *ifp) { struct fxp_softc *sc = ifp->if_softc; struct mii_data *mii; + struct mii_softc *miisc; mii = device_get_softc(sc->miibus); FXP_LOCK(sc); - if (mii->mii_instance) { - struct mii_softc *miisc; - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); mii_mediachg(mii); FXP_UNLOCK(sc); return (0); Modified: stable/8/sys/dev/jme/if_jme.c ============================================================================== --- stable/8/sys/dev/jme/if_jme.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/jme/if_jme.c Sun Sep 11 20:38:33 2011 (r225492) @@ -318,10 +318,8 @@ jme_mediachange(struct ifnet *ifp) sc = ifp->if_softc; JME_LOCK(sc); mii = device_get_softc(sc->jme_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); error = mii_mediachg(mii); JME_UNLOCK(sc); Modified: stable/8/sys/dev/lge/if_lge.c ============================================================================== --- stable/8/sys/dev/lge/if_lge.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/lge/if_lge.c Sun Sep 11 20:38:33 2011 (r225492) @@ -1401,18 +1401,15 @@ lge_ifmedia_upd_locked(ifp) { struct lge_softc *sc; struct mii_data *mii; + struct mii_softc *miisc; sc = ifp->if_softc; LGE_LOCK_ASSERT(sc); mii = device_get_softc(sc->lge_miibus); sc->lge_link = 0; - if (mii->mii_instance) { - struct mii_softc *miisc; - for (miisc = LIST_FIRST(&mii->mii_phys); miisc != NULL; - miisc = LIST_NEXT(miisc, mii_list)) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); mii_mediachg(mii); } Modified: stable/8/sys/dev/mii/acphy.c ============================================================================== --- stable/8/sys/dev/mii/acphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/acphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -138,6 +138,8 @@ acphy_attach(device_t dev) sc->mii_service = acphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + acphy_reset(sc); sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; @@ -245,7 +247,8 @@ acphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_10_T; if (diag & AC_DIAG_DUPLEX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; } else Modified: stable/8/sys/dev/mii/amphy.c ============================================================================== --- stable/8/sys/dev/mii/amphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/amphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -115,6 +115,8 @@ amphy_attach(device_t dev) sc->mii_service = amphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) #if 0 @@ -231,6 +233,8 @@ amphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_10_T|IFM_HDX; else if (par & DSCSR_10HDX) mii->mii_media_active |= IFM_10_T|IFM_HDX; + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= mii_phy_flowstatus(sc); } else mii->mii_media_active = ife->ifm_media; } Modified: stable/8/sys/dev/mii/atphy.c ============================================================================== --- stable/8/sys/dev/mii/atphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/atphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -119,6 +119,8 @@ atphy_attach(device_t dev) sc->mii_service = atphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + asc->mii_oui = MII_OUI(ma->mii_id1, ma->mii_id2); asc->mii_model = MII_MODEL(ma->mii_id2); asc->mii_rev = MII_REV(ma->mii_id2); @@ -318,12 +320,9 @@ static void atphy_reset(struct mii_softc *sc) { struct ifmedia_entry *ife = sc->mii_pdata->mii_media.ifm_cur; - struct atphy_softc *asc; uint32_t reg; int i; - asc = (struct atphy_softc *)sc; - /* Take PHY out of power down mode. */ PHY_WRITE(sc, 29, 0x29); PHY_WRITE(sc, 30, 0); Modified: stable/8/sys/dev/mii/axphy.c ============================================================================== --- stable/8/sys/dev/mii/axphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/axphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -103,7 +103,7 @@ axphy_attach(device_t dev) sc->mii_service = axphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; mii_phy_reset(sc); @@ -187,7 +187,8 @@ axphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_10_T; if (scr & SCR_FDX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; #endif Modified: stable/8/sys/dev/mii/brgphy.c ============================================================================== --- stable/8/sys/dev/mii/brgphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/brgphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -222,9 +222,6 @@ brgphy_attach(device_t dev) /* Handle any special cases based on the PHY ID */ switch (bsc->mii_oui) { - case MII_OUI_BROADCOM: - case MII_OUI_BROADCOM2: - break; case MII_OUI_xxBROADCOM: switch (bsc->mii_model) { case MII_MODEL_xxBROADCOM_BCM5706: @@ -257,11 +254,6 @@ brgphy_attach(device_t dev) break; } break; - case MII_OUI_xxBROADCOM_ALT2: - /* No special handling yet. */ - break; - default: - device_printf(dev, "Unrecognized OUI for PHY!\n"); } ifp = sc->mii_pdata->mii_ifp; @@ -400,8 +392,6 @@ brgphy_service(struct mii_softc *sc, str sc->mii_media_status != mii->mii_media_status || cmd == MII_MEDIACHG) { switch (bsc->mii_oui) { - case MII_OUI_BROADCOM: - break; case MII_OUI_xxBROADCOM: switch (bsc->mii_model) { case MII_MODEL_xxBROADCOM_BCM5400: @@ -419,8 +409,6 @@ brgphy_service(struct mii_softc *sc, str break; } break; - case MII_OUI_xxBROADCOM_ALT1: - break; } } mii_phy_update(sc, cmd); @@ -932,8 +920,6 @@ brgphy_reset(struct mii_softc *sc) /* Handle any PHY specific procedures following the reset. */ switch (bsc->mii_oui) { - case MII_OUI_BROADCOM: - break; case MII_OUI_xxBROADCOM: switch (bsc->mii_model) { case MII_MODEL_xxBROADCOM_BCM5400: @@ -951,9 +937,6 @@ brgphy_reset(struct mii_softc *sc) break; } break; - case MII_OUI_xxBROADCOM_ALT1: - case MII_OUI_xxBROADCOM_ALT2: - break; } ifp = sc->mii_pdata->mii_ifp; Modified: stable/8/sys/dev/mii/ciphy.c ============================================================================== --- stable/8/sys/dev/mii/ciphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/ciphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -122,7 +122,7 @@ ciphy_attach(device_t dev) sc->mii_service = ciphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; ciphy_reset(sc); Modified: stable/8/sys/dev/mii/e1000phy.c ============================================================================== --- stable/8/sys/dev/mii/e1000phy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/e1000phy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -91,7 +91,7 @@ DRIVER_MODULE(e1000phy, miibus, e1000phy static int e1000phy_service(struct mii_softc *, struct mii_data *, int); static void e1000phy_status(struct mii_softc *); static void e1000phy_reset(struct mii_softc *); -static int e1000phy_mii_phy_auto(struct e1000phy_softc *, int); +static int e1000phy_mii_phy_auto(struct mii_softc *, int); static const struct mii_phydesc e1000phys[] = { MII_PHY_DESC(MARVELL, E1000), @@ -313,7 +313,6 @@ static int e1000phy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) { struct ifmedia_entry *ife = mii->mii_media.ifm_cur; - struct e1000phy_softc *esc = (struct e1000phy_softc *)sc; uint16_t speed, gig; int reg; @@ -329,7 +328,7 @@ e1000phy_service(struct mii_softc *sc, s break; if (IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO) { - e1000phy_mii_phy_auto(esc, ife->ifm_media); + e1000phy_mii_phy_auto(sc, ife->ifm_media); break; } @@ -418,7 +417,7 @@ done: sc->mii_ticks = 0; e1000phy_reset(sc); - e1000phy_mii_phy_auto(esc, ife->ifm_media); + e1000phy_mii_phy_auto(sc, ife->ifm_media); break; } @@ -494,12 +493,10 @@ e1000phy_status(struct mii_softc *sc) } static int -e1000phy_mii_phy_auto(struct e1000phy_softc *esc, int media) +e1000phy_mii_phy_auto(struct mii_softc *sc, int media) { - struct mii_softc *sc; uint16_t reg; - sc = &esc->mii_sc; if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { reg = PHY_READ(sc, E1000_AR); reg &= ~(E1000_AR_PAUSE | E1000_AR_ASM_DIR); Modified: stable/8/sys/dev/mii/exphy.c ============================================================================== --- stable/8/sys/dev/mii/exphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/exphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -147,7 +147,7 @@ exphy_attach(device_t dev) /* * The 3Com PHY can never be isolated. */ - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) Modified: stable/8/sys/dev/mii/icsphy.c ============================================================================== --- stable/8/sys/dev/mii/icsphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/icsphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -147,7 +147,7 @@ icsphy_attach(device_t dev) sc->mii_service = icsphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; ifmedia_add(&mii->mii_media, IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst), @@ -240,7 +240,8 @@ icsphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_10_T; if (qpr & QPR_FDX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; } else Modified: stable/8/sys/dev/mii/inphy.c ============================================================================== --- stable/8/sys/dev/mii/inphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/inphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -114,7 +114,7 @@ inphy_attach(device_t dev) sc->mii_service = inphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOMANPAUSE; + sc->mii_flags |= MIIF_NOMANPAUSE | MIIF_NOMANPAUSE; ifmedia_add(&mii->mii_media, IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst), Modified: stable/8/sys/dev/mii/jmphy.c ============================================================================== --- stable/8/sys/dev/mii/jmphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/jmphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -269,12 +269,9 @@ jmphy_status(struct mii_softc *sc) static void jmphy_reset(struct mii_softc *sc) { - struct jmphy_softc *jsc; uint16_t t2cr, val; int i; - jsc = (struct jmphy_softc *)sc; - /* Disable sleep mode. */ PHY_WRITE(sc, JMPHY_TMCTL, PHY_READ(sc, JMPHY_TMCTL) & ~JMPHY_TMCTL_SLEEP_ENB); Modified: stable/8/sys/dev/mii/lxtphy.c ============================================================================== --- stable/8/sys/dev/mii/lxtphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/lxtphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -106,6 +106,7 @@ DRIVER_MODULE(lxtphy, miibus, lxtphy_dri static int lxtphy_service(struct mii_softc *, struct mii_data *, int); static void lxtphy_status(struct mii_softc *); +static void lxtphy_reset(struct mii_softc *); static void lxtphy_set_tp(struct mii_softc *); static void lxtphy_set_fx(struct mii_softc *); @@ -140,7 +141,9 @@ lxtphy_attach(device_t dev) sc->mii_service = lxtphy_service; sc->mii_pdata = mii; - mii_phy_reset(sc); + sc->mii_flags |= MIIF_NOMANPAUSE; + + lxtphy_reset(sc); sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; device_printf(dev, " "); @@ -248,6 +251,15 @@ lxtphy_status(struct mii_softc *sc) } static void +lxtphy_reset(struct mii_softc *sc) +{ + + mii_phy_reset(sc); + PHY_WRITE(sc, MII_LXTPHY_IER, + PHY_READ(sc, MII_LXTPHY_IER) & ~IER_INTEN); +} + +static void lxtphy_set_tp(struct mii_softc *sc) { int cfg; Modified: stable/8/sys/dev/mii/mii.c ============================================================================== --- stable/8/sys/dev/mii/mii.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/mii.c Sun Sep 11 20:38:33 2011 (r225492) @@ -44,7 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include @@ -87,9 +87,9 @@ static device_method_t miibus_methods[] /* MII interface */ DEVMETHOD(miibus_readreg, miibus_readreg), DEVMETHOD(miibus_writereg, miibus_writereg), - DEVMETHOD(miibus_statchg, miibus_statchg), - DEVMETHOD(miibus_linkchg, miibus_linkchg), - DEVMETHOD(miibus_mediainit, miibus_mediainit), + DEVMETHOD(miibus_statchg, miibus_statchg), + DEVMETHOD(miibus_linkchg, miibus_linkchg), + DEVMETHOD(miibus_mediainit, miibus_mediainit), { 0, 0 } }; @@ -272,7 +272,7 @@ miibus_linkchg(device_t dev) MIIBUS_LINKCHG(parent); mii = device_get_softc(dev); - + if (mii->mii_media_status & IFM_AVALID) { if (mii->mii_media_status & IFM_ACTIVE) link_state = LINK_STATE_UP; @@ -372,7 +372,7 @@ mii_attach(device_t dev, device_t *miibu * has been allocated. */ ma.mii_data = device_get_softc(*miibus); - } + } ma.mii_capmask = capmask; @@ -403,7 +403,7 @@ mii_attach(device_t dev, device_t *miibu * Check to see if there is a PHY at this address. Note, * many braindead PHYs report 0/0 in their ID registers, * so we test for media in the BMSR. - */ + */ bmsr = MIIBUS_READREG(dev, ma.mii_phyno, MII_BMSR); if (bmsr == 0 || bmsr == 0xffff || (bmsr & (BMSR_EXTSTAT | BMSR_MEDIAMASK)) == 0) { @@ -422,7 +422,7 @@ mii_attach(device_t dev, device_t *miibu * Extract the IDs. Braindead PHYs will be handled by * the `ukphy' driver, as we have no ID information to * match on. - */ + */ ma.mii_id1 = MIIBUS_READREG(dev, ma.mii_phyno, MII_PHYIDR1); ma.mii_id2 = MIIBUS_READREG(dev, ma.mii_phyno, MII_PHYIDR2); Modified: stable/8/sys/dev/mii/mii.h ============================================================================== --- stable/8/sys/dev/mii/mii.h Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/mii.h Sun Sep 11 20:38:33 2011 (r225492) @@ -89,15 +89,9 @@ * info available in register 15, but 802.3 section 22.2.4.3 also * states that that all 1000 Mb/s capable PHYs will set this bit to 1. */ -#if 0 -#define BMSR_MEDIAMASK (BMSR_100T4|BMSR_100TXFDX|BMSR_100TXHDX|BMSR_10TFDX| \ - BMSR_10THDX|BMSR_ANEG) -#else -/* NetBSD uses: */ #define BMSR_MEDIAMASK (BMSR_100T4|BMSR_100TXFDX|BMSR_100TXHDX| \ BMSR_10TFDX|BMSR_10THDX|BMSR_100T2FDX|BMSR_100T2HDX) -#endif /* * Convert BMSR media capabilities to ANAR bits for autonegotiation. Modified: stable/8/sys/dev/mii/mii_physubr.c ============================================================================== --- stable/8/sys/dev/mii/mii_physubr.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/mii_physubr.c Sun Sep 11 20:38:33 2011 (r225492) @@ -428,9 +428,11 @@ mii_phy_add_media(struct mii_softc *sc) #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) #define PRINT(s) printf("%s%s", sep, s); sep = ", " - if ((sc->mii_flags & MIIF_NOISOLATE) == 0) + if ((sc->mii_flags & MIIF_NOISOLATE) == 0) { ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst), MII_MEDIA_NONE); + PRINT("none"); + } /* * There are different interpretations for the bits in Modified: stable/8/sys/dev/mii/miivar.h ============================================================================== --- stable/8/sys/dev/mii/miivar.h Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/miivar.h Sun Sep 11 20:38:33 2011 (r225492) @@ -38,7 +38,7 @@ #include /* - * Media Independent Interface configuration defintions. + * Media Independent Interface data structure defintions */ struct mii_softc; @@ -65,13 +65,13 @@ struct mii_data { * request is made. */ LIST_HEAD(mii_listhead, mii_softc) mii_phys; - int mii_instance; + u_int mii_instance; /* * PHY driver fills this in with active media status. */ - int mii_media_status; - int mii_media_active; + u_int mii_media_status; + u_int mii_media_active; /* * Calls from MII layer into network interface driver. @@ -105,19 +105,19 @@ struct mii_softc { LIST_ENTRY(mii_softc) mii_list; /* entry on parent's PHY list */ - int mii_phy; /* our MII address */ - int mii_inst; /* instance for ifmedia */ + u_int mii_phy; /* our MII address */ + u_int mii_inst; /* instance for ifmedia */ mii_downcall_t mii_service; /* our downcall */ struct mii_data *mii_pdata; /* pointer to parent's mii_data */ - int mii_flags; /* misc. flags; see below */ - int mii_capabilities; /* capabilities from BMSR */ - int mii_extcapabilities; /* extended capabilities */ - int mii_ticks; /* MII_TICK counter */ - int mii_anegticks; /* ticks before retrying aneg */ - int mii_media_active; /* last active media */ - int mii_media_status; /* last active status */ + u_int mii_flags; /* misc. flags; see below */ + u_int mii_capabilities; /* capabilities from BMSR */ + u_int mii_extcapabilities; /* extended capabilities */ + u_int mii_ticks; /* MII_TICK counter */ + u_int mii_anegticks; /* ticks before retrying aneg */ + u_int mii_media_active; /* last active media */ + u_int mii_media_status; /* last active status */ }; typedef struct mii_softc mii_softc_t; @@ -161,10 +161,11 @@ typedef struct mii_softc mii_softc_t; */ struct mii_attach_args { struct mii_data *mii_data; /* pointer to parent data */ - int mii_phyno; /* MII address */ - int mii_id1; /* PHY ID register 1 */ - int mii_id2; /* PHY ID register 2 */ - int mii_capmask; /* capability mask from BMSR */ + u_int mii_phyno; /* MII address */ + u_int mii_offset; /* first PHY, second PHY, etc. */ + uint32_t mii_id1; /* PHY ID register 1 */ + uint32_t mii_id2; /* PHY ID register 2 */ + u_int mii_capmask; /* capability mask for BMSR */ }; typedef struct mii_attach_args mii_attach_args_t; @@ -172,8 +173,8 @@ typedef struct mii_attach_args mii_attac * Used to match a PHY. */ struct mii_phydesc { - u_int32_t mpd_oui; /* the PHY's OUI */ - u_int32_t mpd_model; /* the PHY's model */ + uint32_t mpd_oui; /* the PHY's OUI */ + uint32_t mpd_model; /* the PHY's model */ const char *mpd_name; /* the PHY's name */ }; #define MII_PHY_DESC(a, b) { MII_OUI_ ## a, MII_MODEL_ ## a ## _ ## b, \ @@ -184,9 +185,9 @@ struct mii_phydesc { * An array of these structures map MII media types to BMCR/ANAR settings. */ struct mii_media { - int mm_bmcr; /* BMCR settings for this media */ - int mm_anar; /* ANAR settings for this media */ - int mm_gtcr; /* 100base-T2 or 1000base-T CR */ + u_int mm_bmcr; /* BMCR settings for this media */ + u_int mm_anar; /* ANAR settings for this media */ + u_int mm_gtcr; /* 100base-T2 or 1000base-T CR */ }; #define MII_MEDIA_NONE 0 @@ -219,7 +220,7 @@ enum miibus_device_ivars { #define MIIBUS_ACCESSOR(var, ivar, type) \ __BUS_ACCESSOR(miibus, var, MIIBUS, ivar, type) -MIIBUS_ACCESSOR(flags, FLAGS, int) +MIIBUS_ACCESSOR(flags, FLAGS, u_int) extern devclass_t miibus_devclass; extern driver_t miibus_driver; Modified: stable/8/sys/dev/mii/mlphy.c ============================================================================== --- stable/8/sys/dev/mii/mlphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/mlphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -154,6 +154,8 @@ mlphy_attach(dev) sc->mii_service = mlphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst), Modified: stable/8/sys/dev/mii/nsphy.c ============================================================================== --- stable/8/sys/dev/mii/nsphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/nsphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -139,6 +139,8 @@ nsphy_attach(device_t dev) sc->mii_service = nsphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + nic = device_get_name(device_get_parent(sc->mii_dev)); /* * Am79C971 wedge when isolating all of their external PHYs. @@ -296,6 +298,9 @@ nsphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_10_T|IFM_HDX; else mii->mii_media_active |= IFM_NONE; + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= + mii_phy_flowstatus(sc); return; } Modified: stable/8/sys/dev/mii/nsphyter.c ============================================================================== --- stable/8/sys/dev/mii/nsphyter.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/nsphyter.c Sun Sep 11 20:38:33 2011 (r225492) @@ -110,7 +110,7 @@ static int nsphyter_service(struct mii_s static void nsphyter_status(struct mii_softc *); static void nsphyter_reset(struct mii_softc *); -static const struct mii_phydesc nsphys[] = { +static const struct mii_phydesc nsphyters[] = { MII_PHY_DESC(NATSEMI, DP83815), MII_PHY_DESC(NATSEMI, DP83843), MII_PHY_DESC(NATSEMI, DP83847), @@ -121,7 +121,7 @@ static int nsphyter_probe(device_t dev) { - return (mii_phy_dev_probe(dev, nsphys, BUS_PROBE_DEFAULT)); + return (mii_phy_dev_probe(dev, nsphyters, BUS_PROBE_DEFAULT)); } static int Modified: stable/8/sys/dev/mii/pnaphy.c ============================================================================== --- stable/8/sys/dev/mii/pnaphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/pnaphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -115,7 +115,8 @@ pnaphy_attach(device_t dev) sc->mii_service = pnaphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_IS_HPNA; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_IS_HPNA | + MIIF_NOMANPAUSE; mii_phy_reset(sc); Modified: stable/8/sys/dev/mii/qsphy.c ============================================================================== --- stable/8/sys/dev/mii/qsphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/qsphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -139,6 +139,8 @@ qsphy_attach(device_t dev) sc->mii_service = qsphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + qsphy_reset(sc); sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; @@ -238,6 +240,8 @@ qsphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_NONE; break; } + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= mii_phy_flowstatus(sc); } static void Modified: stable/8/sys/dev/mii/rdcphy.c ============================================================================== --- stable/8/sys/dev/mii/rdcphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/rdcphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -115,6 +115,8 @@ rdcphy_attach(device_t dev) sc->mii_service = rdcphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + rsc->mii_model = MII_MODEL(ma->mii_id2); if (bootverbose) device_printf(dev, "OUI 0x%06x, model 0x%04x, rev. %d\n", Modified: stable/8/sys/dev/mii/rlphy.c ============================================================================== --- stable/8/sys/dev/mii/rlphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/rlphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -150,7 +150,7 @@ rlphy_attach(device_t dev) /* * The RealTek PHY can never be isolated. */ - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) @@ -259,6 +259,9 @@ rlphy_status(struct mii_softc *phy) mii->mii_media_active |= IFM_10_T|IFM_HDX; else mii->mii_media_active |= IFM_NONE; + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= + mii_phy_flowstatus(phy); return; } /* @@ -279,10 +282,10 @@ rlphy_status(struct mii_softc *phy) * To determine the link speed, we have to do one * of two things: * - * - If this is a standalone RealTek RTL8201(L) PHY, - * we can determine the link speed by testing bit 0 - * in the magic, vendor-specific register at offset - * 0x19. + * - If this is a standalone RealTek RTL8201(L) or + * workalike PHY, we can determine the link speed by + * testing bit 0 in the magic, vendor-specific register + * at offset 0x19. * * - If this is a RealTek MAC with integrated PHY, we * can test the 'SPEED10' bit of the MAC's media status Modified: stable/8/sys/dev/mii/rlswitch.c ============================================================================== --- stable/8/sys/dev/mii/rlswitch.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/rlswitch.c Sun Sep 11 20:38:33 2011 (r225492) @@ -129,7 +129,7 @@ rlswitch_attach(device_t dev) /* * We handle all pseudo PHYs in a single instance. */ - sc->mii_flags |= MIIF_NOISOLATE; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOMANPAUSE; #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) @@ -390,7 +390,8 @@ rlswitch_status(struct mii_softc *phy) mii->mii_media_status = IFM_AVALID; mii->mii_media_active = IFM_ETHER; mii->mii_media_status |= IFM_ACTIVE; - mii->mii_media_active |= IFM_100_TX|IFM_FDX; + mii->mii_media_active |= + IFM_100_TX | IFM_FDX | mii_phy_flowstatus(phy); } #ifdef RL_DEBUG Modified: stable/8/sys/dev/mii/ruephy.c ============================================================================== --- stable/8/sys/dev/mii/ruephy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/ruephy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -120,7 +120,7 @@ ruephy_attach(device_t dev) /* * Apparently, we can neither isolate nor do loopback on this PHY. */ - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_NOMANPAUSE; ruephy_reset(sc); @@ -244,7 +244,8 @@ ruephy_status(struct mii_softc *phy) mii->mii_media_active |= IFM_10_T; if (msr & RUEPHY_MSR_DUPLEX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(phy); else mii->mii_media_active |= IFM_HDX; } else Modified: stable/8/sys/dev/mii/smcphy.c ============================================================================== --- stable/8/sys/dev/mii/smcphy.c Sun Sep 11 20:37:01 2011 (r225491) +++ stable/8/sys/dev/mii/smcphy.c Sun Sep 11 20:38:33 2011 (r225492) @@ -53,7 +53,7 @@ static int smcphy_probe(device_t); static int smcphy_attach(device_t); static int smcphy_service(struct mii_softc *, struct mii_data *, int); -static int smcphy_reset(struct mii_softc *); +static void smcphy_reset(struct mii_softc *); static void smcphy_auto(struct mii_softc *, int); static device_method_t smcphy_methods[] = { @@ -107,11 +107,9 @@ smcphy_attach(device_t dev) sc->mii_service = smcphy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_NOMANPAUSE; - if (smcphy_reset(sc) != 0) { - device_printf(dev, "reset failed\n"); - } + smcphy_reset(sc); /* Mask interrupts, we poll instead. */ PHY_WRITE(sc, 0x1e, 0xffc0); @@ -184,9 +182,7 @@ smcphy_service(struct mii_softc *sc, str } sc->mii_ticks = 0; - if (smcphy_reset(sc) != 0) { - device_printf(sc->mii_dev, "reset failed\n"); - } + smcphy_reset(sc); smcphy_auto(sc, ife->ifm_media); break; } @@ -199,7 +195,7 @@ smcphy_service(struct mii_softc *sc, str return (0); } -static int +static void smcphy_reset(struct mii_softc *sc) { u_int bmcr; @@ -214,12 +210,13 @@ smcphy_reset(struct mii_softc *sc) break; } - if (bmcr & BMCR_RESET) { - return (EIO); - } + if (bmcr & BMCR_RESET) + device_printf(sc->mii_dev, "reset failed\n"); PHY_WRITE(sc, MII_BMCR, 0x3000); - return (0); + + /* Mask interrupts, we poll instead. */ + PHY_WRITE(sc, 0x1e, 0xffc0); } static void Modified: stable/8/sys/dev/mii/tdkphy.c ============================================================================== --- stable/8/sys/dev/mii/tdkphy.c Sun Sep 11 20:37:01 2011 (r225491) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 21:38:33 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8972C106564A; Sun, 11 Sep 2011 21:38:33 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 77BBD8FC15; Sun, 11 Sep 2011 21:38:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8BLcXAL096999; Sun, 11 Sep 2011 21:38:33 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8BLcX2a096995; Sun, 11 Sep 2011 21:38:33 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201109112138.p8BLcX2a096995@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 11 Sep 2011 21:38:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225494 - in stable/8/tools/regression/bin/sh: builtins parser X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 21:38:33 -0000 Author: jilles Date: Sun Sep 11 21:38:33 2011 New Revision: 225494 URL: http://svn.freebsd.org/changeset/base/225494 Log: MFC r223007,r223011,r223546,r224104: sh: New testcases that already work in stable/8. Added: stable/8/tools/regression/bin/sh/builtins/case10.0 - copied unchanged from r223546, head/tools/regression/bin/sh/builtins/case10.0 stable/8/tools/regression/bin/sh/builtins/case6.0 - copied unchanged from r223007, head/tools/regression/bin/sh/builtins/case6.0 stable/8/tools/regression/bin/sh/builtins/case7.0 - copied unchanged from r223011, head/tools/regression/bin/sh/builtins/case7.0 stable/8/tools/regression/bin/sh/parser/alias6.0 - copied unchanged from r224104, head/tools/regression/bin/sh/parser/alias6.0 Modified: Directory Properties: stable/8/tools/regression/bin/sh/ (props changed) Copied: stable/8/tools/regression/bin/sh/builtins/case10.0 (from r223546, head/tools/regression/bin/sh/builtins/case10.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/bin/sh/builtins/case10.0 Sun Sep 11 21:38:33 2011 (r225494, copy of r223546, head/tools/regression/bin/sh/builtins/case10.0) @@ -0,0 +1,16 @@ +# $FreeBSD$ + +case ! in +[\!!]) ;; +*) echo Failed at $LINENO ;; +esac + +case ! in +['!'!]) ;; +*) echo Failed at $LINENO ;; +esac + +case ! in +["!"!]) ;; +*) echo Failed at $LINENO ;; +esac Copied: stable/8/tools/regression/bin/sh/builtins/case6.0 (from r223007, head/tools/regression/bin/sh/builtins/case6.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/bin/sh/builtins/case6.0 Sun Sep 11 21:38:33 2011 (r225494, copy of r223007, head/tools/regression/bin/sh/builtins/case6.0) @@ -0,0 +1,52 @@ +# $FreeBSD$ + +unset LC_ALL +LC_CTYPE=de_DE.ISO8859-1 +export LC_CTYPE + +c1=e +# o umlaut +c2=$(printf '\366') +# non-break space +c3=$(printf '\240') +c4=$(printf '\240') +# $c2$c3$c4 form one utf-8 character + +ok=0 +case $c1$c2$c3$c4 in +*) ok=1 ;; +esac +if [ $ok = 0 ]; then + echo wrong at $LINENO + exit 3 +fi + +case $c1$c2$c3$c4 in +$c1$c2$c3$c4) ;; +*) echo wrong at $LINENO ;; +esac + +case $c1$c2$c3$c4 in +"$c1$c2$c3$c4") ;; +*) echo wrong at $LINENO ;; +esac + +case $c1$c2$c3$c4 in +????) ;; +*) echo wrong at $LINENO ;; +esac + +case $c1$c2$c3$c4 in +[!$c2][!b][!c][!d]) ;; +*) echo wrong at $LINENO ;; +esac + +case $c1$c2$c3$c4 in +[$c1][$c2][$c3][$c4]) ;; +*) echo wrong at $LINENO ;; +esac + +case $c1$c2$c3$c4 in +["$c1"]["$c2"]["$c3"]["$c4"]) ;; +*) echo wrong at $LINENO ;; +esac Copied: stable/8/tools/regression/bin/sh/builtins/case7.0 (from r223011, head/tools/regression/bin/sh/builtins/case7.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/bin/sh/builtins/case7.0 Sun Sep 11 21:38:33 2011 (r225494, copy of r223011, head/tools/regression/bin/sh/builtins/case7.0) @@ -0,0 +1,24 @@ +# $FreeBSD$ + +# Character ranges in a locale other than the POSIX locale, not specified +# by POSIX. + +unset LC_ALL +LC_CTYPE=de_DE.ISO8859-1 +export LC_CTYPE +LC_COLLATE=de_DE.ISO8859-1 +export LC_COLLATE + +c1=e +# o umlaut +c2=$(printf '\366') + +case $c1$c2 in +[a-z][a-z]) ;; +*) echo wrong at $LINENO ;; +esac + +case $c1$c2 in +[a-f][n-p]) ;; +*) echo wrong at $LINENO ;; +esac Copied: stable/8/tools/regression/bin/sh/parser/alias6.0 (from r224104, head/tools/regression/bin/sh/parser/alias6.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/bin/sh/parser/alias6.0 Sun Sep 11 21:38:33 2011 (r225494, copy of r224104, head/tools/regression/bin/sh/parser/alias6.0) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +alias alias0='| cat >/dev/null' + +eval '{ echo bad; } alias0' +eval '(echo bad)alias0' From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 21:47:04 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 11415106566C; Sun, 11 Sep 2011 21:47:04 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id DD8118FC13; Sun, 11 Sep 2011 21:47:03 +0000 (UTC) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id 73CEB46B06; Sun, 11 Sep 2011 17:47:03 -0400 (EDT) Date: Sun, 11 Sep 2011 22:47:03 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Hans Petter Selasky In-Reply-To: <201109101555.p8AFtavQ098290@svn.freebsd.org> Message-ID: References: <201109101555.p8AFtavQ098290@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r225469 - in head/sys: dev/usb dev/usb/quirk sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 21:47:04 -0000 On Sat, 10 Sep 2011, Hans Petter Selasky wrote: > Refactor auto-quirk solution so that we break as few external > drivers as possible. > > PR: usb/160299 > Approved by: re (kib) > Suggested by: rwatson Thanks, much appreciated! Robert > MFC after: 0 days > > Modified: > head/sys/dev/usb/quirk/usb_quirk.c > head/sys/dev/usb/usb_device.c > head/sys/dev/usb/usb_dynamic.c > head/sys/dev/usb/usb_dynamic.h > head/sys/dev/usb/usbdi.h > head/sys/sys/param.h > > Modified: head/sys/dev/usb/quirk/usb_quirk.c > ============================================================================== > --- head/sys/dev/usb/quirk/usb_quirk.c Sat Sep 10 12:36:11 2011 (r225468) > +++ head/sys/dev/usb/quirk/usb_quirk.c Sat Sep 10 15:55:36 2011 (r225469) > @@ -588,7 +588,7 @@ usb_test_quirk_by_info(const struct usbd > } > mtx_unlock(&usb_quirk_mtx); > done: > - return (usb_test_quirk_w(info, quirk)); > + return (0); /* no quirk match */ > } > > static struct usb_quirk_entry * > > Modified: head/sys/dev/usb/usb_device.c > ============================================================================== > --- head/sys/dev/usb/usb_device.c Sat Sep 10 12:36:11 2011 (r225468) > +++ head/sys/dev/usb/usb_device.c Sat Sep 10 15:55:36 2011 (r225469) > @@ -1239,8 +1239,6 @@ static void > usb_init_attach_arg(struct usb_device *udev, > struct usb_attach_arg *uaa) > { > - uint8_t x; > - > memset(uaa, 0, sizeof(*uaa)); > > uaa->device = udev; > @@ -1256,9 +1254,6 @@ usb_init_attach_arg(struct usb_device *u > uaa->info.bDeviceProtocol = udev->ddesc.bDeviceProtocol; > uaa->info.bConfigIndex = udev->curr_config_index; > uaa->info.bConfigNum = udev->curr_config_no; > - > - for (x = 0; x != USB_MAX_AUTO_QUIRK; x++) > - uaa->info.autoQuirk[x] = udev->autoQuirk[x]; > } > > /*------------------------------------------------------------------------* > @@ -2389,8 +2384,22 @@ uint8_t > usb_test_quirk(const struct usb_attach_arg *uaa, uint16_t quirk) > { > uint8_t found; > + uint8_t x; > + > + if (quirk == UQ_NONE) > + return (0); > + > + /* search the automatic per device quirks first */ > + > + for (x = 0; x != USB_MAX_AUTO_QUIRK; x++) { > + if (uaa->device->autoQuirk[x] == quirk) > + return (1); > + } > + > + /* search global quirk table, if any */ > > found = (usb_test_quirk_p) (&uaa->info, quirk); > + > return (found); > } > > @@ -2723,7 +2732,8 @@ usbd_add_dynamic_quirk(struct usb_device > uint8_t x; > > for (x = 0; x != USB_MAX_AUTO_QUIRK; x++) { > - if (udev->autoQuirk[x] == 0) { > + if (udev->autoQuirk[x] == 0 || > + udev->autoQuirk[x] == quirk) { > udev->autoQuirk[x] = quirk; > return (0); /* success */ > } > > Modified: head/sys/dev/usb/usb_dynamic.c > ============================================================================== > --- head/sys/dev/usb/usb_dynamic.c Sat Sep 10 12:36:11 2011 (r225468) > +++ head/sys/dev/usb/usb_dynamic.c Sat Sep 10 15:55:36 2011 (r225469) > @@ -50,12 +50,12 @@ > #include > #include > #include > -#include > > /* function prototypes */ > static usb_handle_req_t usb_temp_get_desc_w; > static usb_temp_setup_by_index_t usb_temp_setup_by_index_w; > static usb_temp_unsetup_t usb_temp_unsetup_w; > +static usb_test_quirk_t usb_test_quirk_w; > static usb_quirk_ioctl_t usb_quirk_ioctl_w; > > /* global variables */ > @@ -72,19 +72,9 @@ usb_temp_setup_by_index_w(struct usb_dev > return (USB_ERR_INVAL); > } > > -uint8_t > +static uint8_t > usb_test_quirk_w(const struct usbd_lookup_info *info, uint16_t quirk) > { > - uint8_t x; > - > - if (quirk == UQ_NONE) > - return (0); /* no match */ > - > - for (x = 0; x != USB_MAX_AUTO_QUIRK; x++) { > - if (info->autoQuirk[x] == quirk) > - return (1); /* match */ > - } > - > return (0); /* no match */ > } > > > Modified: head/sys/dev/usb/usb_dynamic.h > ============================================================================== > --- head/sys/dev/usb/usb_dynamic.h Sat Sep 10 12:36:11 2011 (r225468) > +++ head/sys/dev/usb/usb_dynamic.h Sat Sep 10 15:55:36 2011 (r225469) > @@ -57,6 +57,5 @@ extern devclass_t usb_devclass_ptr; > void usb_temp_unload(void *); > void usb_quirk_unload(void *); > void usb_bus_unload(void *); > -usb_test_quirk_t usb_test_quirk_w; > > #endif /* _USB_DYNAMIC_H_ */ > > Modified: head/sys/dev/usb/usbdi.h > ============================================================================== > --- head/sys/dev/usb/usbdi.h Sat Sep 10 12:36:11 2011 (r225468) > +++ head/sys/dev/usb/usbdi.h Sat Sep 10 15:55:36 2011 (r225469) > @@ -353,7 +353,6 @@ struct usbd_lookup_info { > uint16_t idVendor; > uint16_t idProduct; > uint16_t bcdDevice; > - uint16_t autoQuirk[USB_MAX_AUTO_QUIRK]; > uint8_t bDeviceClass; > uint8_t bDeviceSubClass; > uint8_t bDeviceProtocol; > > Modified: head/sys/sys/param.h > ============================================================================== > --- head/sys/sys/param.h Sat Sep 10 12:36:11 2011 (r225468) > +++ head/sys/sys/param.h Sat Sep 10 15:55:36 2011 (r225469) > @@ -58,7 +58,7 @@ > * in the range 5 to 9. > */ > #undef __FreeBSD_version > -#define __FreeBSD_version 900043 /* Master, propagated to newvers */ > +#define __FreeBSD_version 900044 /* Master, propagated to newvers */ > > #ifdef _KERNEL > #define P_OSREL_SIGSEGV 700004 > From owner-svn-src-all@FreeBSD.ORG Sun Sep 11 23:37:40 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 87AC8106566B; Sun, 11 Sep 2011 23:37:40 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5D4A58FC08; Sun, 11 Sep 2011 23:37:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8BNbeJ8000802; Sun, 11 Sep 2011 23:37:40 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8BNbepT000800; Sun, 11 Sep 2011 23:37:40 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201109112337.p8BNbepT000800@svn.freebsd.org> From: Andrew Thompson Date: Sun, 11 Sep 2011 23:37:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225495 - stable/8/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Sep 2011 23:37:40 -0000 Author: thompsa Date: Sun Sep 11 23:37:40 2011 New Revision: 225495 URL: http://svn.freebsd.org/changeset/base/225495 Log: MFC r225380 On the first loop for generating a bridge MAC address use the local hostid, this gives a good chance of keeping the same address over reboots. This is intended to help IPV6 and similar which generate their addresses from the mac. PR: kern/160300 Submitted by: mdodd Modified: stable/8/sys/net/if_bridge.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/net/if_bridge.c ============================================================================== --- stable/8/sys/net/if_bridge.c Sun Sep 11 21:38:33 2011 (r225494) +++ stable/8/sys/net/if_bridge.c Sun Sep 11 23:37:40 2011 (r225495) @@ -85,6 +85,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include /* for net/if.h */ #include @@ -560,7 +561,8 @@ bridge_clone_create(struct if_clone *ifc { struct bridge_softc *sc, *sc2; struct ifnet *bifp, *ifp; - int retry; + int fb, retry; + unsigned long hostid; sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK|M_ZERO); ifp = sc->sc_ifp = if_alloc(IFT_ETHER); @@ -593,17 +595,30 @@ bridge_clone_create(struct if_clone *ifc IFQ_SET_READY(&ifp->if_snd); /* - * Generate a random ethernet address with a locally administered - * address. + * Generate an ethernet address with a locally administered address. * * Since we are using random ethernet addresses for the bridge, it is * possible that we might have address collisions, so make sure that * this hardware address isn't already in use on another bridge. + * The first try uses the hostid and falls back to arc4rand(). */ + fb = 0; + getcredhostid(curthread->td_ucred, &hostid); for (retry = 1; retry != 0;) { - arc4rand(sc->sc_defaddr, ETHER_ADDR_LEN, 1); - sc->sc_defaddr[0] &= ~1; /* clear multicast bit */ - sc->sc_defaddr[0] |= 2; /* set the LAA bit */ + if (fb || hostid == 0) { + arc4rand(sc->sc_defaddr, ETHER_ADDR_LEN, 1); + sc->sc_defaddr[0] &= ~1;/* clear multicast bit */ + sc->sc_defaddr[0] |= 2; /* set the LAA bit */ + } else { + sc->sc_defaddr[0] = 0x2; + sc->sc_defaddr[1] = (hostid >> 24) & 0xff; + sc->sc_defaddr[2] = (hostid >> 16) & 0xff; + sc->sc_defaddr[3] = (hostid >> 8 ) & 0xff; + sc->sc_defaddr[4] = hostid & 0xff; + sc->sc_defaddr[5] = ifp->if_dunit & 0xff; + } + + fb = 1; retry = 0; mtx_lock(&bridge_list_mtx); LIST_FOREACH(sc2, &bridge_list, sc_list) { From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 06:41:14 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0A2E5106566B; Mon, 12 Sep 2011 06:41:14 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E406F8FC08; Mon, 12 Sep 2011 06:41:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8C6fDMm014121; Mon, 12 Sep 2011 06:41:13 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8C6fDrn014118; Mon, 12 Sep 2011 06:41:13 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201109120641.p8C6fDrn014118@svn.freebsd.org> From: Xin LI Date: Mon, 12 Sep 2011 06:41:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225504 - stable/8/usr.sbin/syslogd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 06:41:14 -0000 Author: delphij Date: Mon Sep 12 06:41:13 2011 New Revision: 225504 URL: http://svn.freebsd.org/changeset/base/225504 Log: MFC r224002: Add a new option, -N to disable the default and recommended syslogd(8) behavior, which binds to the well known UDP port. This option implies -s. Modified: stable/8/usr.sbin/syslogd/syslogd.8 stable/8/usr.sbin/syslogd/syslogd.c Directory Properties: stable/8/usr.sbin/syslogd/ (props changed) Modified: stable/8/usr.sbin/syslogd/syslogd.8 ============================================================================== --- stable/8/usr.sbin/syslogd/syslogd.8 Mon Sep 12 04:56:48 2011 (r225503) +++ stable/8/usr.sbin/syslogd/syslogd.8 Mon Sep 12 06:41:13 2011 (r225504) @@ -36,7 +36,7 @@ .Nd log systems messages .Sh SYNOPSIS .Nm -.Op Fl 468ACcdknosuv +.Op Fl 468ACcdkNnosuv .Op Fl a Ar allowed_peer .Op Fl b Ar bind_address .Op Fl f Ar config_file @@ -208,6 +208,13 @@ facility is reserved for messages read d Select the number of minutes between .Dq mark messages; the default is 20 minutes. +.It Fl N +Disable binding on UDP sockets. RFC 3164 recommends that outgoing +syslogd messages should originate from the privileged port, this +option +.Em disables +the recommended behavior. This option inherits +.Fl s . .It Fl n Disable dns query for every request. .It Fl o Modified: stable/8/usr.sbin/syslogd/syslogd.c ============================================================================== --- stable/8/usr.sbin/syslogd/syslogd.c Mon Sep 12 04:56:48 2011 (r225503) +++ stable/8/usr.sbin/syslogd/syslogd.c Mon Sep 12 06:41:13 2011 (r225504) @@ -278,6 +278,7 @@ static int fklog = -1; /* /dev/klog */ static int Initialized; /* set when we have initialized ourselves */ static int MarkInterval = 20 * 60; /* interval between marks in seconds */ static int MarkSeq; /* mark sequence number */ +static int NoBind; /* don't bind() as suggested by RFC 3164 */ static int SecureMode; /* when true, receive only unix domain socks */ #ifdef INET6 static int family = PF_UNSPEC; /* protocol family (IPv4, IPv6 or both) */ @@ -357,7 +358,7 @@ main(int argc, char *argv[]) dprintf("madvise() failed: %s\n", strerror(errno)); bindhostname = NULL; - while ((ch = getopt(argc, argv, "468Aa:b:cCdf:kl:m:nop:P:sS:Tuv")) + while ((ch = getopt(argc, argv, "468Aa:b:cCdf:kl:m:nNop:P:sS:Tuv")) != -1) switch (ch) { case '4': @@ -436,6 +437,10 @@ main(int argc, char *argv[]) case 'm': /* mark interval */ MarkInterval = atoi(optarg) * 60; break; + case 'N': + NoBind = 1; + SecureMode = 1; + break; case 'n': resolve = 0; break; @@ -2662,13 +2667,24 @@ socksetup(int af, const char *bindhostna close(*s); continue; } - if (bind(*s, r->ai_addr, r->ai_addrlen) < 0) { - close(*s); - logerror("bind"); - continue; - } + /* + * RFC 3164 recommends that client side message + * should come from the privileged syslogd port. + * + * If the system administrator choose not to obey + * this, we can skip the bind() step so that the + * system will choose a port for us. + */ + if (!NoBind) { + if (bind(*s, r->ai_addr, r->ai_addrlen) < 0) { + close(*s); + logerror("bind"); + continue; + } - double_rbuf(*s); + if (!SecureMode) + double_rbuf(*s); + } (*socks)++; s++; From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 08:38:22 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3C1C1106566C; Mon, 12 Sep 2011 08:38:22 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2BD6D8FC16; Mon, 12 Sep 2011 08:38:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8C8cMmN017953; Mon, 12 Sep 2011 08:38:22 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8C8cMtO017951; Mon, 12 Sep 2011 08:38:22 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109120838.p8C8cMtO017951@svn.freebsd.org> From: Andriy Gapon Date: Mon, 12 Sep 2011 08:38:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225505 - head/sys/dev/sound/pcm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 08:38:22 -0000 Author: avg Date: Mon Sep 12 08:38:21 2011 New Revision: 225505 URL: http://svn.freebsd.org/changeset/base/225505 Log: dsp_ioctl: fix type of variable used to store ioctl request PR: kern/156433 Submitted by: Grigori Goronzy Reviewed by: hselasky Approved by: re (kib) MFC after: 1 week Modified: head/sys/dev/sound/pcm/dsp.c Modified: head/sys/dev/sound/pcm/dsp.c ============================================================================== --- head/sys/dev/sound/pcm/dsp.c Mon Sep 12 06:41:13 2011 (r225504) +++ head/sys/dev/sound/pcm/dsp.c Mon Sep 12 08:38:21 2011 (r225505) @@ -1062,7 +1062,8 @@ dsp_ioctl(struct cdev *i_dev, u_long cmd { struct pcm_channel *chn, *rdch, *wrch; struct snddev_info *d; - int *arg_i, ret, tmp, xcmd; + u_long xcmd; + int *arg_i, ret, tmp; d = dsp_get_info(i_dev); if (!DSP_REGISTERED(d, i_dev)) From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 10:07:21 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AFA8C1065673; Mon, 12 Sep 2011 10:07:21 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9F4728FC0C; Mon, 12 Sep 2011 10:07:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8CA7LIY020653; Mon, 12 Sep 2011 10:07:21 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8CA7Lp6020651; Mon, 12 Sep 2011 10:07:21 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <201109121007.p8CA7Lp6020651@svn.freebsd.org> From: Ed Schouten Date: Mon, 12 Sep 2011 10:07:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225506 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 10:07:21 -0000 Author: ed Date: Mon Sep 12 10:07:21 2011 New Revision: 225506 URL: http://svn.freebsd.org/changeset/base/225506 Log: Fix error return codes for ioctls on init/lock state devices. In revision 223722 we introduced support for driver ioctls on init/lock state devices. Unfortunately the call to ttydevsw_cioctl() clobbers the value of the error variable, meaning that in many cases ioctl() will now return ENOTTY, even though the ioctl() was processed properly. Reported by: Boris Samorodov Patch by: jilles@ Approved by: re@ (kib@) Modified: head/sys/kern/tty.c Modified: head/sys/kern/tty.c ============================================================================== --- head/sys/kern/tty.c Mon Sep 12 08:38:21 2011 (r225505) +++ head/sys/kern/tty.c Mon Sep 12 10:07:21 2011 (r225506) @@ -766,7 +766,7 @@ ttyil_ioctl(struct cdev *dev, u_long cmd struct thread *td) { struct tty *tp = dev->si_drv1; - int error = 0; + int error; tty_lock(tp); if (tty_gone(tp)) { @@ -777,6 +777,7 @@ ttyil_ioctl(struct cdev *dev, u_long cmd error = ttydevsw_cioctl(tp, dev2unit(dev), cmd, data, td); if (error != ENOIOCTL) goto done; + error = 0; switch (cmd) { case TIOCGETA: From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 11:18:55 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4DAEC1065676; Mon, 12 Sep 2011 11:18:55 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3BDDA8FC12; Mon, 12 Sep 2011 11:18:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8CBItvu023906; Mon, 12 Sep 2011 11:18:55 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8CBIteW023904; Mon, 12 Sep 2011 11:18:55 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201109121118.p8CBIteW023904@svn.freebsd.org> From: Attilio Rao Date: Mon, 12 Sep 2011 11:18:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225507 - stable/8/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 11:18:55 -0000 Author: attilio Date: Mon Sep 12 11:18:54 2011 New Revision: 225507 URL: http://svn.freebsd.org/changeset/base/225507 Log: MFC r225372: Disable the watchdog while a KDB backend is running and kick it again just before to return KDB context. Sponsored by: Sandvine Incorporated Modified: stable/8/sys/kern/subr_kdb.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/kern/subr_kdb.c ============================================================================== --- stable/8/sys/kern/subr_kdb.c Mon Sep 12 10:07:21 2011 (r225506) +++ stable/8/sys/kern/subr_kdb.c Mon Sep 12 11:18:54 2011 (r225507) @@ -29,6 +29,7 @@ __FBSDID("$FreeBSD$"); #include "opt_kdb.h" #include "opt_stack.h" +#include "opt_watchdog.h" #include #include @@ -40,6 +41,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef SW_WATCHDOG +#include +#endif #include #include @@ -513,6 +517,9 @@ int kdb_trap(int type, int code, struct trapframe *tf) { struct kdb_dbbe *be; +#ifdef SW_WATCHDOG + u_int wdoglvt; +#endif register_t intr; #ifdef SMP int did_stop_cpus; @@ -529,6 +536,10 @@ kdb_trap(int type, int code, struct trap intr = intr_disable(); +#ifdef SW_WATCHDOG + wdoglvt = wdog_kern_last_timeout(); + wdog_kern_pat(WD_TO_NEVER); +#endif #ifdef SMP if ((did_stop_cpus = kdb_stop_cpus) != 0) stop_cpus_hard(PCPU_GET(other_cpus)); @@ -560,6 +571,9 @@ kdb_trap(int type, int code, struct trap if (did_stop_cpus) restart_cpus(stopped_cpus); #endif +#ifdef SW_WATCHDOG + wdog_kern_pat(wdoglvt); +#endif intr_restore(intr); From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 14:32:36 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5AAE41065676; Mon, 12 Sep 2011 14:32:36 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4AE438FC1E; Mon, 12 Sep 2011 14:32:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8CEWaVL029928; Mon, 12 Sep 2011 14:32:36 GMT (envelope-from pluknet@svn.freebsd.org) Received: (from pluknet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8CEWaQ8029926; Mon, 12 Sep 2011 14:32:36 GMT (envelope-from pluknet@svn.freebsd.org) Message-Id: <201109121432.p8CEWaQ8029926@svn.freebsd.org> From: Sergey Kandaurov Date: Mon, 12 Sep 2011 14:32:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225510 - head X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 14:32:36 -0000 Author: pluknet Date: Mon Sep 12 14:32:35 2011 New Revision: 225510 URL: http://svn.freebsd.org/changeset/base/225510 Log: Add missing lib32 parts for the previous changes: removal of Objective-C support and libpkg; libsbuf version bump Approved by: re (kib) Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Mon Sep 12 14:23:27 2011 (r225509) +++ head/ObsoleteFiles.inc Mon Sep 12 14:32:35 2011 (r225510) @@ -84,8 +84,17 @@ OLD_FILES+=usr/lib/libpkg.a OLD_FILES+=usr/lib/libpkg.so OLD_LIBS+=usr/lib/libpkg.so.0 OLD_FILES+=usr/lib/libpkg_p.a +.if ${TARGET_ARCH} == "amd64" +OLD_FILES+=usr/lib32/libpkg.a +OLD_FILES+=usr/lib32/libpkg.so +OLD_LIBS+=usr/lib32/libpkg.so.0 +OLD_FILES+=usr/lib32/libpkg_p.a +.endif # 20110517: libsbuf version bump OLD_LIBS+=lib/libsbuf.so.5 +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libsbuf.so.5 +.endif # 20110502: new clang import which bumps version from 2.9 to 3.0 OLD_FILES+=usr/include/clang/2.9/emmintrin.h OLD_FILES+=usr/include/clang/2.9/mm_malloc.h @@ -114,6 +123,12 @@ OLD_FILES+=usr/lib/libobjc_p.a OLD_FILES+=usr/libexec/cc1obj OLD_LIBS+=usr/lib/libobjc.so.4 OLD_DIRS+=usr/include/objc +.if ${TARGET_ARCH} == "amd64" +OLD_FILES+=usr/lib32/libobjc.a +OLD_FILES+=usr/lib32/libobjc.so +OLD_FILES+=usr/lib32/libobjc_p.a +OLD_LIBS+=usr/lib32/libobjc.so.4 +.endif # 20110331: firmware.img created at build time OLD_FILES+=usr/share/examples/kld/firmware/fwimage/firmware.img # 20110224: sticky.8 -> sticky.7 From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 15:21:52 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BD9A11065674; Mon, 12 Sep 2011 15:21:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ADD998FC17; Mon, 12 Sep 2011 15:21:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8CFLqLM031623; Mon, 12 Sep 2011 15:21:52 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8CFLqrC031621; Mon, 12 Sep 2011 15:21:52 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109121521.p8CFLqrC031621@svn.freebsd.org> From: John Baldwin Date: Mon, 12 Sep 2011 15:21:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225515 - head/sys/dev/cardbus X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 15:21:52 -0000 Author: jhb Date: Mon Sep 12 15:21:52 2011 New Revision: 225515 URL: http://svn.freebsd.org/changeset/base/225515 Log: Partially revert 222753: If a CardBus card stores its CIS in a BAR, delete the BAR after parsing the CIS. This forces the resource range to be reallocated if the BAR is reused by the device. Submitted by: deischen Reviewed by: imp Approved by: re (kib) Modified: head/sys/dev/cardbus/cardbus_cis.c Modified: head/sys/dev/cardbus/cardbus_cis.c ============================================================================== --- head/sys/dev/cardbus/cardbus_cis.c Mon Sep 12 15:13:23 2011 (r225514) +++ head/sys/dev/cardbus/cardbus_cis.c Mon Sep 12 15:21:52 2011 (r225515) @@ -441,6 +441,7 @@ cardbus_read_tuple_finish(device_t cbdev { if (res != CIS_CONFIG_SPACE) { bus_release_resource(child, SYS_RES_MEMORY, rid, res); + bus_delete_resource(child, SYS_RES_MEMORY, rid); } } From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 20:39:32 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B89EA106564A; Mon, 12 Sep 2011 20:39:32 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AFBF48FC13; Mon, 12 Sep 2011 20:39:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8CKdV8P041229; Mon, 12 Sep 2011 20:39:31 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8CKdV90041227; Mon, 12 Sep 2011 20:39:31 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201109122039.p8CKdV90041227@svn.freebsd.org> From: Attilio Rao Date: Mon, 12 Sep 2011 20:39:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225516 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 20:39:32 -0000 Author: attilio Date: Mon Sep 12 20:39:31 2011 New Revision: 225516 URL: http://svn.freebsd.org/changeset/base/225516 Log: dump_write() returns ENXIO if the dump is trying to be written outside of the device boundry. While this is generally ok, the problem is that all the consumers handle similar cases (and expect to catch) ENOSPC for this (for a reference look at minidumpsys() and dumpsys() constructions). That ends up in consumers not recognizing the issue and amd64 failing to retry if the number of pages grows up during minidump. Fix this by returning ENOSPC in dump_write() and while here add some more diagnostic on involved values. Sponsored by: Sandvine Incorporated In collabouration with: emaste Approved by: re (kib) MFC after: 10 days Modified: head/sys/kern/kern_shutdown.c Modified: head/sys/kern/kern_shutdown.c ============================================================================== --- head/sys/kern/kern_shutdown.c Mon Sep 12 15:21:52 2011 (r225515) +++ head/sys/kern/kern_shutdown.c Mon Sep 12 20:39:31 2011 (r225516) @@ -705,8 +705,11 @@ dump_write(struct dumperinfo *di, void * if (length != 0 && (offset < di->mediaoffset || offset - di->mediaoffset + length > di->mediasize)) { - printf("Attempt to write outside dump device boundaries.\n"); - return (ENXIO); + printf("Attempt to write outside dump device boundaries.\n" + "offset(%jd), mediaoffset(%jd), length(%ju), mediasize(%jd).\n", + (intmax_t)offset, (intmax_t)di->mediaoffset, + (uintmax_t)length, (intmax_t)di->mediasize); + return (ENOSPC); } return (di->dumper(di->priv, virtual, physical, offset, length)); } From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 20:57:23 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 09B4E106564A; Mon, 12 Sep 2011 20:57:23 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B4B268FC0C; Mon, 12 Sep 2011 20:57:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8CKvMMS041815; Mon, 12 Sep 2011 20:57:22 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8CKvMj7041813; Mon, 12 Sep 2011 20:57:22 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <201109122057.p8CKvMj7041813@svn.freebsd.org> From: Christian Brueffer Date: Mon, 12 Sep 2011 20:57:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225517 - head/sys/modules X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 20:57:23 -0000 Author: brueffer Date: Mon Sep 12 20:57:22 2011 New Revision: 225517 URL: http://svn.freebsd.org/changeset/base/225517 Log: Connect the vxge(4) module to the i386/amd64 build. Catcher of stupid errors: kib Approved by: re (kib) Modified: head/sys/modules/Makefile Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Mon Sep 12 20:39:31 2011 (r225516) +++ head/sys/modules/Makefile Mon Sep 12 20:57:22 2011 (r225517) @@ -319,6 +319,7 @@ SUBDIR= ${_3dfx} \ vr \ vte \ vx \ + ${_vxge} \ wb \ ${_wi} \ wlan \ @@ -472,6 +473,7 @@ _sppp= sppp _stg= stg _streams= streams _svr4= svr4 +_vxge= vxge _wi= wi _xe= xe .if ${MK_ZFS} != "no" || defined(ALL_MODULES) @@ -625,6 +627,7 @@ _sppp= sppp _tpm= tpm _twa= twa _vesa= vesa +_vxge= vxge _x86bios= x86bios _wi= wi _wpi= wpi From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 21:09:56 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB6E6106564A; Mon, 12 Sep 2011 21:09:56 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B16E48FC13; Mon, 12 Sep 2011 21:09:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8CL9uxP042240; Mon, 12 Sep 2011 21:09:56 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8CL9uYM042231; Mon, 12 Sep 2011 21:09:56 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109122109.p8CL9uYM042231@svn.freebsd.org> From: John Baldwin Date: Mon, 12 Sep 2011 21:09:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225518 - in head/sys: modules/ipfw netinet/ipfw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 21:09:57 -0000 Author: jhb Date: Mon Sep 12 21:09:56 2011 New Revision: 225518 URL: http://svn.freebsd.org/changeset/base/225518 Log: Allow the ipfw.ko module built with a kernel to honor any IPFIREWALL_* options defined in the kernel config. This more closely matches the behavior of other modules which inherit configuration settings from the kernel configuration during a kernel + modules build. Reviewed by: luigi Approved by: re (kib) MFC after: 1 week Modified: head/sys/modules/ipfw/Makefile head/sys/netinet/ipfw/ip_fw2.c head/sys/netinet/ipfw/ip_fw_dynamic.c head/sys/netinet/ipfw/ip_fw_log.c head/sys/netinet/ipfw/ip_fw_pfil.c head/sys/netinet/ipfw/ip_fw_sockopt.c head/sys/netinet/ipfw/ip_fw_table.c Modified: head/sys/modules/ipfw/Makefile ============================================================================== --- head/sys/modules/ipfw/Makefile Mon Sep 12 20:57:22 2011 (r225517) +++ head/sys/modules/ipfw/Makefile Mon Sep 12 21:09:56 2011 (r225518) @@ -8,7 +8,7 @@ KMOD= ipfw SRCS= ip_fw2.c ip_fw_pfil.c SRCS+= ip_fw_dynamic.c ip_fw_log.c SRCS+= ip_fw_sockopt.c ip_fw_table.c -SRCS+= opt_inet6.h opt_ipsec.h +SRCS+= opt_inet6.h opt_ipfw.h opt_ipsec.h CFLAGS+= -DIPFIREWALL CFLAGS+= -I${.CURDIR}/../../contrib/pf Modified: head/sys/netinet/ipfw/ip_fw2.c ============================================================================== --- head/sys/netinet/ipfw/ip_fw2.c Mon Sep 12 20:57:22 2011 (r225517) +++ head/sys/netinet/ipfw/ip_fw2.c Mon Sep 12 21:09:56 2011 (r225518) @@ -30,8 +30,8 @@ __FBSDID("$FreeBSD$"); * The FreeBSD IP packet firewall, main file */ -#if !defined(KLD_MODULE) #include "opt_ipfw.h" +#if !defined(KLD_MODULE) #include "opt_ipdivert.h" #include "opt_ipdn.h" #include "opt_inet.h" Modified: head/sys/netinet/ipfw/ip_fw_dynamic.c ============================================================================== --- head/sys/netinet/ipfw/ip_fw_dynamic.c Mon Sep 12 20:57:22 2011 (r225517) +++ head/sys/netinet/ipfw/ip_fw_dynamic.c Mon Sep 12 21:09:56 2011 (r225518) @@ -33,8 +33,8 @@ __FBSDID("$FreeBSD$"); * Dynamic rule support for ipfw */ -#if !defined(KLD_MODULE) #include "opt_ipfw.h" +#if !defined(KLD_MODULE) #include "opt_ipdivert.h" #include "opt_ipdn.h" #include "opt_inet.h" Modified: head/sys/netinet/ipfw/ip_fw_log.c ============================================================================== --- head/sys/netinet/ipfw/ip_fw_log.c Mon Sep 12 20:57:22 2011 (r225517) +++ head/sys/netinet/ipfw/ip_fw_log.c Mon Sep 12 21:09:56 2011 (r225518) @@ -30,8 +30,8 @@ __FBSDID("$FreeBSD$"); * Logging support for ipfw */ -#if !defined(KLD_MODULE) #include "opt_ipfw.h" +#if !defined(KLD_MODULE) #include "opt_ipdivert.h" #include "opt_ipdn.h" #include "opt_inet.h" Modified: head/sys/netinet/ipfw/ip_fw_pfil.c ============================================================================== --- head/sys/netinet/ipfw/ip_fw_pfil.c Mon Sep 12 20:57:22 2011 (r225517) +++ head/sys/netinet/ipfw/ip_fw_pfil.c Mon Sep 12 21:09:56 2011 (r225518) @@ -27,8 +27,8 @@ #include __FBSDID("$FreeBSD$"); -#if !defined(KLD_MODULE) #include "opt_ipfw.h" +#if !defined(KLD_MODULE) #include "opt_ipdn.h" #include "opt_inet.h" #ifndef INET Modified: head/sys/netinet/ipfw/ip_fw_sockopt.c ============================================================================== --- head/sys/netinet/ipfw/ip_fw_sockopt.c Mon Sep 12 20:57:22 2011 (r225517) +++ head/sys/netinet/ipfw/ip_fw_sockopt.c Mon Sep 12 21:09:56 2011 (r225518) @@ -33,8 +33,8 @@ __FBSDID("$FreeBSD$"); * the upper half of the ipfw code. */ -#if !defined(KLD_MODULE) #include "opt_ipfw.h" +#if !defined(KLD_MODULE) #include "opt_ipdivert.h" #include "opt_ipdn.h" #include "opt_inet.h" Modified: head/sys/netinet/ipfw/ip_fw_table.c ============================================================================== --- head/sys/netinet/ipfw/ip_fw_table.c Mon Sep 12 20:57:22 2011 (r225517) +++ head/sys/netinet/ipfw/ip_fw_table.c Mon Sep 12 21:09:56 2011 (r225518) @@ -39,8 +39,8 @@ __FBSDID("$FreeBSD$"); * from userland, because operations are typically fast. */ -#if !defined(KLD_MODULE) #include "opt_ipfw.h" +#if !defined(KLD_MODULE) #include "opt_ipdivert.h" #include "opt_ipdn.h" #include "opt_inet.h" From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 23:52:56 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 07728106566B; Mon, 12 Sep 2011 23:52:56 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EA3288FC0C; Mon, 12 Sep 2011 23:52:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8CNqtTi047660; Mon, 12 Sep 2011 23:52:55 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8CNqt9J047651; Mon, 12 Sep 2011 23:52:55 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201109122352.p8CNqt9J047651@svn.freebsd.org> From: Hiroki Sato Date: Mon, 12 Sep 2011 23:52:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225519 - in head/usr.sbin: rtadvctl rtadvd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 23:52:56 -0000 Author: hrs Date: Mon Sep 12 23:52:55 2011 New Revision: 225519 URL: http://svn.freebsd.org/changeset/base/225519 Log: - Fix a bug that can lead to displaying an incorrect value. (r224210) - Fix an abnormal termination caused by twice of "rtadvctl disable". (r224303) - Use poll() to wait for the control message socket instead of a spin loop. (r224304) - s/cmsg_/cm_/ to avoid conflict with CMSG_* symbols for struct cmsghdr. (r224619) - Ignore an interface that never sent RAs for graceful shut-down. (r224620) - Refine log messages. (r225148) - Fix SIGSEGV when receiving RAs that contain RDNSS and/or DNSSL options. (r225149) Approved by: re (kib) Modified: head/usr.sbin/rtadvctl/rtadvctl.c head/usr.sbin/rtadvd/control.c head/usr.sbin/rtadvd/control.h head/usr.sbin/rtadvd/control_client.c head/usr.sbin/rtadvd/control_client.h head/usr.sbin/rtadvd/control_server.c head/usr.sbin/rtadvd/control_server.h head/usr.sbin/rtadvd/rtadvd.c Directory Properties: head/usr.sbin/rtadvctl/ (props changed) head/usr.sbin/rtadvd/ (props changed) Modified: head/usr.sbin/rtadvctl/rtadvctl.c ============================================================================== --- head/usr.sbin/rtadvctl/rtadvctl.c Mon Sep 12 21:09:56 2011 (r225518) +++ head/usr.sbin/rtadvctl/rtadvctl.c Mon Sep 12 23:52:55 2011 (r225519) @@ -260,13 +260,13 @@ action_plgeneric(int action, char *plstr *q++ = '\0'; cp.cp_val = q; } - cm->cm_len += cmsg_pl2bin(msg, &cp); + cm->cm_len += cm_pl2bin(msg, &cp); mysyslog(LOG_DEBUG, "<%s> key=%s, val_len=%d, ifname=%s", __func__,cp.cp_key, cp.cp_val_len, cp.cp_ifname); } - return (cmsg_handler_client(s->si_fd, CM_STATE_MSG_DISPATCH, buf)); + return (cm_handler_client(s->si_fd, CM_STATE_MSG_DISPATCH, buf)); } static int @@ -285,7 +285,7 @@ action_propget(char *argv, struct ctrl_m if (error || cm->cm_len <= sizeof(*cm)) return (1); - cmsg_bin2pl(msg, cp); + cm_bin2pl(msg, cp); mysyslog(LOG_DEBUG, "<%s> type=%d, len=%d", __func__, cm->cm_type, cm->cm_len); mysyslog(LOG_DEBUG, "<%s> key=%s, val_len=%d, ifname=%s", @@ -571,9 +571,9 @@ action_show(int argc, char **argv) printf("\n"); - printf("\tMinAdvInterval/MaxAdvInterval: %s/%s\n", - sec2str(rai->rai_mininterval, ssbuf), - sec2str(rai->rai_maxinterval, ssbuf)); + printf("\tMinAdvInterval/MaxAdvInterval: "); + printf("%s/", sec2str(rai->rai_mininterval, ssbuf)); + printf("%s\n", sec2str(rai->rai_maxinterval, ssbuf)); if (rai->rai_linkmtu) printf("\tAdvLinkMTU: %d", rai->rai_linkmtu); else @@ -593,11 +593,10 @@ action_show(int argc, char **argv) printf("Preference: %s\n", rtpref_str[(rai->rai_rtpref >> 3) & 0xff]); - printf("\t" - "ReachableTime: %s, " - "RetransTimer: %s, " + printf("\tReachableTime: %s, ", + sec2str(rai->rai_reachabletime, ssbuf)); + printf("RetransTimer: %s, " "CurHopLimit: %d\n", - sec2str(rai->rai_reachabletime, ssbuf), sec2str(rai->rai_retranstimer, ssbuf), rai->rai_hoplimit); printf("\tAdvIfPrefixes: %s\n", Modified: head/usr.sbin/rtadvd/control.c ============================================================================== --- head/usr.sbin/rtadvd/control.c Mon Sep 12 21:09:56 2011 (r225518) +++ head/usr.sbin/rtadvd/control.c Mon Sep 12 23:52:55 2011 (r225519) @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -53,12 +54,16 @@ #include "pathnames.h" #include "control.h" +#define CM_RECV_TIMEOUT 30 + int -cmsg_recv(int fd, char *buf) +cm_recv(int fd, char *buf) { int n; struct ctrl_msg_hdr *cm; char *msg; + struct pollfd pfds[1]; + int i; syslog(LOG_DEBUG, "<%s> enter, fd=%d", __func__, fd); @@ -66,35 +71,52 @@ cmsg_recv(int fd, char *buf) cm = (struct ctrl_msg_hdr *)buf; msg = (char *)buf + sizeof(*cm); + pfds[0].fd = fd; + pfds[0].events = POLLIN; + for (;;) { - n = read(fd, cm, sizeof(*cm)); - if (n < 0 && errno == EAGAIN) { - syslog(LOG_DEBUG, - "<%s> waiting...", __func__); + i = poll(pfds, sizeof(pfds)/sizeof(pfds[0]), + CM_RECV_TIMEOUT); + + if (i == 0) + continue; + + if (i < 0) { + syslog(LOG_ERR, "<%s> poll error: %s", + __func__, strerror(errno)); continue; } - break; + + if (pfds[0].revents & POLLIN) { + n = read(fd, cm, sizeof(*cm)); + if (n < 0 && errno == EAGAIN) { + syslog(LOG_DEBUG, + "<%s> waiting...", __func__); + continue; + } + break; + } } if (n != sizeof(*cm)) { syslog(LOG_WARNING, "<%s> received a too small message.", __func__); - goto cmsg_recv_err; + goto cm_recv_err; } if (cm->cm_len > CM_MSG_MAXLEN) { syslog(LOG_WARNING, "<%s> received a too large message.", __func__); - goto cmsg_recv_err; + goto cm_recv_err; } if (cm->cm_version != CM_VERSION) { syslog(LOG_WARNING, "<%s> version mismatch", __func__); - goto cmsg_recv_err; + goto cm_recv_err; } if (cm->cm_type >= CM_TYPE_MAX) { syslog(LOG_WARNING, "<%s> invalid msg type.", __func__); - goto cmsg_recv_err; + goto cm_recv_err; } syslog(LOG_DEBUG, @@ -109,31 +131,45 @@ cmsg_recv(int fd, char *buf) msglen); for (;;) { - n = read(fd, msg, msglen); - if (n < 0 && errno == EAGAIN) { - syslog(LOG_DEBUG, - "<%s> waiting...", __func__); + i = poll(pfds, sizeof(pfds)/sizeof(pfds[0]), + CM_RECV_TIMEOUT); + + if (i == 0) + continue; + + if (i < 0) { + syslog(LOG_ERR, "<%s> poll error: %s", + __func__, strerror(errno)); continue; } + + if (pfds[0].revents & POLLIN) { + n = read(fd, msg, msglen); + if (n < 0 && errno == EAGAIN) { + syslog(LOG_DEBUG, + "<%s> waiting...", __func__); + continue; + } + } break; } if (n != msglen) { syslog(LOG_WARNING, "<%s> payload size mismatch.", __func__); - goto cmsg_recv_err; + goto cm_recv_err; } buf[CM_MSG_MAXLEN - 1] = '\0'; } return (0); -cmsg_recv_err: +cm_recv_err: close(fd); return (-1); } int -cmsg_send(int fd, char *buf) +cm_send(int fd, char *buf) { struct iovec iov[2]; int iovcnt; @@ -304,7 +340,7 @@ csock_open_err: } struct ctrl_msg_pl * -cmsg_bin2pl(char *str, struct ctrl_msg_pl *cp) +cm_bin2pl(char *str, struct ctrl_msg_pl *cp) { size_t len; size_t *lenp; @@ -364,7 +400,7 @@ cmsg_bin2pl(char *str, struct ctrl_msg_p } size_t -cmsg_pl2bin(char *str, struct ctrl_msg_pl *cp) +cm_pl2bin(char *str, struct ctrl_msg_pl *cp) { size_t len; size_t *lenp; @@ -427,7 +463,7 @@ cmsg_pl2bin(char *str, struct ctrl_msg_p } size_t -cmsg_str2bin(char *bin, void *str, size_t len) +cm_str2bin(char *bin, void *str, size_t len) { struct ctrl_msg_hdr *cm; @@ -445,7 +481,7 @@ cmsg_str2bin(char *bin, void *str, size_ } void * -cmsg_bin2str(char *bin, void *str, size_t len) +cm_bin2str(char *bin, void *str, size_t len) { syslog(LOG_DEBUG, "<%s> enter", __func__); Modified: head/usr.sbin/rtadvd/control.h ============================================================================== --- head/usr.sbin/rtadvd/control.h Mon Sep 12 21:09:56 2011 (r225518) +++ head/usr.sbin/rtadvd/control.h Mon Sep 12 23:52:55 2011 (r225519) @@ -65,10 +65,10 @@ int csock_open(struct sockinfo *, mode_t int csock_close(struct sockinfo *); int csock_listen(struct sockinfo *); int csock_accept(struct sockinfo *); -int cmsg_send(int, char *); -int cmsg_recv(int, char *); +int cm_send(int, char *); +int cm_recv(int, char *); -size_t cmsg_pl2bin(char *, struct ctrl_msg_pl *); -struct ctrl_msg_pl *cmsg_bin2pl(char *, struct ctrl_msg_pl *); -size_t cmsg_str2bin(char *, void *, size_t); -void *cmsg_bin2str(char *, void *, size_t); +size_t cm_pl2bin(char *, struct ctrl_msg_pl *); +struct ctrl_msg_pl *cm_bin2pl(char *, struct ctrl_msg_pl *); +size_t cm_str2bin(char *, void *, size_t); +void *cm_bin2str(char *, void *, size_t); Modified: head/usr.sbin/rtadvd/control_client.c ============================================================================== --- head/usr.sbin/rtadvd/control_client.c Mon Sep 12 21:09:56 2011 (r225518) +++ head/usr.sbin/rtadvd/control_client.c Mon Sep 12 23:52:55 2011 (r225519) @@ -55,7 +55,7 @@ #include "control_client.h" int -cmsg_handler_client(int fd, int state, char *buf_orig) +cm_handler_client(int fd, int state, char *buf_orig) { char buf[CM_MSG_MAXLEN]; struct ctrl_msg_hdr *cm; @@ -91,17 +91,17 @@ cmsg_handler_client(int fd, int state, c break; case CM_STATE_MSG_DISPATCH: cm->cm_version = CM_VERSION; - error = cmsg_send(fd, buf); + error = cm_send(fd, buf); if (error) syslog(LOG_WARNING, - "<%s> cmsg_send()", __func__); + "<%s> cm_send()", __func__); state = CM_STATE_ACK_WAIT; break; case CM_STATE_ACK_WAIT: - error = cmsg_recv(fd, buf); + error = cm_recv(fd, buf); if (error) { syslog(LOG_ERR, - "<%s> cmsg_recv()", __func__); + "<%s> cm_recv()", __func__); close(fd); return (-1); } Modified: head/usr.sbin/rtadvd/control_client.h ============================================================================== --- head/usr.sbin/rtadvd/control_client.h Mon Sep 12 21:09:56 2011 (r225518) +++ head/usr.sbin/rtadvd/control_client.h Mon Sep 12 23:52:55 2011 (r225519) @@ -27,4 +27,4 @@ * */ -int cmsg_handler_client(int, int, char *); +int cm_handler_client(int, int, char *); Modified: head/usr.sbin/rtadvd/control_server.c ============================================================================== --- head/usr.sbin/rtadvd/control_server.c Mon Sep 12 21:09:56 2011 (r225518) +++ head/usr.sbin/rtadvd/control_server.c Mon Sep 12 23:52:55 2011 (r225519) @@ -51,6 +51,7 @@ #include "pathnames.h" #include "rtadvd.h" #include "if.h" +#include "config.h" #include "control.h" #include "control_server.h" #include "timer.h" @@ -68,28 +69,28 @@ int is_do_reload(void) { return (do_rel int is_do_shutdown(void) { return (do_shutdown); } char *reload_ifname(void) { return (do_reload_ifname); } -#define DEF_PL_HANDLER(key) { #key, cmsg_getprop_##key } +#define DEF_PL_HANDLER(key) { #key, cm_getprop_##key } -static int cmsg_getprop_echo(struct ctrl_msg_pl *); -static int cmsg_getprop_version(struct ctrl_msg_pl *); -static int cmsg_getprop_ifilist(struct ctrl_msg_pl *); -static int cmsg_getprop_ifi(struct ctrl_msg_pl *); -static int cmsg_getprop_ifi_ra_timer(struct ctrl_msg_pl *); -static int cmsg_getprop_rai(struct ctrl_msg_pl *); -static int cmsg_getprop_pfx(struct ctrl_msg_pl *); -static int cmsg_getprop_rdnss(struct ctrl_msg_pl *); -static int cmsg_getprop_dnssl(struct ctrl_msg_pl *); -static int cmsg_getprop_rti(struct ctrl_msg_pl *); - -static int cmsg_setprop_reload(struct ctrl_msg_pl *); -static int cmsg_setprop_enable(struct ctrl_msg_pl *); -static int cmsg_setprop_disable(struct ctrl_msg_pl *); +static int cm_getprop_echo(struct ctrl_msg_pl *); +static int cm_getprop_version(struct ctrl_msg_pl *); +static int cm_getprop_ifilist(struct ctrl_msg_pl *); +static int cm_getprop_ifi(struct ctrl_msg_pl *); +static int cm_getprop_ifi_ra_timer(struct ctrl_msg_pl *); +static int cm_getprop_rai(struct ctrl_msg_pl *); +static int cm_getprop_pfx(struct ctrl_msg_pl *); +static int cm_getprop_rdnss(struct ctrl_msg_pl *); +static int cm_getprop_dnssl(struct ctrl_msg_pl *); +static int cm_getprop_rti(struct ctrl_msg_pl *); + +static int cm_setprop_reload(struct ctrl_msg_pl *); +static int cm_setprop_enable(struct ctrl_msg_pl *); +static int cm_setprop_disable(struct ctrl_msg_pl *); static struct dispatch_table { const char *dt_comm; int (*dt_act)(struct ctrl_msg_pl *cp); } getprop_dtable[] = { - { "", cmsg_getprop_echo }, + { "", cm_getprop_echo }, DEF_PL_HANDLER(echo), DEF_PL_HANDLER(version), DEF_PL_HANDLER(ifilist), @@ -103,7 +104,7 @@ static struct dispatch_table { }; static int -cmsg_getprop_echo(struct ctrl_msg_pl *cp) +cm_getprop_echo(struct ctrl_msg_pl *cp) { syslog(LOG_DEBUG, "<%s> enter", __func__); @@ -114,7 +115,7 @@ cmsg_getprop_echo(struct ctrl_msg_pl *cp } static int -cmsg_getprop_version(struct ctrl_msg_pl *cp) +cm_getprop_version(struct ctrl_msg_pl *cp) { syslog(LOG_DEBUG, "<%s> enter", __func__); @@ -125,7 +126,7 @@ cmsg_getprop_version(struct ctrl_msg_pl } static int -cmsg_getprop_ifilist(struct ctrl_msg_pl *cp) +cm_getprop_ifilist(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; char *p; @@ -159,7 +160,7 @@ cmsg_getprop_ifilist(struct ctrl_msg_pl } static int -cmsg_getprop_ifi(struct ctrl_msg_pl *cp) +cm_getprop_ifi(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; char *p; @@ -180,7 +181,7 @@ cmsg_getprop_ifi(struct ctrl_msg_pl *cp) p = malloc(sizeof(*ifi)); if (p == NULL) exit(1); - len = cmsg_str2bin(p, ifi, sizeof(*ifi)); + len = cm_str2bin(p, ifi, sizeof(*ifi)); syslog(LOG_DEBUG, "<%s> len = %zu", __func__, len); @@ -194,7 +195,7 @@ cmsg_getprop_ifi(struct ctrl_msg_pl *cp) } static int -cmsg_getprop_rai(struct ctrl_msg_pl *cp) +cm_getprop_rai(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; struct rainfo *rai; @@ -221,7 +222,7 @@ cmsg_getprop_rai(struct ctrl_msg_pl *cp) p = malloc(sizeof(*rai)); if (p == NULL) exit(1); - len = cmsg_str2bin(p, rai, sizeof(*rai)); + len = cm_str2bin(p, rai, sizeof(*rai)); syslog(LOG_DEBUG, "<%s> len = %zu", __func__, len); @@ -235,7 +236,7 @@ cmsg_getprop_rai(struct ctrl_msg_pl *cp) } static int -cmsg_getprop_ifi_ra_timer(struct ctrl_msg_pl *cp) +cm_getprop_ifi_ra_timer(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; struct rainfo *rai; @@ -267,7 +268,7 @@ cmsg_getprop_ifi_ra_timer(struct ctrl_ms p = malloc(sizeof(*rtimer)); if (p == NULL) exit(1); - len = cmsg_str2bin(p, rtimer, sizeof(*rtimer)); + len = cm_str2bin(p, rtimer, sizeof(*rtimer)); syslog(LOG_DEBUG, "<%s> len = %zu", __func__, len); @@ -281,7 +282,7 @@ cmsg_getprop_ifi_ra_timer(struct ctrl_ms } static int -cmsg_getprop_rti(struct ctrl_msg_pl *cp) +cm_getprop_rti(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; struct rainfo *rai; @@ -330,7 +331,7 @@ cmsg_getprop_rti(struct ctrl_msg_pl *cp) } static int -cmsg_getprop_pfx(struct ctrl_msg_pl *cp) +cm_getprop_pfx(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; struct rainfo *rai; @@ -379,7 +380,7 @@ cmsg_getprop_pfx(struct ctrl_msg_pl *cp) } static int -cmsg_getprop_rdnss(struct ctrl_msg_pl *cp) +cm_getprop_rdnss(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; struct rainfo *rai; @@ -448,7 +449,7 @@ cmsg_getprop_rdnss(struct ctrl_msg_pl *c } static int -cmsg_getprop_dnssl(struct ctrl_msg_pl *cp) +cm_getprop_dnssl(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; struct rainfo *rai; @@ -516,7 +517,7 @@ cmsg_getprop_dnssl(struct ctrl_msg_pl *c } int -cmsg_getprop(struct ctrl_msg_pl *cp) +cm_getprop(struct ctrl_msg_pl *cp) { size_t i; @@ -535,7 +536,7 @@ cmsg_getprop(struct ctrl_msg_pl *cp) } int -cmsg_setprop(struct ctrl_msg_pl *cp) +cm_setprop(struct ctrl_msg_pl *cp) { syslog(LOG_DEBUG, "<%s> enter", __func__); @@ -543,13 +544,13 @@ cmsg_setprop(struct ctrl_msg_pl *cp) return (1); if (strncmp(cp->cp_key, "reload", sizeof("reload")) == 0) - cmsg_setprop_reload(cp); + cm_setprop_reload(cp); else if (strncmp(cp->cp_key, "shutdown", sizeof("shutdown")) == 0) set_do_shutdown(0); else if (strncmp(cp->cp_key, "enable", sizeof("enable")) == 0) - cmsg_setprop_enable(cp); + cm_setprop_enable(cp); else if (strncmp(cp->cp_key, "disable", sizeof("disable")) == 0) - cmsg_setprop_disable(cp); + cm_setprop_disable(cp); else if (strncmp(cp->cp_key, "echo", 8) == 0) ; /* do nothing */ else @@ -559,7 +560,7 @@ cmsg_setprop(struct ctrl_msg_pl *cp) } static int -cmsg_setprop_reload(struct ctrl_msg_pl *cp) +cm_setprop_reload(struct ctrl_msg_pl *cp) { syslog(LOG_DEBUG, "<%s> enter", __func__); @@ -571,7 +572,7 @@ cmsg_setprop_reload(struct ctrl_msg_pl * } static int -cmsg_setprop_enable(struct ctrl_msg_pl *cp) +cm_setprop_enable(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; @@ -595,7 +596,7 @@ cmsg_setprop_enable(struct ctrl_msg_pl * } static int -cmsg_setprop_disable(struct ctrl_msg_pl *cp) +cm_setprop_disable(struct ctrl_msg_pl *cp) { struct ifinfo *ifi; @@ -611,13 +612,22 @@ cmsg_setprop_disable(struct ctrl_msg_pl return (1); } - ifi->ifi_persist = 0; + if (ifi->ifi_persist == 1) { + ifi->ifi_persist = 0; + rm_ifinfo(ifi); + + /* MC leaving needed here */ + sock_mc_leave(&sock, ifi->ifi_ifindex); + + set_do_reload_ifname(ifi->ifi_ifname); + set_do_reload(0); + } return (0); } int -cmsg_handler_server(int fd) +cm_handler_server(int fd) { int state; char *msg; @@ -644,17 +654,17 @@ cmsg_handler_server(int fd) break; case CM_STATE_MSG_DISPATCH: cm->cm_version = CM_VERSION; - error = cmsg_send(fd, buf); + error = cm_send(fd, buf); if (error) syslog(LOG_WARNING, - "<%s> cmsg_send()", __func__); + "<%s> cm_send()", __func__); state = CM_STATE_EOM; break; case CM_STATE_ACK_WAIT: - error = cmsg_recv(fd, buf); + error = cm_recv(fd, buf); if (error) { syslog(LOG_ERR, - "<%s> cmsg_recv()", __func__); + "<%s> cm_recv()", __func__); close(fd); return (-1); } @@ -676,11 +686,11 @@ cmsg_handler_server(int fd) state = CM_STATE_EOM; break; case CM_STATE_MSG_RECV: - error = cmsg_recv(fd, buf); + error = cm_recv(fd, buf); if (error) { syslog(LOG_ERR, - "<%s> cmsg_recv()", __func__); + "<%s> cm_recv()", __func__); close(fd); return (-1); } @@ -699,22 +709,22 @@ cmsg_handler_server(int fd) cm->cm_len = sizeof(*cm); break; case CM_TYPE_REQ_GET_PROP: - cmsg_bin2pl(msg, &cp); - error = cmsg_getprop(&cp); + cm_bin2pl(msg, &cp); + error = cm_getprop(&cp); if (error) { cm->cm_type = CM_TYPE_ERR; cm->cm_len = sizeof(*cm); } else { cm->cm_type = CM_TYPE_ACK; cm->cm_len = sizeof(*cm); - cm->cm_len += cmsg_pl2bin(msg, &cp); + cm->cm_len += cm_pl2bin(msg, &cp); } if (cp.cp_val != NULL) free(cp.cp_val); break; case CM_TYPE_REQ_SET_PROP: - cmsg_bin2pl(msg, &cp); - error = cmsg_setprop(&cp); + cm_bin2pl(msg, &cp); + error = cm_setprop(&cp); if (error) { cm->cm_type = CM_TYPE_ERR; cm->cm_len = sizeof(*cm); Modified: head/usr.sbin/rtadvd/control_server.h ============================================================================== --- head/usr.sbin/rtadvd/control_server.h Mon Sep 12 21:09:56 2011 (r225518) +++ head/usr.sbin/rtadvd/control_server.h Mon Sep 12 23:52:55 2011 (r225519) @@ -27,10 +27,10 @@ * */ -int cmsg_getprop(struct ctrl_msg_pl *); -int cmsg_setprop(struct ctrl_msg_pl *); +int cm_getprop(struct ctrl_msg_pl *); +int cm_setprop(struct ctrl_msg_pl *); -int cmsg_handler_server(int); +int cm_handler_server(int); void set_do_reload(int); void set_do_reload_ifname(char *); Modified: head/usr.sbin/rtadvd/rtadvd.c ============================================================================== --- head/usr.sbin/rtadvd/rtadvd.c Mon Sep 12 21:09:56 2011 (r225518) +++ head/usr.sbin/rtadvd/rtadvd.c Mon Sep 12 23:52:55 2011 (r225519) @@ -189,7 +189,7 @@ main(int argc, char *argv[]) dflag++; break; case 'D': - dflag += 2; + dflag += 3; break; case 'f': fflag = 1; @@ -227,10 +227,12 @@ main(int argc, char *argv[]) openlog("rtadvd", logopt, LOG_DAEMON); /* set log level */ - if (dflag > 1) + if (dflag > 2) (void)setlogmask(LOG_UPTO(LOG_DEBUG)); - else if (dflag > 0) + else if (dflag > 1) (void)setlogmask(LOG_UPTO(LOG_INFO)); + else if (dflag > 0) + (void)setlogmask(LOG_UPTO(LOG_NOTICE)); else (void)setlogmask(LOG_UPTO(LOG_ERR)); @@ -251,8 +253,8 @@ main(int argc, char *argv[]) errx(1, "%s already running, pid: %d", getprogname(), otherpid); syslog(LOG_ERR, - "<%s> failed to open the pid log file, run anyway.", - __func__); + "failed to open the pid file %s, run anyway.", + pidfilename); } if (!fflag) daemon(1, 0); @@ -265,7 +267,8 @@ main(int argc, char *argv[]) csock_open(&ctrlsock, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); if (ctrlsock.si_fd == -1) { - syslog(LOG_ERR, "<%s> cannot open control socket", __func__); + syslog(LOG_ERR, "cannot open control socket: %s", + strerror(errno)); exit(1); } @@ -289,7 +292,8 @@ main(int argc, char *argv[]) error = csock_listen(&ctrlsock); if (error) { - syslog(LOG_ERR, "<%s> listen failed", __func__); + syslog(LOG_ERR, "cannot listen control socket: %s", + strerror(errno)); exit(1); } @@ -332,10 +336,11 @@ main(int argc, char *argv[]) if ((i = poll(set, sizeof(set)/sizeof(set[0]), timeout ? (timeout->tv_sec * 1000 + timeout->tv_usec / 1000) : INFTIM)) < 0) { - /* EINTR would occur upon SIGUSR1 for status dump */ + + /* EINTR would occur if a signal was delivered */ if (errno != EINTR) - syslog(LOG_ERR, "<%s> select: %s", - __func__, strerror(errno)); + syslog(LOG_ERR, "poll() failed: %s", + strerror(errno)); continue; } if (i == 0) /* timeout */ @@ -351,9 +356,11 @@ main(int argc, char *argv[]) fd = csock_accept(&ctrlsock); if (fd == -1) - syslog(LOG_ERR, "<%s> accept", __func__); + syslog(LOG_ERR, + "cannot accept() control socket: %s", + strerror(errno)); else { - cmsg_handler_server(fd); + cm_handler_server(fd); close(fd); } } @@ -371,14 +378,14 @@ rtadvd_shutdown(void) if (wait_shutdown) { syslog(LOG_INFO, - "waiting expiration of the all RA timers\n"); + "waiting expiration of the all RA timers."); TAILQ_FOREACH(ifi, &ifilist, ifi_next) { if (ifi->ifi_ra_timer != NULL) break; } if (ifi == NULL) { - syslog(LOG_INFO, "gracefully terminated.\n"); + syslog(LOG_NOTICE, "gracefully terminated."); exit(0); } @@ -386,7 +393,7 @@ rtadvd_shutdown(void) return; } - syslog(LOG_DEBUG, "<%s> cease to be an advertising router\n", + syslog(LOG_DEBUG, "<%s> cease to be an advertising router", __func__); wait_shutdown = 1; @@ -405,6 +412,18 @@ rtadvd_shutdown(void) continue; if (ifi->ifi_ra_timer == NULL) continue; + if (ifi->ifi_ra_lastsent.tv_sec == 0 && + ifi->ifi_ra_lastsent.tv_usec == 0 && + ifi->ifi_ra_timer != NULL) { + /* + * When RA configured but never sent, + * ignore the IF immediately. + */ + rtadvd_remove_timer(ifi->ifi_ra_timer); + ifi->ifi_ra_timer = NULL; + ifi->ifi_state = IFI_STATE_UNCONFIGURED; + continue; + } ifi->ifi_state = IFI_STATE_TRANSITIVE; @@ -419,8 +438,7 @@ rtadvd_shutdown(void) rtadvd_set_timer(&ifi->ifi_ra_timer->rat_tm, ifi->ifi_ra_timer); } - syslog(LOG_INFO, - "<%s> final RA transmission started.\n", __func__); + syslog(LOG_NOTICE, "final RA transmission started."); pidfile_remove(pfh); csock_close(&ctrlsock); @@ -506,20 +524,20 @@ rtmsg_input(struct sockinfo *s) continue; } - syslog(LOG_INFO, "<%s>: if_announcemsg (idx=%d:%d)", + syslog(LOG_DEBUG, "<%s>: if_announcemsg (idx=%d:%d)", __func__, ifan->ifan_index, ifan->ifan_what); switch (ifan->ifan_what) { case IFAN_ARRIVAL: - syslog(LOG_INFO, - "<%s>: interface added (idx=%d)", - __func__, ifan->ifan_index); + syslog(LOG_NOTICE, + "interface added (idx=%d)", + ifan->ifan_index); update_ifinfo(&ifilist, ifan->ifan_index); loadconfig_index(ifan->ifan_index); break; case IFAN_DEPARTURE: - syslog(LOG_INFO, - "<%s>: interface removed (idx=%d)", - __func__, ifan->ifan_index); + syslog(LOG_NOTICE, + "interface removed (idx=%d)", + ifan->ifan_index); rm_ifinfo_index(ifan->ifan_index); /* Clear ifi_ifindex */ @@ -645,16 +663,16 @@ rtmsg_input(struct sockinfo *s) /* check if an interface flag is changed */ if ((oldifflags & IFF_UP) && /* UP to DOWN */ !(ifi->ifi_flags & IFF_UP)) { - syslog(LOG_INFO, - "<%s> interface %s becomes down. stop timer.", - __func__, ifi->ifi_ifname); + syslog(LOG_NOTICE, + "ifi_ifname); rtadvd_remove_timer(ifi->ifi_ra_timer); ifi->ifi_ra_timer = NULL; } else if (!(oldifflags & IFF_UP) && /* DOWN to UP */ (ifi->ifi_flags & IFF_UP)) { - syslog(LOG_INFO, - "<%s> interface %s becomes up. restart timer.", - __func__, ifi->ifi_ifname); + syslog(LOG_NOTICE, + "interface %s becomes up. restart timer.", + ifi->ifi_ifname); ifi->ifi_state = IFI_STATE_TRANSITIVE; ifi->ifi_burstcount = @@ -728,15 +746,11 @@ rtadvd_input(struct sockinfo *s) hlimp = (int *)CMSG_DATA(cm); } if (ifindex == 0) { - syslog(LOG_ERR, - "<%s> failed to get receiving interface", - __func__); + syslog(LOG_ERR, "failed to get receiving interface"); return; } if (hlimp == NULL) { - syslog(LOG_ERR, - "<%s> failed to get receiving hop limit", - __func__); + syslog(LOG_ERR, "failed to get receiving hop limit"); return; } @@ -756,8 +770,7 @@ rtadvd_input(struct sockinfo *s) #ifdef OLDRAWSOCKET if ((size_t)i < sizeof(struct ip6_hdr) + sizeof(struct icmp6_hdr)) { syslog(LOG_ERR, - "<%s> packet size(%d) is too short", - __func__, i); + "packet size(%d) is too short", i); return; } @@ -765,9 +778,7 @@ rtadvd_input(struct sockinfo *s) icp = (struct icmp6_hdr *)(ip + 1); /* XXX: ext. hdr? */ #else if ((size_t)i < sizeof(struct icmp6_hdr)) { - syslog(LOG_ERR, - "<%s> packet size(%zd) is too short", - __func__, i); + syslog(LOG_ERR, "packet size(%zd) is too short", i); return; } @@ -783,9 +794,9 @@ rtadvd_input(struct sockinfo *s) */ if (*hlimp != 255) { syslog(LOG_NOTICE, - "<%s> RS with invalid hop limit(%d) " + "RS with invalid hop limit(%d) " "received from %s on %s", - __func__, *hlimp, + *hlimp, inet_ntop(AF_INET6, &rcvfrom.sin6_addr, ntopbuf, sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); @@ -793,9 +804,9 @@ rtadvd_input(struct sockinfo *s) } if (icp->icmp6_code) { syslog(LOG_NOTICE, - "<%s> RS with invalid ICMP6 code(%d) " + "RS with invalid ICMP6 code(%d) " "received from %s on %s", - __func__, icp->icmp6_code, + icp->icmp6_code, inet_ntop(AF_INET6, &rcvfrom.sin6_addr, ntopbuf, sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); @@ -803,9 +814,8 @@ rtadvd_input(struct sockinfo *s) } if ((size_t)i < sizeof(struct nd_router_solicit)) { syslog(LOG_NOTICE, - "<%s> RS from %s on %s does not have enough " + "RS from %s on %s does not have enough " "length (len = %zd)", - __func__, inet_ntop(AF_INET6, &rcvfrom.sin6_addr, ntopbuf, sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf), i); @@ -820,18 +830,18 @@ rtadvd_input(struct sockinfo *s) */ if (!IN6_IS_ADDR_LINKLOCAL(&rcvfrom.sin6_addr)) { syslog(LOG_NOTICE, - "<%s> RA witn non-linklocal source address " + "RA witn non-linklocal source address " "received from %s on %s", - __func__, inet_ntop(AF_INET6, &rcvfrom.sin6_addr, + inet_ntop(AF_INET6, &rcvfrom.sin6_addr, ntopbuf, sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); return; } if (*hlimp != 255) { syslog(LOG_NOTICE, - "<%s> RA with invalid hop limit(%d) " + "RA with invalid hop limit(%d) " "received from %s on %s", - __func__, *hlimp, + *hlimp, inet_ntop(AF_INET6, &rcvfrom.sin6_addr, ntopbuf, sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); @@ -839,9 +849,9 @@ rtadvd_input(struct sockinfo *s) } if (icp->icmp6_code) { syslog(LOG_NOTICE, - "<%s> RA with invalid ICMP6 code(%d) " + "RA with invalid ICMP6 code(%d) " "received from %s on %s", - __func__, icp->icmp6_code, + icp->icmp6_code, inet_ntop(AF_INET6, &rcvfrom.sin6_addr, ntopbuf, sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); @@ -849,9 +859,8 @@ rtadvd_input(struct sockinfo *s) } if ((size_t)i < sizeof(struct nd_router_advert)) { syslog(LOG_NOTICE, - "<%s> RA from %s on %s does not have enough " + "RA from %s on %s does not have enough " "length (len = %zd)", - __func__, inet_ntop(AF_INET6, &rcvfrom.sin6_addr, ntopbuf, sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf), i); @@ -861,9 +870,8 @@ rtadvd_input(struct sockinfo *s) break; case ICMP6_ROUTER_RENUMBERING: if (mcastif == NULL) { - syslog(LOG_ERR, "<%s> received a router renumbering " - "message, but not allowed to be accepted", - __func__); + syslog(LOG_ERR, "received a router renumbering " + "message, but not allowed to be accepted"); break; } rr_input(i, (struct icmp6_router_renum *)icp, pi, &rcvfrom, @@ -876,8 +884,7 @@ rtadvd_input(struct sockinfo *s) * could receive message after opening the socket and * before setting ICMP6 type filter(see sock_open()). */ - syslog(LOG_ERR, "<%s> invalid icmp type(%d)", - __func__, icp->icmp6_type); + syslog(LOG_ERR, "invalid icmp type(%d)", icp->icmp6_type); return; } @@ -903,6 +910,7 @@ rs_input(int len, struct nd_router_solic /* ND option check */ memset(&ndopts, 0, sizeof(ndopts)); + TAILQ_INIT(&ndopts.opt_list); if (nd6_options((struct nd_opt_hdr *)(rs + 1), len - sizeof(struct nd_router_solicit), &ndopts, NDOPT_FLAG_SRCLINKADDR)) { @@ -1030,7 +1038,7 @@ check_accept_rtadv(int idx) break; } if (ifi == NULL) { - syslog(LOG_ERR, + syslog(LOG_DEBUG, "<%s> if (idx=%d) not found. Why?", __func__, idx); return (0); @@ -1048,9 +1056,7 @@ check_accept_rtadv(int idx) * RA_SEND: ip6.forwarding */ if (update_ifinfo_nd_flags(ifi) != 0) { - syslog(LOG_ERR, - "<%s> nd6 flags failed (idx=%d)", - __func__, idx); + syslog(LOG_ERR, "cannot get nd6 flags (idx=%d)", idx); return (0); } @@ -1078,6 +1084,7 @@ ra_input(int len, struct nd_router_adver /* ND option check */ memset(&ndopts, 0, sizeof(ndopts)); + TAILQ_INIT(&ndopts.opt_list); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Mon Sep 12 23:55:23 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89CEE1065673; Mon, 12 Sep 2011 23:55:23 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 78FCD8FC15; Mon, 12 Sep 2011 23:55:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8CNtNr9047886; Mon, 12 Sep 2011 23:55:23 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8CNtNUw047881; Mon, 12 Sep 2011 23:55:23 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201109122355.p8CNtNUw047881@svn.freebsd.org> From: Hiroki Sato Date: Mon, 12 Sep 2011 23:55:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225520 - head/usr.sbin/rtsold X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 23:55:23 -0000 Author: hrs Date: Mon Sep 12 23:55:23 2011 New Revision: 225520 URL: http://svn.freebsd.org/changeset/base/225520 Log: - Add ":origin" label to the interface id for resolvconf(8). (r223149) - Add -u option to enable adding :[RA-source-address] to the interface id. (r223149) - s/INET6_ADDRSTRLEN/sizeof(ntopbuf)/ (r223149) - Fix a bug that can prevent -D from being overridden by -d. (r223149) - /-P pidfile/-p pidfile/ for consistency with rtadvd(8). (r223149) - Fix -F flag handling to support receiving RAs even when ip6.forwarding=1. (r225150) Approved by: re (kib) Modified: head/usr.sbin/rtsold/rtsol.c head/usr.sbin/rtsold/rtsold.8 head/usr.sbin/rtsold/rtsold.c head/usr.sbin/rtsold/rtsold.h Directory Properties: head/usr.sbin/rtsold/ (props changed) Modified: head/usr.sbin/rtsold/rtsol.c ============================================================================== --- head/usr.sbin/rtsold/rtsol.c Mon Sep 12 23:52:55 2011 (r225519) +++ head/usr.sbin/rtsold/rtsol.c Mon Sep 12 23:55:23 2011 (r225520) @@ -73,6 +73,7 @@ static struct sockaddr_in6 from; static int rcvcmsglen; int rssock; +static char rsid[IFNAMSIZ + 1 + sizeof(DNSINFO_ORIGIN_LABEL) + 1 + NI_MAXHOST]; struct ifinfo_head_t ifinfo_head = TAILQ_HEAD_INITIALIZER(ifinfo_head); @@ -82,14 +83,18 @@ static const struct sockaddr_in6 sin6_al .sin6_addr = IN6ADDR_LINKLOCAL_ALLROUTERS_INIT, }; -static void call_script(const int, const char *const *, void *); +static void call_script(const int, const char *const *, + struct script_msg_head_t *); static size_t dname_labeldec(char *, size_t, const char *); static int safefile(const char *); static struct ra_opt *find_raopt(struct rainfo *, int, void *, size_t); +static int ra_opt_rdnss_dispatch(struct ifinfo *, struct rainfo *, + struct script_msg_head_t *, struct script_msg_head_t *); +static char *make_rsid(const char *, const char *, struct rainfo *); #define _ARGS_OTHER otherconf_script, ifi->ifname -#define _ARGS_RESADD resolvconf_script, "-a", ifi->ifname -#define _ARGS_RESDEL resolvconf_script, "-d", ifi->ifname +#define _ARGS_RESADD resolvconf_script, "-a", rsid +#define _ARGS_RESDEL resolvconf_script, "-d", rsid #define CALL_SCRIPT(name, sm_head) \ do { \ @@ -306,7 +311,7 @@ rtsol_input(int s) warnmsg(LOG_ERR, __func__, "invalid icmp type(%d) from %s on %s", icp->icmp6_type, inet_ntop(AF_INET6, &from.sin6_addr, ntopbuf, - INET6_ADDRSTRLEN), + sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); return; } @@ -315,7 +320,7 @@ rtsol_input(int s) warnmsg(LOG_INFO, __func__, "invalid icmp code(%d) from %s on %s", icp->icmp6_code, inet_ntop(AF_INET6, &from.sin6_addr, ntopbuf, - INET6_ADDRSTRLEN), + sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); return; } @@ -325,7 +330,7 @@ rtsol_input(int s) "invalid RA with hop limit(%d) from %s on %s", *hlimp, inet_ntop(AF_INET6, &from.sin6_addr, ntopbuf, - INET6_ADDRSTRLEN), + sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); return; } @@ -334,7 +339,7 @@ rtsol_input(int s) warnmsg(LOG_INFO, __func__, "invalid RA with non link-local source from %s on %s", inet_ntop(AF_INET6, &from.sin6_addr, ntopbuf, - INET6_ADDRSTRLEN), + sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); return; } @@ -345,14 +350,14 @@ rtsol_input(int s) warnmsg(LOG_INFO, __func__, "received RA from %s on an unexpected IF(%s)", inet_ntop(AF_INET6, &from.sin6_addr, ntopbuf, - INET6_ADDRSTRLEN), + sizeof(ntopbuf)), if_indextoname(pi->ipi6_ifindex, ifnamebuf)); return; } warnmsg(LOG_DEBUG, __func__, "received RA from %s on %s, state is %d", - inet_ntop(AF_INET6, &from.sin6_addr, ntopbuf, INET6_ADDRSTRLEN), + inet_ntop(AF_INET6, &from.sin6_addr, ntopbuf, sizeof(ntopbuf)), ifi->ifname, ifi->state); nd_ra = (struct nd_router_advert *)icp; @@ -378,6 +383,8 @@ rtsol_input(int s) ELM_MALLOC(rai, exit(1)); rai->rai_ifinfo = ifi; TAILQ_INIT(&rai->rai_ra_opt); + rai->rai_saddr.sin6_family = AF_INET6; + rai->rai_saddr.sin6_len = sizeof(rai->rai_saddr); memcpy(&rai->rai_saddr.sin6_addr, &from.sin6_addr, sizeof(rai->rai_saddr.sin6_addr)); newent_rai = 1; @@ -406,19 +413,19 @@ rtsol_input(int s) "too short RDNSS option" "in RA from %s was ignored.", inet_ntop(AF_INET6, &from.sin6_addr, - ntopbuf, INET6_ADDRSTRLEN)); + ntopbuf, sizeof(ntopbuf))); break; } addr = (struct in6_addr *)(raoptp + sizeof(*rdnss)); while ((char *)addr < (char *)RA_OPT_NEXT_HDR(raoptp)) { if (inet_ntop(AF_INET6, addr, ntopbuf, - INET6_ADDRSTRLEN) == NULL) { + sizeof(ntopbuf)) == NULL) { warnmsg(LOG_INFO, __func__, "an invalid address in RDNSS option" " in RA from %s was ignored.", inet_ntop(AF_INET6, &from.sin6_addr, - ntopbuf, INET6_ADDRSTRLEN)); + ntopbuf, sizeof(ntopbuf))); addr++; continue; } @@ -482,7 +489,7 @@ rtsol_input(int s) "too short DNSSL option" "in RA from %s was ignored.", inet_ntop(AF_INET6, &from.sin6_addr, - ntopbuf, INET6_ADDRSTRLEN)); + ntopbuf, sizeof(ntopbuf))); break; } @@ -568,10 +575,11 @@ ra_opt_handler(struct ifinfo *ifi) struct rainfo *rai; struct script_msg *smp1, *smp2, *smp3; struct timeval now; - TAILQ_HEAD(, script_msg) sm_rdnss_head = - TAILQ_HEAD_INITIALIZER(sm_rdnss_head); - TAILQ_HEAD(, script_msg) sm_dnssl_head = - TAILQ_HEAD_INITIALIZER(sm_dnssl_head); + struct script_msg_head_t sm_rdnss_head = + TAILQ_HEAD_INITIALIZER(sm_rdnss_head); + struct script_msg_head_t sm_dnssl_head = + TAILQ_HEAD_INITIALIZER(sm_dnssl_head); + int dcount, dlen; dcount = 0; @@ -658,17 +666,69 @@ free2: free1: free(smp1); } + /* Call the script for each information source. */ + if (uflag) + ra_opt_rdnss_dispatch(ifi, rai, &sm_rdnss_head, + &sm_dnssl_head); + } + /* Call the script for each interface. */ + if (!uflag) + ra_opt_rdnss_dispatch(ifi, NULL, &sm_rdnss_head, + &sm_dnssl_head); + return (0); +} + +char * +make_rsid(const char *ifname, const char *origin, struct rainfo *rai) +{ + char hbuf[NI_MAXHOST]; + + if (rai == NULL) + sprintf(rsid, "%s:%s", ifname, origin); + else { + if (!IN6_IS_ADDR_LINKLOCAL(&rai->rai_saddr.sin6_addr)) + return (NULL); + if (getnameinfo((struct sockaddr *)&rai->rai_saddr, + rai->rai_saddr.sin6_len, hbuf, sizeof(hbuf), NULL, 0, + NI_NUMERICHOST) != 0) + return (NULL); + sprintf(rsid, "%s:%s:[%s]", ifname, origin, hbuf); } + warnmsg(LOG_DEBUG, __func__, "rsid = [%s]", rsid); + return (rsid); +} + +int +ra_opt_rdnss_dispatch(struct ifinfo *ifi, + struct rainfo *rai, + struct script_msg_head_t *sm_rdnss_head, + struct script_msg_head_t *sm_dnssl_head) +{ + const char *r; + struct script_msg *smp1; + int error; + + error = 0; /* Add \n for DNSSL list. */ - if (!TAILQ_EMPTY(&sm_dnssl_head)) { - ELM_MALLOC(smp1, goto ra_opt_handler_freeit); + if (!TAILQ_EMPTY(sm_dnssl_head)) { + ELM_MALLOC(smp1, goto ra_opt_rdnss_freeit); smp1->sm_msg = resstr_nl; - TAILQ_INSERT_TAIL(&sm_dnssl_head, smp1, sm_next); + TAILQ_INSERT_TAIL(sm_dnssl_head, smp1, sm_next); } - TAILQ_CONCAT(&sm_rdnss_head, &sm_dnssl_head, sm_next); + TAILQ_CONCAT(sm_rdnss_head, sm_dnssl_head, sm_next); - if (!TAILQ_EMPTY(&sm_rdnss_head)) - CALL_SCRIPT(RESADD, &sm_rdnss_head); + if (rai != NULL && uflag) + r = make_rsid(ifi->ifname, DNSINFO_ORIGIN_LABEL, rai); + else + r = make_rsid(ifi->ifname, DNSINFO_ORIGIN_LABEL, NULL); + if (r == NULL) { + warnmsg(LOG_ERR, __func__, "make_rsid() failed. " + "Script was not invoked."); + error = 1; + goto ra_opt_rdnss_freeit; + } + if (!TAILQ_EMPTY(sm_rdnss_head)) + CALL_SCRIPT(RESADD, sm_rdnss_head); else if (ifi->ifi_rdnss == IFI_DNSOPT_STATE_RECEIVED || ifi->ifi_dnssl == IFI_DNSOPT_STATE_RECEIVED) { CALL_SCRIPT(RESDEL, NULL); @@ -676,21 +736,21 @@ free1: ifi->ifi_dnssl = IFI_DNSOPT_STATE_NOINFO; } -ra_opt_handler_freeit: +ra_opt_rdnss_freeit: /* Clear script message queue. */ - if (!TAILQ_EMPTY(&sm_rdnss_head)) { - while ((smp1 = TAILQ_FIRST(&sm_rdnss_head)) != NULL) { - TAILQ_REMOVE(&sm_rdnss_head, smp1, sm_next); + if (!TAILQ_EMPTY(sm_rdnss_head)) { + while ((smp1 = TAILQ_FIRST(sm_rdnss_head)) != NULL) { + TAILQ_REMOVE(sm_rdnss_head, smp1, sm_next); free(smp1); } } - if (!TAILQ_EMPTY(&sm_dnssl_head)) { - while ((smp1 = TAILQ_FIRST(&sm_dnssl_head)) != NULL) { - TAILQ_REMOVE(&sm_dnssl_head, smp1, sm_next); + if (!TAILQ_EMPTY(sm_dnssl_head)) { + while ((smp1 = TAILQ_FIRST(sm_dnssl_head)) != NULL) { + TAILQ_REMOVE(sm_dnssl_head, smp1, sm_next); free(smp1); } } - return (0); + return (error); } static struct ra_opt * @@ -709,19 +769,18 @@ find_raopt(struct rainfo *rai, int type, } static void -call_script(const int argc, const char *const argv[], void *head) +call_script(const int argc, const char *const argv[], + struct script_msg_head_t *sm_head) { const char *scriptpath; int fd[2]; int error; pid_t pid, wpid; - TAILQ_HEAD(, script_msg) *sm_head; if ((scriptpath = argv[0]) == NULL) return; fd[0] = fd[1] = -1; - sm_head = head; if (sm_head != NULL && !TAILQ_EMPTY(sm_head)) { error = pipe(fd); if (error) { Modified: head/usr.sbin/rtsold/rtsold.8 ============================================================================== --- head/usr.sbin/rtsold/rtsold.8 Mon Sep 12 23:52:55 2011 (r225519) +++ head/usr.sbin/rtsold/rtsold.8 Mon Sep 12 23:55:23 2011 (r225520) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 28, 2011 +.Dd June 14, 2011 .Dt RTSOLD 8 .Os .\" @@ -39,24 +39,24 @@ .\" .Sh SYNOPSIS .Nm -.Op Fl dDfFm1 +.Op Fl dDfFmu1 .Op Fl O Ar script-name -.Op Fl P Ar pidfile +.Op Fl p Ar pidfile .Op Fl R Ar script-name .Ar interface ... .Nm -.Op Fl dDfFm1 +.Op Fl dDfFmu1 .Op Fl O Ar script-name -.Op Fl P Ar pidfile +.Op Fl p Ar pidfile .Op Fl R Ar script-name .Fl a .Nm rtsol -.Op Fl dD +.Op Fl dDu .Op Fl O Ar script-name .Op Fl R Ar script-name .Ar interface ... .Nm rtsol -.Op Fl dD +.Op Fl dDu .Op Fl O Ar script-name .Op Fl R Ar script-name .Fl a @@ -227,7 +227,7 @@ configuration. must be the absolute path from root to the script file, be a regular file, and be created by the same owner who runs .Nm . -.It Fl P Ar pidfile +.It Fl p Ar pidfile Writes the process ID of .Nm to @@ -245,6 +245,18 @@ standard input of this script. The .Xr resolvconf 8 script is used by default. +.It Fl u +Specifies whether adding the source address of Router Advertisement +messages to the interface name in an argument of the RDNSS and DNSSL +script. +.Pp +If +.Fl u +is specified, the interface name in the script argument will be +.Ql ifname:slaac:[RA-source-address] . +.Pp +If not, it will be +.Ql ifname:slaac . .El .Sh FILES .Bl -tag -width /var/run/rtsold.dump -compact Modified: head/usr.sbin/rtsold/rtsold.c ============================================================================== --- head/usr.sbin/rtsold/rtsold.c Mon Sep 12 23:52:55 2011 (r225519) +++ head/usr.sbin/rtsold/rtsold.c Mon Sep 12 23:55:23 2011 (r225520) @@ -75,6 +75,7 @@ static int fflag = 0; int Fflag = 0; /* force setting sysctl parameters */ int aflag = 0; int dflag = 0; +int uflag = 0; const char *otherconf_script; const char *resolvconf_script = "/sbin/resolvconf"; @@ -129,10 +130,10 @@ main(int argc, char **argv) #ifndef SMALL /* rtsold */ - opts = "adDfFm1O:P:R:"; + opts = "adDfFm1O:p:R:u"; #else /* rtsol */ - opts = "adDFO:P:R:"; + opts = "adDFO:R:u"; fflag = 1; once = 1; #endif @@ -144,10 +145,10 @@ main(int argc, char **argv) aflag = 1; break; case 'd': - dflag = 1; + dflag += 1; break; case 'D': - dflag = 2; + dflag += 2; break; case 'f': fflag = 1; @@ -164,12 +165,15 @@ main(int argc, char **argv) case 'O': otherconf_script = optarg; break; - case 'P': + case 'p': pidfilename = optarg; break; case 'R': resolvconf_script = optarg; break; + case 'u': + uflag = 1; + break; default: usage(); exit(1); @@ -184,8 +188,13 @@ main(int argc, char **argv) } /* set log level */ - if (dflag == 0) + if (dflag > 1) + log_upto = LOG_DEBUG; + else if (dflag > 0) + log_upto = LOG_INFO; + else log_upto = LOG_NOTICE; + if (!fflag) { char *ident; @@ -216,6 +225,7 @@ main(int argc, char **argv) srandom((u_long)time(NULL)); #endif +#if (__FreeBSD_version < 900000) if (Fflag) { setinet6sysctl(IPV6CTL_FORWARDING, 0); } else { @@ -223,6 +233,7 @@ main(int argc, char **argv) if (getinet6sysctl(IPV6CTL_FORWARDING)) warnx("kernel is configured as a router, not a host"); } +#endif #ifndef SMALL /* initialization to dump internal status to a file */ @@ -402,6 +413,32 @@ ifconfig(char *ifname) return (-1); } + if (Fflag) { + struct in6_ndireq nd; + int s; + + if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) { + warnmsg(LOG_ERR, __func__, "socket() failed."); + return (-1); + } + memset(&nd, 0, sizeof(nd)); + strlcpy(nd.ifname, ifname, sizeof(nd.ifname)); + if (ioctl(s, SIOCGIFINFO_IN6, (caddr_t)&nd) < 0) { + warnmsg(LOG_ERR, __func__, + "cannot get accept_rtadv flag"); + close(s); + return (-1); + } + nd.ndi.flags |= ND6_IFF_ACCEPT_RTADV; + if (ioctl(s, SIOCSIFINFO_IN6, (caddr_t)&nd) < 0) { + warnmsg(LOG_ERR, __func__, + "cannot set accept_rtadv flag"); + close(s); + return (-1); + } + close(s); + } + if ((ifi = malloc(sizeof(*ifi))) == NULL) { warnmsg(LOG_ERR, __func__, "memory allocation failed"); free(sdl); Modified: head/usr.sbin/rtsold/rtsold.h ============================================================================== --- head/usr.sbin/rtsold/rtsold.h Mon Sep 12 23:52:55 2011 (r225519) +++ head/usr.sbin/rtsold/rtsold.h Mon Sep 12 23:55:23 2011 (r225520) @@ -37,6 +37,8 @@ struct script_msg { char *sm_msg; }; +TAILQ_HEAD(script_msg_head_t, script_msg); + struct ra_opt { TAILQ_ENTRY(ra_opt) rao_next; @@ -60,7 +62,7 @@ struct ifinfo { TAILQ_ENTRY(ifinfo) ifi_next; /* pointer to the next interface */ struct sockaddr_dl *sdl; /* link-layer address */ - char ifname[IF_NAMESIZE]; /* interface name */ + char ifname[IFNAMSIZ]; /* interface name */ u_int32_t linkid; /* link ID of this interface */ int active; /* interface status */ int probeinterval; /* interval of probe timer (if necessary) */ @@ -96,6 +98,7 @@ struct ifinfo { /* Interface list */ extern TAILQ_HEAD(ifinfo_head_t, ifinfo) ifinfo_head; +#define DNSINFO_ORIGIN_LABEL "slaac" /* * RFC 3542 API deprecates IPV6_PKTINFO in favor of * IPV6_RECVPKTINFO @@ -126,6 +129,7 @@ extern struct timeval tm_max; extern int dflag; extern int aflag; extern int Fflag; +extern int uflag; extern const char *otherconf_script; extern const char *resolvconf_script; extern int ifconfig(char *); From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 00:06:12 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1ADAC106566C; Tue, 13 Sep 2011 00:06:12 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0A0658FC20; Tue, 13 Sep 2011 00:06:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8D06Bwf048724; Tue, 13 Sep 2011 00:06:11 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8D06BxO048716; Tue, 13 Sep 2011 00:06:11 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201109130006.p8D06BxO048716@svn.freebsd.org> From: Hiroki Sato Date: Tue, 13 Sep 2011 00:06:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225521 - in head: etc etc/defaults etc/rc.d sys/netinet6 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 00:06:12 -0000 Author: hrs Date: Tue Sep 13 00:06:11 2011 New Revision: 225521 URL: http://svn.freebsd.org/changeset/base/225521 Log: Add $ipv6_cpe_wanif to enable functionality required for IPv6 CPE (r225485). When setting an interface name to it, the following configurations will be enabled: 1. "no_radr" is set to all IPv6 interfaces automatically. 2. "-no_radr accept_rtadv" will be set only for $ipv6_cpe_wanif. This is done just before evaluating $ifconfig_IF_ipv6 in the rc.d scripts (this means you can manually supersede this configuration if necessary). 3. The node will add RA-sending routers to the default router list even if net.inet6.ip6.forwarding=1. This mode is added to conform to RFC 6204 (a router which connects the end-user network to a service provider network). To enable packet forwarding, you still need to set ipv6_gateway_enable=YES. Note that accepting router entries into the default router list when packet forwarding capability and a routing daemon are enabled can result in messing up the routing table. To minimize such unexpected behaviors, "no_radr" is set on all interfaces but $ipv6_cpe_wanif. Approved by: re (bz) Modified: head/etc/defaults/rc.conf head/etc/network.subr head/etc/rc.d/netoptions head/sys/netinet6/in6.h head/sys/netinet6/in6_proto.c head/sys/netinet6/ip6_var.h head/sys/netinet6/nd6_rtr.c Modified: head/etc/defaults/rc.conf ============================================================================== --- head/etc/defaults/rc.conf Mon Sep 12 23:55:23 2011 (r225520) +++ head/etc/defaults/rc.conf Tue Sep 13 00:06:11 2011 (r225521) @@ -468,6 +468,9 @@ ipv6_static_routes="" # Set to static r # route toward loopback interface. #ipv6_route_xxx="fec0:0000:0000:0006:: -prefixlen 64 ::1" ipv6_gateway_enable="NO" # Set to YES if this host will be a gateway. +ipv6_cpe_wanif="NO" # Set to the upstram interface name if this + # node will work as a router to forward IPv6 + # packets not explicitly addressed to itself. ipv6_privacy="NO" # Use privacy address on RA-receiving IFs # (RFC 4193) Modified: head/etc/network.subr ============================================================================== --- head/etc/network.subr Mon Sep 12 23:55:23 2011 (r225520) +++ head/etc/network.subr Tue Sep 13 00:06:11 2011 (r225521) @@ -113,6 +113,12 @@ ifconfig_up() ;; esac + case $ipv6_cpe_wanif in + $1) + _ipv6_opts="${_ipv6_opts} -no_radr accept_rtadv" + ;; + esac + if [ -n "${_ipv6_opts}" ]; then ifconfig $1 inet6 ${_ipv6_opts} fi Modified: head/etc/rc.d/netoptions ============================================================================== --- head/etc/rc.d/netoptions Mon Sep 12 23:55:23 2011 (r225520) +++ head/etc/rc.d/netoptions Tue Sep 13 00:06:11 2011 (r225521) @@ -106,6 +106,19 @@ netoptions_inet6() ${SYSCTL} net.inet6.ip6.use_tempaddr=1 >/dev/null ${SYSCTL} net.inet6.ip6.prefer_tempaddr=1 >/dev/null fi + + case $ipv6_cpe_wanif in + ""|[Nn][Oo]|[Nn][Oo][Nn][Ee]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) + ${SYSCTL} net.inet6.ip6.no_radr=0 >/dev/null + ${SYSCTL} net.inet6.ip6.rfc6204w3=0 >/dev/null + ;; + *) + netoptions_init + echo -n " IPv6 CPE WANIF=${ipv6_cpe_wanif}" + ${SYSCTL} net.inet6.ip6.no_radr=1 >/dev/null + ${SYSCTL} net.inet6.ip6.rfc6204w3=1 >/dev/null + ;; + esac } load_rc_config $name Modified: head/sys/netinet6/in6.h ============================================================================== --- head/sys/netinet6/in6.h Mon Sep 12 23:55:23 2011 (r225520) +++ head/sys/netinet6/in6.h Tue Sep 13 00:06:11 2011 (r225521) @@ -614,7 +614,9 @@ struct ip6_mtuinfo { #define IPV6CTL_NO_RADR 48 /* No defroute from RA */ #define IPV6CTL_NORBIT_RAIF 49 /* Disable R-bit in NA on RA * receiving IF. */ -#define IPV6CTL_MAXID 50 +#define IPV6CTL_RFC6204W3 50 /* Accept defroute even when forwarding + enabled */ +#define IPV6CTL_MAXID 51 #endif /* __BSD_VISIBLE */ /* Modified: head/sys/netinet6/in6_proto.c ============================================================================== --- head/sys/netinet6/in6_proto.c Mon Sep 12 23:55:23 2011 (r225520) +++ head/sys/netinet6/in6_proto.c Tue Sep 13 00:06:11 2011 (r225521) @@ -399,6 +399,7 @@ VNET_DEFINE(int, ip6_defmcasthlim) = IPV VNET_DEFINE(int, ip6_accept_rtadv) = 0; VNET_DEFINE(int, ip6_no_radr) = 0; VNET_DEFINE(int, ip6_norbit_raif) = 0; +VNET_DEFINE(int, ip6_rfc6204w3) = 0; VNET_DEFINE(int, ip6_maxfragpackets); /* initialized in frag6.c:frag6_init() */ VNET_DEFINE(int, ip6_maxfrags); /* initialized in frag6.c:frag6_init() */ VNET_DEFINE(int, ip6_log_interval) = 5; @@ -536,6 +537,10 @@ SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_ &VNET_NAME(ip6_norbit_raif), 0, "Always set 0 to R flag in ICMPv6 NA messages when accepting RA" " on the interface."); +SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_RFC6204W3, rfc6204w3, + CTLFLAG_RW, &VNET_NAME(ip6_rfc6204w3), 0, + "Accept the default router list from ICMPv6 RA messages even " + "when packet forwarding enabled."); SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_KEEPFAITH, keepfaith, CTLFLAG_RW, &VNET_NAME(ip6_keepfaith), 0, ""); SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_LOG_INTERVAL, log_interval, Modified: head/sys/netinet6/ip6_var.h ============================================================================== --- head/sys/netinet6/ip6_var.h Mon Sep 12 23:55:23 2011 (r225520) +++ head/sys/netinet6/ip6_var.h Tue Sep 13 00:06:11 2011 (r225521) @@ -319,6 +319,8 @@ VNET_DECLARE(int, ip6_accept_rtadv); /* VNET_DECLARE(int, ip6_no_radr); /* No defroute from RA */ VNET_DECLARE(int, ip6_norbit_raif); /* Disable R-bit in NA on RA * receiving IF. */ +VNET_DECLARE(int, ip6_rfc6204w3); /* Accept defroute from RA even when + forwarding enabled */ VNET_DECLARE(int, ip6_keepfaith); /* Firewall Aided Internet Translator */ VNET_DECLARE(int, ip6_log_interval); VNET_DECLARE(time_t, ip6_log_time); @@ -332,6 +334,7 @@ VNET_DECLARE(int, ip6_dad_count); /* Dup #define V_ip6_accept_rtadv VNET(ip6_accept_rtadv) #define V_ip6_no_radr VNET(ip6_no_radr) #define V_ip6_norbit_raif VNET(ip6_norbit_raif) +#define V_ip6_rfc6204w3 VNET(ip6_rfc6204w3) #define V_ip6_keepfaith VNET(ip6_keepfaith) #define V_ip6_log_interval VNET(ip6_log_interval) #define V_ip6_log_time VNET(ip6_log_time) Modified: head/sys/netinet6/nd6_rtr.c ============================================================================== --- head/sys/netinet6/nd6_rtr.c Mon Sep 12 23:55:23 2011 (r225520) +++ head/sys/netinet6/nd6_rtr.c Tue Sep 13 00:06:11 2011 (r225521) @@ -269,11 +269,13 @@ nd6_ra_input(struct mbuf *m, int off, in dr0.rtaddr = saddr6; dr0.flags = nd_ra->nd_ra_flags_reserved; /* - * Effectively-disable the route in the RA packet - * when ND6_IFF_NO_RADR on the receiving interface or - * ip6.forwarding=1. + * Effectively-disable routes from RA messages when + * ND6_IFF_NO_RADR enabled on the receiving interface or + * (ip6.forwarding == 1 && ip6.rfc6204w3 != 1). */ - if (ndi->flags & ND6_IFF_NO_RADR || V_ip6_forwarding) + if (ndi->flags & ND6_IFF_NO_RADR) + dr0.rtlifetime = 0; + else if (V_ip6_forwarding && !V_ip6_rfc6204w3) dr0.rtlifetime = 0; else dr0.rtlifetime = ntohs(nd_ra->nd_ra_router_lifetime); From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 00:09:47 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DBB40106566C; Tue, 13 Sep 2011 00:09:47 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CCD388FC14; Tue, 13 Sep 2011 00:09:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8D09le5049007; Tue, 13 Sep 2011 00:09:47 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8D09lY8049005; Tue, 13 Sep 2011 00:09:47 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201109130009.p8D09lY8049005@svn.freebsd.org> From: Hiroki Sato Date: Tue, 13 Sep 2011 00:09:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225522 - head/etc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 00:09:48 -0000 Author: hrs Date: Tue Sep 13 00:09:47 2011 New Revision: 225522 URL: http://svn.freebsd.org/changeset/base/225522 Log: - Add an warning when ifconfig_IF_ipv6 has no inet6 keyword in front of an IPv6 address. (r225489) - Use eval for ${ifconfig_args} to fix an issue fixed in r223506. (r225489) Approved by: re (bz) Modified: head/etc/network.subr Modified: head/etc/network.subr ============================================================================== --- head/etc/network.subr Tue Sep 13 00:06:11 2011 (r225521) +++ head/etc/network.subr Tue Sep 13 00:09:47 2011 (r225522) @@ -126,8 +126,16 @@ ifconfig_up() # ifconfig_IF_ipv6 ifconfig_args=`ifconfig_getargs $1 ipv6` if [ -n "${ifconfig_args}" ]; then + # backward compatibility: inet6 keyword + case "${ifconfig_args}" in + :*|[0-9a-fA-F]*:*) + warn "\$ifconfig_$1_ipv6 needs " \ + "\"inet6\" keyword for an IPv6 address." + ifconfig_args="inet6 ${ifconfig_args}" + ;; + esac ifconfig $1 inet6 -ifdisabled - ifconfig $1 ${ifconfig_args} + eval ifconfig $1 ${ifconfig_args} _cfg=0 fi @@ -137,7 +145,7 @@ ifconfig_up() warn "\$ipv6_ifconfig_$1 is obsolete." \ " Use ifconfig_$1_ipv6 instead." ifconfig $1 inet6 -ifdisabled - ifconfig $1 inet6 ${ifconfig_args} + eval ifconfig $1 inet6 ${ifconfig_args} _cfg=0 fi fi From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 02:41:09 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2BD51065670; Tue, 13 Sep 2011 02:41:09 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D1CDB8FC0C; Tue, 13 Sep 2011 02:41:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8D2f9CH056043; Tue, 13 Sep 2011 02:41:09 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8D2f9Kq056025; Tue, 13 Sep 2011 02:41:09 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201109130241.p8D2f9Kq056025@svn.freebsd.org> From: Hiroki Sato Date: Tue, 13 Sep 2011 02:41:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225523 - in vendor/openresolv: 3.4.4 dist X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 02:41:10 -0000 Author: hrs Date: Tue Sep 13 02:41:09 2011 New Revision: 225523 URL: http://svn.freebsd.org/changeset/base/225523 Log: Import of openresolv 3.4.4. Obtained from: http://roy.marples.name/projects/openresolv Approved by: re (kib) Added: vendor/openresolv/3.4.4/ - copied from r225503, vendor/openresolv/dist/ Modified: vendor/openresolv/3.4.4/Makefile vendor/openresolv/3.4.4/configure vendor/openresolv/3.4.4/dnsmasq.in vendor/openresolv/3.4.4/libc.in vendor/openresolv/3.4.4/named.in vendor/openresolv/3.4.4/pdnsd.in vendor/openresolv/3.4.4/resolvconf.8.in vendor/openresolv/3.4.4/resolvconf.conf.5.in vendor/openresolv/3.4.4/resolvconf.in vendor/openresolv/3.4.4/unbound.in vendor/openresolv/dist/Makefile vendor/openresolv/dist/configure vendor/openresolv/dist/dnsmasq.in vendor/openresolv/dist/libc.in vendor/openresolv/dist/named.in vendor/openresolv/dist/pdnsd.in vendor/openresolv/dist/resolvconf.8.in vendor/openresolv/dist/resolvconf.conf.5.in vendor/openresolv/dist/resolvconf.in vendor/openresolv/dist/unbound.in Modified: vendor/openresolv/3.4.4/Makefile ============================================================================== --- vendor/openresolv/dist/Makefile Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/Makefile Tue Sep 13 02:41:09 2011 (r225523) @@ -1,7 +1,7 @@ include config.mk NAME= openresolv -VERSION= 3.4.1 +VERSION= 3.4.4 PKG= ${NAME}-${VERSION} INSTALL?= install Modified: vendor/openresolv/3.4.4/configure ============================================================================== --- vendor/openresolv/dist/configure Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/configure Tue Sep 13 02:41:09 2011 (r225523) @@ -9,7 +9,7 @@ TARGET= RESTARTCMD= RCDIR= -for x; do +for x do opt=${x%%=*} var=${x#*=} case "$opt" in Modified: vendor/openresolv/3.4.4/dnsmasq.in ============================================================================== --- vendor/openresolv/dist/dnsmasq.in Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/dnsmasq.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2009 Roy Marples +# Copyright (c) 2007-2011 Roy Marples # All rights reserved # dnsmasq subscriber for resolvconf @@ -30,12 +30,14 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$dnsmasq_conf" -a -z "$dnsmasq_resolv" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" : ${dnsmasq_pid:=/var/run/dnsmasq.pid} [ -s "$dnsmasq_pid" ] || dnsmasq_pid=/var/run/dnsmasq/dnsmasq.pid : ${dnsmasq_service:=dnsmasq} : ${dnsmasq_restart:=@RESTARTCMD ${dnsmasq_service}@} -newconf="# Generated by resolvconf\n" +newconf="# Generated by resolvconf$NL" newresolv="$newconf" # Using dbus means that we never have to restart the daemon @@ -56,14 +58,14 @@ if [ -s "$dbus_pid" -a -s "$dnsmasq_pid" kill -0 $(cat "$dnsmasq_pid") 2>/dev/null then dbus=true - newconf="$newconf\n# Domain specific servers will" - newconf="$newconf be sent over dbus\nenable-dbus\n" + newconf="$newconf$NL# Domain specific servers will" + newconf="$newconf be sent over dbus${NL}enable-dbus$NL" fi fi fi for n in $NAMESERVERS; do - newresolv="${newresolv}nameserver $n\n" + newresolv="${newresolv}nameserver $n$NL" done dbusdest= @@ -75,41 +77,48 @@ for d in $DOMAINS; do SIFS=${IFS-y} OIFS=$IFS IFS=. set -- ${ns%%,*} - num="0x$(printf "%02x" $1 $2 $3 $4)" + num="0x$(printf %02x $1 $2 $3 $4)" if [ "$SIFS" = yi ]; then unset IFS else IFS=$OIFS fi - dbusdest="$dbusdest uint32:$(printf "%u" $num)" + dbusdest="$dbusdest uint32:$(printf %u $num)" dbusdest="$dbusdest string:$dn" else - newconf="${newconf}server=/$dn/${ns%%,*}\n" + newconf="${newconf}server=/$dn/${ns%%,*}$NL" fi [ "$ns" = "${ns#*,}" ] && break ns="${ns#*,}" done done +# Try to ensure that config dirs exist +if type config_mkdirs >/dev/null 2>&1; then + config_mkdirs "$dnsmasq_conf" "$dnsmasq_resolv" +else + @PREFIX@/sbin/resolvconf -D "$dnsmasq_conf" "$dnsmasq_resolv" +fi + changed=false if [ -n "$dnsmasq_conf" ]; then if [ ! -f "$dnsmasq_conf" ] || \ - [ "$(cat "$dnsmasq_conf")" != "$(printf "$newconf")" ] + [ "$(cat "$dnsmasq_conf")" != "$(printf %s "$newconf")" ] then changed=true - printf "$newconf" >"$dnsmasq_conf" + printf %s "$newconf" >"$dnsmasq_conf" fi fi if [ -n "$dnsmasq_resolv" ]; then if [ -f "$dnsmasq_resolv" ]; then - if [ "$(cat "$dnsmasq_resolv")" != "$(printf "$newresolv")" ] + if [ "$(cat "$dnsmasq_resolv")" != "$(printf %s "$newresolv")" ] then changed=true - printf "$newresolv" >"$dnsmasq_resolv" + printf %s "$newresolv" >"$dnsmasq_resolv" fi else # dnsmasq polls this file so no need to set changed=true - printf "$newresolv" >"$dnsmasq_resolv" + printf %s "$newresolv" >"$dnsmasq_resolv" fi fi Modified: vendor/openresolv/3.4.4/libc.in ============================================================================== --- vendor/openresolv/dist/libc.in Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/libc.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2009 Roy Marples +# Copyright (c) 2007-2011 Roy Marples # All rights reserved # libc subscriber for resolvconf @@ -30,6 +30,8 @@ SYSCONFDIR=@SYSCONFDIR@ LIBEXECDIR=@LIBEXECDIR@ VARDIR=@VARDIR@ IFACEDIR="$VARDIR/interfaces" +NL=" +" # sed may not be available, and this is faster on small files key_get_value() @@ -109,7 +111,7 @@ case "${resolv_conf_passthrough:-NO}" in fi done [ -z "$newest" ] && exit 0 - newconf="$(cat "$newest")\n" + newconf="$(cat "$newest")$NL" ;; *) [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" @@ -118,13 +120,13 @@ case "${resolv_conf_passthrough:-NO}" in newns="$(uniqify $name_servers $NS $name_servers_append)" # Hold our new resolv.conf in a variable to save on temporary files - newconf="# Generated by resolvconf\n" + newconf="# Generated by resolvconf$NL" if [ -n "$resolv_conf_head" ]; then - newconf="$newconf$resolv_conf_head\n" + newconf="$newconf$resolv_conf_head$NL" fi - [ -n "$newsearch" ] && newconf="${newconf}search $newsearch\n" + [ -n "$newsearch" ] && newconf="${newconf}search $newsearch$NL" for n in $newns; do - newconf="${newconf}nameserver $n\n" + newconf="${newconf}nameserver $n$NL" done # Now get any configured options @@ -135,22 +137,22 @@ case "${resolv_conf_passthrough:-NO}" in for opt in $(uniqify $opts); do newconf="${newconf} $opt" done - newconf="$newconf\n" + newconf="$newconf$NL" fi if [ -n "$resolv_conf_tail" ]; then - newconf="$newconf$resolv_conf_tail\n" + newconf="$newconf$resolv_conf_tail$NL" fi ;; esac # Check if the file has actually changed or not if [ -e "$resolv_conf" ]; then - [ "$(cat "$resolv_conf")" = "$(printf "$newconf")" ] && exit 0 + [ "$(cat "$resolv_conf")" = "$(printf %s "$newconf")" ] && exit 0 fi # Create our resolv.conf now -(umask 022; printf "$newconf" >"$resolv_conf") +(umask 022; printf %s "$newconf" >"$resolv_conf") eval $libc_restart retval=0 @@ -160,7 +162,7 @@ for script in "$LIBEXECDIR"/libc.d/*; do if [ -x "$script" ]; then "$script" "$@" else - (. "$script" "$@") + (. "$script") fi retval=$(($retval + $?)) fi Modified: vendor/openresolv/3.4.4/named.in ============================================================================== --- vendor/openresolv/dist/named.in Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/named.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2009 Roy Marples +# Copyright (c) 2007-2011 Roy Marples # All rights reserved # named subscriber for resolvconf @@ -30,6 +30,8 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$named_zones" -a -z "$named_options" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" # Platform specific kludges if [ -z "$named_service" -a -z "$named_restart" -a \ @@ -42,49 +44,56 @@ then fi : ${named_service:=named} : ${named_restart:=@RESTARTCMD ${named_service}@} -newoptions="# Generated by resolvconf\n" +newoptions="# Generated by resolvconf$NL" newzones="$newoptions" forward= for n in $NAMESERVERS; do case "$forward" in - *"\n\t$n;"*);; - *) forward="$forward\n\t$n;";; + *"$NL $n;"*);; + *) forward="$forward$NL $n;";; esac done if [ -n "$forward" ]; then - newoptions="${newoptions}forward first;\nforwarders {$forward\n};\n" + newoptions="${newoptions}forward first;${NL}forwarders {$forward${NL}};$NL" fi for d in $DOMAINS; do - newzones="${newzones}zone \"${d%%:*}\" {\n" - newzones="$newzones\ttype forward;\n" - newzones="$newzones\tforward first;\n\tforwarders {\n" + newzones="${newzones}zone \"${d%%:*}\" {$NL" + newzones="$newzones type forward;$NL" + newzones="$newzones forward first;$NL forwarders {$NL" ns="${d#*:}" while [ -n "$ns" ]; do - newzones="$newzones\t\t${ns%%,*};\n" + newzones="$newzones ${ns%%,*};$NL" [ "$ns" = "${ns#*,}" ] && break ns="${ns#*,}" done - newzones="$newzones\t};\n};\n" + newzones="$newzones };$NL};$NL" done +# Try to ensure that config dirs exist +if type config_mkdirs >/dev/null 2>&1; then + config_mkdirs "$named_options" "$named_zones" +else + @PREFIX@/sbin/resolvconf -D "$named_options" "$named_zones" +fi + # No point in changing files or reloading bind if the end result has not # changed changed=false if [ -n "$named_options" ]; then if [ ! -f "$named_options" ] || \ - [ "$(cat "$named_options")" != "$(printf "$newoptions")" ] + [ "$(cat "$named_options")" != "$(printf %s "$newoptions")" ] then - printf "$newoptions" >"$named_options" + printf %s "$newoptions" >"$named_options" changed=true fi fi if [ -n "$named_zones" ]; then if [ ! -f "$named_zones" ] || \ - [ "$(cat "$named_zones")" != "$(printf "$newzones")" ] + [ "$(cat "$named_zones")" != "$(printf %s "$newzones")" ] then - printf "$newzones" >"$named_zones" + printf %s "$newzones" >"$named_zones" changed=true fi fi Modified: vendor/openresolv/3.4.4/pdnsd.in ============================================================================== --- vendor/openresolv/dist/pdnsd.in Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/pdnsd.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2010 Roy Marples +# Copyright (c) 2010-2011 Roy Marples # All rights reserved # pdnsd subscriber for resolvconf @@ -30,6 +30,8 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$pdnsd_conf" -a -z "$pdnsd_resolv" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" : ${pdnsd_restart:=pdnsd-ctl config $pdnsd_conf} signature="# Generated by resolvconf" @@ -83,21 +85,29 @@ change_file() newresolv="# Generated by resolvconf\n" changed=false +# Try to ensure that config dirs exist +if type config_mkdirs >/dev/null 2>&1; then + config_mkdirs "$pdnsd_resolv" "$pdnsd_conf" +else + @PREFIX@/sbin/resolvconf -D "$pdnsd_resolv" "$pdnsd_conf" +fi + if [ -n "$pdnsd_resolv" ]; then for n in $NAMESERVERS; do newresolv="${newresolv}nameserver $n\n" done fi -if [ -n "$pdnsd_conf" ]; then +# Only modify the configuration if it exists and we can write to it +if [ -w "$pdnsd_conf" ]; then cf="$pdnsd_conf.new" newconf= if [ -z "$pdnsd_resolv" ]; then - newconf="${newconf}server {\n" - newconf="${newconf}\tlabel=resolvconf;\n" + newconf="${newconf}server {$NL" + newconf="${newconf} label=resolvconf;$NL" if [ -n "$NAMESERVERS" ]; then - newconf="${newconf}\tip=" + newconf="${newconf} ip=" first=true for n in $NAMESERVERS; do if $first; then @@ -107,16 +117,16 @@ if [ -n "$pdnsd_conf" ]; then fi newconf="$newconf$n" done - newconf="${newconf};\n" + newconf="${newconf};$NL" fi - newconf="${newconf}}\n" + newconf="${newconf}}$NL" fi for d in $DOMAINS; do - newconf="${newconf}server {\n" - newconf="${newconf}\tinclude=.${d%%:*}.;\n" - newconf="${newconf}\tpolicy=excluded;\n" - newconf="${newconf}\tip=" + newconf="${newconf}server {$NL" + newconf="${newconf} include=.${d%%:*}.;$NL" + newconf="${newconf} policy=excluded;$NL" + newconf="${newconf} ip=" ns="${d#*:}" while [ -n "$ns" ]; do newconf="${newconf}${ns%%,*}" @@ -124,14 +134,14 @@ if [ -n "$pdnsd_conf" ]; then ns="${ns#*,}" newconf="${newconf}," done - newconf="${newconf};\n}\n" + newconf="${newconf};$NL}$NL" done rm -f "$cf" remove_markers "$signature" "$signature_end" "$pdnsd_conf" > "$cf" if [ -n "$newconf" ]; then echo "$signature" >> "$cf" - printf "$newconf" >> "$cf" + printf %s "$newconf" >> "$cf" echo "$signature_end" >> "$cf" fi if change_file "$pdnsd_conf" "$cf"; then @@ -141,10 +151,10 @@ fi if [ -n "$pdnsd_resolv" ]; then if [ ! -f "$pdnsd_resolv" ] || \ - [ "$(cat "$pdnsd_resolv")" != "$(printf "$newresolv")" ] + [ "$(cat "$pdnsd_resolv")" != "$(printf %s "$newresolv")" ] then changed=true - printf "$newresolv" >"$pdnsd_resolv" + printf %s "$newresolv" >"$pdnsd_resolv" fi fi Modified: vendor/openresolv/3.4.4/resolvconf.8.in ============================================================================== --- vendor/openresolv/dist/resolvconf.8.in Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/resolvconf.8.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2007-2009 Roy Marples +.\" Copyright (c) 2007-2011 Roy Marples .\" All rights reserved .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 3, 2009 +.Dd May 13, 2011 .Dt RESOLVCONF 8 SMM .Os .Sh NAME @@ -218,7 +218,16 @@ This implementation of .Nm is called openresolv and is fully command line compatible with Debian's resolvconf, as written by Thomas Hood. +.Sh SEE ALSO +.Xr resolv.conf 5 , +.Xr resolvconf.conf 5 , +.Xr resolver 3 , +.Xr stdin 3 +.Sh AUTHORS +.An Roy Marples Aq roy@marples.name .Sh BUGS +Please report them to http://roy.marples.name/projects/openresolv +.Pp .Nm does not validate any of the files given to it. .Pp @@ -229,12 +238,3 @@ will generate. You should consult .Xr resolvconf.conf 5 for instructions on how to configure your resolver. -.Sh SEE ALSO -.Xr resolv.conf 5 , -.Xr resolvconf.conf 5 , -.Xr resolver 3 , -.Xr stdin 3 -.Sh AUTHORS -.An Roy Marples Aq roy@marples.name -.Sh BUGS -Please report them to http://roy.marples.name/projects/openresolv Modified: vendor/openresolv/3.4.4/resolvconf.conf.5.in ============================================================================== --- vendor/openresolv/dist/resolvconf.conf.5.in Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/resolvconf.conf.5.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2009-2010 Roy Marples +.\" Copyright (c) 2009-2011 Roy Marples .\" All rights reserved .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 29, 2010 +.Dd April 21, 2011 .Dt RESOLVCONF.CONF 5 SMM .Os .Sh NAME @@ -43,7 +43,7 @@ Listed below are the standard .Nm variables that may be set. .Pp -After updaing this file, you may wish to run +After updating this file, you may wish to run .Nm resolvconf -u to apply the new configuration. .Sh RESOLVCONF OPTIONS Modified: vendor/openresolv/3.4.4/resolvconf.in ============================================================================== --- vendor/openresolv/dist/resolvconf.in Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/resolvconf.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2009 Roy Marples +# Copyright (c) 2007-2011 Roy Marples # All rights reserved # Redistribution and use in source and binary forms, with or without @@ -187,6 +187,41 @@ uniqify() echo "${result# *}" } +dirname() +{ + local dir= OIFS="$IFS" + local IFS=/ + set -- $@ + IFS="$OIFS" + if [ -n "$1" ]; then + printf %s . + else + shift + fi + while [ -n "$2" ]; do + printf "/%s" "$1" + shift + done + printf "\n" +} + +config_mkdirs() +{ + local e=0 f d + for f; do + [ -n "$f" ] || continue + d="$(dirname "$f")" + if [ ! -d "$d" ]; then + if type install >/dev/null 2>&1; then + install -d "$d" || e=$? + else + mkdir "$d" || e=$? + fi + fi + done + return $e +} + list_resolv() { [ -d "$IFACEDIR" ] || return 0 @@ -197,7 +232,7 @@ list_resolv() # If we have an interface ordering list, then use that. # It works by just using pathname expansion in the interface directory. if [ -n "$1" ]; then - list="$@" + list="$*" $force || report=true else cd "$IFACEDIR" @@ -230,7 +265,7 @@ list_resolv() fi if [ "$cmd" = i -o "$cmd" = "-i" ]; then - printf "$i " + printf %s "$i " else echo_resolv "$i" fi @@ -274,7 +309,7 @@ make_vars() } force=false -while getopts a:d:fhIilm:puv OPT; do +while getopts a:Dd:fhIilm:puv OPT; do case "$OPT" in f) force=true;; h) usage;; @@ -285,7 +320,7 @@ while getopts a:d:fhIilm:puv OPT; do esac done shift $(($OPTIND - 1)) -args="$iface${iface:+ }$@" +args="$iface${iface:+ }$*" # -I inits the state dir if [ "$cmd" = I ]; then @@ -295,6 +330,12 @@ if [ "$cmd" = I ]; then exit $? fi +# -D ensures that the listed config file base dirs exist +if [ "$cmd" = D ]; then + config_mkdirs "$@" + exit $? +fi + # -l lists our resolv files, optionally for a specific interface if [ "$cmd" = l -o "$cmd" = i ]; then list_resolv "$cmd" "$args" @@ -368,17 +409,17 @@ fi if [ "$cmd" = a ]; then # Read resolv.conf from stdin - resolv="$(cat)\n" + resolv="$(cat)" # If what we are given matches what we have, then do nothing if [ -e "$IFACEDIR/$iface" ]; then - if [ "$(printf "$resolv")" = \ + if [ "$(echo "$resolv")" = \ "$(cat "$IFACEDIR/$iface")" ] then exit 0 fi rm "$IFACEDIR/$iface" fi - printf "$resolv" >"$IFACEDIR/$iface" || exit $? + echo "$resolv" >"$IFACEDIR/$iface" || exit $? [ ! -d "$METRICDIR" ] && mkdir "$METRICDIR" rm -f "$METRICDIR/"*" $iface" if [ -n "$IF_METRIC" ]; then @@ -413,7 +454,7 @@ for script in "$LIBEXECDIR"/*; do if [ -x "$script" ]; then "$script" "$cmd" "$iface" else - (. "$script" "$cmd" "$iface") + (set -- "$cmd" "$iface"; . "$script") fi retval=$(($retval + $?)) fi Modified: vendor/openresolv/3.4.4/unbound.in ============================================================================== --- vendor/openresolv/dist/unbound.in Mon Sep 12 04:56:48 2011 (r225503) +++ vendor/openresolv/3.4.4/unbound.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2009 Roy Marples +# Copyright (c) 2009-2011 Roy Marples # All rights reserved # unbound subscriber for resolvconf @@ -30,34 +30,43 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$unbound_conf" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" : ${unbound_pid:=/var/run/unbound.pid} : ${unbound_service:=unbound} : ${unbound_restart:=@RESTARTCMD ${unbound_service}@} -newconf="# Generated by resolvconf\n" +newconf="# Generated by resolvconf$NL" for d in $DOMAINS; do dn="${d%%:*}" ns="${d#*:}" - newconf="${newconf}\nforward-zone:\n\tname: \"$dn\"\n" + newconf="$newconf${NL}forward-zone:$NL name: \"$dn\"$NL" while [ -n "$ns" ]; do - newconf="${newconf}\tforward-addr: ${ns%%,*}\n" + newconf="$newconf forward-addr: ${ns%%,*}$NL" [ "$ns" = "${ns#*,}" ] && break ns="${ns#*,}" done done if [ -n "$NAMESERVERS" ]; then - newconf="${newconf}\nforward-zone:\n\tname: \".\"\n" + newconf="$newconf${NL}forward-zone:$NL name: \".\"$NL" for n in $NAMESERVERS; do - newconf="${newconf}\tforward-addr: $n\n" + newconf="$newconf forward-addr: $n$NL" done fi +# Try to ensure that config dirs exist +if type config_mkdirs >/dev/null 2>&1; then + config_mkdirs "$unbound_conf" +else + @PREFIX@/sbin/resolvconf -D "$unbound_conf" +fi + if [ ! -f "$unbound_conf" ] || \ - [ "$(cat "$unbound_conf")" != "$(printf "$newconf")" ] + [ "$(cat "$unbound_conf")" != "$(printf %s "$newconf")" ] then - printf "$newconf" >"$unbound_conf" + printf %s "$newconf" >"$unbound_conf" # If we can't sent a HUP then force a restart if [ -s "$unbound_pid" ]; then if ! kill -HUP $(cat "$unbound_pid") 2>/dev/null; then Modified: vendor/openresolv/dist/Makefile ============================================================================== --- vendor/openresolv/dist/Makefile Tue Sep 13 00:09:47 2011 (r225522) +++ vendor/openresolv/dist/Makefile Tue Sep 13 02:41:09 2011 (r225523) @@ -1,7 +1,7 @@ include config.mk NAME= openresolv -VERSION= 3.4.1 +VERSION= 3.4.4 PKG= ${NAME}-${VERSION} INSTALL?= install Modified: vendor/openresolv/dist/configure ============================================================================== --- vendor/openresolv/dist/configure Tue Sep 13 00:09:47 2011 (r225522) +++ vendor/openresolv/dist/configure Tue Sep 13 02:41:09 2011 (r225523) @@ -9,7 +9,7 @@ TARGET= RESTARTCMD= RCDIR= -for x; do +for x do opt=${x%%=*} var=${x#*=} case "$opt" in Modified: vendor/openresolv/dist/dnsmasq.in ============================================================================== --- vendor/openresolv/dist/dnsmasq.in Tue Sep 13 00:09:47 2011 (r225522) +++ vendor/openresolv/dist/dnsmasq.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2009 Roy Marples +# Copyright (c) 2007-2011 Roy Marples # All rights reserved # dnsmasq subscriber for resolvconf @@ -30,12 +30,14 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$dnsmasq_conf" -a -z "$dnsmasq_resolv" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" : ${dnsmasq_pid:=/var/run/dnsmasq.pid} [ -s "$dnsmasq_pid" ] || dnsmasq_pid=/var/run/dnsmasq/dnsmasq.pid : ${dnsmasq_service:=dnsmasq} : ${dnsmasq_restart:=@RESTARTCMD ${dnsmasq_service}@} -newconf="# Generated by resolvconf\n" +newconf="# Generated by resolvconf$NL" newresolv="$newconf" # Using dbus means that we never have to restart the daemon @@ -56,14 +58,14 @@ if [ -s "$dbus_pid" -a -s "$dnsmasq_pid" kill -0 $(cat "$dnsmasq_pid") 2>/dev/null then dbus=true - newconf="$newconf\n# Domain specific servers will" - newconf="$newconf be sent over dbus\nenable-dbus\n" + newconf="$newconf$NL# Domain specific servers will" + newconf="$newconf be sent over dbus${NL}enable-dbus$NL" fi fi fi for n in $NAMESERVERS; do - newresolv="${newresolv}nameserver $n\n" + newresolv="${newresolv}nameserver $n$NL" done dbusdest= @@ -75,41 +77,48 @@ for d in $DOMAINS; do SIFS=${IFS-y} OIFS=$IFS IFS=. set -- ${ns%%,*} - num="0x$(printf "%02x" $1 $2 $3 $4)" + num="0x$(printf %02x $1 $2 $3 $4)" if [ "$SIFS" = yi ]; then unset IFS else IFS=$OIFS fi - dbusdest="$dbusdest uint32:$(printf "%u" $num)" + dbusdest="$dbusdest uint32:$(printf %u $num)" dbusdest="$dbusdest string:$dn" else - newconf="${newconf}server=/$dn/${ns%%,*}\n" + newconf="${newconf}server=/$dn/${ns%%,*}$NL" fi [ "$ns" = "${ns#*,}" ] && break ns="${ns#*,}" done done +# Try to ensure that config dirs exist +if type config_mkdirs >/dev/null 2>&1; then + config_mkdirs "$dnsmasq_conf" "$dnsmasq_resolv" +else + @PREFIX@/sbin/resolvconf -D "$dnsmasq_conf" "$dnsmasq_resolv" +fi + changed=false if [ -n "$dnsmasq_conf" ]; then if [ ! -f "$dnsmasq_conf" ] || \ - [ "$(cat "$dnsmasq_conf")" != "$(printf "$newconf")" ] + [ "$(cat "$dnsmasq_conf")" != "$(printf %s "$newconf")" ] then changed=true - printf "$newconf" >"$dnsmasq_conf" + printf %s "$newconf" >"$dnsmasq_conf" fi fi if [ -n "$dnsmasq_resolv" ]; then if [ -f "$dnsmasq_resolv" ]; then - if [ "$(cat "$dnsmasq_resolv")" != "$(printf "$newresolv")" ] + if [ "$(cat "$dnsmasq_resolv")" != "$(printf %s "$newresolv")" ] then changed=true - printf "$newresolv" >"$dnsmasq_resolv" + printf %s "$newresolv" >"$dnsmasq_resolv" fi else # dnsmasq polls this file so no need to set changed=true - printf "$newresolv" >"$dnsmasq_resolv" + printf %s "$newresolv" >"$dnsmasq_resolv" fi fi Modified: vendor/openresolv/dist/libc.in ============================================================================== --- vendor/openresolv/dist/libc.in Tue Sep 13 00:09:47 2011 (r225522) +++ vendor/openresolv/dist/libc.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2009 Roy Marples +# Copyright (c) 2007-2011 Roy Marples # All rights reserved # libc subscriber for resolvconf @@ -30,6 +30,8 @@ SYSCONFDIR=@SYSCONFDIR@ LIBEXECDIR=@LIBEXECDIR@ VARDIR=@VARDIR@ IFACEDIR="$VARDIR/interfaces" +NL=" +" # sed may not be available, and this is faster on small files key_get_value() @@ -109,7 +111,7 @@ case "${resolv_conf_passthrough:-NO}" in fi done [ -z "$newest" ] && exit 0 - newconf="$(cat "$newest")\n" + newconf="$(cat "$newest")$NL" ;; *) [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" @@ -118,13 +120,13 @@ case "${resolv_conf_passthrough:-NO}" in newns="$(uniqify $name_servers $NS $name_servers_append)" # Hold our new resolv.conf in a variable to save on temporary files - newconf="# Generated by resolvconf\n" + newconf="# Generated by resolvconf$NL" if [ -n "$resolv_conf_head" ]; then - newconf="$newconf$resolv_conf_head\n" + newconf="$newconf$resolv_conf_head$NL" fi - [ -n "$newsearch" ] && newconf="${newconf}search $newsearch\n" + [ -n "$newsearch" ] && newconf="${newconf}search $newsearch$NL" for n in $newns; do - newconf="${newconf}nameserver $n\n" + newconf="${newconf}nameserver $n$NL" done # Now get any configured options @@ -135,22 +137,22 @@ case "${resolv_conf_passthrough:-NO}" in for opt in $(uniqify $opts); do newconf="${newconf} $opt" done - newconf="$newconf\n" + newconf="$newconf$NL" fi if [ -n "$resolv_conf_tail" ]; then - newconf="$newconf$resolv_conf_tail\n" + newconf="$newconf$resolv_conf_tail$NL" fi ;; esac # Check if the file has actually changed or not if [ -e "$resolv_conf" ]; then - [ "$(cat "$resolv_conf")" = "$(printf "$newconf")" ] && exit 0 + [ "$(cat "$resolv_conf")" = "$(printf %s "$newconf")" ] && exit 0 fi # Create our resolv.conf now -(umask 022; printf "$newconf" >"$resolv_conf") +(umask 022; printf %s "$newconf" >"$resolv_conf") eval $libc_restart retval=0 @@ -160,7 +162,7 @@ for script in "$LIBEXECDIR"/libc.d/*; do if [ -x "$script" ]; then "$script" "$@" else - (. "$script" "$@") + (. "$script") fi retval=$(($retval + $?)) fi Modified: vendor/openresolv/dist/named.in ============================================================================== --- vendor/openresolv/dist/named.in Tue Sep 13 00:09:47 2011 (r225522) +++ vendor/openresolv/dist/named.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2009 Roy Marples +# Copyright (c) 2007-2011 Roy Marples # All rights reserved # named subscriber for resolvconf @@ -30,6 +30,8 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$named_zones" -a -z "$named_options" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" # Platform specific kludges if [ -z "$named_service" -a -z "$named_restart" -a \ @@ -42,49 +44,56 @@ then fi : ${named_service:=named} : ${named_restart:=@RESTARTCMD ${named_service}@} -newoptions="# Generated by resolvconf\n" +newoptions="# Generated by resolvconf$NL" newzones="$newoptions" forward= for n in $NAMESERVERS; do case "$forward" in - *"\n\t$n;"*);; - *) forward="$forward\n\t$n;";; + *"$NL $n;"*);; + *) forward="$forward$NL $n;";; esac done if [ -n "$forward" ]; then - newoptions="${newoptions}forward first;\nforwarders {$forward\n};\n" + newoptions="${newoptions}forward first;${NL}forwarders {$forward${NL}};$NL" fi for d in $DOMAINS; do - newzones="${newzones}zone \"${d%%:*}\" {\n" - newzones="$newzones\ttype forward;\n" - newzones="$newzones\tforward first;\n\tforwarders {\n" + newzones="${newzones}zone \"${d%%:*}\" {$NL" + newzones="$newzones type forward;$NL" + newzones="$newzones forward first;$NL forwarders {$NL" ns="${d#*:}" while [ -n "$ns" ]; do - newzones="$newzones\t\t${ns%%,*};\n" + newzones="$newzones ${ns%%,*};$NL" [ "$ns" = "${ns#*,}" ] && break ns="${ns#*,}" done - newzones="$newzones\t};\n};\n" + newzones="$newzones };$NL};$NL" done +# Try to ensure that config dirs exist +if type config_mkdirs >/dev/null 2>&1; then + config_mkdirs "$named_options" "$named_zones" +else + @PREFIX@/sbin/resolvconf -D "$named_options" "$named_zones" +fi + # No point in changing files or reloading bind if the end result has not # changed changed=false if [ -n "$named_options" ]; then if [ ! -f "$named_options" ] || \ - [ "$(cat "$named_options")" != "$(printf "$newoptions")" ] + [ "$(cat "$named_options")" != "$(printf %s "$newoptions")" ] then - printf "$newoptions" >"$named_options" + printf %s "$newoptions" >"$named_options" changed=true fi fi if [ -n "$named_zones" ]; then if [ ! -f "$named_zones" ] || \ - [ "$(cat "$named_zones")" != "$(printf "$newzones")" ] + [ "$(cat "$named_zones")" != "$(printf %s "$newzones")" ] then - printf "$newzones" >"$named_zones" + printf %s "$newzones" >"$named_zones" changed=true fi fi Modified: vendor/openresolv/dist/pdnsd.in ============================================================================== --- vendor/openresolv/dist/pdnsd.in Tue Sep 13 00:09:47 2011 (r225522) +++ vendor/openresolv/dist/pdnsd.in Tue Sep 13 02:41:09 2011 (r225523) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2010 Roy Marples +# Copyright (c) 2010-2011 Roy Marples # All rights reserved # pdnsd subscriber for resolvconf @@ -30,6 +30,8 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$pdnsd_conf" -a -z "$pdnsd_resolv" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" : ${pdnsd_restart:=pdnsd-ctl config $pdnsd_conf} signature="# Generated by resolvconf" @@ -83,21 +85,29 @@ change_file() newresolv="# Generated by resolvconf\n" changed=false +# Try to ensure that config dirs exist +if type config_mkdirs >/dev/null 2>&1; then + config_mkdirs "$pdnsd_resolv" "$pdnsd_conf" +else + @PREFIX@/sbin/resolvconf -D "$pdnsd_resolv" "$pdnsd_conf" +fi + if [ -n "$pdnsd_resolv" ]; then for n in $NAMESERVERS; do newresolv="${newresolv}nameserver $n\n" done fi -if [ -n "$pdnsd_conf" ]; then +# Only modify the configuration if it exists and we can write to it +if [ -w "$pdnsd_conf" ]; then cf="$pdnsd_conf.new" newconf= if [ -z "$pdnsd_resolv" ]; then - newconf="${newconf}server {\n" - newconf="${newconf}\tlabel=resolvconf;\n" + newconf="${newconf}server {$NL" + newconf="${newconf} label=resolvconf;$NL" if [ -n "$NAMESERVERS" ]; then - newconf="${newconf}\tip=" + newconf="${newconf} ip=" first=true *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 02:46:23 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 59D7E106564A; Tue, 13 Sep 2011 02:46:23 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3F1FF8FC08; Tue, 13 Sep 2011 02:46:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8D2kNhY056248; Tue, 13 Sep 2011 02:46:23 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8D2kNgh056241; Tue, 13 Sep 2011 02:46:23 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201109130246.p8D2kNgh056241@svn.freebsd.org> From: Hiroki Sato Date: Tue, 13 Sep 2011 02:46:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225524 - head/contrib/openresolv X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 02:46:23 -0000 Author: hrs Date: Tue Sep 13 02:46:22 2011 New Revision: 225524 URL: http://svn.freebsd.org/changeset/base/225524 Log: Merge from openresolv 3.4.4 in the vendor branch. Approved by: re (kib) Modified: head/contrib/openresolv/dnsmasq.in head/contrib/openresolv/libc.in head/contrib/openresolv/named.in head/contrib/openresolv/pdnsd.in head/contrib/openresolv/resolvconf.in head/contrib/openresolv/unbound.in Directory Properties: head/contrib/openresolv/ (props changed) Modified: head/contrib/openresolv/dnsmasq.in ============================================================================== --- head/contrib/openresolv/dnsmasq.in Tue Sep 13 02:41:09 2011 (r225523) +++ head/contrib/openresolv/dnsmasq.in Tue Sep 13 02:46:22 2011 (r225524) @@ -30,12 +30,14 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$dnsmasq_conf" -a -z "$dnsmasq_resolv" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" : ${dnsmasq_pid:=/var/run/dnsmasq.pid} [ -s "$dnsmasq_pid" ] || dnsmasq_pid=/var/run/dnsmasq/dnsmasq.pid : ${dnsmasq_service:=dnsmasq} : ${dnsmasq_restart:=@RESTARTCMD ${dnsmasq_service}@} -newconf="# Generated by resolvconf\n" +newconf="# Generated by resolvconf$NL" newresolv="$newconf" # Using dbus means that we never have to restart the daemon @@ -56,14 +58,14 @@ if [ -s "$dbus_pid" -a -s "$dnsmasq_pid" kill -0 $(cat "$dnsmasq_pid") 2>/dev/null then dbus=true - newconf="$newconf\n# Domain specific servers will" - newconf="$newconf be sent over dbus\nenable-dbus\n" + newconf="$newconf$NL# Domain specific servers will" + newconf="$newconf be sent over dbus${NL}enable-dbus$NL" fi fi fi for n in $NAMESERVERS; do - newresolv="${newresolv}nameserver $n\n" + newresolv="${newresolv}nameserver $n$NL" done dbusdest= @@ -75,16 +77,16 @@ for d in $DOMAINS; do SIFS=${IFS-y} OIFS=$IFS IFS=. set -- ${ns%%,*} - num="0x$(printf "%02x" $1 $2 $3 $4)" + num="0x$(printf %02x $1 $2 $3 $4)" if [ "$SIFS" = yi ]; then unset IFS else IFS=$OIFS fi - dbusdest="$dbusdest uint32:$(printf "%u" $num)" + dbusdest="$dbusdest uint32:$(printf %u $num)" dbusdest="$dbusdest string:$dn" else - newconf="${newconf}server=/$dn/${ns%%,*}\n" + newconf="${newconf}server=/$dn/${ns%%,*}$NL" fi [ "$ns" = "${ns#*,}" ] && break ns="${ns#*,}" @@ -94,22 +96,22 @@ done changed=false if [ -n "$dnsmasq_conf" ]; then if [ ! -f "$dnsmasq_conf" ] || \ - [ "$(cat "$dnsmasq_conf")" != "$(printf "$newconf")" ] + [ "$(cat "$dnsmasq_conf")" != "$(printf %s "$newconf")" ] then changed=true - printf "$newconf" >"$dnsmasq_conf" + printf %s "$newconf" >"$dnsmasq_conf" fi fi if [ -n "$dnsmasq_resolv" ]; then if [ -f "$dnsmasq_resolv" ]; then - if [ "$(cat "$dnsmasq_resolv")" != "$(printf "$newresolv")" ] + if [ "$(cat "$dnsmasq_resolv")" != "$(printf %s "$newresolv")" ] then changed=true - printf "$newresolv" >"$dnsmasq_resolv" + printf %s "$newresolv" >"$dnsmasq_resolv" fi else # dnsmasq polls this file so no need to set changed=true - printf "$newresolv" >"$dnsmasq_resolv" + printf %s "$newresolv" >"$dnsmasq_resolv" fi fi Modified: head/contrib/openresolv/libc.in ============================================================================== --- head/contrib/openresolv/libc.in Tue Sep 13 02:41:09 2011 (r225523) +++ head/contrib/openresolv/libc.in Tue Sep 13 02:46:22 2011 (r225524) @@ -30,6 +30,8 @@ SYSCONFDIR=@SYSCONFDIR@ LIBEXECDIR=@LIBEXECDIR@ VARDIR=@VARDIR@ IFACEDIR="$VARDIR/interfaces" +NL=" +" # sed may not be available, and this is faster on small files key_get_value() @@ -109,7 +111,7 @@ case "${resolv_conf_passthrough:-NO}" in fi done [ -z "$newest" ] && exit 0 - newconf="$(cat "$newest")\n" + newconf="$(cat "$newest")$NL" ;; *) [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" @@ -118,13 +120,13 @@ case "${resolv_conf_passthrough:-NO}" in newns="$(uniqify $name_servers $NS $name_servers_append)" # Hold our new resolv.conf in a variable to save on temporary files - newconf="# Generated by resolvconf\n" + newconf="# Generated by resolvconf$NL" if [ -n "$resolv_conf_head" ]; then - newconf="$newconf$resolv_conf_head\n" + newconf="$newconf$resolv_conf_head$NL" fi - [ -n "$newsearch" ] && newconf="${newconf}search $newsearch\n" + [ -n "$newsearch" ] && newconf="${newconf}search $newsearch$NL" for n in $newns; do - newconf="${newconf}nameserver $n\n" + newconf="${newconf}nameserver $n$NL" done # Now get any configured options @@ -135,22 +137,22 @@ case "${resolv_conf_passthrough:-NO}" in for opt in $(uniqify $opts); do newconf="${newconf} $opt" done - newconf="$newconf\n" + newconf="$newconf$NL" fi if [ -n "$resolv_conf_tail" ]; then - newconf="$newconf$resolv_conf_tail\n" + newconf="$newconf$resolv_conf_tail$NL" fi ;; esac # Check if the file has actually changed or not if [ -e "$resolv_conf" ]; then - [ "$(cat "$resolv_conf")" = "$(printf "$newconf")" ] && exit 0 + [ "$(cat "$resolv_conf")" = "$(printf %s "$newconf")" ] && exit 0 fi # Create our resolv.conf now -(umask 022; printf "$newconf" >"$resolv_conf") +(umask 022; echo "$newconf" >"$resolv_conf") eval $libc_restart retval=0 Modified: head/contrib/openresolv/named.in ============================================================================== --- head/contrib/openresolv/named.in Tue Sep 13 02:41:09 2011 (r225523) +++ head/contrib/openresolv/named.in Tue Sep 13 02:46:22 2011 (r225524) @@ -30,6 +30,8 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$named_zones" -a -z "$named_options" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" # Platform specific kludges if [ -z "$named_service" -a -z "$named_restart" -a \ @@ -42,31 +44,31 @@ then fi : ${named_service:=named} : ${named_restart:=@RESTARTCMD ${named_service}@} -newoptions="# Generated by resolvconf\n" +newoptions="# Generated by resolvconf$NL" newzones="$newoptions" forward= for n in $NAMESERVERS; do case "$forward" in - *"\n\t$n;"*);; - *) forward="$forward\n\t$n;";; + *"$NL $n;"*);; + *) forward="$forward$NL $n;";; esac done if [ -n "$forward" ]; then - newoptions="${newoptions}forward first;\nforwarders {$forward\n};\n" + newoptions="${newoptions}forward first;${NL}forwarders {$forward${NL}};$NL" fi for d in $DOMAINS; do - newzones="${newzones}zone \"${d%%:*}\" {\n" - newzones="$newzones\ttype forward;\n" - newzones="$newzones\tforward first;\n\tforwarders {\n" + newzones="${newzones}zone \"${d%%:*}\" {$NL" + newzones="$newzones type forward;$NL" + newzones="$newzones forward first;$NL forwarders {$NL" ns="${d#*:}" while [ -n "$ns" ]; do - newzones="$newzones\t\t${ns%%,*};\n" + newzones="$newzones ${ns%%,*};$NL" [ "$ns" = "${ns#*,}" ] && break ns="${ns#*,}" done - newzones="$newzones\t};\n};\n" + newzones="$newzones };$NL};$NL" done # No point in changing files or reloading bind if the end result has not @@ -74,17 +76,17 @@ done changed=false if [ -n "$named_options" ]; then if [ ! -f "$named_options" ] || \ - [ "$(cat "$named_options")" != "$(printf "$newoptions")" ] + [ "$(cat "$named_options")" != "$(printf %s "$newoptions")" ] then - printf "$newoptions" >"$named_options" + printf %s "$newoptions" >"$named_options" changed=true fi fi if [ -n "$named_zones" ]; then if [ ! -f "$named_zones" ] || \ - [ "$(cat "$named_zones")" != "$(printf "$newzones")" ] + [ "$(cat "$named_zones")" != "$(printf %s "$newzones")" ] then - printf "$newzones" >"$named_zones" + printf %s "$newzones" >"$named_zones" changed=true fi fi Modified: head/contrib/openresolv/pdnsd.in ============================================================================== --- head/contrib/openresolv/pdnsd.in Tue Sep 13 02:41:09 2011 (r225523) +++ head/contrib/openresolv/pdnsd.in Tue Sep 13 02:46:22 2011 (r225524) @@ -131,7 +131,7 @@ if [ -n "$pdnsd_conf" ]; then remove_markers "$signature" "$signature_end" "$pdnsd_conf" > "$cf" if [ -n "$newconf" ]; then echo "$signature" >> "$cf" - printf "$newconf" >> "$cf" + printf %s "$newconf" >> "$cf" echo "$signature_end" >> "$cf" fi if change_file "$pdnsd_conf" "$cf"; then @@ -141,10 +141,10 @@ fi if [ -n "$pdnsd_resolv" ]; then if [ ! -f "$pdnsd_resolv" ] || \ - [ "$(cat "$pdnsd_resolv")" != "$(printf "$newresolv")" ] + [ "$(cat "$pdnsd_resolv")" != "$(printf %s "$newresolv")" ] then changed=true - printf "$newresolv" >"$pdnsd_resolv" + printf %s "$newresolv" >"$pdnsd_resolv" fi fi Modified: head/contrib/openresolv/resolvconf.in ============================================================================== --- head/contrib/openresolv/resolvconf.in Tue Sep 13 02:41:09 2011 (r225523) +++ head/contrib/openresolv/resolvconf.in Tue Sep 13 02:46:22 2011 (r225524) @@ -368,17 +368,17 @@ fi if [ "$cmd" = a ]; then # Read resolv.conf from stdin - resolv="$(cat)\n" + resolv="$(cat)" # If what we are given matches what we have, then do nothing if [ -e "$IFACEDIR/$iface" ]; then - if [ "$(printf "$resolv")" = \ + if [ "$(echo "$resolv")" = \ "$(cat "$IFACEDIR/$iface")" ] then exit 0 fi rm "$IFACEDIR/$iface" fi - printf "$resolv" >"$IFACEDIR/$iface" || exit $? + echo "$resolv" >"$IFACEDIR/$iface" || exit $? [ ! -d "$METRICDIR" ] && mkdir "$METRICDIR" rm -f "$METRICDIR/"*" $iface" if [ -n "$IF_METRIC" ]; then Modified: head/contrib/openresolv/unbound.in ============================================================================== --- head/contrib/openresolv/unbound.in Tue Sep 13 02:41:09 2011 (r225523) +++ head/contrib/openresolv/unbound.in Tue Sep 13 02:46:22 2011 (r225524) @@ -30,34 +30,36 @@ . "@SYSCONFDIR@/resolvconf.conf" || exit 1 [ -z "$unbound_conf" ] && exit 0 [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" +NL=" +" : ${unbound_pid:=/var/run/unbound.pid} : ${unbound_service:=unbound} : ${unbound_restart:=@RESTARTCMD ${unbound_service}@} -newconf="# Generated by resolvconf\n" +newconf="# Generated by resolvconf$NL" for d in $DOMAINS; do dn="${d%%:*}" ns="${d#*:}" - newconf="${newconf}\nforward-zone:\n\tname: \"$dn\"\n" + newconf="$newconf${NL}forward-zone:$NL name: \"$dn\"$NL" while [ -n "$ns" ]; do - newconf="${newconf}\tforward-addr: ${ns%%,*}\n" + newconf="$newconf forward-addr: ${ns%%,*}$NL" [ "$ns" = "${ns#*,}" ] && break ns="${ns#*,}" done done if [ -n "$NAMESERVERS" ]; then - newconf="${newconf}\nforward-zone:\n\tname: \".\"\n" + newconf="$newconf${NL}forward-zone:$NL name: \".\"$NL" for n in $NAMESERVERS; do - newconf="${newconf}\tforward-addr: $n\n" + newconf="$newconf forward-addr: $n$NL" done fi if [ ! -f "$unbound_conf" ] || \ - [ "$(cat "$unbound_conf")" != "$(printf "$newconf")" ] + [ "$(cat "$unbound_conf")" != "$(printf %s "$newconf")" ] then - printf "$newconf" >"$unbound_conf" + printf %s "$newconf" >"$unbound_conf" # If we can't sent a HUP then force a restart if [ -s "$unbound_pid" ]; then if ! kill -HUP $(cat "$unbound_pid") 2>/dev/null; then From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 05:52:35 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 005A31065673; Tue, 13 Sep 2011 05:52:34 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E43A68FC0C; Tue, 13 Sep 2011 05:52:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8D5qY3N062126; Tue, 13 Sep 2011 05:52:34 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8D5qYZF062123; Tue, 13 Sep 2011 05:52:34 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <201109130552.p8D5qYZF062123@svn.freebsd.org> From: Tim Kientzle Date: Tue, 13 Sep 2011 05:52:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225525 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 05:52:35 -0000 Author: kientzle Date: Tue Sep 13 05:52:34 2011 New Revision: 225525 URL: http://svn.freebsd.org/changeset/base/225525 Log: Fix cpio on ARM. PR: bin/160430 Submitted by: Ian Lepore Approved by: re (Kostik Belousov) MFC after: 7 days Modified: head/lib/libarchive/archive_read_support_format_cpio.c head/lib/libarchive/archive_write_set_format_cpio.c Modified: head/lib/libarchive/archive_read_support_format_cpio.c ============================================================================== --- head/lib/libarchive/archive_read_support_format_cpio.c Tue Sep 13 02:46:22 2011 (r225524) +++ head/lib/libarchive/archive_read_support_format_cpio.c Tue Sep 13 05:52:34 2011 (r225525) @@ -54,7 +54,7 @@ struct cpio_bin_header { unsigned char c_mtime[4]; unsigned char c_namesize[2]; unsigned char c_filesize[4]; -}; +} __packed; struct cpio_odc_header { char c_magic[6]; @@ -68,7 +68,7 @@ struct cpio_odc_header { char c_mtime[11]; char c_namesize[6]; char c_filesize[11]; -}; +} __packed; struct cpio_newc_header { char c_magic[6]; @@ -85,7 +85,7 @@ struct cpio_newc_header { char c_rdevminor[8]; char c_namesize[8]; char c_crc[8]; -}; +} __packed; struct links_entry { struct links_entry *next; Modified: head/lib/libarchive/archive_write_set_format_cpio.c ============================================================================== --- head/lib/libarchive/archive_write_set_format_cpio.c Tue Sep 13 02:46:22 2011 (r225524) +++ head/lib/libarchive/archive_write_set_format_cpio.c Tue Sep 13 05:52:34 2011 (r225525) @@ -74,7 +74,7 @@ struct cpio_header { char c_mtime[11]; char c_namesize[6]; char c_filesize[11]; -}; +} __packed; /* * Set output format to 'cpio' format. From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 08:49:53 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2459F106566B; Tue, 13 Sep 2011 08:49:53 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EE51B8FC0A; Tue, 13 Sep 2011 08:49:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8D8nqUj072957; Tue, 13 Sep 2011 08:49:52 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8D8nqoN072954; Tue, 13 Sep 2011 08:49:52 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201109130849.p8D8nqoN072954@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 13 Sep 2011 08:49:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225526 - stable/8/sbin/mdmfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 08:49:53 -0000 Author: kib Date: Tue Sep 13 08:49:52 2011 New Revision: 225526 URL: http://svn.freebsd.org/changeset/base/225526 Log: MFC r225416: Add -t switch for mdmfs to enable TRIM on the configured filesystem. While there, fix minor style issues. Modified: stable/8/sbin/mdmfs/mdmfs.8 stable/8/sbin/mdmfs/mdmfs.c Directory Properties: stable/8/sbin/mdmfs/ (props changed) Modified: stable/8/sbin/mdmfs/mdmfs.8 ============================================================================== --- stable/8/sbin/mdmfs/mdmfs.8 Tue Sep 13 05:52:34 2011 (r225525) +++ stable/8/sbin/mdmfs/mdmfs.8 Tue Sep 13 08:49:52 2011 (r225526) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2007 +.Dd September 4, 2011 .Dt MDMFS 8 .Os .Sh NAME @@ -36,7 +36,7 @@ driver .Sh SYNOPSIS .Nm -.Op Fl DLlMNPSUX +.Op Fl DLlMNPStUX .Op Fl a Ar maxcontig .Op Fl b Ar block-size .Op Fl c Ar blocks-per-cylinder-group @@ -224,6 +224,13 @@ and the optional .Xr malloc 9 backed disks .Pq Dv MD_MALLOC . +.It Fl t +Turn on the TRIM enable flag for +.Xr newfs 8 . +The +.Xr md 4 +device supports the BIO_DELETE command, enabling the TRIM on created +filesystem allows return of freed memory to the system pool. .It Fl U Enable soft-updates on the file system. This is the default, and is accepted only Modified: stable/8/sbin/mdmfs/mdmfs.c ============================================================================== --- stable/8/sbin/mdmfs/mdmfs.c Tue Sep 13 05:52:34 2011 (r225525) +++ stable/8/sbin/mdmfs/mdmfs.c Tue Sep 13 08:49:52 2011 (r225526) @@ -127,7 +127,7 @@ main(int argc, char **argv) } while ((ch = getopt(argc, argv, - "a:b:Cc:Dd:E:e:F:f:hi:LlMm:NnO:o:Pp:Ss:t:Uv:w:X")) != -1) + "a:b:Cc:Dd:E:e:F:f:hi:LlMm:NnO:o:Pp:Ss:tUv:w:X")) != -1) switch (ch) { case 'a': argappend(&newfs_arg, "-a %s", optarg); @@ -212,6 +212,9 @@ main(int argc, char **argv) case 's': argappend(&mdconfig_arg, "-s %s", optarg); break; + case 't': + argappend(&newfs_arg, "-t"); + break; case 'U': softdep = true; break; @@ -282,7 +285,7 @@ argappend(char **dstp, const char *fmt, { char *old, *new; va_list ap; - + old = *dstp; assert(old != NULL); @@ -417,7 +420,7 @@ do_mdconfig_detach(void) rv = run(NULL, "%s -d -u %s%d", path_mdconfig, mdname, unit); if (rv && debug) /* This is allowed to fail. */ warnx("mdconfig (detach) exited with error code %d (ignored)", - rv); + rv); } /* @@ -656,7 +659,7 @@ usage(void) { fprintf(stderr, -"usage: %s [-DLlMNnPSUX] [-a maxcontig] [-b block-size]\n" +"usage: %s [-DLlMNnPStUX] [-a maxcontig] [-b block-size]\n" "\t[-c blocks-per-cylinder-group][-d max-extent-size] [-E path-mdconfig]\n" "\t[-e maxbpg] [-F file] [-f frag-size] [-i bytes] [-m percent-free]\n" "\t[-O optimization] [-o mount-options]\n" From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 12:14:41 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D96911065680; Tue, 13 Sep 2011 12:14:41 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id 728E68FC1C; Tue, 13 Sep 2011 12:14:41 +0000 (UTC) Received: by ywp17 with SMTP id 17so449982ywp.13 for ; Tue, 13 Sep 2011 05:14:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=U0O/xhkJCajYOE5dp2lmRXq0sTF+hsVm5d6lrogwq1s=; b=U5MUYSsJetToO1BO/m2krpL9E+s2DTKyN7E5Q+n8C1MPlyOksL+gy/qPd4by3UvRZJ jDcJmKfw69/VhApdMYMZQXYgb7F7zqWkwpLeIV2oPRCFGO9VanCXFkwGxuMfU7Bvb7It OflrweZJxIhwkMcngQZ8erogwdrYryvENY6K0= MIME-Version: 1.0 Received: by 10.150.14.1 with SMTP id 1mr2243807ybn.383.1315914366557; Tue, 13 Sep 2011 04:46:06 -0700 (PDT) Sender: pluknet@gmail.com Received: by 10.150.53.2 with HTTP; Tue, 13 Sep 2011 04:46:06 -0700 (PDT) In-Reply-To: <201107161112.p6GBC9oG025469@svn.freebsd.org> References: <201107161112.p6GBC9oG025469@svn.freebsd.org> Date: Tue, 13 Sep 2011 15:46:06 +0400 X-Google-Sender-Auth: w0eqe3_9PRP9fkfRyzQA9S8zSDk Message-ID: From: Sergey Kandaurov To: Doug Barton Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r224092 - in head/contrib/bind9: . bin bin/check bin/confgen bin/dig bin/dig/include/dig bin/dnssec bin/named bin/named/include/named bin/named/unix bin/named/unix/include/named bin/nsu... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 12:14:41 -0000 On 16 July 2011 15:12, Doug Barton wrote: > Author: dougb > Date: Sat Jul 16 11:12:09 2011 > New Revision: 224092 > URL: http://svn.freebsd.org/changeset/base/224092 > > Log: > =A0Upgrade to version 9.8.0-P4 > Hi. This commit changed liblwres.so major version 50 --> 80, so the obsolete library needs to be added to ObsoleteFiles.inc. Also, two files were removed in r224175. Does this look good for you? Index: ObsoleteFiles.inc =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- ObsoleteFiles.inc (revision 225527) +++ ObsoleteFiles.inc (working copy) @@ -61,6 +61,11 @@ OLD_LIBS+=3Dusr/lib32/librtld_db.so.1 OLD_LIBS+=3Dusr/lib32/libtacplus.so.4 .endif +# 20110718: no longer useful in the age of rc.d +OLD_FILES+=3Dusr/sbin/named.reconfig +OLD_FILES+=3Dusr/sbin/named.reload +# 20110716: bind 9.8.0 import +OLD_LIBS+=3Dusr/lib/liblwres.so.50 # 20110709: vm_map_clean.9 -> vm_map_sync.9 OLD_FILES+=3Dusr/share/man/man9/vm_map_clean.9.gz # 20110709: Catch up with removal of these functions. --=20 wbr, pluknet From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 12:58:21 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [IPv6:2001:4f8:fff6::35]) by hub.freebsd.org (Postfix) with ESMTP id 3B034106566C; Tue, 13 Sep 2011 12:58:21 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from 172-17-198-245.globalsuite.net (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx2.freebsd.org (Postfix) with ESMTP id 9A2B0150999; Tue, 13 Sep 2011 12:58:20 +0000 (UTC) Message-ID: <4E6F536C.5020501@FreeBSD.org> Date: Tue, 13 Sep 2011 05:58:20 -0700 From: Doug Barton Organization: http://SupersetSolutions.com/ User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:6.0.2) Gecko/20110912 Thunderbird/6.0.2 MIME-Version: 1.0 To: Sergey Kandaurov References: <201107161112.p6GBC9oG025469@svn.freebsd.org> In-Reply-To: X-Enigmail-Version: undefined OpenPGP: id=1A1ABC84 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r224092 - in head/contrib/bind9: . bin bin/check bin/confgen bin/dig bin/dig/include/dig bin/dnssec bin/named bin/named/include/named bin/named/unix bin/named/unix/include/named bin/nsu... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 12:58:21 -0000 On 09/13/2011 04:46, Sergey Kandaurov wrote: > On 16 July 2011 15:12, Doug Barton wrote: >> Author: dougb >> Date: Sat Jul 16 11:12:09 2011 >> New Revision: 224092 >> URL: http://svn.freebsd.org/changeset/base/224092 >> >> Log: >> Upgrade to version 9.8.0-P4 >> > > Hi. > This commit changed liblwres.so major version 50 --> 80, > so the obsolete library needs to be added to ObsoleteFiles.inc. > Also, two files were removed in r224175. > > Does this look good for you? I have no idea, I don't use that tool. If you think it's right, and testing proves your theory, go for it. :) > Index: ObsoleteFiles.inc > =================================================================== > --- ObsoleteFiles.inc (revision 225527) > +++ ObsoleteFiles.inc (working copy) > @@ -61,6 +61,11 @@ > OLD_LIBS+=usr/lib32/librtld_db.so.1 > OLD_LIBS+=usr/lib32/libtacplus.so.4 > .endif > +# 20110718: no longer useful in the age of rc.d > +OLD_FILES+=usr/sbin/named.reconfig > +OLD_FILES+=usr/sbin/named.reload > +# 20110716: bind 9.8.0 import > +OLD_LIBS+=usr/lib/liblwres.so.50 > # 20110709: vm_map_clean.9 -> vm_map_sync.9 > OLD_FILES+=usr/share/man/man9/vm_map_clean.9.gz > # 20110709: Catch up with removal of these functions. > > -- Nothin' ever doesn't change, but nothin' changes much. -- OK Go Breadth of IT experience, and depth of knowledge in the DNS. Yours for the right price. :) http://SupersetSolutions.com/ From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 13:56:18 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62FC8106564A; Tue, 13 Sep 2011 13:56:18 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 534F18FC0A; Tue, 13 Sep 2011 13:56:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DDuIGD082885; Tue, 13 Sep 2011 13:56:18 GMT (envelope-from pluknet@svn.freebsd.org) Received: (from pluknet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DDuIrn082883; Tue, 13 Sep 2011 13:56:18 GMT (envelope-from pluknet@svn.freebsd.org) Message-Id: <201109131356.p8DDuIrn082883@svn.freebsd.org> From: Sergey Kandaurov Date: Tue, 13 Sep 2011 13:56:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225528 - head X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 13:56:18 -0000 Author: pluknet Date: Tue Sep 13 13:56:18 2011 New Revision: 225528 URL: http://svn.freebsd.org/changeset/base/225528 Log: Update ObsoleteFiles.inc: - liblwres shared library version bumped with bind98 import - named.reload removed in favor of rc.d Approved by: re (kib) No objection: dougb Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Tue Sep 13 09:32:48 2011 (r225527) +++ head/ObsoleteFiles.inc Tue Sep 13 13:56:18 2011 (r225528) @@ -61,6 +61,11 @@ OLD_LIBS+=usr/lib32/libopie.so.6 OLD_LIBS+=usr/lib32/librtld_db.so.1 OLD_LIBS+=usr/lib32/libtacplus.so.4 .endif +# 20110718: no longer useful in the age of rc.d +OLD_FILES+=usr/sbin/named.reconfig +OLD_FILES+=usr/sbin/named.reload +# 20110716: bind 9.8.0 import +OLD_LIBS+=usr/lib/liblwres.so.50 # 20110709: vm_map_clean.9 -> vm_map_sync.9 OLD_FILES+=usr/share/man/man9/vm_map_clean.9.gz # 20110709: Catch up with removal of these functions. From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 14:01:35 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 83F93106566B; Tue, 13 Sep 2011 14:01:35 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6A26A8FC0C; Tue, 13 Sep 2011 14:01:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DE1Z3Q083094; Tue, 13 Sep 2011 14:01:35 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DE1Zcf083092; Tue, 13 Sep 2011 14:01:35 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109131401.p8DE1Zcf083092@svn.freebsd.org> From: Andriy Gapon Date: Tue, 13 Sep 2011 14:01:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225529 - head/sys/boot/zfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 14:01:35 -0000 Author: avg Date: Tue Sep 13 14:01:35 2011 New Revision: 225529 URL: http://svn.freebsd.org/changeset/base/225529 Log: zfstest: cleanup the code, improve functionality and diagnostics The utility is not connected to the build, so it should be safe to update it. To do: move the utility to tools/. Some code is provided by Peter Jeremy Tested by: Sebastian Chmielewski , Peter Jeremy (earlier versions) Approved by: re (kib) MFC after: 4 days Modified: head/sys/boot/zfs/zfstest.c Modified: head/sys/boot/zfs/zfstest.c ============================================================================== --- head/sys/boot/zfs/zfstest.c Tue Sep 13 13:56:18 2011 (r225528) +++ head/sys/boot/zfs/zfstest.c Tue Sep 13 14:01:35 2011 (r225529) @@ -30,6 +30,7 @@ #include #include +#include #include #include #include @@ -37,14 +38,14 @@ #include #include #include -#include +#include #define NBBY 8 void pager_output(const char *line) { - printf("%s", line); + fprintf(stderr, "%s", line); } #include "zfsimpl.c" @@ -55,8 +56,8 @@ vdev_read(vdev_t *vdev, void *priv, off_ int fd = *(int *) priv; if (pread(fd, buf, bytes, off) != bytes) - return -1; - return 0; + return (-1); + return (0); } static int @@ -69,10 +70,10 @@ zfs_read(spa_t *spa, dnode_phys_t *dn, v n = size; if (off + n > zp->zp_size) n = zp->zp_size - off; - + rc = dnode_read(spa, dn, off, buf, n); if (rc) - return (rc); + return (-rc); return (n); } @@ -80,22 +81,24 @@ zfs_read(spa_t *spa, dnode_phys_t *dn, v int main(int argc, char** argv) { - int i, n, off; - int fd[99]; - spa_t *spa; - dnode_phys_t dn; char buf[512]; + int fd[100]; + struct stat sb; + dnode_phys_t dn; + spa_t *spa; + int i, n, off; zfs_init(); if (argc == 1) { static char *av[] = { - "zfstest", "/dev/da0p2", "/dev/da1p2", "/dev/da2p2", + "zfstest", "COPYRIGHT", + "/dev/da0p2", "/dev/da1p2", "/dev/da2p2", NULL, }; - argc = 4; + argc = 5; argv = av; } - for (i = 1; i < argc; i++) { + for (i = 2; i < argc; i++) { fd[i] = open(argv[i], O_RDONLY); if (fd[i] < 0) continue; @@ -105,16 +108,37 @@ main(int argc, char** argv) spa_all_status(); spa = STAILQ_FIRST(&zfs_pools); - if (!spa || zfs_mount_pool(spa)) + if (spa == NULL) { + fprintf(stderr, "no pools\n"); exit(1); + } - if (zfs_lookup(spa, "zfs.c", &dn)) + if (zfs_mount_pool(spa)) { + fprintf(stderr, "can't mount pool\n"); exit(1); + } + + if (zfs_lookup(spa, argv[1], &dn)) { + fprintf(stderr, "can't lookup\n"); + exit(1); + } + + if (zfs_dnode_stat(spa, &dn, &sb)) { + fprintf(stderr, "can't stat\n"); + exit(1); + } + off = 0; do { n = zfs_read(spa, &dn, buf, 512, off); + if (n < 0) { + fprintf(stderr, "zfs_read failed\n"); + exit(1); + } write(1, buf, n); off += n; - } while (n == 512); + } while (off < sb.st_size); + + return (0); } From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 14:03:56 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 474E8106564A; Tue, 13 Sep 2011 14:03:56 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3707E8FC08; Tue, 13 Sep 2011 14:03:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DE3u4o083207; Tue, 13 Sep 2011 14:03:56 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DE3u2t083203; Tue, 13 Sep 2011 14:03:56 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109131403.p8DE3u2t083203@svn.freebsd.org> From: Andriy Gapon Date: Tue, 13 Sep 2011 14:03:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225530 - in head/sys/boot/i386: gptboot gptzfsboot zfsboot X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 14:03:56 -0000 Author: avg Date: Tue Sep 13 14:03:55 2011 New Revision: 225530 URL: http://svn.freebsd.org/changeset/base/225530 Log: gpt/zfs boot blocks: reduce optimizing CFLAGS to -O1 gpt and zfs boot blocks are not nearly as size-constrained as boot2 from which they inherited their current optimization and anti-optimization options. As such the current options do not provide any benefit, but make debugging of the code much harder. Also, it has been demonstrated that combination of -mrtd and -fno-unit-at-a-time may result in mis-compilation of the boot code with the current base gcc. Additionally, intermediate assembly file filtering is removed for zfsboot. The new boot blocks are all compile- and boot- tested using qemu. gptzfsboot is tested with real hardware. Reported by: Peter Jeremy [miscompilation] Discussed with: bde, jhb Tested by: Sebastian Chmielewski [gptzfsboot] Approved by: re (kib) MFC after: 3 weeks Modified: head/sys/boot/i386/gptboot/Makefile head/sys/boot/i386/gptzfsboot/Makefile head/sys/boot/i386/zfsboot/Makefile Modified: head/sys/boot/i386/gptboot/Makefile ============================================================================== --- head/sys/boot/i386/gptboot/Makefile Tue Sep 13 14:01:35 2011 (r225529) +++ head/sys/boot/i386/gptboot/Makefile Tue Sep 13 14:03:55 2011 (r225530) @@ -20,12 +20,7 @@ GPTBOOT_UFS?= UFS1_AND_UFS2 #GPTBOOT_UFS?= UFS1_ONLY CFLAGS= -DBOOTPROG=\"gptboot\" \ - -Os \ - -fno-guess-branch-probability \ - -fomit-frame-pointer \ - -fno-unit-at-a-time \ - -mno-align-long-strings \ - -mrtd \ + -O1 \ -DGPT \ -D${GPTBOOT_UFS} \ -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ Modified: head/sys/boot/i386/gptzfsboot/Makefile ============================================================================== --- head/sys/boot/i386/gptzfsboot/Makefile Tue Sep 13 14:01:35 2011 (r225529) +++ head/sys/boot/i386/gptzfsboot/Makefile Tue Sep 13 14:03:55 2011 (r225530) @@ -17,12 +17,7 @@ ORG1= 0x7c00 ORG2= 0x0 CFLAGS= -DBOOTPROG=\"gptzfsboot\" \ - -Os \ - -fno-guess-branch-probability \ - -fomit-frame-pointer \ - -fno-unit-at-a-time \ - -mno-align-long-strings \ - -mrtd \ + -O1 \ -DGPT -DBOOT2 \ -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ -DSIOFMT=${B2SIOFMT} \ Modified: head/sys/boot/i386/zfsboot/Makefile ============================================================================== --- head/sys/boot/i386/zfsboot/Makefile Tue Sep 13 14:01:35 2011 (r225529) +++ head/sys/boot/i386/zfsboot/Makefile Tue Sep 13 14:03:55 2011 (r225530) @@ -15,12 +15,7 @@ ORG1= 0x7c00 ORG2= 0x2000 CFLAGS= -DBOOTPROG=\"zfsboot\" \ - -Os \ - -fno-guess-branch-probability \ - -fomit-frame-pointer \ - -fno-unit-at-a-time \ - -mno-align-long-strings \ - -mrtd \ + -O1 \ -DBOOT2 \ -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ -DSIOFMT=${B2SIOFMT} \ @@ -85,20 +80,10 @@ zfsboot.bin: zfsboot.out zfsboot.out: ${BTXCRT} zfsboot.o sio.o drv.o cons.o util.o ${LD} ${LDFLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} ${LIBSTAND} -zfsboot.o: zfsboot.s -.if ${CC:T:Mclang} == "clang" - ${CC} ${ACFLAGS} -c zfsboot.s -.endif - SRCS= zfsboot.c -zfsboot.s: zfsboot.c ${.CURDIR}/../../zfs/zfsimpl.c - ${CC} ${CFLAGS} -S -o zfsboot.s.tmp ${.CURDIR}/zfsboot.c - sed -e '/align/d' -e '/nop/d' < zfsboot.s.tmp > zfsboot.s - rm -f zfsboot.s.tmp - .if ${MACHINE_CPUARCH} == "amd64" -beforedepend zfsboot.s: machine +beforedepend zfsboot.o: machine CLEANFILES+= machine machine: ln -sf ${.CURDIR}/../../../i386/include machine From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 14:07:06 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D987B1065672; Tue, 13 Sep 2011 14:07:05 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C9F9F8FC0C; Tue, 13 Sep 2011 14:07:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DE75Or083338; Tue, 13 Sep 2011 14:07:05 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DE75s0083336; Tue, 13 Sep 2011 14:07:05 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109131407.p8DE75s0083336@svn.freebsd.org> From: Andriy Gapon Date: Tue, 13 Sep 2011 14:07:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225531 - head/sys/cddl/boot/zfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 14:07:06 -0000 Author: avg Date: Tue Sep 13 14:07:05 2011 New Revision: 225531 URL: http://svn.freebsd.org/changeset/base/225531 Log: zfs boot subroutines: correctly specify type of an integer literal Found by adding more warning flags to zfs boot blocks build. Approved by: re (kib) MFC after: 1 week Modified: head/sys/cddl/boot/zfs/zfssubr.c Modified: head/sys/cddl/boot/zfs/zfssubr.c ============================================================================== --- head/sys/cddl/boot/zfs/zfssubr.c Tue Sep 13 14:03:55 2011 (r225530) +++ head/sys/cddl/boot/zfs/zfssubr.c Tue Sep 13 14:07:05 2011 (r225531) @@ -328,7 +328,7 @@ typedef struct raidz_map { (mask) = (x) & 0x8080808080808080ULL; \ (mask) = ((mask) << 1) - ((mask) >> 7); \ (x) = (((x) << 1) & 0xfefefefefefefefeULL) ^ \ - ((mask) & 0x1d1d1d1d1d1d1d1d); \ + ((mask) & 0x1d1d1d1d1d1d1d1dULL); \ } #define VDEV_RAIDZ_64MUL_4(x, mask) \ From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 15:49:28 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6735A106564A; Tue, 13 Sep 2011 15:49:28 +0000 (UTC) (envelope-from davidch@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5782A8FC1B; Tue, 13 Sep 2011 15:49:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DFnSbf086670; Tue, 13 Sep 2011 15:49:28 GMT (envelope-from davidch@svn.freebsd.org) Received: (from davidch@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DFnS6j086668; Tue, 13 Sep 2011 15:49:28 GMT (envelope-from davidch@svn.freebsd.org) Message-Id: <201109131549.p8DFnS6j086668@svn.freebsd.org> From: David Christensen Date: Tue, 13 Sep 2011 15:49:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225532 - head/sys/dev/bxe X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 15:49:28 -0000 Author: davidch Date: Tue Sep 13 15:49:28 2011 New Revision: 225532 URL: http://svn.freebsd.org/changeset/base/225532 Log: - Fix compiler warning in ADD_64() macro. Approved by: re Obtained from: dimitry@andic.com MFC after: One week Modified: head/sys/dev/bxe/if_bxe.c Modified: head/sys/dev/bxe/if_bxe.c ============================================================================== --- head/sys/dev/bxe/if_bxe.c Tue Sep 13 14:07:05 2011 (r225531) +++ head/sys/dev/bxe/if_bxe.c Tue Sep 13 15:49:28 2011 (r225532) @@ -7188,7 +7188,7 @@ bxe_attn_int(struct bxe_softc* sc) /* sum[hi:lo] += add[hi:lo] */ #define ADD_64(s_hi, a_hi, s_lo, a_lo) do { \ s_lo += a_lo; \ - s_hi += a_hi + (s_lo < a_lo) ? 1 : 0; \ + s_hi += a_hi + ((s_lo < a_lo) ? 1 : 0); \ } while (0) /* Subtraction = minuend -= subtrahend */ From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 15:57:29 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8AB34106566C; Tue, 13 Sep 2011 15:57:29 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7AD9E8FC16; Tue, 13 Sep 2011 15:57:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DFvT9G086987; Tue, 13 Sep 2011 15:57:29 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DFvToV086985; Tue, 13 Sep 2011 15:57:29 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <201109131557.p8DFvToV086985@svn.freebsd.org> From: Christian Brueffer Date: Tue, 13 Sep 2011 15:57:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225533 - head/sys/dev/acpica X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 15:57:29 -0000 Author: brueffer Date: Tue Sep 13 15:57:29 2011 New Revision: 225533 URL: http://svn.freebsd.org/changeset/base/225533 Log: Improve the sleep_delay sysctl description by specifying which unit the number is in. PR: 159975 Submitted by: gcooper Approved by: re (kib) MFC after: 1 week Modified: head/sys/dev/acpica/acpi.c Modified: head/sys/dev/acpica/acpi.c ============================================================================== --- head/sys/dev/acpica/acpi.c Tue Sep 13 15:49:28 2011 (r225532) +++ head/sys/dev/acpica/acpi.c Tue Sep 13 15:57:29 2011 (r225533) @@ -574,7 +574,7 @@ acpi_attach(device_t dev) &sc->acpi_suspend_sx, 0, acpi_sleep_state_sysctl, "A", ""); SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO, "sleep_delay", CTLFLAG_RW, &sc->acpi_sleep_delay, 0, - "sleep delay"); + "sleep delay in seconds"); SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO, "s4bios", CTLFLAG_RW, &sc->acpi_s4bios, 0, "S4BIOS mode"); SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 20:16:12 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1E5B8106566B; Tue, 13 Sep 2011 20:16:12 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E96408FC12; Tue, 13 Sep 2011 20:16:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DKGBJo094851; Tue, 13 Sep 2011 20:16:11 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DKGB2T094849; Tue, 13 Sep 2011 20:16:11 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201109132016.p8DKGB2T094849@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 13 Sep 2011 20:16:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225534 - head/sbin/mdmfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 20:16:12 -0000 Author: kib Date: Tue Sep 13 20:16:11 2011 New Revision: 225534 URL: http://svn.freebsd.org/changeset/base/225534 Log: Do not try to change the mode or ownership of the root of the mountpoint when newly established mdmfs mount is readonly. PR: bin/128427 Tested and reviewed by: jchandra MFC after: 1 week Approved by: re (bz) Modified: head/sbin/mdmfs/mdmfs.c Modified: head/sbin/mdmfs/mdmfs.c ============================================================================== --- head/sbin/mdmfs/mdmfs.c Tue Sep 13 15:57:29 2011 (r225533) +++ head/sbin/mdmfs/mdmfs.c Tue Sep 13 20:16:11 2011 (r225534) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -60,6 +61,7 @@ struct mtpt_info { bool mi_have_gid; mode_t mi_mode; bool mi_have_mode; + bool mi_forced_pw; }; static bool debug; /* Emit debugging information? */ @@ -204,6 +206,7 @@ main(int argc, char **argv) usage(); mi.mi_mode = getmode(set, S_IRWXU | S_IRWXG | S_IRWXO); mi.mi_have_mode = true; + mi.mi_forced_pw = true; free(set); break; case 'S': @@ -223,6 +226,7 @@ main(int argc, char **argv) break; case 'w': extract_ugid(optarg, &mi); + mi.mi_forced_pw = true; break; case 'X': debug = true; @@ -443,6 +447,29 @@ do_mount(const char *args, const char *m static void do_mtptsetup(const char *mtpoint, struct mtpt_info *mip) { + struct statfs sfs; + + if (!mip->mi_have_mode && !mip->mi_have_uid && !mip->mi_have_gid) + return; + + if (!norun) { + if (statfs(mtpoint, &sfs) == -1) { + warn("statfs: %s", mtpoint); + return; + } + if ((sfs.f_flags & MNT_RDONLY) != 0) { + if (mip->mi_forced_pw) { + warnx( + "Not changing mode/owner of %s since it is read-only", + mtpoint); + } else { + debugprintf( + "Not changing mode/owner of %s since it is read-only", + mtpoint); + } + return; + } + } if (mip->mi_have_mode) { debugprintf("changing mode of %s to %o.", mtpoint, From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 20:33:27 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF374106566B; Tue, 13 Sep 2011 20:33:27 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BF64D8FC08; Tue, 13 Sep 2011 20:33:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DKXRLT095401; Tue, 13 Sep 2011 20:33:27 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DKXRYn095399; Tue, 13 Sep 2011 20:33:27 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <201109132033.p8DKXRYn095399@svn.freebsd.org> From: Christian Brueffer Date: Tue, 13 Sep 2011 20:33:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225535 - head/usr.bin/csup X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 20:33:27 -0000 Author: brueffer Date: Tue Sep 13 20:33:27 2011 New Revision: 225535 URL: http://svn.freebsd.org/changeset/base/225535 Log: Fix csup to allow case insensitive server names in the auth file, just as advertised in the manpage. PR: 158652 Submitted by: stephen Approved by: re (kib) MFC after: 1 week Modified: head/usr.bin/csup/auth.c Modified: head/usr.bin/csup/auth.c ============================================================================== --- head/usr.bin/csup/auth.c Tue Sep 13 20:16:11 2011 (r225534) +++ head/usr.bin/csup/auth.c Tue Sep 13 20:33:27 2011 (r225535) @@ -192,7 +192,7 @@ auth_lookuprecord(char *server, struct s goto close; } /* Skip the rest of this line, it isn't what we are looking for. */ - if (strcmp(auth->server, server) != 0) + if (strcasecmp(auth->server, server) != 0) continue; error = auth_parsetoken(&line, auth->client, sizeof(auth->client)); From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 20:35:34 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E62E1106566C; Tue, 13 Sep 2011 20:35:34 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D65F08FC15; Tue, 13 Sep 2011 20:35:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DKZYkq095499; Tue, 13 Sep 2011 20:35:34 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DKZYdN095497; Tue, 13 Sep 2011 20:35:34 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <201109132035.p8DKZYdN095497@svn.freebsd.org> From: Christian Brueffer Date: Tue, 13 Sep 2011 20:35:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225536 - head/usr.bin/csup X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 20:35:35 -0000 Author: brueffer Date: Tue Sep 13 20:35:34 2011 New Revision: 225536 URL: http://svn.freebsd.org/changeset/base/225536 Log: Fix typos in error messages. Found by: kib Approved by: re (kib) MFC after: 1 week Modified: head/usr.bin/csup/auth.c Modified: head/usr.bin/csup/auth.c ============================================================================== --- head/usr.bin/csup/auth.c Tue Sep 13 20:33:27 2011 (r225535) +++ head/usr.bin/csup/auth.c Tue Sep 13 20:35:34 2011 (r225536) @@ -188,7 +188,7 @@ auth_lookuprecord(char *server, struct s error = auth_parsetoken(&line, auth->server, sizeof(auth->server)); if (error != STATUS_SUCCESS) { - lprintf(-1, "%s:%d Missng client name\n", authfile, linenum); + lprintf(-1, "%s:%d Missing client name\n", authfile, linenum); goto close; } /* Skip the rest of this line, it isn't what we are looking for. */ @@ -197,13 +197,13 @@ auth_lookuprecord(char *server, struct s error = auth_parsetoken(&line, auth->client, sizeof(auth->client)); if (error != STATUS_SUCCESS) { - lprintf(-1, "%s:%d Missng password\n", authfile, linenum); + lprintf(-1, "%s:%d Missing password\n", authfile, linenum); goto close; } error = auth_parsetoken(&line, auth->password, sizeof(auth->password)); if (error != STATUS_SUCCESS) { - lprintf(-1, "%s:%d Missng comment\n", authfile, linenum); + lprintf(-1, "%s:%d Missing comment\n", authfile, linenum); goto close; } stream_close(s); From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 21:01:26 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC6E01065673; Tue, 13 Sep 2011 21:01:26 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C24468FC12; Tue, 13 Sep 2011 21:01:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DL1QRs096364; Tue, 13 Sep 2011 21:01:26 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DL1QOI096361; Tue, 13 Sep 2011 21:01:26 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201109132101.p8DL1QOI096361@svn.freebsd.org> From: Rick Macklem Date: Tue, 13 Sep 2011 21:01:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225537 - in head: . sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 21:01:27 -0000 Author: rmacklem Date: Tue Sep 13 21:01:26 2011 New Revision: 225537 URL: http://svn.freebsd.org/changeset/base/225537 Log: Modify vfs_register() to use a hash calculation on vfc_name to set vfc_typenum, so that vfc_typenum doesn't change when file systems are loaded in different orders. This keeps NFS file handles from changing, for file systems that use vfc_typenum in their fsid. This change is controlled via a loader.conf variable called vfs.typenumhash, since vfc_typenum will change once when this is enabled. It defaults to 1 for 9.0, but will default to 0 when MFC'd to stable/8. Tested by: hrs Reviewed by: jhb, pjd (earlier version) Approved by: re (kib) MFC after: 1 month Modified: head/UPDATING head/sys/kern/vfs_init.c Modified: head/UPDATING ============================================================================== --- head/UPDATING Tue Sep 13 20:35:34 2011 (r225536) +++ head/UPDATING Tue Sep 13 21:01:26 2011 (r225537) @@ -22,6 +22,18 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9. machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20110913: + This commit modifies vfs_register() so that it uses a hash + calculation to set vfc_typenum, which is enabled by default. + The first time a system is booted after this change, the + vfc_typenum values will change for all file systems. The + main effect of this is a change to the NFS server file handles + for file systems that use vfc_typenum in their fsid, such as ZFS. + It will, however, prevent vfc_typenum from changing when file + systems are loaded in a different order for subsequent reboots. + To disable this, you can set vfs.typenumhash=0 in /boot/loader.conf + until you are ready to remount all NFS clients after a reboot. + 20110828: Bump the shared library version numbers for libraries that do not use symbol versioning, have changed the ABI compared Modified: head/sys/kern/vfs_init.c ============================================================================== --- head/sys/kern/vfs_init.c Tue Sep 13 20:35:34 2011 (r225536) +++ head/sys/kern/vfs_init.c Tue Sep 13 21:01:26 2011 (r225537) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -65,6 +66,18 @@ int maxvfsconf = VFS_GENERIC + 1; struct vfsconfhead vfsconf = TAILQ_HEAD_INITIALIZER(vfsconf); /* + * Loader.conf variable vfs.typenumhash enables setting vfc_typenum using a hash + * calculation on vfc_name, so that it doesn't change when file systems are + * loaded in a different order. This will avoid the NFS server file handles from + * changing for file systems that use vfc_typenum in their fsid. + */ +static int vfs_typenumhash = 1; +TUNABLE_INT("vfs.typenumhash", &vfs_typenumhash); +SYSCTL_INT(_vfs, OID_AUTO, typenumhash, CTLFLAG_RDTUN, &vfs_typenumhash, 0, + "Set vfc_typenum using a hash calculation on vfc_name, so that it does not" + "change when file systems are loaded in a different order."); + +/* * A Zen vnode attribute structure. * * Initialized when the first filesystem registers by vfs_register(). @@ -138,6 +151,9 @@ vfs_register(struct vfsconf *vfc) struct sysctl_oid *oidp; struct vfsops *vfsops; static int once; + struct vfsconf *tvfc; + uint32_t hashval; + int secondpass; if (!once) { vattr_null(&va_null); @@ -152,7 +168,34 @@ vfs_register(struct vfsconf *vfc) if (vfs_byname(vfc->vfc_name) != NULL) return EEXIST; - vfc->vfc_typenum = maxvfsconf++; + if (vfs_typenumhash != 0) { + /* + * Calculate a hash on vfc_name to use for vfc_typenum. Unless + * all of 1<->255 are assigned, it is limited to 8bits since + * that is what ZFS uses from vfc_typenum and is also the + * preferred range for vfs_getnewfsid(). + */ + hashval = fnv_32_str(vfc->vfc_name, FNV1_32_INIT); + hashval &= 0xff; + secondpass = 0; + do { + /* Look for and fix any collision. */ + TAILQ_FOREACH(tvfc, &vfsconf, vfc_list) { + if (hashval == tvfc->vfc_typenum) { + if (hashval == 255 && secondpass == 0) { + hashval = 1; + secondpass = 1; + } else + hashval++; + break; + } + } + } while (tvfc != NULL); + vfc->vfc_typenum = hashval; + if (vfc->vfc_typenum >= maxvfsconf) + maxvfsconf = vfc->vfc_typenum + 1; + } else + vfc->vfc_typenum = maxvfsconf++; TAILQ_INSERT_TAIL(&vfsconf, vfc, vfc_list); /* From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 21:15:23 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD79A106564A; Tue, 13 Sep 2011 21:15:23 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A41C08FC15; Tue, 13 Sep 2011 21:15:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DLFNqo096830; Tue, 13 Sep 2011 21:15:23 GMT (envelope-from gavin@svn.freebsd.org) Received: (from gavin@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DLFNSA096828; Tue, 13 Sep 2011 21:15:23 GMT (envelope-from gavin@svn.freebsd.org) Message-Id: <201109132115.p8DLFNSA096828@svn.freebsd.org> From: Gavin Atkinson Date: Tue, 13 Sep 2011 21:15:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225538 - head/share/syscons/keymaps X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 21:15:23 -0000 Author: gavin Date: Tue Sep 13 21:15:23 2011 New Revision: 225538 URL: http://svn.freebsd.org/changeset/base/225538 Log: Include descriptions for keymaps missing from INDEX.keymaps. This fixes the five keymaps referred to only by filename on the keymap selection screen of bsdinstall. Approved by: re (kib) MFC after: 1 week Modified: head/share/syscons/keymaps/INDEX.keymaps Modified: head/share/syscons/keymaps/INDEX.keymaps ============================================================================== --- head/share/syscons/keymaps/INDEX.keymaps Tue Sep 13 21:01:26 2011 (r225537) +++ head/share/syscons/keymaps/INDEX.keymaps Tue Sep 13 21:15:23 2011 (r225538) @@ -117,6 +117,8 @@ danish.cp865.kbd:fr:Danois Code page 865 danish.cp865.kbd:pt:Dinamarquês Codepage 865 danish.cp865.kbd:es:Danés Codepage 865 +dutch.iso.acc.kbd:en:Dutch ISO keymap (accent keys) + eee_nordic.kbd:en:Nordic layout on Asus eeePC eee_nordic.kbd:fr:Norvégien phonétique sur Asus eeePC @@ -368,6 +370,14 @@ ru.koi8-r.shift.kbd:pt:Russo koi8-r (shi ru.koi8-r.shift.kbd:es:Ruso koi8-r (shift) ru.koi8-r.shift.kbd:uk:òÏÓ¦ÊÓØËÁ koi8-r (shift) +ru.koi8-r.win.kbd:en:Russian koi8-r (winkeys) +ru.koi8-r.win.kbd:de:Russisch koi8-r (winkeys) +ru.koi8-r.win.kbd:ru:òÕÓÓËÉÊ koi8-r (winkeys) +ru.koi8-r.win.kbd:fr:Russe koi8-r (winkeys) +ru.koi8-r.win.kbd:pt:Russo koi8-r (winkeys) +ru.koi8-r.win.kbd:es:Ruso koi8-r (winkeys) +ru.koi8-r.win.kbd:uk:òÏÓ¦ÊÓØËÁ koi8-r (winkeys) + spanish.iso.kbd:en:Spanish ISO-8859-1 spanish.iso.kbd:de:Spanisch ISO-8859-1 spanish.iso.kbd:fr:Espagnol ISO-8859-1 @@ -456,12 +466,16 @@ uk.iso.kbd:fr:Royaume Uni ISO-8859-1 uk.iso.kbd:pt:Reino Unido ISO-8859-1 uk.iso.kbd:es:Británico ISO-8859-1 +uk.iso-ctrl.kbd:en:United Kingdom ISO-8859-1 (Caps Lock acts as Left Ctrl) + uk.cp850.kbd:en:United Kingdom Codepage 850 uk.cp850.kbd:de:Vereinigtes Königreich Codeseite 850 uk.cp850.kbd:fr:Royaume Uni Code page 850 uk.cp850.kbd:pt:Reino Unido Codepage 850 uk.cp850.kbd:es:Británico Codepage 850 +uk.cp850-ctrl.kbd:en:United Kingdom Codepage 850 (Caps Lock acts as Left Ctrl) + uk.dvorak.kbd:en:United Kingdom Dvorak uk.dvorak.kbd:de:Vereinigtes K\xf6nigreich Dvorak uk.dvorak.kbd:fr:Royaume Uni Dvorak @@ -510,6 +524,8 @@ us.emacs.kbd:fr:États Unis d'Amérique em us.emacs.kbd:pt:Estados Unidos da América emacs us.emacs.kbd:es:Estadounidense optimizado para Emacs +us.pc-ctrl.kbd:en:United States of America ISO-8859-1 (Caps Lock acts as Left Ctrl) + us.unix.kbd:en:United States of America Traditional Unix Workstation us.unix.kbd:de:US-amerikanisch traditionelles Unix Layout us.unix.kbd:fr:États Unis d'Amérique unix From owner-svn-src-all@FreeBSD.ORG Tue Sep 13 21:39:26 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F26A7106564A; Tue, 13 Sep 2011 21:39:26 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E28E58FC14; Tue, 13 Sep 2011 21:39:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8DLdQu4097595; Tue, 13 Sep 2011 21:39:26 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8DLdQXt097593; Tue, 13 Sep 2011 21:39:26 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <201109132139.p8DLdQXt097593@svn.freebsd.org> From: Christian Brueffer Date: Tue, 13 Sep 2011 21:39:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225539 - head/usr.sbin/bsdinstall/scripts X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Sep 2011 21:39:27 -0000 Author: brueffer Date: Tue Sep 13 21:39:26 2011 New Revision: 225539 URL: http://svn.freebsd.org/changeset/base/225539 Log: Allow WPA PSKs up to 63 characters, the max length according to wpa_supplicant.conf(5). Up to now, the PSK was truncated to 15 characters (the length of the input field). PR: 159559 Submitted by: Gavin Chappell Approved by: re (kib) Modified: head/usr.sbin/bsdinstall/scripts/wlanconfig Modified: head/usr.sbin/bsdinstall/scripts/wlanconfig ============================================================================== --- head/usr.sbin/bsdinstall/scripts/wlanconfig Tue Sep 13 21:15:23 2011 (r225538) +++ head/usr.sbin/bsdinstall/scripts/wlanconfig Tue Sep 13 21:39:26 2011 (r225539) @@ -92,7 +92,7 @@ if echo $ENCRYPTION | grep -q 'PSK'; the PASS=`dialog --insecure --backtitle "FreeBSD Installer" \ --title "WPA Setup" --mixedform "" 0 0 0 \ "SSID" 1 0 "$NETWORK" 1 12 0 0 2 \ - "Password" 2 0 "" 2 12 15 0 1 \ + "Password" 2 0 "" 2 12 15 63 1 \ 2>&1 1>&3` \ || exec $0 $@ exec 3>&- From owner-svn-src-all@FreeBSD.ORG Wed Sep 14 08:15:22 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33150106564A; Wed, 14 Sep 2011 08:15:22 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 220FE8FC08; Wed, 14 Sep 2011 08:15:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8E8FMnv017541; Wed, 14 Sep 2011 08:15:22 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8E8FLdG017534; Wed, 14 Sep 2011 08:15:21 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201109140815.p8E8FLdG017534@svn.freebsd.org> From: Michael Tuexen Date: Wed, 14 Sep 2011 08:15:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225549 - head/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Sep 2011 08:15:22 -0000 Author: tuexen Date: Wed Sep 14 08:15:21 2011 New Revision: 225549 URL: http://svn.freebsd.org/changeset/base/225549 Log: Fix the handling of the flowlabel and DSCP value in the SCTP_PEER_ADDR_PARAMS socket option. Honor the net.inet6.ip6.auto_flowlabel sysctl setting. Approved by: re (bz) MFC after: 1 month. Modified: head/sys/netinet/sctp_output.c head/sys/netinet/sctp_pcb.c head/sys/netinet/sctp_pcb.h head/sys/netinet/sctp_structs.h head/sys/netinet/sctp_usrreq.c head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Wed Sep 14 07:56:25 2011 (r225548) +++ head/sys/netinet/sctp_output.c Wed Sep 14 08:15:21 2011 (r225549) @@ -3904,6 +3904,7 @@ sctp_lowlevel_chunk_output(struct sctp_i uint32_t vrf_id; sctp_route_t *ro = NULL; struct udphdr *udp = NULL; + uint8_t tos_value; #if defined (__APPLE__) || defined(SCTP_SO_LOCK_TESTING) struct socket *so = NULL; @@ -3925,13 +3926,20 @@ sctp_lowlevel_chunk_output(struct sctp_i if ((auth != NULL) && (stcb != NULL)) { sctp_fill_hmac_digest_m(m, auth_offset, auth, stcb, auth_keyid); } + if (net) { + tos_value = net->dscp; + } else if (stcb) { + tos_value = stcb->asoc.default_dscp; + } else { + tos_value = inp->sctp_ep.default_dscp; + } + switch (to->sa_family) { #ifdef INET case AF_INET: { struct ip *ip = NULL; sctp_route_t iproute; - uint8_t tos_value; int len; len = sizeof(struct ip) + sizeof(struct sctphdr); @@ -3966,11 +3974,18 @@ sctp_lowlevel_chunk_output(struct sctp_i ip = mtod(m, struct ip *); ip->ip_v = IPVERSION; ip->ip_hl = (sizeof(struct ip) >> 2); - if (net) { - tos_value = net->dscp; - } else { + if (tos_value == 0) { + /* + * This means especially, that it is not set + * at the SCTP layer. So use the value from + * the IP layer. + */ tos_value = inp->ip_inp.inp.inp_ip_tos; } + tos_value &= 0xfc; + if (ecn_ok) { + tos_value |= sctp_get_ect(stcb, chk); + } if ((nofragment_flag) && (port == 0)) { ip->ip_off = IP_DF; } else @@ -3981,10 +3996,7 @@ sctp_lowlevel_chunk_output(struct sctp_i ip->ip_ttl = inp->ip_inp.inp.inp_ip_ttl; ip->ip_len = packet_length; - ip->ip_tos = tos_value & 0xfc; - if (ecn_ok) { - ip->ip_tos |= sctp_get_ect(stcb, chk); - } + ip->ip_tos = tos_value; if (port) { ip->ip_p = IPPROTO_UDP; } else { @@ -4189,13 +4201,10 @@ sctp_lowlevel_chunk_output(struct sctp_i #ifdef INET6 case AF_INET6: { - uint32_t flowlabel; + uint32_t flowlabel, flowinfo; struct ip6_hdr *ip6h; struct route_in6 ip6route; struct ifnet *ifp; - u_char flowTop; - uint16_t flowBottom; - u_char tosBottom, tosTop; struct sockaddr_in6 *sin6, tmp, *lsa6, lsa6_tmp; int prev_scope = 0; struct sockaddr_in6 lsa6_storage; @@ -4203,12 +4212,22 @@ sctp_lowlevel_chunk_output(struct sctp_i u_short prev_port = 0; int len; - if (net != NULL) { + if (net) { flowlabel = net->flowlabel; + } else if (stcb) { + flowlabel = stcb->asoc.default_flowlabel; } else { - flowlabel = ((struct in6pcb *)inp)->in6p_flowinfo; + flowlabel = inp->sctp_ep.default_flowlabel; } - + if (flowlabel == 0) { + /* + * This means especially, that it is not set + * at the SCTP layer. So use the value from + * the IP layer. + */ + flowlabel = ntohl(((struct in6pcb *)inp)->in6p_flowinfo); + } + flowlabel &= 0x000fffff; len = sizeof(struct ip6_hdr) + sizeof(struct sctphdr); if (port) { len += sizeof(struct udphdr); @@ -4240,13 +4259,6 @@ sctp_lowlevel_chunk_output(struct sctp_i packet_length = sctp_calculate_len(m); ip6h = mtod(m, struct ip6_hdr *); - /* - * We assume here that inp_flow is in host byte - * order within the TCB! - */ - flowBottom = flowlabel & 0x0000ffff; - flowTop = ((flowlabel & 0x000f0000) >> 16); - tosTop = (((flowlabel & 0xf0) >> 4) | IPV6_VERSION); /* protect *sin6 from overwrite */ sin6 = (struct sockaddr_in6 *)to; tmp = *sin6; @@ -4264,12 +4276,28 @@ sctp_lowlevel_chunk_output(struct sctp_i } else { ro = (sctp_route_t *) & net->ro; } - tosBottom = (((struct in6pcb *)inp)->in6p_flowinfo & 0x0c); + /* + * We assume here that inp_flow is in host byte + * order within the TCB! + */ + if (tos_value == 0) { + /* + * This means especially, that it is not set + * at the SCTP layer. So use the value from + * the IP layer. + */ + tos_value = (ntohl(((struct in6pcb *)inp)->in6p_flowinfo) >> 20) & 0xff; + } + tos_value &= 0xfc; if (ecn_ok) { - tosBottom |= sctp_get_ect(stcb, chk); + tos_value |= sctp_get_ect(stcb, chk); } - tosBottom <<= 4; - ip6h->ip6_flow = htonl(((tosTop << 24) | ((tosBottom | flowTop) << 16) | flowBottom)); + flowinfo = 0x06; + flowinfo <<= 8; + flowinfo |= tos_value; + flowinfo <<= 20; + flowinfo |= flowlabel; + ip6h->ip6_flow = htonl(flowinfo); if (port) { ip6h->ip6_nxt = IPPROTO_UDP; } else { Modified: head/sys/netinet/sctp_pcb.c ============================================================================== --- head/sys/netinet/sctp_pcb.c Wed Sep 14 07:56:25 2011 (r225548) +++ head/sys/netinet/sctp_pcb.c Wed Sep 14 08:15:21 2011 (r225549) @@ -49,6 +49,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef INET6 +#include +#endif #include #include #include @@ -2503,6 +2506,11 @@ sctp_inpcb_alloc(struct socket *so, uint /* setup socket pointers */ inp->sctp_socket = so; inp->ip_inp.inp.inp_socket = so; +#ifdef INET6 + if (MODULE_GLOBAL(ip6_auto_flowlabel)) { + inp->ip_inp.inp.inp_flags |= IN6P_AUTOFLOWLABEL; + } +#endif inp->sctp_associd_counter = 1; inp->partial_delivery_point = SCTP_SB_LIMIT_RCV(so) >> SCTP_PARTIAL_DELIVERY_SHIFT; inp->sctp_frag_point = SCTP_DEFAULT_MAXSEGMENT; @@ -2668,6 +2676,10 @@ sctp_inpcb_alloc(struct socket *so, uint */ m->local_hmacs = sctp_default_supported_hmaclist(); m->local_auth_chunks = sctp_alloc_chunklist(); + m->default_dscp = 0; +#ifdef INET6 + m->default_flowlabel = 0; +#endif sctp_auth_set_default_chunks(m->local_auth_chunks); LIST_INIT(&m->shared_keys); /* add default NULL key as key id 0 */ @@ -4015,7 +4027,9 @@ sctp_add_remote_addr(struct sctp_tcb *st net->port = 0; } net->dscp = stcb->asoc.default_dscp; +#ifdef INET6 net->flowlabel = stcb->asoc.default_flowlabel; +#endif if (sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_DONOT_HEARTBEAT)) { net->dest_state |= SCTP_ADDR_NOHB; } else { Modified: head/sys/netinet/sctp_pcb.h ============================================================================== --- head/sys/netinet/sctp_pcb.h Wed Sep 14 07:56:25 2011 (r225548) +++ head/sys/netinet/sctp_pcb.h Wed Sep 14 08:15:21 2011 (r225549) @@ -322,6 +322,10 @@ struct sctp_pcb { uint32_t store_at; uint32_t max_burst; uint32_t fr_max_burst; +#ifdef INET6 + uint32_t default_flowlabel; +#endif + uint8_t default_dscp; char current_secret_number; char last_secret_number; }; Modified: head/sys/netinet/sctp_structs.h ============================================================================== --- head/sys/netinet/sctp_structs.h Wed Sep 14 07:56:25 2011 (r225548) +++ head/sys/netinet/sctp_structs.h Wed Sep 14 08:15:21 2011 (r225549) @@ -321,7 +321,9 @@ struct sctp_nets { uint32_t fast_recovery_tsn; uint32_t heartbeat_random1; uint32_t heartbeat_random2; +#ifdef INET6 uint32_t flowlabel; +#endif uint8_t dscp; struct timeval start_time; /* time when this net was created */ @@ -987,7 +989,9 @@ struct sctp_association { uint32_t sb_send_resv; /* amount reserved on a send */ uint32_t my_rwnd_control_len; /* shadow of sb_mbcnt used for rwnd * control */ +#ifdef INET6 uint32_t default_flowlabel; +#endif uint32_t pr_sctp_cnt; int ctrl_queue_cnt; /* could be removed REM - NO IT CAN'T!! RRS */ /* Modified: head/sys/netinet/sctp_usrreq.c ============================================================================== --- head/sys/netinet/sctp_usrreq.c Wed Sep 14 07:56:25 2011 (r225548) +++ head/sys/netinet/sctp_usrreq.c Wed Sep 14 08:15:21 2011 (r225549) @@ -2428,15 +2428,14 @@ flags_out: } else { paddrp->spp_flags |= SPP_PMTUD_DISABLE; } -#ifdef INET - if (net->ro._l_addr.sin.sin_family == AF_INET) { - paddrp->spp_dscp = net->dscp; + if (net->dscp & 0x01) { + paddrp->spp_dscp = net->dscp >> 2; paddrp->spp_flags |= SPP_DSCP; } -#endif #ifdef INET6 - if (net->ro._l_addr.sin6.sin6_family == AF_INET6) { - paddrp->spp_ipv6_flowlabel = net->flowlabel; + if ((net->ro._l_addr.sa.sa_family == AF_INET6) && + (net->flowlabel & 0x80000000)) { + paddrp->spp_ipv6_flowlabel = net->flowlabel & 0x000fffff; paddrp->spp_flags |= SPP_IPV6_FLOWLABEL; } #endif @@ -2449,13 +2448,15 @@ flags_out: paddrp->spp_pathmaxrxt = stcb->asoc.def_net_failure; paddrp->spp_pathmtu = sctp_get_frag_point(stcb, &stcb->asoc); -#ifdef INET - paddrp->spp_dscp = stcb->asoc.default_dscp & 0x000000fc; - paddrp->spp_flags |= SPP_DSCP; -#endif + if (stcb->asoc.default_dscp & 0x01) { + paddrp->spp_dscp = stcb->asoc.default_dscp >> 2; + paddrp->spp_flags |= SPP_DSCP; + } #ifdef INET6 - paddrp->spp_ipv6_flowlabel = stcb->asoc.default_flowlabel; - paddrp->spp_flags |= SPP_IPV6_FLOWLABEL; + if (stcb->asoc.default_flowlabel & 0x80000000) { + paddrp->spp_ipv6_flowlabel = stcb->asoc.default_flowlabel & 0x000fffff; + paddrp->spp_flags |= SPP_IPV6_FLOWLABEL; + } #endif /* default settings should be these */ if (sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_DONOT_HEARTBEAT)) { @@ -2485,13 +2486,14 @@ flags_out: paddrp->spp_hbinterval = TICKS_TO_MSEC(inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_HEARTBEAT]); paddrp->spp_assoc_id = SCTP_FUTURE_ASSOC; /* get inp's default */ -#ifdef INET - paddrp->spp_dscp = inp->ip_inp.inp.inp_ip_tos; - paddrp->spp_flags |= SPP_DSCP; -#endif + if (inp->sctp_ep.default_dscp & 0x01) { + paddrp->spp_dscp = inp->sctp_ep.default_dscp >> 2; + paddrp->spp_flags |= SPP_DSCP; + } #ifdef INET6 - if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) { - paddrp->spp_ipv6_flowlabel = ((struct in6pcb *)inp)->in6p_flowinfo; + if ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) && + (inp->sctp_ep.default_flowlabel & 0x80000000)) { + paddrp->spp_ipv6_flowlabel = inp->sctp_ep.default_flowlabel & 0x000fffff; paddrp->spp_flags |= SPP_IPV6_FLOWLABEL; } #endif @@ -4683,17 +4685,15 @@ sctp_setopt(struct socket *so, int optna } net->failure_threshold = paddrp->spp_pathmaxrxt; } -#ifdef INET if (paddrp->spp_flags & SPP_DSCP) { - if (net->ro._l_addr.sin.sin_family == AF_INET) { - net->dscp = paddrp->spp_dscp & 0xfc; - } + net->dscp = paddrp->spp_dscp << 2; + net->dscp |= 0x01; } -#endif #ifdef INET6 if (paddrp->spp_flags & SPP_IPV6_FLOWLABEL) { - if (net->ro._l_addr.sin6.sin6_family == AF_INET6) { + if (net->ro._l_addr.sa.sa_family == AF_INET6) { net->flowlabel = paddrp->spp_ipv6_flowlabel & 0x000fffff; + net->flowlabel |= 0x80000000; } } #endif @@ -4784,16 +4784,24 @@ sctp_setopt(struct socket *so, int optna } if (paddrp->spp_flags & SPP_DSCP) { TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { - net->dscp = paddrp->spp_dscp & 0x000000fc; + net->dscp = paddrp->spp_dscp << 2; + net->dscp |= 0x01; } - stcb->asoc.default_dscp = paddrp->spp_dscp & 0x000000fc; + stcb->asoc.default_dscp = paddrp->spp_dscp << 2; + stcb->asoc.default_dscp |= 0x01; } +#ifdef INET6 if (paddrp->spp_flags & SPP_IPV6_FLOWLABEL) { TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { - net->flowlabel = paddrp->spp_ipv6_flowlabel; + if (net->ro._l_addr.sa.sa_family == AF_INET6) { + net->flowlabel = paddrp->spp_ipv6_flowlabel & 0x000fffff; + net->flowlabel |= 0x80000000; + } } - stcb->asoc.default_flowlabel = paddrp->spp_ipv6_flowlabel; + stcb->asoc.default_flowlabel = paddrp->spp_ipv6_flowlabel & 0x000fffff; + stcb->asoc.default_flowlabel |= 0x80000000; } +#endif } SCTP_TCB_UNLOCK(stcb); } else { @@ -4827,6 +4835,18 @@ sctp_setopt(struct socket *so, int optna } else if (paddrp->spp_flags & SPP_HB_DISABLE) { sctp_feature_on(inp, SCTP_PCB_FLAGS_DONOT_HEARTBEAT); } + if (paddrp->spp_flags & SPP_DSCP) { + inp->sctp_ep.default_dscp = paddrp->spp_dscp << 2; + inp->sctp_ep.default_dscp |= 0x01; + } +#ifdef INET6 + if (paddrp->spp_flags & SPP_IPV6_FLOWLABEL) { + if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) { + inp->sctp_ep.default_flowlabel = paddrp->spp_ipv6_flowlabel & 0x000fffff; + inp->sctp_ep.default_flowlabel |= 0x80000000; + } + } +#endif SCTP_INP_WUNLOCK(inp); } else { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Wed Sep 14 07:56:25 2011 (r225548) +++ head/sys/netinet/sctputil.c Wed Sep 14 08:15:21 2011 (r225549) @@ -923,16 +923,19 @@ sctp_init_asoc(struct sctp_inpcb *m, str asoc->sctp_cmt_pf = (uint8_t) 0; asoc->sctp_frag_point = m->sctp_frag_point; asoc->sctp_features = m->sctp_features; -#ifdef INET - asoc->default_dscp = m->ip_inp.inp.inp_ip_tos; -#else - asoc->default_dscp = 0; -#endif - + asoc->default_dscp = m->sctp_ep.default_dscp; #ifdef INET6 - asoc->default_flowlabel = ((struct in6pcb *)m)->in6p_flowinfo; -#else - asoc->default_flowlabel = 0; + if (m->sctp_ep.default_flowlabel) { + asoc->default_flowlabel = m->sctp_ep.default_flowlabel; + } else { + if (m->ip_inp.inp.inp_flags & IN6P_AUTOFLOWLABEL) { + asoc->default_flowlabel = sctp_select_initial_TSN(&m->sctp_ep); + asoc->default_flowlabel &= 0x000fffff; + asoc->default_flowlabel |= 0x80000000; + } else { + asoc->default_flowlabel = 0; + } + } #endif asoc->sb_send_resv = 0; if (override_tag) { From owner-svn-src-all@FreeBSD.ORG Wed Sep 14 10:27:23 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A4D6E1065675; Wed, 14 Sep 2011 10:27:23 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 942378FC0A; Wed, 14 Sep 2011 10:27:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8EARN28021575; Wed, 14 Sep 2011 10:27:23 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8EARNW0021572; Wed, 14 Sep 2011 10:27:23 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201109141027.p8EARNW0021572@svn.freebsd.org> From: Attilio Rao Date: Wed, 14 Sep 2011 10:27:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225551 - stable/8/sys/dev/aac X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Sep 2011 10:27:23 -0000 Author: attilio Date: Wed Sep 14 10:27:23 2011 New Revision: 225551 URL: http://svn.freebsd.org/changeset/base/225551 Log: MFC r222951: Fix races in handling flags at detach time for FIBs. Sponsored by: Sandvine Incorporated Modified: stable/8/sys/dev/aac/aac.c stable/8/sys/dev/aac/aacvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/aac/aac.c ============================================================================== --- stable/8/sys/dev/aac/aac.c Wed Sep 14 08:27:19 2011 (r225550) +++ stable/8/sys/dev/aac/aac.c Wed Sep 14 10:27:23 2011 (r225551) @@ -661,6 +661,16 @@ aac_detach(device_t dev) callout_drain(&sc->aac_daemontime); + mtx_lock(&sc->aac_io_lock); + while (sc->aifflags & AAC_AIFFLAGS_RUNNING) { + sc->aifflags |= AAC_AIFFLAGS_EXIT; + wakeup(sc->aifthread); + msleep(sc->aac_dev, &sc->aac_io_lock, PUSER, "aacdch", 0); + } + mtx_unlock(&sc->aac_io_lock); + KASSERT((sc->aifflags & AAC_AIFFLAGS_RUNNING) == 0, + ("%s: invalid detach state", __func__)); + /* Remove the child containers */ while ((co = TAILQ_FIRST(&sc->aac_container_tqh)) != NULL) { error = device_delete_child(dev, co->co_disk); @@ -679,15 +689,6 @@ aac_detach(device_t dev) free(sim, M_AACBUF); } - if (sc->aifflags & AAC_AIFFLAGS_RUNNING) { - sc->aifflags |= AAC_AIFFLAGS_EXIT; - wakeup(sc->aifthread); - tsleep(sc->aac_dev, PUSER | PCATCH, "aacdch", 30 * hz); - } - - if (sc->aifflags & AAC_AIFFLAGS_RUNNING) - panic("Cannot shutdown AIF thread"); - if ((error = aac_shutdown(dev))) return(error); @@ -1020,7 +1021,7 @@ aac_command_thread(struct aac_softc *sc) /* * First see if any FIBs need to be allocated. This needs * to be called without the driver lock because contigmalloc - * will grab Giant, and would result in an LOR. + * can sleep. */ if ((sc->aifflags & AAC_AIFFLAGS_ALLOCFIBS) != 0) { mtx_unlock(&sc->aac_io_lock); @@ -1372,7 +1373,9 @@ aac_alloc_command(struct aac_softc *sc, if ((cm = aac_dequeue_free(sc)) == NULL) { if (sc->total_fibs < sc->aac_max_fibs) { + mtx_lock(&sc->aac_io_lock); sc->aifflags |= AAC_AIFFLAGS_ALLOCFIBS; + mtx_unlock(&sc->aac_io_lock); wakeup(sc->aifthread); } return (EBUSY); Modified: stable/8/sys/dev/aac/aacvar.h ============================================================================== --- stable/8/sys/dev/aac/aacvar.h Wed Sep 14 08:27:19 2011 (r225550) +++ stable/8/sys/dev/aac/aacvar.h Wed Sep 14 10:27:23 2011 (r225551) @@ -386,13 +386,12 @@ struct aac_softc struct proc *aifthread; int aifflags; #define AAC_AIFFLAGS_RUNNING (1 << 0) -#define AAC_AIFFLAGS_AIF (1 << 1) +#define AAC_AIFFLAGS_UNUSED0 (1 << 1) #define AAC_AIFFLAGS_EXIT (1 << 2) #define AAC_AIFFLAGS_EXITED (1 << 3) -#define AAC_AIFFLAGS_PRINTF (1 << 4) +#define AAC_AIFFLAGS_UNUSED1 (1 << 4) #define AAC_AIFFLAGS_ALLOCFIBS (1 << 5) -#define AAC_AIFFLAGS_PENDING (AAC_AIFFLAGS_AIF | AAC_AIFFLAGS_PRINTF | \ - AAC_AIFFLAGS_ALLOCFIBS) +#define AAC_AIFFLAGS_PENDING AAC_AIFFLAGS_ALLOCFIBS u_int32_t flags; #define AAC_FLAGS_PERC2QC (1 << 0) #define AAC_FLAGS_ENABLE_CAM (1 << 1) /* No SCSI passthrough */ From owner-svn-src-all@FreeBSD.ORG Wed Sep 14 15:16:54 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2C985106564A; Wed, 14 Sep 2011 15:16:54 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 02C308FC08; Wed, 14 Sep 2011 15:16:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8EFGrYw031735; Wed, 14 Sep 2011 15:16:53 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8EFGrqg031733; Wed, 14 Sep 2011 15:16:53 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201109141516.p8EFGrqg031733@svn.freebsd.org> From: Hans Petter Selasky Date: Wed, 14 Sep 2011 15:16:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225556 - head/sys/dev/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Sep 2011 15:16:54 -0000 Author: hselasky Date: Wed Sep 14 15:16:53 2011 New Revision: 225556 URL: http://svn.freebsd.org/changeset/base/225556 Log: Reduce USB memory usage during enumeration. We are allocating some kilobytes of extra memory during USB device enumeration. This does not change alot under FreeBSD, but makes sense for various embedded operating systems using the FreeBSD USB stack, which have less memory resources available. Approved by: re (kib) MFC after: 1 week Modified: head/sys/dev/usb/usb_msctest.c Modified: head/sys/dev/usb/usb_msctest.c ============================================================================== --- head/sys/dev/usb/usb_msctest.c Wed Sep 14 14:37:54 2011 (r225555) +++ head/sys/dev/usb/usb_msctest.c Wed Sep 14 15:16:53 2011 (r225556) @@ -182,6 +182,7 @@ static const struct usb_config bbb_confi .endpoint = UE_ADDR_ANY, .direction = UE_DIR_OUT, .bufsize = sizeof(struct bbb_cbw), + .flags = {.ext_buffer = 1,}, .callback = &bbb_command_callback, .timeout = 4 * USB_MS_HZ, /* 4 seconds */ }, @@ -191,7 +192,7 @@ static const struct usb_config bbb_confi .endpoint = UE_ADDR_ANY, .direction = UE_DIR_IN, .bufsize = BULK_SIZE, - .flags = {.proxy_buffer = 1,.short_xfer_ok = 1,}, + .flags = {.ext_buffer = 1,.proxy_buffer = 1,.short_xfer_ok = 1,}, .callback = &bbb_data_read_callback, .timeout = 4 * USB_MS_HZ, /* 4 seconds */ }, @@ -210,7 +211,7 @@ static const struct usb_config bbb_confi .endpoint = UE_ADDR_ANY, .direction = UE_DIR_OUT, .bufsize = BULK_SIZE, - .flags = {.proxy_buffer = 1,}, + .flags = {.ext_buffer = 1,.proxy_buffer = 1,}, .callback = &bbb_data_write_callback, .timeout = 4 * USB_MS_HZ, /* 4 seconds */ }, @@ -229,7 +230,7 @@ static const struct usb_config bbb_confi .endpoint = UE_ADDR_ANY, .direction = UE_DIR_IN, .bufsize = sizeof(struct bbb_csw), - .flags = {.short_xfer_ok = 1,}, + .flags = {.ext_buffer = 1,.short_xfer_ok = 1,}, .callback = &bbb_status_callback, .timeout = 1 * USB_MS_HZ, /* 1 second */ }, From owner-svn-src-all@FreeBSD.ORG Wed Sep 14 19:10:14 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5E7561065670; Wed, 14 Sep 2011 19:10:14 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4E26F8FC0C; Wed, 14 Sep 2011 19:10:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8EJAEjh038978; Wed, 14 Sep 2011 19:10:14 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8EJAEEX038973; Wed, 14 Sep 2011 19:10:14 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201109141910.p8EJAEEX038973@svn.freebsd.org> From: Michael Tuexen Date: Wed, 14 Sep 2011 19:10:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225559 - head/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Sep 2011 19:10:14 -0000 Author: tuexen Date: Wed Sep 14 19:10:13 2011 New Revision: 225559 URL: http://svn.freebsd.org/changeset/base/225559 Log: Ensure that 1-to-1 style SCTP sockets can only be connected once. Allow implicit setup also for 1-to-1 style sockets as described in the latest version of the socket API ID. Approved by: re MFC after: 1 month Modified: head/sys/netinet/sctp_output.c head/sys/netinet/sctp_pcb.c head/sys/netinet/sctp_usrreq.c head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Wed Sep 14 18:07:18 2011 (r225558) +++ head/sys/netinet/sctp_output.c Wed Sep 14 19:10:13 2011 (r225559) @@ -12628,14 +12628,10 @@ sctp_lower_sosend(struct socket *so, (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { SCTP_INP_RLOCK(inp); stcb = LIST_FIRST(&inp->sctp_asoc_list); - if (stcb == NULL) { - SCTP_INP_RUNLOCK(inp); - SCTP_LTRACE_ERR_RET(inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, ENOTCONN); - error = ENOTCONN; - goto out_unlocked; + if (stcb) { + SCTP_TCB_LOCK(stcb); + hold_tcblock = 1; } - SCTP_TCB_LOCK(stcb); - hold_tcblock = 1; SCTP_INP_RUNLOCK(inp); } else if (sinfo_assoc_id) { stcb = sctp_findassociation_ep_asocid(inp, sinfo_assoc_id, 0); @@ -12700,21 +12696,12 @@ sctp_lower_sosend(struct socket *so, } } if (stcb == NULL) { - if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || - (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { - SCTP_LTRACE_ERR_RET(inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, ENOTCONN); - error = ENOTCONN; - goto out_unlocked; - } if (addr == NULL) { SCTP_LTRACE_ERR_RET(inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, ENOENT); error = ENOENT; goto out_unlocked; } else { - /* - * UDP style, we must go ahead and start the INIT - * process - */ + /* We must go ahead and start the INIT process */ uint32_t vrf_id; if ((sinfo_flags & SCTP_ABORT) || @@ -12741,6 +12728,14 @@ sctp_lower_sosend(struct socket *so, /* Error is setup for us in the call */ goto out_unlocked; } + if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) { + stcb->sctp_ep->sctp_flags |= SCTP_PCB_FLAGS_CONNECTED; + /* + * Set the connected flag so we can queue + * data + */ + soisconnecting(so); + } hold_tcblock = 1; if (create_lock_applied) { SCTP_ASOC_CREATE_UNLOCK(inp); Modified: head/sys/netinet/sctp_pcb.c ============================================================================== --- head/sys/netinet/sctp_pcb.c Wed Sep 14 18:07:18 2011 (r225558) +++ head/sys/netinet/sctp_pcb.c Wed Sep 14 19:10:13 2011 (r225559) @@ -4291,6 +4291,16 @@ sctp_aloc_assoc(struct sctp_inpcb *inp, *error = EINVAL; return (NULL); } + if ((inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) || + (inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE)) { + if ((inp->sctp_flags & SCTP_PCB_FLAGS_WAS_CONNECTED) || + (inp->sctp_flags & SCTP_PCB_FLAGS_WAS_ABORTED)) { + SCTP_INP_RUNLOCK(inp); + SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL); + *error = EINVAL; + return (NULL); + } + } SCTPDBG(SCTP_DEBUG_PCB3, "Allocate an association for peer:"); #ifdef SCTP_DEBUG if (firstaddr) { Modified: head/sys/netinet/sctp_usrreq.c ============================================================================== --- head/sys/netinet/sctp_usrreq.c Wed Sep 14 18:07:18 2011 (r225558) +++ head/sys/netinet/sctp_usrreq.c Wed Sep 14 19:10:13 2011 (r225559) @@ -1541,6 +1541,11 @@ sctp_do_connect_x(struct socket *so, str /* Gak! no memory */ goto out_now; } + if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) { + stcb->sctp_ep->sctp_flags |= SCTP_PCB_FLAGS_CONNECTED; + /* Set the connected flag so we can queue data */ + soisconnecting(so); + } SCTP_SET_STATE(&stcb->asoc, SCTP_STATE_COOKIE_WAIT); /* move to second address */ switch (sa->sa_family) { @@ -5772,15 +5777,6 @@ sctp_connect(struct socket *so, struct s if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) { stcb->sctp_ep->sctp_flags |= SCTP_PCB_FLAGS_CONNECTED; /* Set the connected flag so we can queue data */ - SOCKBUF_LOCK(&so->so_rcv); - so->so_rcv.sb_state &= ~SBS_CANTRCVMORE; - SOCKBUF_UNLOCK(&so->so_rcv); - SOCKBUF_LOCK(&so->so_snd); - so->so_snd.sb_state &= ~SBS_CANTSENDMORE; - SOCKBUF_UNLOCK(&so->so_snd); - SOCK_LOCK(so); - so->so_state &= ~SS_ISDISCONNECTING; - SOCK_UNLOCK(so); soisconnecting(so); } SCTP_SET_STATE(&stcb->asoc, SCTP_STATE_COOKIE_WAIT); Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Wed Sep 14 18:07:18 2011 (r225558) +++ head/sys/netinet/sctputil.c Wed Sep 14 19:10:13 2011 (r225559) @@ -3622,10 +3622,14 @@ sctp_abort_notification(struct sctp_tcb #endif ) { - if (stcb == NULL) { return; } + if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) || + ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) && + (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_CONNECTED))) { + stcb->sctp_ep->sctp_flags |= SCTP_PCB_FLAGS_WAS_ABORTED; + } if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) || (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) || (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET)) { @@ -3633,11 +3637,6 @@ sctp_abort_notification(struct sctp_tcb } /* Tell them we lost the asoc */ sctp_report_all_outbound(stcb, 1, so_locked); - if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) || - ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) && - (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_CONNECTED))) { - stcb->sctp_ep->sctp_flags |= SCTP_PCB_FLAGS_WAS_ABORTED; - } sctp_ulp_notify(SCTP_NOTIFY_ASSOC_ABORTED, stcb, error, NULL, so_locked); } @@ -5098,17 +5097,6 @@ restart_nosblocks: */ SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, ECONNRESET); error = ECONNRESET; - /* - * You get this once if you are - * active open side - */ - if (!(inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { - /* - * Remove flag if on the - * active open side - */ - inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAS_ABORTED; - } } so->so_state &= ~(SS_ISCONNECTING | SS_ISDISCONNECTING | @@ -5118,8 +5106,6 @@ restart_nosblocks: if ((inp->sctp_flags & SCTP_PCB_FLAGS_WAS_CONNECTED) == 0) { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, ENOTCONN); error = ENOTCONN; - } else { - inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAS_CONNECTED; } } goto out; @@ -5152,18 +5138,6 @@ restart_nosblocks: */ SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, ECONNRESET); error = ECONNRESET; - /* - * You get this once if you - * are active open side - */ - if (!(inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { - /* - * Remove flag if on - * the active open - * side - */ - inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAS_ABORTED; - } } so->so_state &= ~(SS_ISCONNECTING | SS_ISDISCONNECTING | @@ -5173,8 +5147,6 @@ restart_nosblocks: if ((inp->sctp_flags & SCTP_PCB_FLAGS_WAS_CONNECTED) == 0) { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, ENOTCONN); error = ENOTCONN; - } else { - inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAS_CONNECTED; } } goto out; From owner-svn-src-all@FreeBSD.ORG Wed Sep 14 20:13:11 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5AEC71065672; Wed, 14 Sep 2011 20:13:11 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4B2928FC1A; Wed, 14 Sep 2011 20:13:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8EKDBO0040903; Wed, 14 Sep 2011 20:13:11 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8EKDBTL040901; Wed, 14 Sep 2011 20:13:11 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <201109142013.p8EKDBTL040901@svn.freebsd.org> From: Christian Brueffer Date: Wed, 14 Sep 2011 20:13:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225560 - head/etc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Sep 2011 20:13:11 -0000 Author: brueffer Date: Wed Sep 14 20:13:10 2011 New Revision: 225560 URL: http://svn.freebsd.org/changeset/base/225560 Log: Minor spelling, wording and punctuation fixes in comments. PR: 155984 Submitted by: gcooper Approved by: re (kib) MFC after: 1 week Modified: head/etc/network.subr Modified: head/etc/network.subr ============================================================================== --- head/etc/network.subr Wed Sep 14 19:10:13 2011 (r225559) +++ head/etc/network.subr Wed Sep 14 20:13:10 2011 (r225560) @@ -32,7 +32,7 @@ # ifn_start ifn # Bring up and configure an interface. If some configuration is -# applied print the interface configuration. +# applied, print the interface configuration. # ifn_start() { @@ -53,7 +53,7 @@ ifn_start() } # ifn_stop ifn -# Shutdown and de-configure an interface. If action is taken +# Shutdown and de-configure an interface. If action is taken, # print the interface name. # ifn_stop() @@ -227,8 +227,8 @@ get_if_var() } # _ifconfig_getargs if [af] -# Echos the arguments for the supplied interface to stdout. -# returns 1 if empty. In general, ifconfig_getargs should be used +# Prints the arguments for the supplied interface to stdout. +# Returns 1 if empty. In general, ifconfig_getargs should be used # outside this file. _ifconfig_getargs() { @@ -272,7 +272,7 @@ ifconfig_getargs() } # autoif -# Returns 0 if the interface should be automaticly configured at +# Returns 0 if the interface should be automatically configured at # boot time and 1 otherwise. autoif() { @@ -449,7 +449,7 @@ ipv6if() # ipv6_autoconfif if # Returns 0 if the interface should be configured for IPv6 with -# Stateless Address Configuration, 1 otherwise. +# Stateless Address Configuration; 1 otherwise. ipv6_autoconfif() { local _if _tmpargs _arg From owner-svn-src-all@FreeBSD.ORG Wed Sep 14 20:57:11 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1233) id 130201065674; Wed, 14 Sep 2011 20:57:11 +0000 (UTC) Date: Wed, 14 Sep 2011 20:57:11 +0000 From: Alexander Best To: Andriy Gapon Message-ID: <20110914205711.GA74613@freebsd.org> References: <201109131403.p8DE3u2t083203@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="lrZ03NoBR/3+SXJZ" Content-Disposition: inline In-Reply-To: <201109131403.p8DE3u2t083203@svn.freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r225530 - in head/sys/boot/i386: gptboot gptzfsboot zfsboot X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Sep 2011 20:57:11 -0000 --lrZ03NoBR/3+SXJZ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue Sep 13 11, Andriy Gapon wrote: > Author: avg > Date: Tue Sep 13 14:03:55 2011 > New Revision: 225530 > URL: http://svn.freebsd.org/changeset/base/225530 > > Log: > gpt/zfs boot blocks: reduce optimizing CFLAGS to -O1 > > gpt and zfs boot blocks are not nearly as size-constrained as boot2 > from which they inherited their current optimization and anti-optimization > options. As such the current options do not provide any benefit, but > make debugging of the code much harder. > Also, it has been demonstrated that combination of -mrtd and > -fno-unit-at-a-time may result in mis-compilation of the boot code > with the current base gcc. > > Additionally, intermediate assembly file filtering is removed for > zfsboot. > > The new boot blocks are all compile- and boot- tested using qemu. > gptzfsboot is tested with real hardware. > > Reported by: Peter Jeremy [miscompilation] > Discussed with: bde, jhb > Tested by: Sebastian Chmielewski [gptzfsboot] > Approved by: re (kib) > MFC after: 3 weeks i also found the following patches sitting in my /usr/src dir. they should get rid of some -mno-* flags, which are already implied by other flags. please see r221879 for a more detailed explanation. cheers. alex > > Modified: > head/sys/boot/i386/gptboot/Makefile > head/sys/boot/i386/gptzfsboot/Makefile > head/sys/boot/i386/zfsboot/Makefile > > Modified: head/sys/boot/i386/gptboot/Makefile > ============================================================================== > --- head/sys/boot/i386/gptboot/Makefile Tue Sep 13 14:01:35 2011 (r225529) > +++ head/sys/boot/i386/gptboot/Makefile Tue Sep 13 14:03:55 2011 (r225530) > @@ -20,12 +20,7 @@ GPTBOOT_UFS?= UFS1_AND_UFS2 > #GPTBOOT_UFS?= UFS1_ONLY > > CFLAGS= -DBOOTPROG=\"gptboot\" \ > - -Os \ > - -fno-guess-branch-probability \ > - -fomit-frame-pointer \ > - -fno-unit-at-a-time \ > - -mno-align-long-strings \ > - -mrtd \ > + -O1 \ > -DGPT \ > -D${GPTBOOT_UFS} \ > -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ > > Modified: head/sys/boot/i386/gptzfsboot/Makefile > ============================================================================== > --- head/sys/boot/i386/gptzfsboot/Makefile Tue Sep 13 14:01:35 2011 (r225529) > +++ head/sys/boot/i386/gptzfsboot/Makefile Tue Sep 13 14:03:55 2011 (r225530) > @@ -17,12 +17,7 @@ ORG1= 0x7c00 > ORG2= 0x0 > > CFLAGS= -DBOOTPROG=\"gptzfsboot\" \ > - -Os \ > - -fno-guess-branch-probability \ > - -fomit-frame-pointer \ > - -fno-unit-at-a-time \ > - -mno-align-long-strings \ > - -mrtd \ > + -O1 \ > -DGPT -DBOOT2 \ > -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ > -DSIOFMT=${B2SIOFMT} \ > > Modified: head/sys/boot/i386/zfsboot/Makefile > ============================================================================== > --- head/sys/boot/i386/zfsboot/Makefile Tue Sep 13 14:01:35 2011 (r225529) > +++ head/sys/boot/i386/zfsboot/Makefile Tue Sep 13 14:03:55 2011 (r225530) > @@ -15,12 +15,7 @@ ORG1= 0x7c00 > ORG2= 0x2000 > > CFLAGS= -DBOOTPROG=\"zfsboot\" \ > - -Os \ > - -fno-guess-branch-probability \ > - -fomit-frame-pointer \ > - -fno-unit-at-a-time \ > - -mno-align-long-strings \ > - -mrtd \ > + -O1 \ > -DBOOT2 \ > -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ > -DSIOFMT=${B2SIOFMT} \ > @@ -85,20 +80,10 @@ zfsboot.bin: zfsboot.out > zfsboot.out: ${BTXCRT} zfsboot.o sio.o drv.o cons.o util.o > ${LD} ${LDFLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} ${LIBSTAND} > > -zfsboot.o: zfsboot.s > -.if ${CC:T:Mclang} == "clang" > - ${CC} ${ACFLAGS} -c zfsboot.s > -.endif > - > SRCS= zfsboot.c > > -zfsboot.s: zfsboot.c ${.CURDIR}/../../zfs/zfsimpl.c > - ${CC} ${CFLAGS} -S -o zfsboot.s.tmp ${.CURDIR}/zfsboot.c > - sed -e '/align/d' -e '/nop/d' < zfsboot.s.tmp > zfsboot.s > - rm -f zfsboot.s.tmp > - > .if ${MACHINE_CPUARCH} == "amd64" > -beforedepend zfsboot.s: machine > +beforedepend zfsboot.o: machine > CLEANFILES+= machine > machine: > ln -sf ${.CURDIR}/../../../i386/include machine --lrZ03NoBR/3+SXJZ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="boot.diff" diff --git a/sys/boot/ficl/Makefile b/sys/boot/ficl/Makefile index e441573..7769bd2 100644 --- a/sys/boot/ficl/Makefile +++ b/sys/boot/ficl/Makefile @@ -8,8 +8,13 @@ SRCS= ${BASE_SRCS} sysdep.c softcore.c CLEANFILES= softcore.c testmain testmain.o CFLAGS+= -ffreestanding .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" -CFLAGS+= -mpreferred-stack-boundary=2 -CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float +# See sys/conf/kern.mk for -m* implications +.if ${CC:T:Mclang} != "clang" +CFLAGS+= -mpreferred-stack-boundary=2 -mno-sse +.else +CFLAGS+= -mno-aes -mno-avx +.endif +CFLAGS+= -mno-mmx -msoft-float .endif .if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm" CFLAGS+= -msoft-float diff --git a/sys/boot/pc98/Makefile.inc b/sys/boot/pc98/Makefile.inc index 62cfc1d..f9e0348 100644 --- a/sys/boot/pc98/Makefile.inc +++ b/sys/boot/pc98/Makefile.inc @@ -5,9 +5,14 @@ BINDIR?= /boot LOADER_ADDRESS?=0x200000 -CFLAGS+= -ffreestanding -mpreferred-stack-boundary=2 \ - -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float \ - -Os -DPC98 + +# See sys/conf/kern.mk for -m* implications +.if ${CC:T:Mclang} != "clang" +CFLAGS+= -mpreferred-stack-boundary=2 -mno-sse +.else +CFLAGS+= -mno-aes -mno-avx +.endif +CFLAGS+= -ffreestanding -mno-mmx -msoft-float -Os -DPC98 LDFLAGS+= -nostdlib # BTX components diff --git a/sys/boot/zfs/Makefile b/sys/boot/zfs/Makefile index a6fba3a..3a23691 100644 --- a/sys/boot/zfs/Makefile +++ b/sys/boot/zfs/Makefile @@ -12,8 +12,13 @@ CFLAGS+= -I${.CURDIR}/../../cddl/boot/zfs CFLAGS+= -ffreestanding .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" -CFLAGS+= -mpreferred-stack-boundary=2 -CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float +# See sys/conf/kern.mk for -m* implications +.if ${CC:T:Mclang} != "clang" +CFLAGS+= -mpreferred-stack-boundary=2 -mno-sse +.else +CFLAGS+= -mno-aes -mno-avx +.endif +CFLAGS+= -mno-mmx -msoft-float .endif .if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm" CFLAGS+= -msoft-float --lrZ03NoBR/3+SXJZ-- From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 04:32:14 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8C31C106564A; Thu, 15 Sep 2011 04:32:14 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 615AB8FC12; Thu, 15 Sep 2011 04:32:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8F4WEwf056643; Thu, 15 Sep 2011 04:32:14 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8F4WENP056641; Thu, 15 Sep 2011 04:32:14 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201109150432.p8F4WENP056641@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 15 Sep 2011 04:32:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225565 - stable/8/sbin/geom/class/part X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 04:32:14 -0000 Author: ae Date: Thu Sep 15 04:32:14 2011 New Revision: 225565 URL: http://svn.freebsd.org/changeset/base/225565 Log: MFC r225445: Don't use the whole free space when resizing partition to a larger size on a disk with non zero stripesize (e.g. disks with 4k sector size)[1]. Also do not use automatic alignment when size is exactly specified, but an alignment is not. Use automatic alignment only for case when user omits both "-s" and "-a" options. Reported by: Mikael Fridh [1] Modified: stable/8/sbin/geom/class/part/geom_part.c Directory Properties: stable/8/sbin/geom/class/part/ (props changed) Modified: stable/8/sbin/geom/class/part/geom_part.c ============================================================================== --- stable/8/sbin/geom/class/part/geom_part.c Thu Sep 15 04:16:03 2011 (r225564) +++ stable/8/sbin/geom/class/part/geom_part.c Thu Sep 15 04:32:14 2011 (r225565) @@ -310,7 +310,7 @@ gpart_autofill_resize(struct gctl_req *r off_t lba, new_lba, alignment, offset; const char *s; char *val; - int error, idx; + int error, idx, has_alignment; s = gctl_get_ascii(req, index_param); idx = strtol(s, &val, 10); @@ -337,8 +337,9 @@ gpart_autofill_resize(struct gctl_req *r errx(EXIT_FAILURE, "Provider for geom %s not found.", s); s = gctl_get_ascii(req, "alignment"); + has_alignment = (*s == '*') ? 0 : 1; alignment = 1; - if (*s != '*') { + if (has_alignment) { error = g_parse_lba(s, pp->lg_sectorsize, &alignment); if (error) errc(EXIT_FAILURE, error, "Invalid alignment param"); @@ -361,7 +362,7 @@ gpart_autofill_resize(struct gctl_req *r if (error) errc(EXIT_FAILURE, error, "Invalid size param"); /* no autofill necessary. */ - if (alignment == 1) + if (has_alignment == 0) goto done; } @@ -392,7 +393,8 @@ gpart_autofill_resize(struct gctl_req *r lba = (off_t)strtoimax(s, NULL, 0); size = lba - start + 1; - if (new_size > 0 && new_size <= size) { + pp = find_provider(gp, lba + 1); + if (new_size > 0 && (new_size <= size || pp == NULL)) { /* The start offset may be not aligned, so we align the end * offset and then calculate the size. */ @@ -400,8 +402,6 @@ gpart_autofill_resize(struct gctl_req *r alignment) - start - offset; goto done; } - - pp = find_provider(gp, lba + 1); if (pp == NULL) { new_size = ALIGNDOWN(last + offset + 1, alignment) - start - offset; From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 04:35:00 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3945C106564A; Thu, 15 Sep 2011 04:35:00 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 27FFA8FC08; Thu, 15 Sep 2011 04:35:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8F4Z0iY056777; Thu, 15 Sep 2011 04:35:00 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8F4Z0QY056775; Thu, 15 Sep 2011 04:35:00 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201109150435.p8F4Z0QY056775@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 15 Sep 2011 04:35:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225566 - stable/8/sbin/geom/class/part X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 04:35:00 -0000 Author: ae Date: Thu Sep 15 04:34:59 2011 New Revision: 225566 URL: http://svn.freebsd.org/changeset/base/225566 Log: MFC r223356 (by delphij): Mod the offset padding by alignment. Without this change we may pad too much when underlying GEOM object have a zero stripesize. Modified: stable/8/sbin/geom/class/part/geom_part.c Directory Properties: stable/8/sbin/geom/class/part/ (props changed) Modified: stable/8/sbin/geom/class/part/geom_part.c ============================================================================== --- stable/8/sbin/geom/class/part/geom_part.c Thu Sep 15 04:32:14 2011 (r225565) +++ stable/8/sbin/geom/class/part/geom_part.c Thu Sep 15 04:34:59 2011 (r225566) @@ -366,7 +366,7 @@ gpart_autofill_resize(struct gctl_req *r goto done; } - offset = pp->lg_stripeoffset / pp->lg_sectorsize; + offset = (pp->lg_stripeoffset / pp->lg_sectorsize) % alignment; last = (off_t)strtoimax(find_geomcfg(gp, "last"), NULL, 0); LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { s = find_provcfg(pp, "index"); @@ -514,7 +514,7 @@ gpart_autofill(struct gctl_req *req) alignment = len; /* Adjust parameters to stripeoffset */ - offset = pp->lg_stripeoffset / pp->lg_sectorsize; + offset = (pp->lg_stripeoffset / pp->lg_sectorsize) % alignment; start = ALIGNUP(start + offset, alignment); if (size > alignment) size = ALIGNDOWN(size, alignment); From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 08:42:06 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 830FD106566B; Thu, 15 Sep 2011 08:42:06 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 721108FC14; Thu, 15 Sep 2011 08:42:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8F8g6od064369; Thu, 15 Sep 2011 08:42:06 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8F8g6Jm064366; Thu, 15 Sep 2011 08:42:06 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201109150842.p8F8g6Jm064366@svn.freebsd.org> From: Adrian Chadd Date: Thu, 15 Sep 2011 08:42:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225570 - in head: share/man/man9 sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 08:42:06 -0000 Author: adrian Date: Thu Sep 15 08:42:06 2011 New Revision: 225570 URL: http://svn.freebsd.org/changeset/base/225570 Log: Ensure that ta_pending doesn't overflow u_short by capping its value at USHRT_MAX. If it overflows before the taskqueue can run, the task will be re-added to the taskqueue and cause a loop in the task list. Reported by: Arnaud Lacombe Submitted by: Ryan Stone Reviewed by: jhb Approved by: re (kib) MFC after: 1 day Modified: head/share/man/man9/taskqueue.9 head/sys/kern/subr_taskqueue.c Modified: head/share/man/man9/taskqueue.9 ============================================================================== --- head/share/man/man9/taskqueue.9 Thu Sep 15 06:42:06 2011 (r225569) +++ head/share/man/man9/taskqueue.9 Thu Sep 15 08:42:06 2011 (r225570) @@ -133,7 +133,7 @@ If the task's .Va ta_pending field is non-zero, then it is simply incremented to reflect the number of times the task -was enqueued. +was enqueued, up to a cap of USHRT_MAX. Otherwise, the task is added to the list before the first task which has a lower .Va ta_priority Modified: head/sys/kern/subr_taskqueue.c ============================================================================== --- head/sys/kern/subr_taskqueue.c Thu Sep 15 06:42:06 2011 (r225569) +++ head/sys/kern/subr_taskqueue.c Thu Sep 15 08:42:06 2011 (r225570) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -173,7 +174,8 @@ taskqueue_enqueue_locked(struct taskqueu * Count multiple enqueues. */ if (task->ta_pending) { - task->ta_pending++; + if (task->ta_pending < USHRT_MAX) + task->ta_pending++; return (0); } From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 08:49:54 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A94EE106564A; Thu, 15 Sep 2011 08:49:54 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 97F968FC0A; Thu, 15 Sep 2011 08:49:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8F8nsXT064639; Thu, 15 Sep 2011 08:49:54 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8F8nssF064633; Thu, 15 Sep 2011 08:49:54 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201109150849.p8F8nssF064633@svn.freebsd.org> From: Michael Tuexen Date: Thu, 15 Sep 2011 08:49:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225571 - head/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 08:49:54 -0000 Author: tuexen Date: Thu Sep 15 08:49:54 2011 New Revision: 225571 URL: http://svn.freebsd.org/changeset/base/225571 Log: Make sure that SCTP rejects broadcast, multicast and wildcard addresses as remote addresses. Approved by: re MFC after: 1 month. Modified: head/sys/netinet/sctp_asconf.c head/sys/netinet/sctp_output.c head/sys/netinet/sctp_pcb.c head/sys/netinet/sctp_usrreq.c head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctp_asconf.c ============================================================================== --- head/sys/netinet/sctp_asconf.c Thu Sep 15 08:42:06 2011 (r225570) +++ head/sys/netinet/sctp_asconf.c Thu Sep 15 08:49:54 2011 (r225571) @@ -207,6 +207,7 @@ sctp_process_asconf_add_ip(struct mbuf * uint16_t param_type, param_length, aparam_length; struct sockaddr *sa; int zero_address = 0; + int bad_address = 0; #ifdef INET struct sockaddr_in *sin; @@ -239,6 +240,10 @@ sctp_process_asconf_add_ip(struct mbuf * sin->sin_len = sizeof(struct sockaddr_in); sin->sin_port = stcb->rport; sin->sin_addr.s_addr = v4addr->addr; + if ((sin->sin_addr.s_addr == INADDR_BROADCAST) || + IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) { + bad_address = 1;; + } if (sin->sin_addr.s_addr == INADDR_ANY) zero_address = 1; SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_add_ip: adding "); @@ -259,6 +264,9 @@ sctp_process_asconf_add_ip(struct mbuf * sin6->sin6_port = stcb->rport; memcpy((caddr_t)&sin6->sin6_addr, v6addr->addr, sizeof(struct in6_addr)); + if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) { + bad_address = 1; + } if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) zero_address = 1; SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_add_ip: adding "); @@ -266,12 +274,8 @@ sctp_process_asconf_add_ip(struct mbuf * break; #endif default: - /* - * XXX: Is this the correct error cause? Maybe - * SCTP_CAUSE_INVALID_PARAM is a better choice. - */ m_reply = sctp_asconf_error_response(aph->correlation_id, - SCTP_CAUSE_UNRESOLVABLE_ADDR, (uint8_t *) aph, + SCTP_CAUSE_INVALID_PARAM, (uint8_t *) aph, aparam_length); return m_reply; } /* end switch */ @@ -285,7 +289,11 @@ sctp_process_asconf_add_ip(struct mbuf * SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa); } /* add the address */ - if (sctp_add_remote_addr(stcb, sa, &net, SCTP_DONOT_SETSCOPE, + if (bad_address) { + m_reply = sctp_asconf_error_response(aph->correlation_id, + SCTP_CAUSE_INVALID_PARAM, (uint8_t *) aph, + aparam_length); + } else if (sctp_add_remote_addr(stcb, sa, &net, SCTP_DONOT_SETSCOPE, SCTP_ADDR_DYNAMIC_ADDED) != 0) { SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_add_ip: error adding address\n"); Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Thu Sep 15 08:42:06 2011 (r225570) +++ head/sys/netinet/sctp_output.c Thu Sep 15 08:49:54 2011 (r225571) @@ -3541,7 +3541,7 @@ sctp_process_cmsgs_for_init(struct sctp_ (sin.sin_addr.s_addr == INADDR_BROADCAST) || IN_MULTICAST(ntohl(sin.sin_addr.s_addr))) { *error = EINVAL; - return (-1); + return (1); } if (sctp_add_remote_addr(stcb, (struct sockaddr *)&sin, NULL, SCTP_DONOT_SETSCOPE, SCTP_ADDR_IS_CONFIRMED)) { @@ -3564,7 +3564,7 @@ sctp_process_cmsgs_for_init(struct sctp_ if (IN6_IS_ADDR_UNSPECIFIED(&sin6.sin6_addr) || IN6_IS_ADDR_MULTICAST(&sin6.sin6_addr)) { *error = EINVAL; - return (-1); + return (1); } #ifdef INET if (IN6_IS_ADDR_V4MAPPED(&sin6.sin6_addr)) { @@ -3573,7 +3573,7 @@ sctp_process_cmsgs_for_init(struct sctp_ (sin.sin_addr.s_addr == INADDR_BROADCAST) || IN_MULTICAST(ntohl(sin.sin_addr.s_addr))) { *error = EINVAL; - return (-1); + return (1); } if (sctp_add_remote_addr(stcb, (struct sockaddr *)&sin, NULL, SCTP_DONOT_SETSCOPE, SCTP_ADDR_IS_CONFIRMED)) { Modified: head/sys/netinet/sctp_pcb.c ============================================================================== --- head/sys/netinet/sctp_pcb.c Thu Sep 15 08:42:06 2011 (r225570) +++ head/sys/netinet/sctp_pcb.c Thu Sep 15 08:49:54 2011 (r225571) @@ -4332,7 +4332,10 @@ sctp_aloc_assoc(struct sctp_inpcb *inp, struct sockaddr_in *sin; sin = (struct sockaddr_in *)firstaddr; - if ((sin->sin_port == 0) || (sin->sin_addr.s_addr == 0)) { + if ((ntohs(sin->sin_port) == 0) || + (sin->sin_addr.s_addr == INADDR_ANY) || + (sin->sin_addr.s_addr == INADDR_BROADCAST) || + IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) { /* Invalid address */ SCTP_INP_RUNLOCK(inp); SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL); @@ -4349,8 +4352,9 @@ sctp_aloc_assoc(struct sctp_inpcb *inp, struct sockaddr_in6 *sin6; sin6 = (struct sockaddr_in6 *)firstaddr; - if ((sin6->sin6_port == 0) || - (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr))) { + if ((ntohs(sin6->sin6_port) == 0) || + IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr) || + IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) { /* Invalid address */ SCTP_INP_RUNLOCK(inp); SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL); Modified: head/sys/netinet/sctp_usrreq.c ============================================================================== --- head/sys/netinet/sctp_usrreq.c Thu Sep 15 08:42:06 2011 (r225570) +++ head/sys/netinet/sctp_usrreq.c Thu Sep 15 08:49:54 2011 (r225571) @@ -560,7 +560,7 @@ sctp_bind(struct socket *so, struct sock struct sctp_inpcb *inp = NULL; int error; -#ifdef INET6 +#ifdef INET if (addr && addr->sa_family != AF_INET) { /* must be a v4 address! */ SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Thu Sep 15 08:42:06 2011 (r225570) +++ head/sys/netinet/sctputil.c Thu Sep 15 08:49:54 2011 (r225571) @@ -6080,6 +6080,15 @@ sctp_connectx_helper_add(struct sctp_tcb struct sockaddr *sa; size_t incr = 0; +#ifdef INET + struct sockaddr_in *sin; + +#endif +#ifdef INET6 + struct sockaddr_in6 *sin6; + +#endif + sa = addr; inp = stcb->sctp_ep; *error = 0; @@ -6088,6 +6097,15 @@ sctp_connectx_helper_add(struct sctp_tcb #ifdef INET case AF_INET: incr = sizeof(struct sockaddr_in); + sin = (struct sockaddr_in *)sa; + if ((sin->sin_addr.s_addr == INADDR_ANY) || + (sin->sin_addr.s_addr == INADDR_BROADCAST) || + IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) { + SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, EINVAL); + (void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_7); + *error = EINVAL; + goto out_now; + } if (sctp_add_remote_addr(stcb, sa, NULL, SCTP_DONOT_SETSCOPE, SCTP_ADDR_IS_CONFIRMED)) { /* assoc gone no un-lock */ SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ENOBUFS); @@ -6101,6 +6119,14 @@ sctp_connectx_helper_add(struct sctp_tcb #ifdef INET6 case AF_INET6: incr = sizeof(struct sockaddr_in6); + sin6 = (struct sockaddr_in6 *)sa; + if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr) || + IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) { + SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, EINVAL); + (void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_8); + *error = EINVAL; + goto out_now; + } if (sctp_add_remote_addr(stcb, sa, NULL, SCTP_DONOT_SETSCOPE, SCTP_ADDR_IS_CONFIRMED)) { /* assoc gone no un-lock */ SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ENOBUFS); From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 09:22:50 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 46EE61065675; Thu, 15 Sep 2011 09:22:50 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 362D58FC0A; Thu, 15 Sep 2011 09:22:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8F9MoB9065760; Thu, 15 Sep 2011 09:22:50 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8F9MoJ1065757; Thu, 15 Sep 2011 09:22:50 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201109150922.p8F9MoJ1065757@svn.freebsd.org> From: Doug Barton Date: Thu, 15 Sep 2011 09:22:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225574 - in head: etc/defaults share/man/man5 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 09:22:50 -0000 Author: dougb Date: Thu Sep 15 09:22:49 2011 New Revision: 225574 URL: http://svn.freebsd.org/changeset/base/225574 Log: Correct the RFC number for the description of IPv6 privacy addressing Reviewed by: bz Approved by: re (kib) Modified: head/etc/defaults/rc.conf head/share/man/man5/rc.conf.5 Modified: head/etc/defaults/rc.conf ============================================================================== --- head/etc/defaults/rc.conf Thu Sep 15 09:22:46 2011 (r225573) +++ head/etc/defaults/rc.conf Thu Sep 15 09:22:49 2011 (r225574) @@ -472,7 +472,7 @@ ipv6_cpe_wanif="NO" # Set to the upstra # node will work as a router to forward IPv6 # packets not explicitly addressed to itself. ipv6_privacy="NO" # Use privacy address on RA-receiving IFs - # (RFC 4193) + # (RFC 4941) route6d_enable="NO" # Set to YES to enable an IPv6 routing daemon. route6d_program="/usr/sbin/route6d" # Name of IPv6 routing daemon. Modified: head/share/man/man5/rc.conf.5 ============================================================================== --- head/share/man/man5/rc.conf.5 Thu Sep 15 09:22:46 2011 (r225573) +++ head/share/man/man5/rc.conf.5 Thu Sep 15 09:22:49 2011 (r225574) @@ -1337,7 +1337,7 @@ Default is If the variable is .Dq Li YES privacy addresses will be generated for each IPv6 -interface as described in RFC 4193. +interface as described in RFC 4941. .It Va ipv6_network_interfaces .Pq Vt str This is the IPv6 equivalent of From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 09:53:04 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0B9A106564A; Thu, 15 Sep 2011 09:53:04 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B06CC8FC18; Thu, 15 Sep 2011 09:53:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8F9r4lk066724; Thu, 15 Sep 2011 09:53:04 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8F9r4Ab066722; Thu, 15 Sep 2011 09:53:04 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201109150953.p8F9r4Ab066722@svn.freebsd.org> From: Konstantin Belousov Date: Thu, 15 Sep 2011 09:53:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225575 - head/sys/amd64/amd64 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 09:53:04 -0000 Author: kib Date: Thu Sep 15 09:53:04 2011 New Revision: 225575 URL: http://svn.freebsd.org/changeset/base/225575 Log: Microoptimize the return path for the fast syscalls on amd64. Arrange the code to have the fall-through path to follow the likely target. Do not use intermediate register to reload user %rsp. Proposed by: alc Reviewed by: alc, jhb Approved by: re (bz) MFC after: 2 weeks Modified: head/sys/amd64/amd64/exception.S Modified: head/sys/amd64/amd64/exception.S ============================================================================== --- head/sys/amd64/amd64/exception.S Thu Sep 15 09:22:49 2011 (r225574) +++ head/sys/amd64/amd64/exception.S Thu Sep 15 09:53:04 2011 (r225575) @@ -393,14 +393,8 @@ IDTVEC(fast_syscall) /* Check for and handle AST's on return to userland. */ movq PCPU(CURTHREAD),%rax testl $TDF_ASTPENDING | TDF_NEEDRESCHED,TD_FLAGS(%rax) - je 2f - sti - movq %rsp, %rdi - call ast - jmp 1b - - .align 16 -2: /* Restore preserved registers. */ + jne 2f + /* Restore preserved registers. */ MEXITCOUNT movq TF_RDI(%rsp),%rdi /* bonus; preserve arg 1 */ movq TF_RSI(%rsp),%rsi /* bonus: preserve arg 2 */ @@ -408,10 +402,16 @@ IDTVEC(fast_syscall) movq TF_RAX(%rsp),%rax /* return value 1 */ movq TF_RFLAGS(%rsp),%r11 /* original %rflags */ movq TF_RIP(%rsp),%rcx /* original %rip */ - movq TF_RSP(%rsp),%r9 /* user stack pointer */ - movq %r9,%rsp /* original %rsp */ + movq TF_RSP(%rsp),%rsp /* user stack pointer */ swapgs sysretq + +2: /* AST scheduled. */ + sti + movq %rsp,%rdi + call ast + jmp 1b + 3: /* Requested full context restore, use doreti for that. */ MEXITCOUNT jmp doreti From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 09:54:07 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B0856106566B; Thu, 15 Sep 2011 09:54:07 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9FFC78FC08; Thu, 15 Sep 2011 09:54:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8F9s7ou066793; Thu, 15 Sep 2011 09:54:07 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8F9s72u066790; Thu, 15 Sep 2011 09:54:07 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201109150954.p8F9s72u066790@svn.freebsd.org> From: Konstantin Belousov Date: Thu, 15 Sep 2011 09:54:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225576 - in head/sys/amd64: amd64 include X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 09:54:07 -0000 Author: kib Date: Thu Sep 15 09:54:07 2011 New Revision: 225576 URL: http://svn.freebsd.org/changeset/base/225576 Log: Put amd64_syscall() prototype in md_var.h. Requested by: jhb Reviewed by: alc, jhb Approved by: re (bz) MFC after: 2 weeks Modified: head/sys/amd64/amd64/trap.c head/sys/amd64/include/md_var.h Modified: head/sys/amd64/amd64/trap.c ============================================================================== --- head/sys/amd64/amd64/trap.c Thu Sep 15 09:53:04 2011 (r225575) +++ head/sys/amd64/amd64/trap.c Thu Sep 15 09:54:07 2011 (r225576) @@ -885,7 +885,6 @@ cpu_fetch_syscall_args(struct thread *td #include "../../kern/subr_syscall.c" -void amd64_syscall(struct thread *td, int traced); /* * syscall - system call request C handler * Modified: head/sys/amd64/include/md_var.h ============================================================================== --- head/sys/amd64/include/md_var.h Thu Sep 15 09:53:04 2011 (r225575) +++ head/sys/amd64/include/md_var.h Thu Sep 15 09:54:07 2011 (r225576) @@ -75,6 +75,7 @@ struct fpreg; struct dbreg; struct dumperinfo; +void amd64_syscall(struct thread *td, int traced); void busdma_swi(void); void cpu_setregs(void); void doreti_iret(void) __asm(__STRING(doreti_iret)); From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 10:35:39 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2708E1065670; Thu, 15 Sep 2011 10:35:39 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1597D8FC0A; Thu, 15 Sep 2011 10:35:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FAZc1t069643; Thu, 15 Sep 2011 10:35:38 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FAZccc069641; Thu, 15 Sep 2011 10:35:38 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109151035.p8FAZccc069641@svn.freebsd.org> From: Andriy Gapon Date: Thu, 15 Sep 2011 10:35:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225577 - stable/8/cddl/contrib/opensolaris/lib/libdtrace/common X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 10:35:39 -0000 Author: avg Date: Thu Sep 15 10:35:38 2011 New Revision: 225577 URL: http://svn.freebsd.org/changeset/base/225577 Log: MFC r209030: In dtrace lexer, do not unput token if it is EOF. On behalf of: kan Modified: stable/8/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Directory Properties: stable/8/cddl/contrib/opensolaris/ (props changed) Modified: stable/8/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l ============================================================================== --- stable/8/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Thu Sep 15 09:54:07 2011 (r225576) +++ stable/8/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Thu Sep 15 10:35:38 2011 (r225577) @@ -810,7 +810,8 @@ id_or_type(const char *s) longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM); } - unput(c0); + if (c0 != EOF) + unput(c0); return (ttok); } From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 10:39:45 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 07AEF106564A; Thu, 15 Sep 2011 10:39:45 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EAAB18FC0C; Thu, 15 Sep 2011 10:39:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FAdicu069804; Thu, 15 Sep 2011 10:39:44 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FAdivN069802; Thu, 15 Sep 2011 10:39:44 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109151039.p8FAdivN069802@svn.freebsd.org> From: Andriy Gapon Date: Thu, 15 Sep 2011 10:39:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225578 - stable/8/cddl/contrib/opensolaris/lib/libdtrace/common X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 10:39:45 -0000 Author: avg Date: Thu Sep 15 10:39:44 2011 New Revision: 225578 URL: http://svn.freebsd.org/changeset/base/225578 Log: MFC r209305,209358: Do not allow EOF token to be put back into input buffer. PR: kern/159064 On behalf of: kan, marcel Modified: stable/8/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Directory Properties: stable/8/cddl/contrib/opensolaris/ (props changed) Modified: stable/8/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l ============================================================================== --- stable/8/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Thu Sep 15 10:35:38 2011 (r225577) +++ stable/8/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Thu Sep 15 10:39:44 2011 (r225578) @@ -44,7 +44,7 @@ #undef input #undef unput #else -/* +/* * Define YY_INPUT for flex since input() can't be re-defined. */ #define YY_INPUT(buf,result,max_size) \ @@ -59,6 +59,19 @@ buf[n] = *yypcb->pcb_strptr++; \ result = n; \ } +/* + * Do not EOF let tokens to be put back. This does not work with flex. + * On the other hand, leaving current buffer in same state it was when + * last EOF was received guarantees that input() will keep returning EOF + * for all subsequent invocations, which is the effect desired. + */ +#undef unput +#define unput(c) \ + do { \ + int _c = c; \ + if (_c != EOF) \ + yyunput(_c, yytext_ptr); \ + } while(0) #endif static int id_or_type(const char *); @@ -810,8 +823,7 @@ id_or_type(const char *s) longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM); } - if (c0 != EOF) - unput(c0); + unput(c0); return (ttok); } From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 10:42:55 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AAC5F106566C; Thu, 15 Sep 2011 10:42:55 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9954C8FC16; Thu, 15 Sep 2011 10:42:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FAgtWs069950; Thu, 15 Sep 2011 10:42:55 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FAgtTr069948; Thu, 15 Sep 2011 10:42:55 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109151042.p8FAgtTr069948@svn.freebsd.org> From: Andriy Gapon Date: Thu, 15 Sep 2011 10:42:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225579 - stable/7/cddl/contrib/opensolaris/lib/libdtrace/common X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 10:42:55 -0000 Author: avg Date: Thu Sep 15 10:42:55 2011 New Revision: 225579 URL: http://svn.freebsd.org/changeset/base/225579 Log: MFC r209030,209305,209358: In dtrace lexer, do not unput token if it is EOF. PR: kern/159064 On behalf of: kan, marcel Modified: stable/7/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Directory Properties: stable/7/cddl/contrib/opensolaris/ (props changed) Modified: stable/7/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l ============================================================================== --- stable/7/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Thu Sep 15 10:39:44 2011 (r225578) +++ stable/7/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Thu Sep 15 10:42:55 2011 (r225579) @@ -45,7 +45,7 @@ #undef input #undef unput #else -/* +/* * Define YY_INPUT for flex since input() can't be re-defined. */ #define YY_INPUT(buf,result,max_size) \ @@ -60,6 +60,19 @@ buf[n] = *yypcb->pcb_strptr++; \ result = n; \ } +/* + * Do not EOF let tokens to be put back. This does not work with flex. + * On the other hand, leaving current buffer in same state it was when + * last EOF was received guarantees that input() will keep returning EOF + * for all subsequent invocations, which is the effect desired. + */ +#undef unput +#define unput(c) \ + do { \ + int _c = c; \ + if (_c != EOF) \ + yyunput(_c, yytext_ptr); \ + } while(0) #endif static int id_or_type(const char *); From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 10:51:32 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E6D3106566C; Thu, 15 Sep 2011 10:51:32 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1DA058FC13; Thu, 15 Sep 2011 10:51:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FApW5J070331; Thu, 15 Sep 2011 10:51:32 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FApV79070329; Thu, 15 Sep 2011 10:51:32 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109151051.p8FApV79070329@svn.freebsd.org> From: Andriy Gapon Date: Thu, 15 Sep 2011 10:51:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225580 - stable/8/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 10:51:32 -0000 Author: avg Date: Thu Sep 15 10:51:31 2011 New Revision: 225580 URL: http://svn.freebsd.org/changeset/base/225580 Log: MFC r213736: generic_stop_cpus: prevent parallel execution Addendum to the original commit message: This is mostly useful to protect kdb_trap() from concurrent entry as it doesn't have any protection like e.g. panic(9) has. Even if kdb_trap() had that protection there would still be a need for protection between concurrect panic() and kdb_trap() entries. That protection could be implemented externally, but doing it in generic_stop_cpus() seems to be OK as well (stopping CPUs on panic is in the works). Modified: stable/8/sys/kern/subr_smp.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/kern/subr_smp.c ============================================================================== --- stable/8/sys/kern/subr_smp.c Thu Sep 15 10:42:55 2011 (r225579) +++ stable/8/sys/kern/subr_smp.c Thu Sep 15 10:51:31 2011 (r225580) @@ -198,22 +198,32 @@ forward_signal(struct thread *td) * 0: NA * 1: ok * - * XXX FIXME: this is not MP-safe, needs a lock to prevent multiple CPUs - * from executing at same time. */ static int generic_stop_cpus(cpumask_t map, u_int type) { + static volatile u_int stopping_cpu = NOCPU; int i; - KASSERT(type == IPI_STOP || type == IPI_STOP_HARD, + KASSERT( +#if defined(__amd64__) + type == IPI_STOP || type == IPI_STOP_HARD || type == IPI_SUSPEND, +#else + type == IPI_STOP || type == IPI_STOP_HARD, +#endif ("%s: invalid stop type", __func__)); if (!smp_started) - return 0; + return (0); CTR2(KTR_SMP, "stop_cpus(%x) with %u type", map, type); + if (stopping_cpu != PCPU_GET(cpuid)) + while (atomic_cmpset_int(&stopping_cpu, NOCPU, + PCPU_GET(cpuid)) == 0) + while (stopping_cpu != NOCPU) + cpu_spinwait(); /* spin */ + /* send the stop IPI to all CPUs in map */ ipi_selected(map, type); @@ -230,7 +240,8 @@ generic_stop_cpus(cpumask_t map, u_int t #endif } - return 1; + stopping_cpu = NOCPU; + return (1); } int @@ -248,50 +259,11 @@ stop_cpus_hard(cpumask_t map) } #if defined(__amd64__) -/* - * When called the executing CPU will send an IPI to all other CPUs - * requesting that they halt execution. - * - * Usually (but not necessarily) called with 'other_cpus' as its arg. - * - * - Signals all CPUs in map to suspend. - * - Waits for each to suspend. - * - * Returns: - * -1: error - * 0: NA - * 1: ok - * - * XXX FIXME: this is not MP-safe, needs a lock to prevent multiple CPUs - * from executing at same time. - */ int suspend_cpus(cpumask_t map) { - int i; - if (!smp_started) - return (0); - - CTR1(KTR_SMP, "suspend_cpus(%x)", map); - - /* send the suspend IPI to all CPUs in map */ - ipi_selected(map, IPI_SUSPEND); - - i = 0; - while ((stopped_cpus & map) != map) { - /* spin */ - cpu_spinwait(); - i++; -#ifdef DIAGNOSTIC - if (i == 100000) { - printf("timeout suspending cpus\n"); - break; - } -#endif - } - - return (1); + return (generic_stop_cpus(map, IPI_SUSPEND)); } #endif From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 11:17:07 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D63D01065670; Thu, 15 Sep 2011 11:17:07 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C5CE28FC17; Thu, 15 Sep 2011 11:17:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FBH7vf071143; Thu, 15 Sep 2011 11:17:07 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FBH749071141; Thu, 15 Sep 2011 11:17:07 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109151117.p8FBH749071141@svn.freebsd.org> From: Andriy Gapon Date: Thu, 15 Sep 2011 11:17:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225581 - stable/8/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 11:17:07 -0000 Author: avg Date: Thu Sep 15 11:17:07 2011 New Revision: 225581 URL: http://svn.freebsd.org/changeset/base/225581 Log: MFC r223530: generic_stop_cpus: pull timeout logic from under DIAGNOSTIC Modified: stable/8/sys/kern/subr_smp.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/kern/subr_smp.c ============================================================================== --- stable/8/sys/kern/subr_smp.c Thu Sep 15 10:51:31 2011 (r225580) +++ stable/8/sys/kern/subr_smp.c Thu Sep 15 11:17:07 2011 (r225581) @@ -232,12 +232,10 @@ generic_stop_cpus(cpumask_t map, u_int t /* spin */ cpu_spinwait(); i++; -#ifdef DIAGNOSTIC - if (i == 100000) { + if (i == 100000000) { printf("timeout stopping cpus\n"); break; } -#endif } stopping_cpu = NOCPU; From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 11:50:09 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9ED7E106564A; Thu, 15 Sep 2011 11:50:09 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8F2038FC13; Thu, 15 Sep 2011 11:50:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FBo9Tt072222; Thu, 15 Sep 2011 11:50:09 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FBo99f072220; Thu, 15 Sep 2011 11:50:09 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201109151150.p8FBo99f072220@svn.freebsd.org> From: Konstantin Belousov Date: Thu, 15 Sep 2011 11:50:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225582 - head/libexec/rtld-elf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 11:50:09 -0000 Author: kib Date: Thu Sep 15 11:50:09 2011 New Revision: 225582 URL: http://svn.freebsd.org/changeset/base/225582 Log: Use the proper dynamic tls block to calculate the tls variable address in case tls data generation was updated. PR: misc/160721 Submitted by: "Thinker K.F. Li" Tested by: flo Approved by: re (bz) MFC after: 1 week Modified: head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Thu Sep 15 11:17:07 2011 (r225581) +++ head/libexec/rtld-elf/rtld.c Thu Sep 15 11:50:09 2011 (r225582) @@ -3370,7 +3370,7 @@ tls_get_addr_common(Elf_Addr** dtvp, int newdtv[1] = tls_max_index; free(dtv); lock_release(rtld_bind_lock, &lockstate); - *dtvp = newdtv; + dtv = *dtvp = newdtv; } /* Dynamically allocate module TLS if necessary */ From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 12:06:30 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19B171065670; Thu, 15 Sep 2011 12:06:30 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-gw0-f50.google.com (mail-gw0-f50.google.com [74.125.83.50]) by mx1.freebsd.org (Postfix) with ESMTP id 92BC58FC15; Thu, 15 Sep 2011 12:06:29 +0000 (UTC) Received: by gwj16 with SMTP id 16so2587778gwj.37 for ; Thu, 15 Sep 2011 05:06:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=czBoxPIPXs6hMYnV9stRSWcnQ58jQLIn7PVL2Mg7flk=; b=Ow/XrvlG6/HhsZTsKtlBYIMuaLk6ZgkRukhGuJGoDdXjtCyZtX1dOOm+YA6EVFEMEZ AEyDOKjGYdT5/GEkv1TTOo9vFpy8LFynI0l8Fed74meB/4fFEptgCawMFFioFg/vWCkW lOYKqhRpmH8XU2wd4lNjQZkzdt/Llg47TEdtg= MIME-Version: 1.0 Received: by 10.150.240.14 with SMTP id n14mr1102324ybh.41.1316088388961; Thu, 15 Sep 2011 05:06:28 -0700 (PDT) Sender: pluknet@gmail.com Received: by 10.150.53.2 with HTTP; Thu, 15 Sep 2011 05:06:28 -0700 (PDT) In-Reply-To: <201109151150.p8FBo99f072220@svn.freebsd.org> References: <201109151150.p8FBo99f072220@svn.freebsd.org> Date: Thu, 15 Sep 2011 16:06:28 +0400 X-Google-Sender-Auth: HOnbAgqQLwDwOJMziN9zMnPHNw0 Message-ID: From: Sergey Kandaurov To: Konstantin Belousov Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r225582 - head/libexec/rtld-elf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 12:06:30 -0000 On 15 September 2011 15:50, Konstantin Belousov wrote: > Author: kib > Date: Thu Sep 15 11:50:09 2011 > New Revision: 225582 > URL: http://svn.freebsd.org/changeset/base/225582 > > Log: > =A0Use the proper dynamic tls block to calculate the tls variable address > =A0in case tls data generation was updated. > > =A0PR: =A0 misc/160721 > =A0Submitted by: "Thinker K.F. Li" > =A0Tested by: =A0 =A0flo > =A0Approved by: =A0re (bz) > =A0MFC after: =A0 =A01 week > > Modified: > =A0head/libexec/rtld-elf/rtld.c > > Modified: head/libexec/rtld-elf/rtld.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/libexec/rtld-elf/rtld.c =A0 =A0 =A0 =A0Thu Sep 15 11:17:07 2011 = =A0 =A0 =A0 =A0(r225581) > +++ head/libexec/rtld-elf/rtld.c =A0 =A0 =A0 =A0Thu Sep 15 11:50:09 2011 = =A0 =A0 =A0 =A0(r225582) > @@ -3370,7 +3370,7 @@ tls_get_addr_common(Elf_Addr** dtvp, int > =A0 =A0 =A0 =A0newdtv[1] =3D tls_max_index; > =A0 =A0 =A0 =A0free(dtv); > =A0 =A0 =A0 =A0lock_release(rtld_bind_lock, &lockstate); > - =A0 =A0 =A0 *dtvp =3D newdtv; > + =A0 =A0 =A0 dtv =3D *dtvp =3D newdtv; > =A0 =A0 } > > =A0 =A0 /* Dynamically allocate module TLS if necessary */ > Thanks, this patch fixes immediate /usr/bin/top SIGSEGV used with nss-pam-ldap auth when built with -O2. Tested and patched on 8.1-R. --=20 wbr, pluknet From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 12:15:37 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 355E21065672; Thu, 15 Sep 2011 12:15:37 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1ACB58FC1A; Thu, 15 Sep 2011 12:15:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FCFaL5073088; Thu, 15 Sep 2011 12:15:36 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FCFafh073073; Thu, 15 Sep 2011 12:15:36 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <201109151215.p8FCFafh073073@svn.freebsd.org> From: Lawrence Stewart Date: Thu, 15 Sep 2011 12:15:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225583 - in head: . share/man/man4 share/man/man9 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 12:15:37 -0000 Author: lstewart Date: Thu Sep 15 12:15:36 2011 New Revision: 225583 URL: http://svn.freebsd.org/changeset/base/225583 Log: Rename the cc.4 and cc.9 modular congestion control related man pages to mod_cc.4 and mod_cc.9 respectively to avoid any possible confusion with the cc.1 gcc man page. Update references to these man pages where required. Requested by: Grenville Armitage Approved by: re (kib) MFC after: 3 days Added: head/share/man/man4/mod_cc.4 - copied, changed from r225576, head/share/man/man4/cc.4 head/share/man/man9/mod_cc.9 - copied, changed from r225576, head/share/man/man9/cc.9 Deleted: head/share/man/man4/cc.4 head/share/man/man9/cc.9 Modified: head/ObsoleteFiles.inc head/share/man/man4/Makefile head/share/man/man4/cc_chd.4 head/share/man/man4/cc_cubic.4 head/share/man/man4/cc_hd.4 head/share/man/man4/cc_htcp.4 head/share/man/man4/cc_newreno.4 head/share/man/man4/cc_vegas.4 head/share/man/man4/h_ertt.4 head/share/man/man4/tcp.4 head/share/man/man9/Makefile Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Thu Sep 15 11:50:09 2011 (r225582) +++ head/ObsoleteFiles.inc Thu Sep 15 12:15:36 2011 (r225583) @@ -38,6 +38,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20110915: rename congestion control manpages +OLD_FILES+=usr/share/man/man4/cc.4.gz +OLD_FILES+=usr/share/man/man9/cc.9.gz # 20110831: atomic page flags operations OLD_FILES+=usr/share/man/man9/vm_page_flag.9.gz OLD_FILES+=usr/share/man/man9/vm_page_flag_clear.9.gz Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man4/Makefile Thu Sep 15 12:15:36 2011 (r225583) @@ -71,7 +71,6 @@ MAN= aac.4 \ cardbus.4 \ carp.4 \ cas.4 \ - cc.4 \ cc_chd.4 \ cc_cubic.4 \ cc_hd.4 \ @@ -233,6 +232,7 @@ MAN= aac.4 \ mmc.4 \ mmcsd.4 \ mn.4 \ + mod_cc.4 \ mos.4 \ mouse.4 \ mps.4 \ Modified: head/share/man/man4/cc_chd.4 ============================================================================== --- head/share/man/man4/cc_chd.4 Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man4/cc_chd.4 Thu Sep 15 12:15:36 2011 (r225583) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2011 +.Dd September 15, 2011 .Dt CC_CHD 4 .Os .Sh NAME @@ -86,16 +86,16 @@ is used. Default is 1. .El .Sh SEE ALSO -.Xr cc 4 , .Xr cc_cubic 4 , .Xr cc_hd 4 , .Xr cc_htcp 4 , .Xr cc_newreno 4 , .Xr cc_vegas 4 , .Xr h_ertt 4 , +.Xr mod_cc 4 , .Xr tcp 4 , -.Xr cc 9 , -.Xr khelp 9 +.Xr khelp 9 , +.Xr mod_cc 9 .Rs .%A "D. A. Hayes" .%A "G. Armitage" Modified: head/share/man/man4/cc_cubic.4 ============================================================================== --- head/share/man/man4/cc_cubic.4 Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man4/cc_cubic.4 Thu Sep 15 12:15:36 2011 (r225583) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2011 +.Dd September 15, 2011 .Dt CC_CUBIC 4 .Os .Sh NAME @@ -62,14 +62,14 @@ section below. .Sh MIB Variables There are currently no tunable MIB variables. .Sh SEE ALSO -.Xr cc 4 , .Xr cc_chd 4 , .Xr cc_hd 4 , .Xr cc_htcp 4 , .Xr cc_newreno 4 , .Xr cc_vegas 4 , +.Xr mod_cc 4 , .Xr tcp 4 , -.Xr cc 9 +.Xr mod_cc 9 .Rs .%A "Sangtae Ha" .%A "Injong Rhee" Modified: head/share/man/man4/cc_hd.4 ============================================================================== --- head/share/man/man4/cc_hd.4 Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man4/cc_hd.4 Thu Sep 15 12:15:36 2011 (r225583) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2011 +.Dd September 15, 2011 .Dt CC_HD 4 .Os .Sh NAME @@ -69,16 +69,16 @@ Minimum queuing delay threshold (qmin) i Default is 5. .El .Sh SEE ALSO -.Xr cc 4 , .Xr cc_chd 4 , .Xr cc_cubic 4 , .Xr cc_htcp 4 , .Xr cc_newreno 4 , .Xr cc_vegas 4 , .Xr h_ertt 4 , +.Xr mod_cc 4 , .Xr tcp 4 , -.Xr cc 9 , -.Xr khelp 9 +.Xr khelp 9 , +.Xr mod_cc 9 .Rs .%A "L. Budzisz" .%A "R. Stanojevic" Modified: head/share/man/man4/cc_htcp.4 ============================================================================== --- head/share/man/man4/cc_htcp.4 Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man4/cc_htcp.4 Thu Sep 15 12:15:36 2011 (r225583) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2011 +.Dd September 15, 2011 .Dt CC_HTCP 4 .Os .Sh NAME @@ -69,14 +69,14 @@ window increase during congestion avoida Default is 0 (disabled). .El .Sh SEE ALSO -.Xr cc 4 , .Xr cc_chd 4 , .Xr cc_cubic 4 , .Xr cc_hd 4 , .Xr cc_newreno 4 , .Xr cc_vegas 4 , +.Xr mod_cc 4 , .Xr tcp 4 , -.Xr cc 9 +.Xr mod_cc 9 .Rs .%A "D. Leith" .%A "R. Shorten" Modified: head/share/man/man4/cc_newreno.4 ============================================================================== --- head/share/man/man4/cc_newreno.4 Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man4/cc_newreno.4 Thu Sep 15 12:15:36 2011 (r225583) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2011 +.Dd September 15, 2011 .Dt CC_NEWRENO 4 .Os .Sh NAME @@ -42,14 +42,14 @@ Details about the algorithm can be found .Sh MIB Variables There are currently no tunable MIB variables. .Sh SEE ALSO -.Xr cc 4 , .Xr cc_chd 4 , .Xr cc_cubic 4 , .Xr cc_hd 4 , .Xr cc_htcp 4 , .Xr cc_vegas 4 , +.Xr mod_cc 4 , .Xr tcp 4 , -.Xr cc 9 +.Xr mod_cc 9 .Sh ACKNOWLEDGEMENTS Development and testing of this software were made possible in part by grants from the FreeBSD Foundation and Cisco University Research Program Fund at Modified: head/share/man/man4/cc_vegas.4 ============================================================================== --- head/share/man/man4/cc_vegas.4 Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man4/cc_vegas.4 Thu Sep 15 12:15:36 2011 (r225583) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2011 +.Dd September 15, 2011 .Dt CC_VEGAS 4 .Os .Sh NAME @@ -94,16 +94,16 @@ When setting beta, the value must satisf Default is 3. .El .Sh SEE ALSO -.Xr cc 4 , .Xr cc_chd 4 , .Xr cc_cubic 4 , .Xr cc_hd 4 , .Xr cc_htcp 4 , .Xr cc_newreno 4 , .Xr h_ertt 4 , +.Xr mod_cc 4 , .Xr tcp 4 , -.Xr cc 9 , -.Xr khelp 9 +.Xr khelp 9 , +.Xr mod_cc 9 .Rs .%A "L. S. Brakmo" .%A "L. L. Peterson" Modified: head/share/man/man4/h_ertt.4 ============================================================================== --- head/share/man/man4/h_ertt.4 Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man4/h_ertt.4 Thu Sep 15 12:15:36 2011 (r225583) @@ -108,10 +108,10 @@ consumers to unset the flag if they wish new measurements. .El .Sh SEE ALSO -.Xr cc 4 , .Xr cc_chd 4 , .Xr cc_hd 4 , .Xr cc_vegas 4 , +.Xr mod_cc 4 , .Xr hhook 9 , .Xr khelp 9 .Sh ACKNOWLEDGEMENTS Copied and modified: head/share/man/man4/mod_cc.4 (from r225576, head/share/man/man4/cc.4) ============================================================================== --- head/share/man/man4/cc.4 Thu Sep 15 09:54:07 2011 (r225576, copy source) +++ head/share/man/man4/mod_cc.4 Thu Sep 15 12:15:36 2011 (r225583) @@ -30,11 +30,11 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2011 -.Dt CC 4 +.Dd September 15, 2011 +.Dt MOD_CC 4 .Os .Sh NAME -.Nm cc +.Nm mod_cc .Nd Modular congestion control .Sh DESCRIPTION The modular congestion control framework allows the TCP implementation to @@ -82,7 +82,7 @@ MIB variable. .Xr cc_newreno 4 , .Xr cc_vegas 4 , .Xr tcp 4 , -.Xr cc 9 +.Xr mod_cc 9 .Sh ACKNOWLEDGEMENTS Development and testing of this software were made possible in part by grants from the FreeBSD Foundation and Cisco University Research Program Fund at Modified: head/share/man/man4/tcp.4 ============================================================================== --- head/share/man/man4/tcp.4 Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man4/tcp.4 Thu Sep 15 12:15:36 2011 (r225583) @@ -38,7 +38,7 @@ .\" From: @(#)tcp.4 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd February 15, 2011 +.Dd September 15, 2011 .Dt TCP 4 .Os .Sh NAME @@ -144,7 +144,7 @@ bandwidth-controlled window space. Select or query the congestion control algorithm that TCP will use for the connection. See -.Xr cc 4 +.Xr mod_cc 4 for details. .It Dv TCP_NODELAY Under most circumstances, @@ -249,7 +249,7 @@ The default congestion control algorithm is .Xr cc_newreno 4 . Other congestion control algorithms can be made available using the -.Xr cc 4 +.Xr mod_cc 4 framework. .Ss MIB Variables The @@ -510,10 +510,10 @@ address. .Xr socket 2 , .Xr sysctl 3 , .Xr blackhole 4 , -.Xr cc 4 , .Xr inet 4 , .Xr intro 4 , .Xr ip 4 , +.Xr mod_cc 4 , .Xr syncache 4 , .Xr setkey 8 .Rs Modified: head/share/man/man9/Makefile ============================================================================== --- head/share/man/man9/Makefile Thu Sep 15 11:50:09 2011 (r225582) +++ head/share/man/man9/Makefile Thu Sep 15 12:15:36 2011 (r225583) @@ -43,7 +43,6 @@ MAN= accept_filter.9 \ BUS_SETUP_INTR.9 \ bus_space.9 \ byteorder.9 \ - cc.9 \ cd.9 \ condvar.9 \ config_intrhook.9 \ @@ -169,6 +168,7 @@ MAN= accept_filter.9 \ microtime.9 \ microuptime.9 \ mi_switch.9 \ + mod_cc.9 \ module.9 \ MODULE_DEPEND.9 \ MODULE_VERSION.9 \ Copied and modified: head/share/man/man9/mod_cc.9 (from r225576, head/share/man/man9/cc.9) ============================================================================== --- head/share/man/man9/cc.9 Thu Sep 15 09:54:07 2011 (r225576, copy source) +++ head/share/man/man9/mod_cc.9 Thu Sep 15 12:15:36 2011 (r225583) @@ -31,11 +31,11 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2011 -.Dt CC 9 +.Dd September 15, 2011 +.Dt MOD_CC 9 .Os .Sh NAME -.Nm cc , +.Nm mod_cc , .Nm DECLARE_CC_MODULE , .Nm CC_VAR .Nd Modular Congestion Control @@ -53,7 +53,7 @@ loadable kernel modules via the facility. Transport protocols can select from the list of available algorithms on a connection-by-connection basis, or use the system default (see -.Xr cc 4 +.Xr mod_cc 4 for more details). .Pp .Nm @@ -290,13 +290,13 @@ by the value of the congestion window. Algorithms should use the abscence of this flag being set to avoid accumulating a large difference between the congestion window and send window. .Sh SEE ALSO -.Xr cc 4 , .Xr cc_chd 4 , .Xr cc_cubic 4 , .Xr cc_hd 4 , .Xr cc_htcp 4 , .Xr cc_newreno 4 , .Xr cc_vegas 4 , +.Xr mod_cc 4 , .Xr tcp 4 .Sh ACKNOWLEDGEMENTS Development and testing of this software were made possible in part by grants From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 12:20:53 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 58F131065670; Thu, 15 Sep 2011 12:20:53 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 495D38FC14; Thu, 15 Sep 2011 12:20:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FCKrWd073298; Thu, 15 Sep 2011 12:20:53 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FCKr7m073296; Thu, 15 Sep 2011 12:20:53 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201109151220.p8FCKr7m073296@svn.freebsd.org> From: Michael Tuexen Date: Thu, 15 Sep 2011 12:20:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225584 - head/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 12:20:53 -0000 Author: tuexen Date: Thu Sep 15 12:20:52 2011 New Revision: 225584 URL: http://svn.freebsd.org/changeset/base/225584 Log: Fix a typo introduced in http://svn.freebsd.org/changeset/base/225571 Reported by Ilya A. Arkhipov. Approved by: re MFC after: 1 month. Modified: head/sys/netinet/sctp_asconf.c Modified: head/sys/netinet/sctp_asconf.c ============================================================================== --- head/sys/netinet/sctp_asconf.c Thu Sep 15 12:15:36 2011 (r225583) +++ head/sys/netinet/sctp_asconf.c Thu Sep 15 12:20:52 2011 (r225584) @@ -242,7 +242,7 @@ sctp_process_asconf_add_ip(struct mbuf * sin->sin_addr.s_addr = v4addr->addr; if ((sin->sin_addr.s_addr == INADDR_BROADCAST) || IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) { - bad_address = 1;; + bad_address = 1; } if (sin->sin_addr.s_addr == INADDR_ANY) zero_address = 1; From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 12:27:27 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 271C71065675; Thu, 15 Sep 2011 12:27:27 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0D6448FC0A; Thu, 15 Sep 2011 12:27:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FCRQUM073559; Thu, 15 Sep 2011 12:27:26 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FCRQSF073542; Thu, 15 Sep 2011 12:27:26 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201109151227.p8FCRQSF073542@svn.freebsd.org> From: Attilio Rao Date: Thu, 15 Sep 2011 12:27:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225585 - in stable/8: share/man/man9 sys/i386/acpica sys/kern sys/net sys/security/audit sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 12:27:27 -0000 Author: attilio Date: Thu Sep 15 12:27:26 2011 New Revision: 225585 URL: http://svn.freebsd.org/changeset/base/225585 Log: MFC r225177,225181: Introduce and use seldrain() function for dealing with fast selrecord/selinfo destruction. Sponsored by: Sandvine Incorporated Modified: stable/8/share/man/man9/Makefile stable/8/share/man/man9/selrecord.9 stable/8/sys/i386/acpica/acpi_machdep.c stable/8/sys/kern/kern_event.c stable/8/sys/kern/sys_generic.c stable/8/sys/kern/sys_pipe.c stable/8/sys/kern/tty.c stable/8/sys/kern/tty_pts.c stable/8/sys/kern/uipc_mqueue.c stable/8/sys/kern/uipc_socket.c stable/8/sys/kern/vfs_subr.c stable/8/sys/net/bpf.c stable/8/sys/net/if_tap.c stable/8/sys/net/if_tun.c stable/8/sys/security/audit/audit_pipe.c stable/8/sys/sys/selinfo.h Directory Properties: stable/8/share/man/man9/ (props changed) stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/share/man/man9/Makefile ============================================================================== --- stable/8/share/man/man9/Makefile Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/share/man/man9/Makefile Thu Sep 15 12:27:26 2011 (r225585) @@ -1050,7 +1050,8 @@ MLINKS+=scheduler.9 curpriority_cmp.9 \ scheduler.9 setrunnable.9 \ scheduler.9 updatepri.9 MLINKS+=securelevel_gt.9 securelevel_ge.9 -MLINKS+=selrecord.9 selwakeup.9 +MLINKS+=selrecord.9 seldrain.9 \ + selrecord.9 selwakeup.9 MLINKS+=sema.9 sema_destroy.9 \ sema.9 sema_init.9 \ sema.9 sema_post.9 \ Modified: stable/8/share/man/man9/selrecord.9 ============================================================================== --- stable/8/share/man/man9/selrecord.9 Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/share/man/man9/selrecord.9 Thu Sep 15 12:27:26 2011 (r225585) @@ -26,10 +26,11 @@ .\" .\" $FreeBSD$ .\" -.Dd June 13, 2007 +.Dd August 25, 2011 .Dt SELRECORD 9 .Os .Sh NAME +.Nm seldrain , .Nm selrecord , .Nm selwakeup .Nd "record and wakeup select requests" @@ -37,14 +38,17 @@ .In sys/param.h .In sys/selinfo.h .Ft void +.Fn seldrain "struct selinfo *sip" +.Ft void .Fn selrecord "struct thread *td" "struct selinfo *sip" .Ft void .Fn selwakeup "struct selinfo *sip" .Sh DESCRIPTION +.Fn seldrain , .Fn selrecord and .Fn selwakeup -are the two central functions used by +are the three central functions used by .Xr select 2 , .Xr poll 2 and the objects that are being selected on. @@ -86,6 +90,15 @@ and .Xr poll 2 when they wake up. .Pp +.Fn seldrain +will flush the waiters queue on a specified object before its +destruction. +The object handling code must ensure that +.Fa *sip +cannot be used once +.Fn seldrain +has been called. +.Pp The contents of .Fa *sip must be zeroed, such as by softc initialization, before any call to @@ -98,6 +111,10 @@ acquires and releases .Va sellock and may acquire and release .Va sched_lock . +.Fn seldrain +could usually be just a wrapper for +.Fn selwakeup , +but consumers should not generally rely on this feature. .Sh SEE ALSO .Xr poll 2 , .Xr select 2 Modified: stable/8/sys/i386/acpica/acpi_machdep.c ============================================================================== --- stable/8/sys/i386/acpica/acpi_machdep.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/i386/acpica/acpi_machdep.c Thu Sep 15 12:27:26 2011 (r225585) @@ -313,6 +313,7 @@ apmclose(struct cdev *dev, int flag, int /* Remove this clone's data from the list and free it. */ ACPI_LOCK(acpi); STAILQ_REMOVE(&acpi_sc->apm_cdevs, clone, apm_clone_data, entries); + seldrain(&clone->sel_read); knlist_destroy(&clone->sel_read.si_note); ACPI_UNLOCK(acpi); free(clone, M_APMDEV); Modified: stable/8/sys/kern/kern_event.c ============================================================================== --- stable/8/sys/kern/kern_event.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/kern/kern_event.c Thu Sep 15 12:27:26 2011 (r225585) @@ -1686,6 +1686,7 @@ kqueue_close(struct file *fp, struct thr SLIST_REMOVE(&fdp->fd_kqlist, kq, kqueue, kq_list); FILEDESC_XUNLOCK(fdp); + seldrain(&kq->kq_sel); knlist_destroy(&kq->kq_sel.si_note); mtx_destroy(&kq->kq_lock); kq->kq_fdp = NULL; Modified: stable/8/sys/kern/sys_generic.c ============================================================================== --- stable/8/sys/kern/sys_generic.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/kern/sys_generic.c Thu Sep 15 12:27:26 2011 (r225585) @@ -1442,6 +1442,23 @@ selfdfree(struct seltd *stp, struct self uma_zfree(selfd_zone, sfp); } +/* Drain the waiters tied to all the selfd belonging the specified selinfo. */ +void +seldrain(sip) + struct selinfo *sip; +{ + + /* + * This feature is already provided by doselwakeup(), thus it is + * enough to go for it. + * Eventually, the context, should take care to avoid races + * between thread calling select()/poll() and file descriptor + * detaching, but, again, the races are just the same as + * selwakeup(). + */ + doselwakeup(sip, -1); +} + /* * Record a select request. */ Modified: stable/8/sys/kern/sys_pipe.c ============================================================================== --- stable/8/sys/kern/sys_pipe.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/kern/sys_pipe.c Thu Sep 15 12:27:26 2011 (r225585) @@ -1536,6 +1536,7 @@ pipeclose(cpipe) */ knlist_clear(&cpipe->pipe_sel.si_note, 1); cpipe->pipe_present = PIPE_FINALIZED; + seldrain(&cpipe->pipe_sel); knlist_destroy(&cpipe->pipe_sel.si_note); /* Modified: stable/8/sys/kern/tty.c ============================================================================== --- stable/8/sys/kern/tty.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/kern/tty.c Thu Sep 15 12:27:26 2011 (r225585) @@ -986,6 +986,8 @@ tty_dealloc(void *arg) MPASS(ttyinq_getsize(&tp->t_inq) == 0); MPASS(ttyoutq_getsize(&tp->t_outq) == 0); + seldrain(&tp->t_inpoll); + seldrain(&tp->t_outpoll); knlist_destroy(&tp->t_inpoll.si_note); knlist_destroy(&tp->t_outpoll.si_note); Modified: stable/8/sys/kern/tty_pts.c ============================================================================== --- stable/8/sys/kern/tty_pts.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/kern/tty_pts.c Thu Sep 15 12:27:26 2011 (r225585) @@ -698,6 +698,8 @@ ptsdrv_free(void *softc) chgptscnt(psc->pts_uidinfo, -1, 0); uifree(psc->pts_uidinfo); + seldrain(&psc->pts_inpoll); + seldrain(&psc->pts_outpoll); knlist_destroy(&psc->pts_inpoll.si_note); knlist_destroy(&psc->pts_outpoll.si_note); Modified: stable/8/sys/kern/uipc_mqueue.c ============================================================================== --- stable/8/sys/kern/uipc_mqueue.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/kern/uipc_mqueue.c Thu Sep 15 12:27:26 2011 (r225585) @@ -1553,6 +1553,8 @@ mqueue_free(struct mqueue *mq) } mtx_destroy(&mq->mq_mutex); + seldrain(&mq->mq_rsel); + seldrain(&mq->mq_wsel); knlist_destroy(&mq->mq_rsel.si_note); knlist_destroy(&mq->mq_wsel.si_note); uma_zfree(mqueue_zone, mq); Modified: stable/8/sys/kern/uipc_socket.c ============================================================================== --- stable/8/sys/kern/uipc_socket.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/kern/uipc_socket.c Thu Sep 15 12:27:26 2011 (r225585) @@ -652,6 +652,8 @@ sofree(struct socket *so) */ sbdestroy(&so->so_snd, so); sbdestroy(&so->so_rcv, so); + seldrain(&so->so_snd.sb_sel); + seldrain(&so->so_rcv.sb_sel); knlist_destroy(&so->so_rcv.sb_sel.si_note); knlist_destroy(&so->so_snd.sb_sel.si_note); sodealloc(so); Modified: stable/8/sys/kern/vfs_subr.c ============================================================================== --- stable/8/sys/kern/vfs_subr.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/kern/vfs_subr.c Thu Sep 15 12:27:26 2011 (r225585) @@ -3311,6 +3311,7 @@ vbusy(struct vnode *vp) static void destroy_vpollinfo(struct vpollinfo *vi) { + seldrain(&vi->vpi_selinfo); knlist_destroy(&vi->vpi_selinfo.si_note); mtx_destroy(&vi->vpi_lock); uma_zfree(vnodepoll_zone, vi); Modified: stable/8/sys/net/bpf.c ============================================================================== --- stable/8/sys/net/bpf.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/net/bpf.c Thu Sep 15 12:27:26 2011 (r225585) @@ -644,10 +644,10 @@ bpf_dtor(void *data) if (d->bd_bif) bpf_detachd(d); mtx_unlock(&bpf_mtx); - selwakeuppri(&d->bd_sel, PRINET); #ifdef MAC mac_bpfdesc_destroy(d); #endif /* MAC */ + seldrain(&d->bd_sel); knlist_destroy(&d->bd_sel.si_note); callout_drain(&d->bd_callout); bpf_freed(d); Modified: stable/8/sys/net/if_tap.c ============================================================================== --- stable/8/sys/net/if_tap.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/net/if_tap.c Thu Sep 15 12:27:26 2011 (r225585) @@ -214,6 +214,7 @@ tap_destroy(struct tap_softc *tp) KASSERT(!(tp->tap_flags & TAP_OPEN), ("%s flags is out of sync", ifp->if_xname)); + seldrain(&tp->tap_rsel); knlist_destroy(&tp->tap_rsel.si_note); destroy_dev(tp->tap_dev); ether_ifdetach(ifp); Modified: stable/8/sys/net/if_tun.c ============================================================================== --- stable/8/sys/net/if_tun.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/net/if_tun.c Thu Sep 15 12:27:26 2011 (r225585) @@ -259,6 +259,7 @@ tun_destroy(struct tun_softc *tp) if_detach(TUN2IFP(tp)); if_free(TUN2IFP(tp)); destroy_dev(dev); + seldrain(&tp->tun_rsel); knlist_destroy(&tp->tun_rsel.si_note); mtx_destroy(&tp->tun_mtx); cv_destroy(&tp->tun_cv); Modified: stable/8/sys/security/audit/audit_pipe.c ============================================================================== --- stable/8/sys/security/audit/audit_pipe.c Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/security/audit/audit_pipe.c Thu Sep 15 12:27:26 2011 (r225585) @@ -646,6 +646,7 @@ audit_pipe_free(struct audit_pipe *ap) cv_destroy(&ap->ap_cv); AUDIT_PIPE_SX_LOCK_DESTROY(ap); AUDIT_PIPE_LOCK_DESTROY(ap); + seldrain(&ap->ap_selinfo); knlist_destroy(&ap->ap_selinfo.si_note); TAILQ_REMOVE(&audit_pipe_list, ap, ap_list); free(ap, M_AUDIT_PIPE); Modified: stable/8/sys/sys/selinfo.h ============================================================================== --- stable/8/sys/sys/selinfo.h Thu Sep 15 12:20:52 2011 (r225584) +++ stable/8/sys/sys/selinfo.h Thu Sep 15 12:27:26 2011 (r225585) @@ -51,6 +51,7 @@ struct selinfo { #define SEL_WAITING(si) (!TAILQ_EMPTY(&(si)->si_tdlist)) #ifdef _KERNEL +void seldrain(struct selinfo *sip); void selrecord(struct thread *selector, struct selinfo *sip); void selwakeup(struct selinfo *sip); void selwakeuppri(struct selinfo *sip, int pri); From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 12:28:17 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7E97B106564A; Thu, 15 Sep 2011 12:28:17 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 64F398FC1A; Thu, 15 Sep 2011 12:28:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FCSHff073621; Thu, 15 Sep 2011 12:28:17 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FCSHVY073618; Thu, 15 Sep 2011 12:28:17 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201109151228.p8FCSHVY073618@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 15 Sep 2011 12:28:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225586 - in head/sys: modules/netgraph/ipfw netgraph X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 12:28:17 -0000 Author: ae Date: Thu Sep 15 12:28:17 2011 New Revision: 225586 URL: http://svn.freebsd.org/changeset/base/225586 Log: Add IPv6 support to the ng_ipfw(4) [1]. Also add ifdefs to be able build it with and without INET/INET6 support. Submitted by: Alexander V. Chernikov [1] Tested by: Alexander V. Chernikov [1] Approved by: re (bz) MFC after: 2 weeks Modified: head/sys/modules/netgraph/ipfw/Makefile head/sys/netgraph/ng_ipfw.c Modified: head/sys/modules/netgraph/ipfw/Makefile ============================================================================== --- head/sys/modules/netgraph/ipfw/Makefile Thu Sep 15 12:27:26 2011 (r225585) +++ head/sys/modules/netgraph/ipfw/Makefile Thu Sep 15 12:28:17 2011 (r225586) @@ -1,6 +1,20 @@ # $FreeBSD$ +.include + KMOD= ng_ipfw -SRCS= ng_ipfw.c +SRCS= ng_ipfw.c opt_inet.h opt_inet6.h + +.if !defined(KERNBUILDDIR) + +.if ${MK_INET_SUPPORT} != "no" +opt_inet.h: + echo "#define INET 1" > ${.TARGET} +.endif +.if ${MK_INET6_SUPPORT} != "no" +opt_inet6.h: + echo "#define INET6 1" > ${.TARGET} +.endif +.endif .include Modified: head/sys/netgraph/ng_ipfw.c ============================================================================== --- head/sys/netgraph/ng_ipfw.c Thu Sep 15 12:27:26 2011 (r225585) +++ head/sys/netgraph/ng_ipfw.c Thu Sep 15 12:28:17 2011 (r225586) @@ -26,6 +26,9 @@ * $FreeBSD$ */ +#include "opt_inet.h" +#include "opt_inet6.h" + #include #include #include @@ -47,6 +50,8 @@ #include #include #include +#include +#include #include #include @@ -224,6 +229,7 @@ ng_ipfw_rcvdata(hook_p hook, item_p item struct m_tag *tag; struct ipfw_rule_ref *r; struct mbuf *m; + struct ip *ip; NGI_GET_M(item, m); NG_FREE_ITEM(item); @@ -234,23 +240,47 @@ ng_ipfw_rcvdata(hook_p hook, item_p item return (EINVAL); /* XXX: find smth better */ }; + if (m->m_len < sizeof(struct ip) && + (m = m_pullup(m, sizeof(struct ip))) == NULL) + return (EINVAL); + + ip = mtod(m, struct ip *); + r = (struct ipfw_rule_ref *)(tag + 1); if (r->info & IPFW_INFO_IN) { - ip_input(m); + switch (ip->ip_v) { +#ifdef INET + case IPVERSION: + ip_input(m); + break; +#endif +#ifdef INET6 + case IPV6_VERSION >> 4: + ip6_input(m); + break; +#endif + default: + NG_FREE_M(m); + return (EINVAL); + } return (0); } else { - struct ip *ip; - - if (m->m_len < sizeof(struct ip) && - (m = m_pullup(m, sizeof(struct ip))) == NULL) + switch (ip->ip_v) { +#ifdef INET + case IPVERSION: + SET_HOST_IPLEN(ip); + return (ip_output(m, NULL, NULL, IP_FORWARDING, + NULL, NULL)); +#endif +#ifdef INET6 + case IPV6_VERSION >> 4: + return (ip6_output(m, NULL, NULL, 0, NULL, + NULL, NULL)); +#endif + default: return (EINVAL); - - ip = mtod(m, struct ip *); - - SET_HOST_IPLEN(ip); - - return ip_output(m, NULL, NULL, IP_FORWARDING, NULL, NULL); - } + } + } } static int From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 13:32:43 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6588A1065742; Thu, 15 Sep 2011 13:32:43 +0000 (UTC) (envelope-from jh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5689F8FC18; Thu, 15 Sep 2011 13:32:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FDWhIN075554; Thu, 15 Sep 2011 13:32:43 GMT (envelope-from jh@svn.freebsd.org) Received: (from jh@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FDWhST075552; Thu, 15 Sep 2011 13:32:43 GMT (envelope-from jh@svn.freebsd.org) Message-Id: <201109151332.p8FDWhST075552@svn.freebsd.org> From: Jaakko Heinonen Date: Thu, 15 Sep 2011 13:32:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225587 - head/etc/defaults X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 13:32:43 -0000 Author: jh Date: Thu Sep 15 13:32:43 2011 New Revision: 225587 URL: http://svn.freebsd.org/changeset/base/225587 Log: Expose "log" in the default devfs rules. /etc/rc.d/jail creates /dev/log as a symbolic link. PR: conf/160711 Submitted by: Jase Thew Approved by: re (kib) MFC after: 1 week Modified: head/etc/defaults/devfs.rules Modified: head/etc/defaults/devfs.rules ============================================================================== --- head/etc/defaults/devfs.rules Thu Sep 15 12:28:17 2011 (r225586) +++ head/etc/defaults/devfs.rules Thu Sep 15 13:32:43 2011 (r225587) @@ -26,6 +26,7 @@ add hide # Requires: devfsrules_hide_all # [devfsrules_unhide_basic=2] +add path log unhide add path null unhide add path zero unhide add path crypto unhide From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 17:20:20 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B42A01065675; Thu, 15 Sep 2011 17:20:20 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A1EE18FC17; Thu, 15 Sep 2011 17:20:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FHKKZn082886; Thu, 15 Sep 2011 17:20:20 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FHKK7D082883; Thu, 15 Sep 2011 17:20:20 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201109151720.p8FHKK7D082883@svn.freebsd.org> From: Pyun YongHyeon Date: Thu, 15 Sep 2011 17:20:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225594 - stable/8/sys/dev/vge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 17:20:20 -0000 Author: yongari Date: Thu Sep 15 17:20:20 2011 New Revision: 225594 URL: http://svn.freebsd.org/changeset/base/225594 Log: MFC r225440: vge(4) hardwares poll media status and generates an interrupt whenever the link state is changed. Using software based polling for media status tracking is known to cause MII access failure under certain conditions once link is established so vge(4) used to rely on link status change interrupt. However DEVICE_POLLING completely disables generation of all kind of interrupts on vge(4) such that this resulted in not detecting link state change event. This means vge(4) does not correctly detect established/lost link with DEVICE_POLLING. Losing the interrupt made vge(4) not to send any packets to peer since vge(4) does not try to send any packets when there is no established link. Work around the issue by generating link state change interrupt with DEVICE_POLLING. PR: kern/160442 Modified: stable/8/sys/dev/vge/if_vge.c stable/8/sys/dev/vge/if_vgereg.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/vge/if_vge.c ============================================================================== --- stable/8/sys/dev/vge/if_vge.c Thu Sep 15 17:11:03 2011 (r225593) +++ stable/8/sys/dev/vge/if_vge.c Thu Sep 15 17:20:20 2011 (r225594) @@ -1752,6 +1752,10 @@ vge_intr(void *arg) #ifdef DEVICE_POLLING if (ifp->if_capenable & IFCAP_POLLING) { + status = CSR_READ_4(sc, VGE_ISR); + CSR_WRITE_4(sc, VGE_ISR, status); + if (status != 0xFFFFFFFF && (status & VGE_ISR_LINKSTS) != 0) + vge_link_statchg(sc); VGE_UNLOCK(sc); return; } @@ -2109,11 +2113,10 @@ vge_init_locked(struct vge_softc *sc) #ifdef DEVICE_POLLING /* - * Disable interrupts if we are polling. + * Disable interrupts except link state change if we are polling. */ if (ifp->if_capenable & IFCAP_POLLING) { - CSR_WRITE_4(sc, VGE_IMR, 0); - CSR_WRITE_1(sc, VGE_CRC3, VGE_CR3_INT_GMSK); + CSR_WRITE_4(sc, VGE_IMR, VGE_INTRS_POLLING); } else /* otherwise ... */ #endif { @@ -2121,9 +2124,9 @@ vge_init_locked(struct vge_softc *sc) * Enable interrupts. */ CSR_WRITE_4(sc, VGE_IMR, VGE_INTRS); - CSR_WRITE_4(sc, VGE_ISR, 0xFFFFFFFF); - CSR_WRITE_1(sc, VGE_CRS3, VGE_CR3_INT_GMSK); } + CSR_WRITE_4(sc, VGE_ISR, 0xFFFFFFFF); + CSR_WRITE_1(sc, VGE_CRS3, VGE_CR3_INT_GMSK); sc->vge_flags &= ~VGE_FLAG_LINK; mii_mediachg(mii); @@ -2280,8 +2283,9 @@ vge_ioctl(struct ifnet *ifp, u_long comm return (error); VGE_LOCK(sc); /* Disable interrupts */ - CSR_WRITE_4(sc, VGE_IMR, 0); - CSR_WRITE_1(sc, VGE_CRC3, VGE_CR3_INT_GMSK); + CSR_WRITE_4(sc, VGE_IMR, VGE_INTRS_POLLING); + CSR_WRITE_4(sc, VGE_ISR, 0xFFFFFFFF); + CSR_WRITE_1(sc, VGE_CRS3, VGE_CR3_INT_GMSK); ifp->if_capenable |= IFCAP_POLLING; VGE_UNLOCK(sc); } else { Modified: stable/8/sys/dev/vge/if_vgereg.h ============================================================================== --- stable/8/sys/dev/vge/if_vgereg.h Thu Sep 15 17:11:03 2011 (r225593) +++ stable/8/sys/dev/vge/if_vgereg.h Thu Sep 15 17:20:20 2011 (r225594) @@ -302,6 +302,8 @@ VGE_ISR_LINKSTS|VGE_ISR_RXNODESC| \ VGE_ISR_RXDMA_STALL|VGE_ISR_TXDMA_STALL) +#define VGE_INTRS_POLLING (VGE_ISR_PHYINT|VGE_ISR_LINKSTS) + /* Interrupt mask register */ #define VGE_IMR_RXOK_HIPRIO 0x00000001 /* hi prio RX int */ From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 17:22:39 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 428EC106564A; Thu, 15 Sep 2011 17:22:39 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 309CA8FC0A; Thu, 15 Sep 2011 17:22:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FHMdia083001; Thu, 15 Sep 2011 17:22:39 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FHMdLK082998; Thu, 15 Sep 2011 17:22:39 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201109151722.p8FHMdLK082998@svn.freebsd.org> From: Pyun YongHyeon Date: Thu, 15 Sep 2011 17:22:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225595 - stable/7/sys/dev/vge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 17:22:39 -0000 Author: yongari Date: Thu Sep 15 17:22:38 2011 New Revision: 225595 URL: http://svn.freebsd.org/changeset/base/225595 Log: MFC r225440: vge(4) hardwares poll media status and generates an interrupt whenever the link state is changed. Using software based polling for media status tracking is known to cause MII access failure under certain conditions once link is established so vge(4) used to rely on link status change interrupt. However DEVICE_POLLING completely disables generation of all kind of interrupts on vge(4) such that this resulted in not detecting link state change event. This means vge(4) does not correctly detect established/lost link with DEVICE_POLLING. Losing the interrupt made vge(4) not to send any packets to peer since vge(4) does not try to send any packets when there is no established link. Work around the issue by generating link state change interrupt with DEVICE_POLLING. PR: kern/160442 Modified: stable/7/sys/dev/vge/if_vge.c stable/7/sys/dev/vge/if_vgereg.h Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/vge/if_vge.c ============================================================================== --- stable/7/sys/dev/vge/if_vge.c Thu Sep 15 17:20:20 2011 (r225594) +++ stable/7/sys/dev/vge/if_vge.c Thu Sep 15 17:22:38 2011 (r225595) @@ -1753,6 +1753,10 @@ vge_intr(void *arg) #ifdef DEVICE_POLLING if (ifp->if_capenable & IFCAP_POLLING) { + status = CSR_READ_4(sc, VGE_ISR); + CSR_WRITE_4(sc, VGE_ISR, status); + if (status != 0xFFFFFFFF && (status & VGE_ISR_LINKSTS) != 0) + vge_link_statchg(sc); VGE_UNLOCK(sc); return; } @@ -2110,11 +2114,10 @@ vge_init_locked(struct vge_softc *sc) #ifdef DEVICE_POLLING /* - * Disable interrupts if we are polling. + * Disable interrupts except link state change if we are polling. */ if (ifp->if_capenable & IFCAP_POLLING) { - CSR_WRITE_4(sc, VGE_IMR, 0); - CSR_WRITE_1(sc, VGE_CRC3, VGE_CR3_INT_GMSK); + CSR_WRITE_4(sc, VGE_IMR, VGE_INTRS_POLLING); } else /* otherwise ... */ #endif { @@ -2122,9 +2125,9 @@ vge_init_locked(struct vge_softc *sc) * Enable interrupts. */ CSR_WRITE_4(sc, VGE_IMR, VGE_INTRS); - CSR_WRITE_4(sc, VGE_ISR, 0xFFFFFFFF); - CSR_WRITE_1(sc, VGE_CRS3, VGE_CR3_INT_GMSK); } + CSR_WRITE_4(sc, VGE_ISR, 0xFFFFFFFF); + CSR_WRITE_1(sc, VGE_CRS3, VGE_CR3_INT_GMSK); sc->vge_flags &= ~VGE_FLAG_LINK; mii_mediachg(mii); @@ -2281,8 +2284,9 @@ vge_ioctl(struct ifnet *ifp, u_long comm return (error); VGE_LOCK(sc); /* Disable interrupts */ - CSR_WRITE_4(sc, VGE_IMR, 0); - CSR_WRITE_1(sc, VGE_CRC3, VGE_CR3_INT_GMSK); + CSR_WRITE_4(sc, VGE_IMR, VGE_INTRS_POLLING); + CSR_WRITE_4(sc, VGE_ISR, 0xFFFFFFFF); + CSR_WRITE_1(sc, VGE_CRS3, VGE_CR3_INT_GMSK); ifp->if_capenable |= IFCAP_POLLING; VGE_UNLOCK(sc); } else { Modified: stable/7/sys/dev/vge/if_vgereg.h ============================================================================== --- stable/7/sys/dev/vge/if_vgereg.h Thu Sep 15 17:20:20 2011 (r225594) +++ stable/7/sys/dev/vge/if_vgereg.h Thu Sep 15 17:22:38 2011 (r225595) @@ -302,6 +302,8 @@ VGE_ISR_LINKSTS|VGE_ISR_RXNODESC| \ VGE_ISR_RXDMA_STALL|VGE_ISR_TXDMA_STALL) +#define VGE_INTRS_POLLING (VGE_ISR_PHYINT|VGE_ISR_LINKSTS) + /* Interrupt mask register */ #define VGE_IMR_RXOK_HIPRIO 0x00000001 /* hi prio RX int */ From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 19:52:44 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0AD1F1065673; Thu, 15 Sep 2011 19:52:44 +0000 (UTC) (envelope-from dwmalone@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ED6F28FC12; Thu, 15 Sep 2011 19:52:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FJqhxY087488; Thu, 15 Sep 2011 19:52:43 GMT (envelope-from dwmalone@svn.freebsd.org) Received: (from dwmalone@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FJqhWv087486; Thu, 15 Sep 2011 19:52:43 GMT (envelope-from dwmalone@svn.freebsd.org) Message-Id: <201109151952.p8FJqhWv087486@svn.freebsd.org> From: David Malone Date: Thu, 15 Sep 2011 19:52:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225596 - head/usr.bin/units X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 19:52:44 -0000 Author: dwmalone Date: Thu Sep 15 19:52:43 2011 New Revision: 225596 URL: http://svn.freebsd.org/changeset/base/225596 Log: It seems when I added code for affine unit changes to units, I forgot to tell the man page we could now convert Celsius to Fahrenheit. Approved by: re (kib) MFC after: 1 month Modified: head/usr.bin/units/units.1 Modified: head/usr.bin/units/units.1 ============================================================================== --- head/usr.bin/units/units.1 Thu Sep 15 17:22:38 2011 (r225595) +++ head/usr.bin/units/units.1 Thu Sep 15 19:52:43 2011 (r225596) @@ -35,9 +35,7 @@ their equivalents in other scales. The .Nm program can only -handle multiplicative scale changes. -It cannot convert Celsius -to Fahrenheit, for example. +handle multiplicative or affine scale changes. It works interactively by prompting the user for input: .Bd -literal @@ -60,6 +58,10 @@ the user for input: You want: cm * 1.27 / 0.78740157 + + You have: 85 degF + You want: degC + 29.444444 .Ed .Pp Powers of units can be specified using the '^' character as shown in From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 20:21:36 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DE00106566C; Thu, 15 Sep 2011 20:21:36 +0000 (UTC) (envelope-from mdf@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4CC298FC08; Thu, 15 Sep 2011 20:21:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FKLaVw088467; Thu, 15 Sep 2011 20:21:36 GMT (envelope-from mdf@svn.freebsd.org) Received: (from mdf@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FKLaTL088464; Thu, 15 Sep 2011 20:21:36 GMT (envelope-from mdf@svn.freebsd.org) Message-Id: <201109152021.p8FKLaTL088464@svn.freebsd.org> From: Matthew D Fleming Date: Thu, 15 Sep 2011 20:21:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225597 - svnadmin/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 20:21:36 -0000 Author: mdf Date: Thu Sep 15 20:21:35 2011 New Revision: 225597 URL: http://svn.freebsd.org/changeset/base/225597 Log: Welcome Gleb Kurtsou (gleb at FreeBSD dot org). Gleb has worked on the ino64 GSoC project among other things. Approved by: core Modified: svnadmin/conf/access svnadmin/conf/mentors Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Thu Sep 15 19:52:43 2011 (r225596) +++ svnadmin/conf/access Thu Sep 15 20:21:35 2011 (r225597) @@ -88,6 +88,7 @@ gavin gber ghelmer gibbs +gleb glebius gnn gonzo Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Thu Sep 15 19:52:43 2011 (r225596) +++ svnadmin/conf/mentors Thu Sep 15 20:21:35 2011 (r225597) @@ -17,6 +17,7 @@ benl philip Co-mentor: simon eri mlaier Co-mentor: thompsa gabor delphij gber cognet +gleb mdf jinmei gnn jonathan rwatson jpaetzel kib From owner-svn-src-all@FreeBSD.ORG Thu Sep 15 22:50:32 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 402D5106564A; Thu, 15 Sep 2011 22:50:32 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2FD1B8FC15; Thu, 15 Sep 2011 22:50:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8FMoWUj092999; Thu, 15 Sep 2011 22:50:32 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8FMoW8V092997; Thu, 15 Sep 2011 22:50:32 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201109152250.p8FMoW8V092997@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Thu, 15 Sep 2011 22:50:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225599 - head/usr.bin/fetch X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 22:50:32 -0000 Author: des Date: Thu Sep 15 22:50:31 2011 New Revision: 225599 URL: http://svn.freebsd.org/changeset/base/225599 Log: When resuming an HTTP download, we failed to verify that the range returned by the server matched what we requested, and blindly appended what we received to what we already had. This could go two ways: if the delivered offset was higher than expected, the local file would contain duplicate data, while if it was lower than expected, there would be data missing from the middle of the file. Furthermore, if the transfer was interrupted again, each subsequent attempt would compound the error. Fix the first problem by restarting the transfer from scratch if there is a gap, and the second by explicitly seeking to the correct location in the local file so as to overwrite any duplicated data. PR: bin/117277 Approved by: re (kib) MFC after: 3 weeks Modified: head/usr.bin/fetch/fetch.c Modified: head/usr.bin/fetch/fetch.c ============================================================================== --- head/usr.bin/fetch/fetch.c Thu Sep 15 22:14:35 2011 (r225598) +++ head/usr.bin/fetch/fetch.c Thu Sep 15 22:50:31 2011 (r225599) @@ -522,6 +522,12 @@ fetch(char *URL, const char *path) "does not match remote", path); goto failure_keep; } + } else if (url->offset > sb.st_size) { + /* gap between what we asked for and what we got */ + warnx("%s: gap in resume mode", URL); + fclose(of); + of = NULL; + /* picked up again later */ } else if (us.size != -1) { if (us.size == sb.st_size) /* nothing to do */ @@ -551,6 +557,14 @@ fetch(char *URL, const char *path) fclose(of); of = NULL; sb = nsb; + /* picked up again later */ + } + /* seek to where we left off */ + if (of != NULL && fseek(of, url->offset, SEEK_SET) != 0) { + warn("%s: fseek()", path); + fclose(of); + of = NULL; + /* picked up again later */ } } } else if (m_flag && sb.st_size != -1) { From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 02:28:56 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 022341065670; Fri, 16 Sep 2011 02:28:56 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CB93A8FC0C; Fri, 16 Sep 2011 02:28:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G2StMb099844; Fri, 16 Sep 2011 02:28:55 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G2Stnc099841; Fri, 16 Sep 2011 02:28:55 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201109160228.p8G2Stnc099841@svn.freebsd.org> From: Adrian Chadd Date: Fri, 16 Sep 2011 02:28:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225600 - in stable/8: share/man/man7 share/man/man9 sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 02:28:56 -0000 Author: adrian Date: Fri Sep 16 02:28:55 2011 New Revision: 225600 URL: http://svn.freebsd.org/changeset/base/225600 Log: Merge r225570 from HEAD - Ensure that ta_pending doesn't overflow u_short by capping its value at USHRT_MAX. If it overflows before the taskqueue can run, the task will be re-added to the taskqueue and cause a loop in the task list. Submitted by: rstone@ Reviewed by: jhb@ MFC after: 1 day Modified: stable/8/share/man/man9/taskqueue.9 stable/8/sys/kern/subr_taskqueue.c Directory Properties: stable/8/share/man/ (props changed) stable/8/share/man/man1/ (props changed) stable/8/share/man/man3/ (props changed) stable/8/share/man/man4/ (props changed) stable/8/share/man/man5/ (props changed) stable/8/share/man/man7/ (props changed) stable/8/share/man/man7/ports.7 (props changed) stable/8/share/man/man8/ (props changed) stable/8/share/man/man9/ (props changed) stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/share/man/man9/taskqueue.9 ============================================================================== --- stable/8/share/man/man9/taskqueue.9 Thu Sep 15 22:50:31 2011 (r225599) +++ stable/8/share/man/man9/taskqueue.9 Fri Sep 16 02:28:55 2011 (r225600) @@ -124,7 +124,7 @@ If the task's .Va ta_pending field is non-zero, then it is simply incremented to reflect the number of times the task -was enqueued. +was enqueued, up to a cap of USHRT_MAX. Otherwise, the task is added to the list before the first task which has a lower .Va ta_priority Modified: stable/8/sys/kern/subr_taskqueue.c ============================================================================== --- stable/8/sys/kern/subr_taskqueue.c Thu Sep 15 22:50:31 2011 (r225599) +++ stable/8/sys/kern/subr_taskqueue.c Fri Sep 16 02:28:55 2011 (r225600) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -165,7 +166,8 @@ taskqueue_enqueue(struct taskqueue *queu * Count multiple enqueues. */ if (task->ta_pending) { - task->ta_pending++; + if (task->ta_pending < USHRT_MAX) + task->ta_pending++; TQ_UNLOCK(queue); return 0; } From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 05:45:14 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 305B1106564A; Fri, 16 Sep 2011 05:45:14 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1EF5D8FC08; Fri, 16 Sep 2011 05:45:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G5jEau006252; Fri, 16 Sep 2011 05:45:14 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G5jEEG006249; Fri, 16 Sep 2011 05:45:14 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201109160545.p8G5jEEG006249@svn.freebsd.org> From: Xin LI Date: Fri, 16 Sep 2011 05:45:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225605 - in stable: 7/sbin/fsck_ffs 8/sbin/fsck_ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 05:45:14 -0000 Author: delphij Date: Fri Sep 16 05:45:13 2011 New Revision: 225605 URL: http://svn.freebsd.org/changeset/base/225605 Log: MFC r225338: Fix the check in dircheck() on namlen. The value of namlen is copied from on-disk d_namlen, which is a 8-bit unsigned integer which can never exceed MAXNAMLEN (255) so the test is always true. Moreover, UFS does not allow d_namelen being zero. Change namlen from u_int to u_int8_t, and replace the unneeded test with a useful test. PR: bin/160339 Submitted by: Eugene Grosbein Modified: stable/8/sbin/fsck_ffs/dir.c Directory Properties: stable/8/sbin/fsck_ffs/ (props changed) Changes in other areas also in this revision: Modified: stable/7/sbin/fsck_ffs/dir.c Directory Properties: stable/7/sbin/fsck_ffs/ (props changed) Modified: stable/8/sbin/fsck_ffs/dir.c ============================================================================== --- stable/8/sbin/fsck_ffs/dir.c Fri Sep 16 04:42:05 2011 (r225604) +++ stable/8/sbin/fsck_ffs/dir.c Fri Sep 16 05:45:13 2011 (r225605) @@ -210,7 +210,7 @@ dircheck(struct inodesc *idesc, struct d size_t size; char *cp; u_char type; - u_int namlen; + u_int8_t namlen; int spaceleft; spaceleft = DIRBLKSIZ - (idesc->id_loc % DIRBLKSIZ); @@ -225,7 +225,7 @@ dircheck(struct inodesc *idesc, struct d type = dp->d_type; if (dp->d_reclen < size || idesc->id_filesize < size || - namlen > MAXNAMLEN || + namlen == 0 || type > 15) goto bad; for (cp = dp->d_name, size = 0; size < namlen; size++) From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 05:45:14 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 51E9A106566C; Fri, 16 Sep 2011 05:45:14 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 407298FC0C; Fri, 16 Sep 2011 05:45:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G5jE9N006259; Fri, 16 Sep 2011 05:45:14 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G5jE2B006257; Fri, 16 Sep 2011 05:45:14 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201109160545.p8G5jE2B006257@svn.freebsd.org> From: Xin LI Date: Fri, 16 Sep 2011 05:45:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225605 - in stable: 7/sbin/fsck_ffs 8/sbin/fsck_ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 05:45:14 -0000 Author: delphij Date: Fri Sep 16 05:45:13 2011 New Revision: 225605 URL: http://svn.freebsd.org/changeset/base/225605 Log: MFC r225338: Fix the check in dircheck() on namlen. The value of namlen is copied from on-disk d_namlen, which is a 8-bit unsigned integer which can never exceed MAXNAMLEN (255) so the test is always true. Moreover, UFS does not allow d_namelen being zero. Change namlen from u_int to u_int8_t, and replace the unneeded test with a useful test. PR: bin/160339 Submitted by: Eugene Grosbein Modified: stable/7/sbin/fsck_ffs/dir.c Directory Properties: stable/7/sbin/fsck_ffs/ (props changed) Changes in other areas also in this revision: Modified: stable/8/sbin/fsck_ffs/dir.c Directory Properties: stable/8/sbin/fsck_ffs/ (props changed) Modified: stable/7/sbin/fsck_ffs/dir.c ============================================================================== --- stable/7/sbin/fsck_ffs/dir.c Fri Sep 16 04:42:05 2011 (r225604) +++ stable/7/sbin/fsck_ffs/dir.c Fri Sep 16 05:45:13 2011 (r225605) @@ -210,7 +210,7 @@ dircheck(struct inodesc *idesc, struct d size_t size; char *cp; u_char type; - u_int namlen; + u_int8_t namlen; int spaceleft; spaceleft = DIRBLKSIZ - (idesc->id_loc % DIRBLKSIZ); @@ -225,7 +225,7 @@ dircheck(struct inodesc *idesc, struct d type = dp->d_type; if (dp->d_reclen < size || idesc->id_filesize < size || - namlen > MAXNAMLEN || + namlen == 0 || type > 15) goto bad; for (cp = dp->d_name, size = 0; size < namlen; size++) From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 05:57:02 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 13FF91065674; Fri, 16 Sep 2011 05:57:02 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 029A88FC08; Fri, 16 Sep 2011 05:57:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G5v1d7006650; Fri, 16 Sep 2011 05:57:01 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G5v1Wt006648; Fri, 16 Sep 2011 05:57:01 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201109160557.p8G5v1Wt006648@svn.freebsd.org> From: Xin LI Date: Fri, 16 Sep 2011 05:57:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225606 - in stable: 7/sys/dev/ichwd 8/sys/dev/ichwd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 05:57:02 -0000 Author: delphij Date: Fri Sep 16 05:57:01 2011 New Revision: 225606 URL: http://svn.freebsd.org/changeset/base/225606 Log: MFC r225340: Fix a bug in ichwd(4) which prevents it from being enabled if the new timeout is the same timeout. Submitted by: Dmitrij Tejblum PR: kern/139604 Modified: stable/8/sys/dev/ichwd/ichwd.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Changes in other areas also in this revision: Modified: stable/7/sys/dev/ichwd/ichwd.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/ichwd/ichwd.c ============================================================================== --- stable/8/sys/dev/ichwd/ichwd.c Fri Sep 16 05:45:13 2011 (r225605) +++ stable/8/sys/dev/ichwd/ichwd.c Fri Sep 16 05:57:01 2011 (r225606) @@ -402,11 +402,10 @@ ichwd_event(void *arg, unsigned int cmd, cmd &= WD_INTERVAL; timeout = ((uint64_t)1 << cmd) / ICHWD_TICK; if (cmd) { - if (timeout != sc->timeout) { - if (!sc->active) - ichwd_tmr_enable(sc); + if (!sc->active) + ichwd_tmr_enable(sc); + if (timeout != sc->timeout) ichwd_tmr_set(sc, timeout); - } ichwd_tmr_reload(sc); *error = 0; } else { From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 05:57:02 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 345CD1065670; Fri, 16 Sep 2011 05:57:02 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2325B8FC13; Fri, 16 Sep 2011 05:57:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G5v2tg006656; Fri, 16 Sep 2011 05:57:02 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G5v2uN006654; Fri, 16 Sep 2011 05:57:02 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201109160557.p8G5v2uN006654@svn.freebsd.org> From: Xin LI Date: Fri, 16 Sep 2011 05:57:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225606 - in stable: 7/sys/dev/ichwd 8/sys/dev/ichwd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 05:57:02 -0000 Author: delphij Date: Fri Sep 16 05:57:01 2011 New Revision: 225606 URL: http://svn.freebsd.org/changeset/base/225606 Log: MFC r225340: Fix a bug in ichwd(4) which prevents it from being enabled if the new timeout is the same timeout. Submitted by: Dmitrij Tejblum PR: kern/139604 Modified: stable/7/sys/dev/ichwd/ichwd.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Changes in other areas also in this revision: Modified: stable/8/sys/dev/ichwd/ichwd.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/ichwd/ichwd.c ============================================================================== --- stable/7/sys/dev/ichwd/ichwd.c Fri Sep 16 05:45:13 2011 (r225605) +++ stable/7/sys/dev/ichwd/ichwd.c Fri Sep 16 05:57:01 2011 (r225606) @@ -319,11 +319,10 @@ ichwd_event(void *arg, unsigned int cmd, cmd &= WD_INTERVAL; timeout = ((uint64_t)1 << cmd) / ICHWD_TICK; if (cmd) { - if (timeout != sc->timeout) { - if (!sc->active) - ichwd_tmr_enable(sc); + if (!sc->active) + ichwd_tmr_enable(sc); + if (timeout != sc->timeout) ichwd_tmr_set(sc, timeout); - } ichwd_tmr_reload(sc); *error = 0; } else { From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 08:22:48 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 902BD1065670; Fri, 16 Sep 2011 08:22:48 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7ED408FC0C; Fri, 16 Sep 2011 08:22:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G8Mmam011048; Fri, 16 Sep 2011 08:22:48 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G8MmKf011046; Fri, 16 Sep 2011 08:22:48 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109160822.p8G8MmKf011046@svn.freebsd.org> From: Andriy Gapon Date: Fri, 16 Sep 2011 08:22:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225608 - in head: sys/boot/zfs tools/tools/zfsboottest X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 08:22:48 -0000 Author: avg Date: Fri Sep 16 08:22:48 2011 New Revision: 225608 URL: http://svn.freebsd.org/changeset/base/225608 Log: zfstest: rename to zfsboottest and move to tools Approved by: re (kib) MFC after: 1 week Added: head/tools/tools/zfsboottest/ head/tools/tools/zfsboottest/Makefile (contents, props changed) head/tools/tools/zfsboottest/zfsboottest.c - copied unchanged from r225581, head/sys/boot/zfs/zfstest.c Deleted: head/sys/boot/zfs/zfstest.c Added: head/tools/tools/zfsboottest/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/tools/zfsboottest/Makefile Fri Sep 16 08:22:48 2011 (r225608) @@ -0,0 +1,23 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../../sys/boot/zfs ${.CURDIR}/../../../sys/cddl/boot/zfs + +PROG= zfsboottest +NO_MAN= + +CFLAGS= -O1 \ + -I${.CURDIR}/../../../sys/boot/zfs \ + -I${.CURDIR}/../../../sys/cddl/boot/zfs \ + -I. \ + -fdiagnostics-show-option \ + -W -Wextra -Wno-sign-compare -Wno-unused-parameter \ + -Werror + +.if ${MACHINE_CPUARCH} == "amd64" +beforedepend zfsboottest.o: machine +CLEANFILES+= machine +machine: + ln -sf ${.CURDIR}/../../../sys/i386/include machine +.endif + +.include Copied: head/tools/tools/zfsboottest/zfsboottest.c (from r225581, head/sys/boot/zfs/zfstest.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/tools/zfsboottest/zfsboottest.c Fri Sep 16 08:22:48 2011 (r225608, copy of r225581, head/sys/boot/zfs/zfstest.c) @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2010 Doug Rabson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +/* $FreeBSD$ */ +/* + * Compile with 'cc -I. -I../../cddl/boot/zfs zfstest.c -o zfstest' + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define NBBY 8 + +void +pager_output(const char *line) +{ + fprintf(stderr, "%s", line); +} + +#include "zfsimpl.c" + +static int +vdev_read(vdev_t *vdev, void *priv, off_t off, void *buf, size_t bytes) +{ + int fd = *(int *) priv; + + if (pread(fd, buf, bytes, off) != bytes) + return (-1); + return (0); +} + +static int +zfs_read(spa_t *spa, dnode_phys_t *dn, void *buf, size_t size, off_t off) +{ + const znode_phys_t *zp = (const znode_phys_t *) dn->dn_bonus; + size_t n; + int rc; + + n = size; + if (off + n > zp->zp_size) + n = zp->zp_size - off; + + rc = dnode_read(spa, dn, off, buf, n); + if (rc) + return (-rc); + + return (n); +} + +int +main(int argc, char** argv) +{ + char buf[512]; + int fd[100]; + struct stat sb; + dnode_phys_t dn; + spa_t *spa; + int i, n, off; + + zfs_init(); + if (argc == 1) { + static char *av[] = { + "zfstest", "COPYRIGHT", + "/dev/da0p2", "/dev/da1p2", "/dev/da2p2", + NULL, + }; + argc = 5; + argv = av; + } + for (i = 2; i < argc; i++) { + fd[i] = open(argv[i], O_RDONLY); + if (fd[i] < 0) + continue; + if (vdev_probe(vdev_read, &fd[i], NULL) != 0) + close(fd[i]); + } + spa_all_status(); + + spa = STAILQ_FIRST(&zfs_pools); + if (spa == NULL) { + fprintf(stderr, "no pools\n"); + exit(1); + } + + if (zfs_mount_pool(spa)) { + fprintf(stderr, "can't mount pool\n"); + exit(1); + } + + if (zfs_lookup(spa, argv[1], &dn)) { + fprintf(stderr, "can't lookup\n"); + exit(1); + } + + if (zfs_dnode_stat(spa, &dn, &sb)) { + fprintf(stderr, "can't stat\n"); + exit(1); + } + + + off = 0; + do { + n = zfs_read(spa, &dn, buf, 512, off); + if (n < 0) { + fprintf(stderr, "zfs_read failed\n"); + exit(1); + } + write(1, buf, n); + off += n; + } while (off < sb.st_size); + + return (0); +} From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 08:24:31 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98E8E106566B; Fri, 16 Sep 2011 08:24:31 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 88A148FC14; Fri, 16 Sep 2011 08:24:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G8OVPb011132; Fri, 16 Sep 2011 08:24:31 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G8OV3D011130; Fri, 16 Sep 2011 08:24:31 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201109160824.p8G8OV3D011130@svn.freebsd.org> From: Andriy Gapon Date: Fri, 16 Sep 2011 08:24:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225609 - head/tools/tools/zfsboottest X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 08:24:31 -0000 Author: avg Date: Fri Sep 16 08:24:31 2011 New Revision: 225609 URL: http://svn.freebsd.org/changeset/base/225609 Log: zfsboottest: some additional enhancements - redirect diagnostics printfs in the boot code to stderr - do not read trailing garbage from a trailing block of a file Also add my copyright to the file after making so many changes. Approved by: re (kib) MFC after: 1 week Modified: head/tools/tools/zfsboottest/zfsboottest.c Modified: head/tools/tools/zfsboottest/zfsboottest.c ============================================================================== --- head/tools/tools/zfsboottest/zfsboottest.c Fri Sep 16 08:22:48 2011 (r225608) +++ head/tools/tools/zfsboottest/zfsboottest.c Fri Sep 16 08:24:31 2011 (r225609) @@ -1,5 +1,6 @@ /*- * Copyright (c) 2010 Doug Rabson + * Copyright (c) 2011 Andriy Gapon * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,9 +25,6 @@ * SUCH DAMAGE. */ /* $FreeBSD$ */ -/* - * Compile with 'cc -I. -I../../cddl/boot/zfs zfstest.c -o zfstest' - */ #include #include @@ -48,7 +46,10 @@ pager_output(const char *line) fprintf(stderr, "%s", line); } +#define ZFS_TEST +#define printf(...) fprintf(stderr, __VA_ARGS__) #include "zfsimpl.c" +#undef printf static int vdev_read(vdev_t *vdev, void *priv, off_t off, void *buf, size_t bytes) @@ -86,7 +87,9 @@ main(int argc, char** argv) struct stat sb; dnode_phys_t dn; spa_t *spa; - int i, n, off; + off_t off; + ssize_t n; + int i; zfs_init(); if (argc == 1) { @@ -131,7 +134,9 @@ main(int argc, char** argv) off = 0; do { - n = zfs_read(spa, &dn, buf, 512, off); + n = sb.st_size - off; + n = n > sizeof(buf) ? sizeof(buf) : n; + n = zfs_read(spa, &dn, buf, n, off); if (n < 0) { fprintf(stderr, "zfs_read failed\n"); exit(1); From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 09:09:59 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57050106566B; Fri, 16 Sep 2011 09:09:59 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 468078FC12; Fri, 16 Sep 2011 09:09:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G99xLe012578; Fri, 16 Sep 2011 09:09:59 GMT (envelope-from pluknet@svn.freebsd.org) Received: (from pluknet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G99xXZ012576; Fri, 16 Sep 2011 09:09:59 GMT (envelope-from pluknet@svn.freebsd.org) Message-Id: <201109160909.p8G99xXZ012576@svn.freebsd.org> From: Sergey Kandaurov Date: Fri, 16 Sep 2011 09:09:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225610 - head/usr.sbin/pkg_install/delete X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 09:09:59 -0000 Author: pluknet Date: Fri Sep 16 09:09:58 2011 New Revision: 225610 URL: http://svn.freebsd.org/changeset/base/225610 Log: Print the package name on deletion errors. It appears this was already done in NetBSD a decade ago, hence I just reuse the change (except our code is bad styled). PR: bin/160516 Approved by: portmgr Approved by: re (kib) Obtained from: NetBSD Modified: head/usr.sbin/pkg_install/delete/perform.c Modified: head/usr.sbin/pkg_install/delete/perform.c ============================================================================== --- head/usr.sbin/pkg_install/delete/perform.c Fri Sep 16 08:24:31 2011 (r225609) +++ head/usr.sbin/pkg_install/delete/perform.c Fri Sep 16 09:09:58 2011 (r225610) @@ -324,8 +324,8 @@ pkg_do(char *pkg) */ if (delete_package(FALSE, CleanDirs, &Plist) == FAIL) warnx( - "couldn't entirely delete package (perhaps the packing list is\n" - "incorrectly specified?)"); + "couldn't entirely delete package `%s'\n" + "(perhaps the packing list is incorrectly specified?)", pkg); if (chdir(LogDir) == FAIL) { warnx("unable to change directory to %s! deinstall failed", LogDir); From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 09:37:13 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B338D106566B; Fri, 16 Sep 2011 09:37:13 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A2B708FC0A; Fri, 16 Sep 2011 09:37:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G9bDfp013491; Fri, 16 Sep 2011 09:37:13 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G9bDb3013489; Fri, 16 Sep 2011 09:37:13 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201109160937.p8G9bDb3013489@svn.freebsd.org> From: Nathan Whitehorn Date: Fri, 16 Sep 2011 09:37:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225612 - head/usr.sbin/bsdinstall/scripts X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 09:37:13 -0000 Author: nwhitehorn Date: Fri Sep 16 09:37:13 2011 New Revision: 225612 URL: http://svn.freebsd.org/changeset/base/225612 Log: Fix WPA setup broken by changes to shell argument passing inside the installer network configuration. PR: bin/159558 Approved by: re (kib) Modified: head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 Modified: head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 ============================================================================== --- head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 Fri Sep 16 09:15:34 2011 (r225611) +++ head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 Fri Sep 16 09:37:13 2011 (r225612) @@ -35,6 +35,7 @@ INTERFACE=$1 IFCONFIG_PREFIX="$2" +test -z "$IFCONFIG_PREFIX" || IFCONFIG_PREFIX="$2 " case "${INTERFACE}" in "") dialog --backtitle 'FreeBSD Installer' --title 'Network Configuration' \ --msgbox 'No interface specified for IPv4 configuration.' 0 0 From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 09:38:01 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C14D21065675; Fri, 16 Sep 2011 09:38:01 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B0D768FC19; Fri, 16 Sep 2011 09:38:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8G9c13L013549; Fri, 16 Sep 2011 09:38:01 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8G9c1eu013547; Fri, 16 Sep 2011 09:38:01 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201109160938.p8G9c1eu013547@svn.freebsd.org> From: Nathan Whitehorn Date: Fri, 16 Sep 2011 09:38:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225613 - head/usr.sbin/bsdinstall/partedit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 09:38:01 -0000 Author: nwhitehorn Date: Fri Sep 16 09:38:01 2011 New Revision: 225613 URL: http://svn.freebsd.org/changeset/base/225613 Log: Fix a typo introduced in r219892 that prevented file system options from being set correctly. Approved by: re (kib) Modified: head/usr.sbin/bsdinstall/partedit/gpart_ops.c Modified: head/usr.sbin/bsdinstall/partedit/gpart_ops.c ============================================================================== --- head/usr.sbin/bsdinstall/partedit/gpart_ops.c Fri Sep 16 09:37:13 2011 (r225612) +++ head/usr.sbin/bsdinstall/partedit/gpart_ops.c Fri Sep 16 09:38:01 2011 (r225613) @@ -862,7 +862,7 @@ addpartform: * If the user changed the fs type after specifying options, undo * their choices in favor of the new filesystem's defaults. */ - if (strcmp(options_fstype, items[0].name) != 0) { + if (strcmp(options_fstype, items[0].text) != 0) { strncpy(options_fstype, items[0].text, sizeof(options_fstype)); newfs_command(options_fstype, newfs, 1); } From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 11:14:11 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1EE54106564A; Fri, 16 Sep 2011 11:14:11 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0FD538FC14; Fri, 16 Sep 2011 11:14:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GBEAM6019429; Fri, 16 Sep 2011 11:14:10 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GBEApF019427; Fri, 16 Sep 2011 11:14:10 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201109161114.p8GBEApF019427@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Fri, 16 Sep 2011 11:14:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225614 - head/crypto/openssh X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 11:14:11 -0000 Author: des Date: Fri Sep 16 11:14:10 2011 New Revision: 225614 URL: http://svn.freebsd.org/changeset/base/225614 Log: Remove the svn:keywords property and restore the historical $FreeBSD$ tag. Approved by: re (kib) MFC after: 3 weeks Modified: head/crypto/openssh/auth-pam.c (contents, props changed) Modified: head/crypto/openssh/auth-pam.c ============================================================================== --- head/crypto/openssh/auth-pam.c Fri Sep 16 09:38:01 2011 (r225613) +++ head/crypto/openssh/auth-pam.c Fri Sep 16 11:14:10 2011 (r225614) @@ -45,7 +45,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* Based on $FreeBSD$ */ +/* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */ #include "includes.h" #include From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 13:30:00 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33B35106564A; Fri, 16 Sep 2011 13:30:00 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.213.182]) by mx1.freebsd.org (Postfix) with ESMTP id A9E458FC19; Fri, 16 Sep 2011 13:29:59 +0000 (UTC) Received: by yxk36 with SMTP id 36so3602916yxk.13 for ; Fri, 16 Sep 2011 06:29:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=sP0PULj4IlP1cYRXyZFr9O6Dj0uTXsgMqoZQBzdfhMU=; b=HxRw0XYJZksvBwEmNbB3BG7bBGmmU+JhwTV5GZyPnSGzJigv3mTnsNTN1sxDAwuR1G sFd7EIFQqpDyDbP9xAanD9KBgM7GnUCM3FnRj/YO24XjamycHb0x6wAJB5ekzyN9QT4H OxEPX93xSmzG8V3DMxEJ5L1Zaa5tbOHhEb078= Received: by 10.43.44.72 with SMTP id uf8mr1771240icb.1.1316179796055; Fri, 16 Sep 2011 06:29:56 -0700 (PDT) Received: from starr-wireless.local (c-24-6-49-154.hsd1.ca.comcast.net. [24.6.49.154]) by mx.google.com with ESMTPS id o5sm9431395ibu.12.2011.09.16.06.29.54 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 16 Sep 2011 06:29:54 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Garrett Cooper In-Reply-To: <201109160937.p8G9bDb3013489@svn.freebsd.org> Date: Fri, 16 Sep 2011 06:29:53 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <470110EF-3C4A-42D2-B2FE-3CE3836DAEBF@gmail.com> References: <201109160937.p8G9bDb3013489@svn.freebsd.org> To: Nathan Whitehorn X-Mailer: Apple Mail (2.1084) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r225612 - head/usr.sbin/bsdinstall/scripts X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 13:30:00 -0000 On Sep 16, 2011, at 2:37 AM, Nathan Whitehorn wrote: > Author: nwhitehorn > Date: Fri Sep 16 09:37:13 2011 > New Revision: 225612 > URL: http://svn.freebsd.org/changeset/base/225612 >=20 > Log: > Fix WPA setup broken by changes to shell argument passing inside the > installer network configuration. >=20 > PR: bin/159558 > Approved by: re (kib) >=20 > Modified: > head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 >=20 > Modified: head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 Fri Sep 16 = 09:15:34 2011 (r225611) > +++ head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 Fri Sep 16 = 09:37:13 2011 (r225612) > @@ -35,6 +35,7 @@ >=20 > INTERFACE=3D$1 > IFCONFIG_PREFIX=3D"$2" > +test -z "$IFCONFIG_PREFIX" || IFCONFIG_PREFIX=3D"$2 " You can replace the above two lines with: IFCONFIG_PREFIX=3D${IFCONFIG_PREFIX:-$2} Example: starr-wireless:~ gcooper$ set -- "" "" starr-wireless:~ gcooper$ IFCONFIG_PREFIX=3Dfoo starr-wireless:~ gcooper$ IFCONFIG_PREFIX=3D${IFCONFIG_PREFIX:-$2} starr-wireless:~ gcooper$ echo $IFCONFIG_PREFIX foo starr-wireless:~ gcooper$ set -- "" "a" starr-wireless:~ gcooper$ IFCONFIG_PREFIX=3D starr-wireless:~ gcooper$ IFCONFIG_PREFIX=3D${IFCONFIG_PREFIX:-$2} starr-wireless:~ gcooper$ echo $IFCONFIG_PREFIX a Cheers, -Garrett= From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 13:58:52 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 252D5106566B; Fri, 16 Sep 2011 13:58:52 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 113C78FC16; Fri, 16 Sep 2011 13:58:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GDwqJY024806; Fri, 16 Sep 2011 13:58:52 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GDwptH024793; Fri, 16 Sep 2011 13:58:51 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <201109161358.p8GDwptH024793@svn.freebsd.org> From: Kip Macy Date: Fri, 16 Sep 2011 13:58:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225617 - in head/sys: amd64/amd64 amd64/linux32 arm/arm cddl/contrib/opensolaris/uts/common/dtrace cddl/contrib/opensolaris/uts/sparc/dtrace compat/freebsd32 compat/linux compat/svr4 d... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 13:58:52 -0000 Author: kmacy Date: Fri Sep 16 13:58:51 2011 New Revision: 225617 URL: http://svn.freebsd.org/changeset/base/225617 Log: In order to maximize the re-usability of kernel code in user space this patch modifies makesyscalls.sh to prefix all of the non-compatibility calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel entry points and all places in the code that use them. It also fixes an additional name space collision between the kernel function psignal and the libc function of the same name by renaming the kernel psignal kern_psignal(). By introducing this change now we will ease future MFCs that change syscalls. Reviewed by: rwatson Approved by: re (bz) Modified: head/sys/amd64/amd64/machdep.c head/sys/amd64/linux32/linux32_machdep.c head/sys/arm/arm/machdep.c head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c head/sys/cddl/contrib/opensolaris/uts/sparc/dtrace/fasttrap_isa.c head/sys/compat/freebsd32/freebsd32_ioctl.c head/sys/compat/freebsd32/freebsd32_misc.c head/sys/compat/freebsd32/freebsd32_util.h head/sys/compat/linux/linux_emul.c head/sys/compat/linux/linux_file.c head/sys/compat/linux/linux_ioctl.c head/sys/compat/linux/linux_ipc.c head/sys/compat/linux/linux_misc.c head/sys/compat/linux/linux_signal.c head/sys/compat/linux/linux_socket.c head/sys/compat/linux/linux_uid16.c head/sys/compat/svr4/svr4_fcntl.c head/sys/compat/svr4/svr4_filio.c head/sys/compat/svr4/svr4_ipc.c head/sys/compat/svr4/svr4_misc.c head/sys/compat/svr4/svr4_signal.c head/sys/compat/svr4/svr4_socket.c head/sys/compat/svr4/svr4_stat.c head/sys/compat/svr4/svr4_stream.c head/sys/dev/bktr/bktr_core.c head/sys/dev/hwpmc/hwpmc_logging.c head/sys/dev/hwpmc/hwpmc_mod.c head/sys/dev/iscsi/initiator/isc_soc.c head/sys/dev/mfi/mfi.c head/sys/dev/sound/midi/midi.c head/sys/dev/syscons/scmouse.c head/sys/dev/syscons/syscons.c head/sys/dev/usb/usb_dev.c head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/fs/procfs/procfs_ctl.c head/sys/fs/procfs/procfs_ioctl.c head/sys/i386/i386/machdep.c head/sys/i386/i386/trap.c head/sys/i386/ibcs2/ibcs2_ioctl.c head/sys/i386/ibcs2/ibcs2_ipc.c head/sys/i386/ibcs2/ibcs2_misc.c head/sys/i386/ibcs2/ibcs2_other.c head/sys/i386/ibcs2/ibcs2_signal.c head/sys/i386/ibcs2/ibcs2_socksys.c head/sys/i386/ibcs2/ibcs2_xenix.c head/sys/i386/linux/linux_machdep.c head/sys/ia64/ia32/ia32_signal.c head/sys/ia64/ia64/machdep.c head/sys/kern/init_main.c head/sys/kern/kern_acct.c head/sys/kern/kern_context.c head/sys/kern/kern_cpuset.c head/sys/kern/kern_descrip.c head/sys/kern/kern_environment.c head/sys/kern/kern_event.c head/sys/kern/kern_exec.c head/sys/kern/kern_exit.c head/sys/kern/kern_fork.c head/sys/kern/kern_jail.c head/sys/kern/kern_ktrace.c head/sys/kern/kern_linker.c head/sys/kern/kern_loginclass.c head/sys/kern/kern_module.c head/sys/kern/kern_ntptime.c head/sys/kern/kern_proc.c head/sys/kern/kern_prot.c head/sys/kern/kern_rctl.c head/sys/kern/kern_resource.c head/sys/kern/kern_shutdown.c head/sys/kern/kern_sig.c head/sys/kern/kern_synch.c head/sys/kern/kern_sysctl.c head/sys/kern/kern_thr.c head/sys/kern/kern_time.c head/sys/kern/kern_umtx.c head/sys/kern/kern_uuid.c head/sys/kern/makesyscalls.sh head/sys/kern/p1003_1b.c head/sys/kern/subr_bus.c head/sys/kern/subr_prof.c head/sys/kern/subr_trap.c head/sys/kern/sys_capability.c head/sys/kern/sys_generic.c head/sys/kern/sys_pipe.c head/sys/kern/sys_procdesc.c head/sys/kern/sys_process.c head/sys/kern/sysv_msg.c head/sys/kern/sysv_sem.c head/sys/kern/sysv_shm.c head/sys/kern/tty.c head/sys/kern/tty_pts.c head/sys/kern/uipc_mqueue.c head/sys/kern/uipc_sem.c head/sys/kern/uipc_shm.c head/sys/kern/uipc_syscalls.c head/sys/kern/vfs_acl.c head/sys/kern/vfs_aio.c head/sys/kern/vfs_cache.c head/sys/kern/vfs_extattr.c head/sys/kern/vfs_mount.c head/sys/kern/vfs_syscalls.c head/sys/kern/vfs_vnops.c head/sys/kgssapi/gss_impl.c head/sys/mips/mips/pm_machdep.c head/sys/net/route.c head/sys/nfs/nfs_nfssvc.c head/sys/nlm/nlm_prot_impl.c head/sys/pc98/pc98/machdep.c head/sys/powerpc/powerpc/exec_machdep.c head/sys/security/audit/audit_syscalls.c head/sys/security/mac/mac_syscalls.c head/sys/sparc64/sparc64/machdep.c head/sys/sys/posix4.h head/sys/sys/signalvar.h head/sys/sys/sysent.h head/sys/vm/swap_pager.c head/sys/vm/vm_mmap.c head/sys/vm/vm_unix.c Modified: head/sys/amd64/amd64/machdep.c ============================================================================== --- head/sys/amd64/amd64/machdep.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/amd64/amd64/machdep.c Fri Sep 16 13:58:51 2011 (r225617) @@ -421,7 +421,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, * MPSAFE */ int -sigreturn(td, uap) +sys_sigreturn(td, uap) struct thread *td; struct sigreturn_args /* { const struct __ucontext *sigcntxp; @@ -517,7 +517,7 @@ int freebsd4_sigreturn(struct thread *td, struct freebsd4_sigreturn_args *uap) { - return sigreturn(td, (struct sigreturn_args *)uap); + return sys_sigreturn(td, (struct sigreturn_args *)uap); } #endif Modified: head/sys/amd64/linux32/linux32_machdep.c ============================================================================== --- head/sys/amd64/linux32/linux32_machdep.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/amd64/linux32/linux32_machdep.c Fri Sep 16 13:58:51 2011 (r225617) @@ -658,7 +658,7 @@ linux_mmap_common(struct thread *td, l_u (void *)bsd_args.addr, (int)bsd_args.len, bsd_args.prot, bsd_args.flags, bsd_args.fd, (int)bsd_args.pos); #endif - error = mmap(td, &bsd_args); + error = sys_mmap(td, &bsd_args); #ifdef DEBUG if (ldebug(mmap)) printf("-> %s() return: 0x%x (0x%08x)\n", @@ -677,7 +677,7 @@ linux_mprotect(struct thread *td, struct bsd_args.prot = uap->prot; if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) bsd_args.prot |= PROT_READ | PROT_EXEC; - return (mprotect(td, &bsd_args)); + return (sys_mprotect(td, &bsd_args)); } int @@ -863,7 +863,7 @@ linux_ftruncate64(struct thread *td, str sa.fd = args->fd; sa.length = args->length; - return ftruncate(td, &sa); + return sys_ftruncate(td, &sa); } int Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/arm/arm/machdep.c Fri Sep 16 13:58:51 2011 (r225617) @@ -605,7 +605,7 @@ set_mcontext(struct thread *td, const mc * MPSAFE */ int -sigreturn(td, uap) +sys_sigreturn(td, uap) struct thread *td; struct sigreturn_args /* { const struct __ucontext *sigcntxp; Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Fri Sep 16 13:58:51 2011 (r225617) @@ -5669,7 +5669,7 @@ dtrace_action_raise(uint64_t sig) #else struct proc *p = curproc; PROC_LOCK(p); - psignal(p, sig); + kern_psignal(p, sig); PROC_UNLOCK(p); #endif } @@ -5689,7 +5689,7 @@ dtrace_action_stop(void) #else struct proc *p = curproc; PROC_LOCK(p); - psignal(p, SIGSTOP); + kern_psignal(p, SIGSTOP); PROC_UNLOCK(p); #endif } Modified: head/sys/cddl/contrib/opensolaris/uts/sparc/dtrace/fasttrap_isa.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/sparc/dtrace/fasttrap_isa.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/cddl/contrib/opensolaris/uts/sparc/dtrace/fasttrap_isa.c Fri Sep 16 13:58:51 2011 (r225617) @@ -1474,7 +1474,7 @@ err: * If the copy in failed, the process will be in a irrecoverable * state, and we have no choice but to kill it. */ - psignal(ttoproc(curthread), SIGILL); + kern_psignal(ttoproc(curthread), SIGILL); return (0); } @@ -1593,5 +1593,5 @@ err: * If we couldn't record this register's value, the process is in an * irrecoverable state and we have no choice but to euthanize it. */ - psignal(ttoproc(curthread), SIGILL); + kern_psignal(ttoproc(curthread), SIGILL); } Modified: head/sys/compat/freebsd32/freebsd32_ioctl.c ============================================================================== --- head/sys/compat/freebsd32/freebsd32_ioctl.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/compat/freebsd32/freebsd32_ioctl.c Fri Sep 16 13:58:51 2011 (r225617) @@ -396,7 +396,7 @@ freebsd32_ioctl(struct thread *td, struc ap.fd = uap->fd; ap.com = uap->com; PTRIN_CP(*uap, ap, data); - return ioctl(td, &ap); + return sys_ioctl(td, &ap); } fdrop(fp, td); Modified: head/sys/compat/freebsd32/freebsd32_misc.c ============================================================================== --- head/sys/compat/freebsd32/freebsd32_misc.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/compat/freebsd32/freebsd32_misc.c Fri Sep 16 13:58:51 2011 (r225617) @@ -425,7 +425,7 @@ freebsd32_mmap_partial(struct thread *td r.buf = (void *) start; r.nbyte = end - start; r.offset = pos; - return (pread(td, &r)); + return (sys_pread(td, &r)); } else { while (start < end) { subyte((void *) start, 0); @@ -500,7 +500,7 @@ freebsd32_mmap(struct thread *td, struct r.buf = (void *) start; r.nbyte = end - start; r.offset = pos; - error = pread(td, &r); + error = sys_pread(td, &r); if (error) return (error); @@ -527,7 +527,7 @@ freebsd32_mmap(struct thread *td, struct ap.fd = fd; ap.pos = pos; - return (mmap(td, &ap)); + return (sys_mmap(td, &ap)); } #ifdef COMPAT_FREEBSD6 @@ -1401,7 +1401,7 @@ freebsd32_pread(struct thread *td, struc ap.buf = uap->buf; ap.nbyte = uap->nbyte; ap.offset = PAIR32TO64(off_t,uap->offset); - return (pread(td, &ap)); + return (sys_pread(td, &ap)); } int @@ -1413,7 +1413,7 @@ freebsd32_pwrite(struct thread *td, stru ap.buf = uap->buf; ap.nbyte = uap->nbyte; ap.offset = PAIR32TO64(off_t,uap->offset); - return (pwrite(td, &ap)); + return (sys_pwrite(td, &ap)); } #ifdef COMPAT_43 @@ -1425,7 +1425,7 @@ ofreebsd32_lseek(struct thread *td, stru nuap.fd = uap->fd; nuap.offset = uap->offset; nuap.whence = uap->whence; - return (lseek(td, &nuap)); + return (sys_lseek(td, &nuap)); } #endif @@ -1439,7 +1439,7 @@ freebsd32_lseek(struct thread *td, struc ap.fd = uap->fd; ap.offset = PAIR32TO64(off_t,uap->offset); ap.whence = uap->whence; - error = lseek(td, &ap); + error = sys_lseek(td, &ap); /* Expand the quad return into two parts for eax and edx */ pos = *(off_t *)(td->td_retval); td->td_retval[RETVAL_LO] = pos & 0xffffffff; /* %eax */ @@ -1454,7 +1454,7 @@ freebsd32_truncate(struct thread *td, st ap.path = uap->path; ap.length = PAIR32TO64(off_t,uap->length); - return (truncate(td, &ap)); + return (sys_truncate(td, &ap)); } int @@ -1464,7 +1464,7 @@ freebsd32_ftruncate(struct thread *td, s ap.fd = uap->fd; ap.length = PAIR32TO64(off_t,uap->length); - return (ftruncate(td, &ap)); + return (sys_ftruncate(td, &ap)); } #ifdef COMPAT_43 @@ -1519,7 +1519,7 @@ freebsd6_freebsd32_pread(struct thread * ap.buf = uap->buf; ap.nbyte = uap->nbyte; ap.offset = PAIR32TO64(off_t,uap->offset); - return (pread(td, &ap)); + return (sys_pread(td, &ap)); } int @@ -1531,7 +1531,7 @@ freebsd6_freebsd32_pwrite(struct thread ap.buf = uap->buf; ap.nbyte = uap->nbyte; ap.offset = PAIR32TO64(off_t,uap->offset); - return (pwrite(td, &ap)); + return (sys_pwrite(td, &ap)); } int @@ -1544,7 +1544,7 @@ freebsd6_freebsd32_lseek(struct thread * ap.fd = uap->fd; ap.offset = PAIR32TO64(off_t,uap->offset); ap.whence = uap->whence; - error = lseek(td, &ap); + error = sys_lseek(td, &ap); /* Expand the quad return into two parts for eax and edx */ pos = *(off_t *)(td->td_retval); td->td_retval[RETVAL_LO] = pos & 0xffffffff; /* %eax */ @@ -1559,7 +1559,7 @@ freebsd6_freebsd32_truncate(struct threa ap.path = uap->path; ap.length = PAIR32TO64(off_t,uap->length); - return (truncate(td, &ap)); + return (sys_truncate(td, &ap)); } int @@ -1569,7 +1569,7 @@ freebsd6_freebsd32_ftruncate(struct thre ap.fd = uap->fd; ap.length = PAIR32TO64(off_t,uap->length); - return (ftruncate(td, &ap)); + return (sys_ftruncate(td, &ap)); } #endif /* COMPAT_FREEBSD6 */ @@ -2409,7 +2409,7 @@ freebsd32_cpuset_setid(struct thread *td ap.id = PAIR32TO64(id_t,uap->id); ap.setid = uap->setid; - return (cpuset_setid(td, &ap)); + return (sys_cpuset_setid(td, &ap)); } int @@ -2423,7 +2423,7 @@ freebsd32_cpuset_getid(struct thread *td ap.id = PAIR32TO64(id_t,uap->id); ap.setid = uap->setid; - return (cpuset_getid(td, &ap)); + return (sys_cpuset_getid(td, &ap)); } int @@ -2438,7 +2438,7 @@ freebsd32_cpuset_getaffinity(struct thre ap.cpusetsize = uap->cpusetsize; ap.mask = uap->mask; - return (cpuset_getaffinity(td, &ap)); + return (sys_cpuset_getaffinity(td, &ap)); } int @@ -2453,7 +2453,7 @@ freebsd32_cpuset_setaffinity(struct thre ap.cpusetsize = uap->cpusetsize; ap.mask = uap->mask; - return (cpuset_setaffinity(td, &ap)); + return (sys_cpuset_setaffinity(td, &ap)); } int @@ -2813,5 +2813,5 @@ freebsd32_posix_fallocate(struct thread ap.fd = uap->fd; ap.offset = (uap->offsetlo | ((off_t)uap->offsethi << 32)); ap.len = (uap->lenlo | ((off_t)uap->lenhi << 32)); - return (posix_fallocate(td, &ap)); + return (sys_posix_fallocate(td, &ap)); } Modified: head/sys/compat/freebsd32/freebsd32_util.h ============================================================================== --- head/sys/compat/freebsd32/freebsd32_util.h Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/compat/freebsd32/freebsd32_util.h Fri Sep 16 13:58:51 2011 (r225617) @@ -88,6 +88,15 @@ SYSCALL32_MODULE(syscallname, .syscall_no = FREEBSD32_SYS_##syscallname \ } +#define SYSCALL32_INIT_HELPER_COMPAT(syscallname) { \ + .new_sysent = { \ + .sy_narg = (sizeof(struct syscallname ## _args ) \ + / sizeof(register_t)), \ + .sy_call = (sy_call_t *)& sys_ ## syscallname, \ + }, \ + .syscall_no = FREEBSD32_SYS_##syscallname \ +} + int syscall32_register(int *offset, struct sysent *new_sysent, struct sysent *old_sysent); int syscall32_deregister(int *offset, struct sysent *old_sysent); Modified: head/sys/compat/linux/linux_emul.c ============================================================================== --- head/sys/compat/linux/linux_emul.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/compat/linux/linux_emul.c Fri Sep 16 13:58:51 2011 (r225617) @@ -244,7 +244,7 @@ linux_proc_exit(void *arg __unused, stru KASSERT(em != NULL, ("linux_reparent: emuldata not found: %i\n", q->p_pid)); PROC_LOCK(q); if ((q->p_flag & P_WEXIT) == 0 && em->pdeath_signal != 0) { - psignal(q, em->pdeath_signal); + kern_psignal(q, em->pdeath_signal); } PROC_UNLOCK(q); EMUL_UNLOCK(&emul_lock); @@ -362,7 +362,7 @@ linux_kill_threads(struct thread *td, in sp = pfind(em->pid); if ((sp->p_flag & P_WEXIT) == 0) - psignal(sp, sig); + kern_psignal(sp, sig); PROC_UNLOCK(sp); #ifdef DEBUG printf(LMSG("linux_kill_threads: kill PID %d\n"), em->pid); Modified: head/sys/compat/linux/linux_file.c ============================================================================== --- head/sys/compat/linux/linux_file.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/compat/linux/linux_file.c Fri Sep 16 13:58:51 2011 (r225617) @@ -232,7 +232,7 @@ linux_lseek(struct thread *td, struct li tmp_args.fd = args->fdes; tmp_args.offset = (off_t)args->off; tmp_args.whence = args->whence; - error = lseek(td, &tmp_args); + error = sys_lseek(td, &tmp_args); return error; } @@ -254,7 +254,7 @@ linux_llseek(struct thread *td, struct l bsd_args.offset = off; bsd_args.whence = args->whence; - if ((error = lseek(td, &bsd_args))) + if ((error = sys_lseek(td, &bsd_args))) return error; if ((error = copyout(td->td_retval, args->res, sizeof (off_t)))) @@ -951,7 +951,7 @@ linux_ftruncate(struct thread *td, struc nuap.fd = args->fd; nuap.length = args->length; - return (ftruncate(td, &nuap)); + return (sys_ftruncate(td, &nuap)); } int @@ -1021,7 +1021,7 @@ linux_fdatasync(td, uap) struct fsync_args bsd; bsd.fd = uap->fd; - return fsync(td, &bsd); + return sys_fsync(td, &bsd); } int @@ -1038,7 +1038,7 @@ linux_pread(td, uap) bsd.nbyte = uap->nbyte; bsd.offset = uap->offset; - error = pread(td, &bsd); + error = sys_pread(td, &bsd); if (error == 0) { /* This seems to violate POSIX but linux does it */ @@ -1065,7 +1065,7 @@ linux_pwrite(td, uap) bsd.buf = uap->buf; bsd.nbyte = uap->nbyte; bsd.offset = uap->offset; - return pwrite(td, &bsd); + return sys_pwrite(td, &bsd); } int @@ -1163,7 +1163,7 @@ linux_umount(struct thread *td, struct l bsd.path = args->path; bsd.flags = args->flags; /* XXX correct? */ - return (unmount(td, &bsd)); + return (sys_unmount(td, &bsd)); } /* Modified: head/sys/compat/linux/linux_ioctl.c ============================================================================== --- head/sys/compat/linux/linux_ioctl.c Fri Sep 16 12:13:03 2011 (r225616) +++ head/sys/compat/linux/linux_ioctl.c Fri Sep 16 13:58:51 2011 (r225617) @@ -803,7 +803,7 @@ linux_ioctl_termio(struct thread *td, st wr.fd = args->fd; wr.buf = &c; wr.nbyte = sizeof(c); - return (write(td, &wr)); + return (sys_write(td, &wr)); } else return (0); } @@ -812,7 +812,7 @@ linux_ioctl_termio(struct thread *td, st return (EINVAL); } args->arg = 0; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; } @@ -838,27 +838,27 @@ linux_ioctl_termio(struct thread *td, st case LINUX_TIOCEXCL: args->cmd = TIOCEXCL; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCNXCL: args->cmd = TIOCNXCL; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCSCTTY: args->cmd = TIOCSCTTY; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCGPGRP: args->cmd = TIOCGPGRP; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCSPGRP: args->cmd = TIOCSPGRP; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; /* LINUX_TIOCOUTQ */ @@ -866,32 +866,32 @@ linux_ioctl_termio(struct thread *td, st case LINUX_TIOCGWINSZ: args->cmd = TIOCGWINSZ; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCSWINSZ: args->cmd = TIOCSWINSZ; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCMGET: args->cmd = TIOCMGET; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCMBIS: args->cmd = TIOCMBIS; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCMBIC: args->cmd = TIOCMBIC; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCMSET: args->cmd = TIOCMSET; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; /* TIOCGSOFTCAR */ @@ -899,14 +899,14 @@ linux_ioctl_termio(struct thread *td, st case LINUX_FIONREAD: /* LINUX_TIOCINQ */ args->cmd = FIONREAD; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; /* LINUX_TIOCLINUX */ case LINUX_TIOCCONS: args->cmd = TIOCCONS; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCGSERIAL: { @@ -932,17 +932,17 @@ linux_ioctl_termio(struct thread *td, st case LINUX_TIOCPKT: args->cmd = TIOCPKT; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_FIONBIO: args->cmd = FIONBIO; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCNOTTY: args->cmd = TIOCNOTTY; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCSETD: { @@ -996,17 +996,17 @@ linux_ioctl_termio(struct thread *td, st case LINUX_FIONCLEX: args->cmd = FIONCLEX; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_FIOCLEX: args->cmd = FIOCLEX; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_FIOASYNC: args->cmd = FIOASYNC; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; /* LINUX_TIOCSERCONFIG */ @@ -1017,12 +1017,12 @@ linux_ioctl_termio(struct thread *td, st case LINUX_TIOCSBRK: args->cmd = TIOCSBRK; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCCBRK: args->cmd = TIOCCBRK; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_TIOCGPTN: { int nb; @@ -1447,22 +1447,22 @@ linux_ioctl_cdrom(struct thread *td, str case LINUX_CDROMPAUSE: args->cmd = CDIOCPAUSE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_CDROMRESUME: args->cmd = CDIOCRESUME; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_CDROMPLAYMSF: args->cmd = CDIOCPLAYMSF; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_CDROMPLAYTRKIND: args->cmd = CDIOCPLAYTRACKS; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_CDROMREADTOCHDR: { @@ -1501,17 +1501,17 @@ linux_ioctl_cdrom(struct thread *td, str case LINUX_CDROMSTOP: args->cmd = CDIOCSTOP; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_CDROMSTART: args->cmd = CDIOCSTART; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_CDROMEJECT: args->cmd = CDIOCEJECT; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; /* LINUX_CDROMVOLCTRL */ @@ -1555,7 +1555,7 @@ linux_ioctl_cdrom(struct thread *td, str case LINUX_CDROMRESET: args->cmd = CDIOCRESET; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; /* LINUX_CDROMVOLREAD */ @@ -1689,71 +1689,71 @@ linux_ioctl_sound(struct thread *td, str case LINUX_SOUND_MIXER_WRITE_VOLUME: args->cmd = SETDIR(SOUND_MIXER_WRITE_VOLUME); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_BASS: args->cmd = SETDIR(SOUND_MIXER_WRITE_BASS); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_TREBLE: args->cmd = SETDIR(SOUND_MIXER_WRITE_TREBLE); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_SYNTH: args->cmd = SETDIR(SOUND_MIXER_WRITE_SYNTH); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_PCM: args->cmd = SETDIR(SOUND_MIXER_WRITE_PCM); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_SPEAKER: args->cmd = SETDIR(SOUND_MIXER_WRITE_SPEAKER); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_LINE: args->cmd = SETDIR(SOUND_MIXER_WRITE_LINE); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_MIC: args->cmd = SETDIR(SOUND_MIXER_WRITE_MIC); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_CD: args->cmd = SETDIR(SOUND_MIXER_WRITE_CD); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_IMIX: args->cmd = SETDIR(SOUND_MIXER_WRITE_IMIX); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_ALTPCM: args->cmd = SETDIR(SOUND_MIXER_WRITE_ALTPCM); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_RECLEV: args->cmd = SETDIR(SOUND_MIXER_WRITE_RECLEV); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_IGAIN: args->cmd = SETDIR(SOUND_MIXER_WRITE_IGAIN); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_OGAIN: args->cmd = SETDIR(SOUND_MIXER_WRITE_OGAIN); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_LINE1: args->cmd = SETDIR(SOUND_MIXER_WRITE_LINE1); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_LINE2: args->cmd = SETDIR(SOUND_MIXER_WRITE_LINE2); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_LINE3: args->cmd = SETDIR(SOUND_MIXER_WRITE_LINE3); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_INFO: { /* Key on encoded length */ @@ -1787,167 +1787,167 @@ linux_ioctl_sound(struct thread *td, str case LINUX_SOUND_MIXER_READ_STEREODEVS: args->cmd = SOUND_MIXER_READ_STEREODEVS; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_READ_CAPS: args->cmd = SOUND_MIXER_READ_CAPS; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_READ_RECMASK: args->cmd = SOUND_MIXER_READ_RECMASK; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_READ_DEVMASK: args->cmd = SOUND_MIXER_READ_DEVMASK; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_MIXER_WRITE_RECSRC: args->cmd = SETDIR(SOUND_MIXER_WRITE_RECSRC); - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_RESET: args->cmd = SNDCTL_DSP_RESET; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_SYNC: args->cmd = SNDCTL_DSP_SYNC; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_SPEED: args->cmd = SNDCTL_DSP_SPEED; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_STEREO: args->cmd = SNDCTL_DSP_STEREO; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_GETBLKSIZE: /* LINUX_SNDCTL_DSP_SETBLKSIZE */ args->cmd = SNDCTL_DSP_GETBLKSIZE; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_SETFMT: args->cmd = SNDCTL_DSP_SETFMT; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_PCM_WRITE_CHANNELS: args->cmd = SOUND_PCM_WRITE_CHANNELS; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SOUND_PCM_WRITE_FILTER: args->cmd = SOUND_PCM_WRITE_FILTER; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_POST: args->cmd = SNDCTL_DSP_POST; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_SUBDIVIDE: args->cmd = SNDCTL_DSP_SUBDIVIDE; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_SETFRAGMENT: args->cmd = SNDCTL_DSP_SETFRAGMENT; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_GETFMTS: args->cmd = SNDCTL_DSP_GETFMTS; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_GETOSPACE: args->cmd = SNDCTL_DSP_GETOSPACE; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_GETISPACE: args->cmd = SNDCTL_DSP_GETISPACE; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_NONBLOCK: args->cmd = SNDCTL_DSP_NONBLOCK; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_GETCAPS: args->cmd = SNDCTL_DSP_GETCAPS; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_SETTRIGGER: /* LINUX_SNDCTL_GETTRIGGER */ args->cmd = SNDCTL_DSP_SETTRIGGER; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_GETIPTR: args->cmd = SNDCTL_DSP_GETIPTR; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_GETOPTR: args->cmd = SNDCTL_DSP_GETOPTR; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_SETDUPLEX: args->cmd = SNDCTL_DSP_SETDUPLEX; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_DSP_GETODELAY: args->cmd = SNDCTL_DSP_GETODELAY; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_RESET: args->cmd = SNDCTL_SEQ_RESET; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_SYNC: args->cmd = SNDCTL_SEQ_SYNC; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SYNTH_INFO: args->cmd = SNDCTL_SYNTH_INFO; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_CTRLRATE: args->cmd = SNDCTL_SEQ_CTRLRATE; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_GETOUTCOUNT: args->cmd = SNDCTL_SEQ_GETOUTCOUNT; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_GETINCOUNT: args->cmd = SNDCTL_SEQ_GETINCOUNT; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_PERCMODE: args->cmd = SNDCTL_SEQ_PERCMODE; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_FM_LOAD_INSTR: args->cmd = SNDCTL_FM_LOAD_INSTR; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_TESTMIDI: args->cmd = SNDCTL_SEQ_TESTMIDI; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_RESETSAMPLES: args->cmd = SNDCTL_SEQ_RESETSAMPLES; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_NRSYNTHS: args->cmd = SNDCTL_SEQ_NRSYNTHS; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_NRMIDIS: args->cmd = SNDCTL_SEQ_NRMIDIS; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_MIDI_INFO: args->cmd = SNDCTL_MIDI_INFO; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SEQ_TRESHOLD: args->cmd = SNDCTL_SEQ_TRESHOLD; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); case LINUX_SNDCTL_SYNTH_MEMAVL: args->cmd = SNDCTL_SYNTH_MEMAVL; - return (ioctl(td, (struct ioctl_args *)args)); + return (sys_ioctl(td, (struct ioctl_args *)args)); } @@ -1972,37 +1972,37 @@ linux_ioctl_console(struct thread *td, s case LINUX_KIOCSOUND: args->cmd = KIOCSOUND; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_KDMKTONE: args->cmd = KDMKTONE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_KDGETLED: args->cmd = KDGETLED; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_KDSETLED: args->cmd = KDSETLED; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_KDSETMODE: args->cmd = KDSETMODE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_KDGETMODE: args->cmd = KDGETMODE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_KDGKBMODE: args->cmd = KDGKBMODE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_KDSKBMODE: { @@ -2028,12 +2028,12 @@ linux_ioctl_console(struct thread *td, s case LINUX_VT_OPENQRY: args->cmd = VT_OPENQRY; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_VT_GETMODE: args->cmd = VT_GETMODE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_VT_SETMODE: { @@ -2045,28 +2045,28 @@ linux_ioctl_console(struct thread *td, s if ((error = copyout(&mode, (void *)args->arg, sizeof(mode)))) break; args->cmd = VT_SETMODE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; } case LINUX_VT_GETSTATE: args->cmd = VT_GETACTIVE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_VT_RELDISP: args->cmd = VT_RELDISP; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_VT_ACTIVATE: args->cmd = VT_ACTIVATE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; case LINUX_VT_WAITACTIVE: args->cmd = VT_WAITACTIVE; - error = (ioctl(td, (struct ioctl_args *)args)); + error = (sys_ioctl(td, (struct ioctl_args *)args)); break; default: @@ -2440,27 +2440,27 @@ linux_ioctl_socket(struct thread *td, st *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 14:04:14 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 692891065672; Fri, 16 Sep 2011 14:04:14 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 55AD98FC08; Fri, 16 Sep 2011 14:04:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GE4Ekg025026; Fri, 16 Sep 2011 14:04:14 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GE4ESq025018; Fri, 16 Sep 2011 14:04:14 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <201109161404.p8GE4ESq025018@svn.freebsd.org> From: Kip Macy Date: Fri, 16 Sep 2011 14:04:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225618 - in head/sys: amd64/linux32 compat/freebsd32 compat/svr4 i386/ibcs2 i386/linux kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 14:04:14 -0000 Author: kmacy Date: Fri Sep 16 14:04:14 2011 New Revision: 225618 URL: http://svn.freebsd.org/changeset/base/225618 Log: Auto-generated code from sys_ prefixing makesyscalls.sh change Approved by: re(bz) Modified: head/sys/amd64/linux32/linux32_sysent.c head/sys/compat/freebsd32/freebsd32_proto.h head/sys/compat/freebsd32/freebsd32_syscall.h head/sys/compat/freebsd32/freebsd32_syscalls.c head/sys/compat/freebsd32/freebsd32_sysent.c head/sys/compat/svr4/svr4_sysent.c head/sys/i386/ibcs2/ibcs2_isc_sysent.c head/sys/i386/ibcs2/ibcs2_sysent.c head/sys/i386/ibcs2/ibcs2_xenix.h head/sys/i386/ibcs2/ibcs2_xenix_sysent.c head/sys/i386/linux/linux_sysent.c head/sys/kern/init_sysent.c head/sys/sys/sysproto.h Modified: head/sys/amd64/linux32/linux32_sysent.c ============================================================================== --- head/sys/amd64/linux32/linux32_sysent.c Fri Sep 16 13:58:51 2011 (r225617) +++ head/sys/amd64/linux32/linux32_sysent.c Fri Sep 16 14:04:14 2011 (r225618) @@ -20,12 +20,12 @@ struct sysent linux_sysent[] = { #define nosys linux_nosys { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 0 = setup */ - { AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_EXIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 1 = exit */ + { AS(sys_exit_args), (sy_call_t *)sys_sys_exit, AUE_EXIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 1 = exit */ { 0, (sy_call_t *)linux_fork, AUE_FORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 2 = linux_fork */ - { AS(read_args), (sy_call_t *)read, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 3 = read */ - { AS(write_args), (sy_call_t *)write, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 4 = write */ + { AS(read_args), (sy_call_t *)sys_read, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 3 = read */ + { AS(write_args), (sy_call_t *)sys_write, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 4 = write */ { AS(linux_open_args), (sy_call_t *)linux_open, AUE_OPEN_RWTC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 5 = linux_open */ - { AS(close_args), (sy_call_t *)close, AUE_CLOSE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 6 = close */ + { AS(close_args), (sy_call_t *)sys_close, AUE_CLOSE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 6 = close */ { AS(linux_waitpid_args), (sy_call_t *)linux_waitpid, AUE_WAIT4, NULL, 0, 0, 0, SY_THR_STATIC }, /* 7 = linux_waitpid */ { AS(linux_creat_args), (sy_call_t *)linux_creat, AUE_CREAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 8 = linux_creat */ { AS(linux_link_args), (sy_call_t *)linux_link, AUE_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 9 = linux_link */ @@ -55,12 +55,12 @@ struct sysent linux_sysent[] = { { AS(linux_access_args), (sy_call_t *)linux_access, AUE_ACCESS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 33 = linux_access */ { AS(linux_nice_args), (sy_call_t *)linux_nice, AUE_NICE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 34 = linux_nice */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 35 = ftime */ - { 0, (sy_call_t *)sync, AUE_SYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 36 = sync */ + { 0, (sy_call_t *)sys_sync, AUE_SYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 36 = sync */ { AS(linux_kill_args), (sy_call_t *)linux_kill, AUE_KILL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 37 = linux_kill */ { AS(linux_rename_args), (sy_call_t *)linux_rename, AUE_RENAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 38 = linux_rename */ { AS(linux_mkdir_args), (sy_call_t *)linux_mkdir, AUE_MKDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 39 = linux_mkdir */ { AS(linux_rmdir_args), (sy_call_t *)linux_rmdir, AUE_RMDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 40 = linux_rmdir */ - { AS(dup_args), (sy_call_t *)dup, AUE_DUP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 41 = dup */ + { AS(dup_args), (sy_call_t *)sys_dup, AUE_DUP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 41 = dup */ { AS(linux_pipe_args), (sy_call_t *)linux_pipe, AUE_PIPE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 42 = linux_pipe */ { AS(linux_times_args), (sy_call_t *)linux_times, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 43 = linux_times */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 44 = prof */ @@ -70,22 +70,22 @@ struct sysent linux_sysent[] = { { AS(linux_signal_args), (sy_call_t *)linux_signal, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 48 = linux_signal */ { 0, (sy_call_t *)linux_geteuid16, AUE_GETEUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 49 = linux_geteuid16 */ { 0, (sy_call_t *)linux_getegid16, AUE_GETEGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 50 = linux_getegid16 */ - { AS(acct_args), (sy_call_t *)acct, AUE_ACCT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 51 = acct */ + { AS(acct_args), (sy_call_t *)sys_acct, AUE_ACCT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 51 = acct */ { AS(linux_umount_args), (sy_call_t *)linux_umount, AUE_UMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 52 = linux_umount */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 53 = lock */ { AS(linux_ioctl_args), (sy_call_t *)linux_ioctl, AUE_IOCTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 54 = linux_ioctl */ { AS(linux_fcntl_args), (sy_call_t *)linux_fcntl, AUE_FCNTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 55 = linux_fcntl */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 56 = mpx */ - { AS(setpgid_args), (sy_call_t *)setpgid, AUE_SETPGRP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 57 = setpgid */ + { AS(setpgid_args), (sy_call_t *)sys_setpgid, AUE_SETPGRP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 57 = setpgid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 58 = ulimit */ { 0, (sy_call_t *)linux_olduname, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 59 = linux_olduname */ - { AS(umask_args), (sy_call_t *)umask, AUE_UMASK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 60 = umask */ - { AS(chroot_args), (sy_call_t *)chroot, AUE_CHROOT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 61 = chroot */ + { AS(umask_args), (sy_call_t *)sys_umask, AUE_UMASK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 60 = umask */ + { AS(chroot_args), (sy_call_t *)sys_chroot, AUE_CHROOT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 61 = chroot */ { AS(linux_ustat_args), (sy_call_t *)linux_ustat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 62 = linux_ustat */ - { AS(dup2_args), (sy_call_t *)dup2, AUE_DUP2, NULL, 0, 0, 0, SY_THR_STATIC }, /* 63 = dup2 */ + { AS(dup2_args), (sy_call_t *)sys_dup2, AUE_DUP2, NULL, 0, 0, 0, SY_THR_STATIC }, /* 63 = dup2 */ { 0, (sy_call_t *)linux_getppid, AUE_GETPPID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 64 = linux_getppid */ - { 0, (sy_call_t *)getpgrp, AUE_GETPGRP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 65 = getpgrp */ - { 0, (sy_call_t *)setsid, AUE_SETSID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 66 = setsid */ + { 0, (sy_call_t *)sys_getpgrp, AUE_GETPGRP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 65 = getpgrp */ + { 0, (sy_call_t *)sys_setsid, AUE_SETSID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 66 = setsid */ { AS(linux_sigaction_args), (sy_call_t *)linux_sigaction, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 67 = linux_sigaction */ { 0, (sy_call_t *)linux_sgetmask, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 68 = linux_sgetmask */ { AS(linux_ssetmask_args), (sy_call_t *)linux_ssetmask, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 69 = linux_ssetmask */ @@ -106,17 +106,17 @@ struct sysent linux_sysent[] = { { AS(linux_lstat_args), (sy_call_t *)linux_lstat, AUE_LSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 84 = linux_lstat */ { AS(linux_readlink_args), (sy_call_t *)linux_readlink, AUE_READLINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 85 = linux_readlink */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 86 = linux_uselib */ - { AS(swapon_args), (sy_call_t *)swapon, AUE_SWAPON, NULL, 0, 0, 0, SY_THR_STATIC }, /* 87 = swapon */ + { AS(swapon_args), (sy_call_t *)sys_swapon, AUE_SWAPON, NULL, 0, 0, 0, SY_THR_STATIC }, /* 87 = swapon */ { AS(linux_reboot_args), (sy_call_t *)linux_reboot, AUE_REBOOT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 88 = linux_reboot */ { AS(linux_readdir_args), (sy_call_t *)linux_readdir, AUE_GETDIRENTRIES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 89 = linux_readdir */ { AS(linux_mmap_args), (sy_call_t *)linux_mmap, AUE_MMAP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 90 = linux_mmap */ - { AS(munmap_args), (sy_call_t *)munmap, AUE_MUNMAP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 91 = munmap */ + { AS(munmap_args), (sy_call_t *)sys_munmap, AUE_MUNMAP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 91 = munmap */ { AS(linux_truncate_args), (sy_call_t *)linux_truncate, AUE_TRUNCATE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 92 = linux_truncate */ { AS(linux_ftruncate_args), (sy_call_t *)linux_ftruncate, AUE_FTRUNCATE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 93 = linux_ftruncate */ - { AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 94 = fchmod */ - { AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 95 = fchown */ + { AS(fchmod_args), (sy_call_t *)sys_fchmod, AUE_FCHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 94 = fchmod */ + { AS(fchown_args), (sy_call_t *)sys_fchown, AUE_FCHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 95 = fchown */ { AS(linux_getpriority_args), (sy_call_t *)linux_getpriority, AUE_GETPRIORITY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 96 = linux_getpriority */ - { AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 97 = setpriority */ + { AS(setpriority_args), (sy_call_t *)sys_setpriority, AUE_SETPRIORITY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 97 = setpriority */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 98 = profil */ { AS(linux_statfs_args), (sy_call_t *)linux_statfs, AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 99 = linux_statfs */ { AS(linux_fstatfs_args), (sy_call_t *)linux_fstatfs, AUE_FSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 100 = linux_fstatfs */ @@ -137,7 +137,7 @@ struct sysent linux_sysent[] = { { 0, (sy_call_t *)linux_swapoff, AUE_SWAPOFF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 115 = linux_swapoff */ { AS(linux_sysinfo_args), (sy_call_t *)linux_sysinfo, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 116 = linux_sysinfo */ { AS(linux_ipc_args), (sy_call_t *)linux_ipc, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 117 = linux_ipc */ - { AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 118 = fsync */ + { AS(fsync_args), (sy_call_t *)sys_fsync, AUE_FSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 118 = fsync */ { AS(linux_sigreturn_args), (sy_call_t *)linux_sigreturn, AUE_SIGRETURN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 119 = linux_sigreturn */ { AS(linux_clone_args), (sy_call_t *)linux_clone, AUE_RFORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 120 = linux_clone */ { AS(linux_setdomainname_args), (sy_call_t *)linux_setdomainname, AUE_SYSCTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 121 = linux_setdomainname */ @@ -151,8 +151,8 @@ struct sysent linux_sysent[] = { { 0, (sy_call_t *)linux_delete_module, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 129 = linux_delete_module */ { 0, (sy_call_t *)linux_get_kernel_syms, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 130 = linux_get_kernel_syms */ { 0, (sy_call_t *)linux_quotactl, AUE_QUOTACTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 131 = linux_quotactl */ - { AS(getpgid_args), (sy_call_t *)getpgid, AUE_GETPGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 132 = getpgid */ - { AS(fchdir_args), (sy_call_t *)fchdir, AUE_FCHDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 133 = fchdir */ + { AS(getpgid_args), (sy_call_t *)sys_getpgid, AUE_GETPGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 132 = getpgid */ + { AS(fchdir_args), (sy_call_t *)sys_fchdir, AUE_FCHDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 133 = fchdir */ { 0, (sy_call_t *)linux_bdflush, AUE_BDFLUSH, NULL, 0, 0, 0, SY_THR_STATIC }, /* 134 = linux_bdflush */ { AS(linux_sysfs_args), (sy_call_t *)linux_sysfs, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 135 = linux_sysfs */ { AS(linux_personality_args), (sy_call_t *)linux_personality, AUE_PERSONALITY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 136 = linux_personality */ @@ -162,22 +162,22 @@ struct sysent linux_sysent[] = { { AS(linux_llseek_args), (sy_call_t *)linux_llseek, AUE_LSEEK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 140 = linux_llseek */ { AS(linux_getdents_args), (sy_call_t *)linux_getdents, AUE_GETDIRENTRIES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 141 = linux_getdents */ { AS(linux_select_args), (sy_call_t *)linux_select, AUE_SELECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 142 = linux_select */ - { AS(flock_args), (sy_call_t *)flock, AUE_FLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 143 = flock */ + { AS(flock_args), (sy_call_t *)sys_flock, AUE_FLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 143 = flock */ { AS(linux_msync_args), (sy_call_t *)linux_msync, AUE_MSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 144 = linux_msync */ { AS(linux_readv_args), (sy_call_t *)linux_readv, AUE_READV, NULL, 0, 0, 0, SY_THR_STATIC }, /* 145 = linux_readv */ { AS(linux_writev_args), (sy_call_t *)linux_writev, AUE_WRITEV, NULL, 0, 0, 0, SY_THR_STATIC }, /* 146 = linux_writev */ { AS(linux_getsid_args), (sy_call_t *)linux_getsid, AUE_GETSID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 147 = linux_getsid */ { AS(linux_fdatasync_args), (sy_call_t *)linux_fdatasync, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 148 = linux_fdatasync */ { AS(linux_sysctl_args), (sy_call_t *)linux_sysctl, AUE_SYSCTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 149 = linux_sysctl */ - { AS(mlock_args), (sy_call_t *)mlock, AUE_MLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 150 = mlock */ - { AS(munlock_args), (sy_call_t *)munlock, AUE_MUNLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 151 = munlock */ - { AS(mlockall_args), (sy_call_t *)mlockall, AUE_MLOCKALL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 152 = mlockall */ - { 0, (sy_call_t *)munlockall, AUE_MUNLOCKALL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 153 = munlockall */ - { AS(sched_setparam_args), (sy_call_t *)sched_setparam, AUE_SCHED_SETPARAM, NULL, 0, 0, 0, SY_THR_STATIC }, /* 154 = sched_setparam */ - { AS(sched_getparam_args), (sy_call_t *)sched_getparam, AUE_SCHED_GETPARAM, NULL, 0, 0, 0, SY_THR_STATIC }, /* 155 = sched_getparam */ + { AS(mlock_args), (sy_call_t *)sys_mlock, AUE_MLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 150 = mlock */ + { AS(munlock_args), (sy_call_t *)sys_munlock, AUE_MUNLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 151 = munlock */ + { AS(mlockall_args), (sy_call_t *)sys_mlockall, AUE_MLOCKALL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 152 = mlockall */ + { 0, (sy_call_t *)sys_munlockall, AUE_MUNLOCKALL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 153 = munlockall */ + { AS(sched_setparam_args), (sy_call_t *)sys_sched_setparam, AUE_SCHED_SETPARAM, NULL, 0, 0, 0, SY_THR_STATIC }, /* 154 = sched_setparam */ + { AS(sched_getparam_args), (sy_call_t *)sys_sched_getparam, AUE_SCHED_GETPARAM, NULL, 0, 0, 0, SY_THR_STATIC }, /* 155 = sched_getparam */ { AS(linux_sched_setscheduler_args), (sy_call_t *)linux_sched_setscheduler, AUE_SCHED_SETSCHEDULER, NULL, 0, 0, 0, SY_THR_STATIC }, /* 156 = linux_sched_setscheduler */ { AS(linux_sched_getscheduler_args), (sy_call_t *)linux_sched_getscheduler, AUE_SCHED_GETSCHEDULER, NULL, 0, 0, 0, SY_THR_STATIC }, /* 157 = linux_sched_getscheduler */ - { 0, (sy_call_t *)sched_yield, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 158 = sched_yield */ + { 0, (sy_call_t *)sys_sched_yield, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 158 = sched_yield */ { AS(linux_sched_get_priority_max_args), (sy_call_t *)linux_sched_get_priority_max, AUE_SCHED_GET_PRIORITY_MAX, NULL, 0, 0, 0, SY_THR_STATIC }, /* 159 = linux_sched_get_priority_max */ { AS(linux_sched_get_priority_min_args), (sy_call_t *)linux_sched_get_priority_min, AUE_SCHED_GET_PRIORITY_MIN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 160 = linux_sched_get_priority_min */ { AS(linux_sched_rr_get_interval_args), (sy_call_t *)linux_sched_rr_get_interval, AUE_SCHED_RR_GET_INTERVAL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 161 = linux_sched_rr_get_interval */ @@ -187,7 +187,7 @@ struct sysent linux_sysent[] = { { AS(linux_getresuid16_args), (sy_call_t *)linux_getresuid16, AUE_GETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 165 = linux_getresuid16 */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 166 = vm86 */ { 0, (sy_call_t *)linux_query_module, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 167 = linux_query_module */ - { AS(poll_args), (sy_call_t *)poll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 168 = poll */ + { AS(poll_args), (sy_call_t *)sys_poll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 168 = poll */ { 0, (sy_call_t *)linux_nfsservctl, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 169 = linux_nfsservctl */ { AS(linux_setresgid16_args), (sy_call_t *)linux_setresgid16, AUE_SETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 170 = linux_setresgid16 */ { AS(linux_getresgid16_args), (sy_call_t *)linux_getresgid16, AUE_GETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 171 = linux_getresgid16 */ @@ -220,25 +220,25 @@ struct sysent linux_sysent[] = { { AS(linux_lchown_args), (sy_call_t *)linux_lchown, AUE_LCHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 198 = linux_lchown */ { 0, (sy_call_t *)linux_getuid, AUE_GETUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 199 = linux_getuid */ { 0, (sy_call_t *)linux_getgid, AUE_GETGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 200 = linux_getgid */ - { 0, (sy_call_t *)geteuid, AUE_GETEUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 201 = geteuid */ - { 0, (sy_call_t *)getegid, AUE_GETEGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 202 = getegid */ - { AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 203 = setreuid */ - { AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 204 = setregid */ + { 0, (sy_call_t *)sys_geteuid, AUE_GETEUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 201 = geteuid */ + { 0, (sy_call_t *)sys_getegid, AUE_GETEGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 202 = getegid */ + { AS(setreuid_args), (sy_call_t *)sys_setreuid, AUE_SETREUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 203 = setreuid */ + { AS(setregid_args), (sy_call_t *)sys_setregid, AUE_SETREGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 204 = setregid */ { AS(linux_getgroups_args), (sy_call_t *)linux_getgroups, AUE_GETGROUPS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 205 = linux_getgroups */ { AS(linux_setgroups_args), (sy_call_t *)linux_setgroups, AUE_SETGROUPS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 206 = linux_setgroups */ - { AS(fchown_args), (sy_call_t *)fchown, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 207 = fchown */ - { AS(setresuid_args), (sy_call_t *)setresuid, AUE_SETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 208 = setresuid */ - { AS(getresuid_args), (sy_call_t *)getresuid, AUE_GETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 209 = getresuid */ - { AS(setresgid_args), (sy_call_t *)setresgid, AUE_SETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 210 = setresgid */ - { AS(getresgid_args), (sy_call_t *)getresgid, AUE_GETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 211 = getresgid */ + { AS(fchown_args), (sy_call_t *)sys_fchown, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 207 = fchown */ + { AS(setresuid_args), (sy_call_t *)sys_setresuid, AUE_SETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 208 = setresuid */ + { AS(getresuid_args), (sy_call_t *)sys_getresuid, AUE_GETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 209 = getresuid */ + { AS(setresgid_args), (sy_call_t *)sys_setresgid, AUE_SETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 210 = setresgid */ + { AS(getresgid_args), (sy_call_t *)sys_getresgid, AUE_GETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 211 = getresgid */ { AS(linux_chown_args), (sy_call_t *)linux_chown, AUE_CHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 212 = linux_chown */ - { AS(setuid_args), (sy_call_t *)setuid, AUE_SETUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 213 = setuid */ - { AS(setgid_args), (sy_call_t *)setgid, AUE_SETGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 214 = setgid */ + { AS(setuid_args), (sy_call_t *)sys_setuid, AUE_SETUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 213 = setuid */ + { AS(setgid_args), (sy_call_t *)sys_setgid, AUE_SETGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 214 = setgid */ { AS(linux_setfsuid_args), (sy_call_t *)linux_setfsuid, AUE_SETFSUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 215 = linux_setfsuid */ { AS(linux_setfsgid_args), (sy_call_t *)linux_setfsgid, AUE_SETFSGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 216 = linux_setfsgid */ { AS(linux_pivot_root_args), (sy_call_t *)linux_pivot_root, AUE_PIVOT_ROOT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 217 = linux_pivot_root */ { AS(linux_mincore_args), (sy_call_t *)linux_mincore, AUE_MINCORE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 218 = linux_mincore */ - { AS(madvise_args), (sy_call_t *)madvise, AUE_MADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 219 = madvise */ + { AS(madvise_args), (sy_call_t *)sys_madvise, AUE_MADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 219 = madvise */ { AS(linux_getdents64_args), (sy_call_t *)linux_getdents64, AUE_GETDIRENTRIES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 220 = linux_getdents64 */ { AS(linux_fcntl64_args), (sy_call_t *)linux_fcntl64, AUE_FCNTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 221 = linux_fcntl64 */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 222 = */ Modified: head/sys/compat/freebsd32/freebsd32_proto.h ============================================================================== --- head/sys/compat/freebsd32/freebsd32_proto.h Fri Sep 16 13:58:51 2011 (r225617) +++ head/sys/compat/freebsd32/freebsd32_proto.h Fri Sep 16 14:04:14 2011 (r225618) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 224066 2011-07-15 18:26:19Z jonathan */ #ifndef _FREEBSD32_SYSPROTO_H_ Modified: head/sys/compat/freebsd32/freebsd32_syscall.h ============================================================================== --- head/sys/compat/freebsd32/freebsd32_syscall.h Fri Sep 16 13:58:51 2011 (r225617) +++ head/sys/compat/freebsd32/freebsd32_syscall.h Fri Sep 16 14:04:14 2011 (r225618) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 224066 2011-07-15 18:26:19Z jonathan */ #define FREEBSD32_SYS_syscall 0 Modified: head/sys/compat/freebsd32/freebsd32_syscalls.c ============================================================================== --- head/sys/compat/freebsd32/freebsd32_syscalls.c Fri Sep 16 13:58:51 2011 (r225617) +++ head/sys/compat/freebsd32/freebsd32_syscalls.c Fri Sep 16 14:04:14 2011 (r225618) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 224066 2011-07-15 18:26:19Z jonathan */ const char *freebsd32_syscallnames[] = { Modified: head/sys/compat/freebsd32/freebsd32_sysent.c ============================================================================== --- head/sys/compat/freebsd32/freebsd32_sysent.c Fri Sep 16 13:58:51 2011 (r225617) +++ head/sys/compat/freebsd32/freebsd32_sysent.c Fri Sep 16 14:04:14 2011 (r225618) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 224066 2011-07-15 18:26:19Z jonathan */ #include "opt_compat.h" @@ -48,112 +48,112 @@ struct sysent freebsd32_sysent[] = { #define PAD64_REQUIRED #endif { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 0 = syscall */ - { AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_EXIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 1 = exit */ - { 0, (sy_call_t *)fork, AUE_FORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 2 = fork */ - { AS(read_args), (sy_call_t *)read, AUE_READ, NULL, 0, 0, 0, SY_THR_STATIC }, /* 3 = read */ - { AS(write_args), (sy_call_t *)write, AUE_WRITE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 4 = write */ - { AS(open_args), (sy_call_t *)open, AUE_OPEN_RWTC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 5 = open */ - { AS(close_args), (sy_call_t *)close, AUE_CLOSE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 6 = close */ + { AS(sys_exit_args), (sy_call_t *)sys_sys_exit, AUE_EXIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 1 = exit */ + { 0, (sy_call_t *)sys_fork, AUE_FORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 2 = fork */ + { AS(read_args), (sy_call_t *)sys_read, AUE_READ, NULL, 0, 0, 0, SY_THR_STATIC }, /* 3 = read */ + { AS(write_args), (sy_call_t *)sys_write, AUE_WRITE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 4 = write */ + { AS(open_args), (sy_call_t *)sys_open, AUE_OPEN_RWTC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 5 = open */ + { AS(close_args), (sy_call_t *)sys_close, AUE_CLOSE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 6 = close */ { AS(freebsd32_wait4_args), (sy_call_t *)freebsd32_wait4, AUE_WAIT4, NULL, 0, 0, 0, SY_THR_STATIC }, /* 7 = freebsd32_wait4 */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 8 = obsolete old creat */ - { AS(link_args), (sy_call_t *)link, AUE_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 9 = link */ - { AS(unlink_args), (sy_call_t *)unlink, AUE_UNLINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 10 = unlink */ + { AS(link_args), (sy_call_t *)sys_link, AUE_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 9 = link */ + { AS(unlink_args), (sy_call_t *)sys_unlink, AUE_UNLINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 10 = unlink */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 11 = obsolete execv */ - { AS(chdir_args), (sy_call_t *)chdir, AUE_CHDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 12 = chdir */ - { AS(fchdir_args), (sy_call_t *)fchdir, AUE_FCHDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 13 = fchdir */ - { AS(mknod_args), (sy_call_t *)mknod, AUE_MKNOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 14 = mknod */ - { AS(chmod_args), (sy_call_t *)chmod, AUE_CHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 15 = chmod */ - { AS(chown_args), (sy_call_t *)chown, AUE_CHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 16 = chown */ - { AS(obreak_args), (sy_call_t *)obreak, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 17 = break */ + { AS(chdir_args), (sy_call_t *)sys_chdir, AUE_CHDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 12 = chdir */ + { AS(fchdir_args), (sy_call_t *)sys_fchdir, AUE_FCHDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 13 = fchdir */ + { AS(mknod_args), (sy_call_t *)sys_mknod, AUE_MKNOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 14 = mknod */ + { AS(chmod_args), (sy_call_t *)sys_chmod, AUE_CHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 15 = chmod */ + { AS(chown_args), (sy_call_t *)sys_chown, AUE_CHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 16 = chown */ + { AS(obreak_args), (sy_call_t *)sys_obreak, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 17 = break */ { compat4(AS(freebsd4_freebsd32_getfsstat_args),freebsd32_getfsstat), AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 18 = freebsd4 freebsd32_getfsstat */ { compat(AS(ofreebsd32_lseek_args),freebsd32_lseek), AUE_LSEEK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 19 = old freebsd32_lseek */ - { 0, (sy_call_t *)getpid, AUE_GETPID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 20 = getpid */ - { AS(mount_args), (sy_call_t *)mount, AUE_MOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 21 = mount */ - { AS(unmount_args), (sy_call_t *)unmount, AUE_UMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 22 = unmount */ - { AS(setuid_args), (sy_call_t *)setuid, AUE_SETUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 23 = setuid */ - { 0, (sy_call_t *)getuid, AUE_GETUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 24 = getuid */ - { 0, (sy_call_t *)geteuid, AUE_GETEUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 25 = geteuid */ - { AS(ptrace_args), (sy_call_t *)ptrace, AUE_PTRACE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 26 = ptrace */ + { 0, (sy_call_t *)sys_getpid, AUE_GETPID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 20 = getpid */ + { AS(mount_args), (sy_call_t *)sys_mount, AUE_MOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 21 = mount */ + { AS(unmount_args), (sy_call_t *)sys_unmount, AUE_UMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 22 = unmount */ + { AS(setuid_args), (sy_call_t *)sys_setuid, AUE_SETUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 23 = setuid */ + { 0, (sy_call_t *)sys_getuid, AUE_GETUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 24 = getuid */ + { 0, (sy_call_t *)sys_geteuid, AUE_GETEUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 25 = geteuid */ + { AS(ptrace_args), (sy_call_t *)sys_ptrace, AUE_PTRACE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 26 = ptrace */ { AS(freebsd32_recvmsg_args), (sy_call_t *)freebsd32_recvmsg, AUE_RECVMSG, NULL, 0, 0, 0, SY_THR_STATIC }, /* 27 = freebsd32_recvmsg */ { AS(freebsd32_sendmsg_args), (sy_call_t *)freebsd32_sendmsg, AUE_SENDMSG, NULL, 0, 0, 0, SY_THR_STATIC }, /* 28 = freebsd32_sendmsg */ { AS(freebsd32_recvfrom_args), (sy_call_t *)freebsd32_recvfrom, AUE_RECVFROM, NULL, 0, 0, 0, SY_THR_STATIC }, /* 29 = freebsd32_recvfrom */ - { AS(accept_args), (sy_call_t *)accept, AUE_ACCEPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 30 = accept */ - { AS(getpeername_args), (sy_call_t *)getpeername, AUE_GETPEERNAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 31 = getpeername */ - { AS(getsockname_args), (sy_call_t *)getsockname, AUE_GETSOCKNAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 32 = getsockname */ - { AS(access_args), (sy_call_t *)access, AUE_ACCESS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 33 = access */ - { AS(chflags_args), (sy_call_t *)chflags, AUE_CHFLAGS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 34 = chflags */ - { AS(fchflags_args), (sy_call_t *)fchflags, AUE_FCHFLAGS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 35 = fchflags */ - { 0, (sy_call_t *)sync, AUE_SYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 36 = sync */ - { AS(kill_args), (sy_call_t *)kill, AUE_KILL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 37 = kill */ + { AS(accept_args), (sy_call_t *)sys_accept, AUE_ACCEPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 30 = accept */ + { AS(getpeername_args), (sy_call_t *)sys_getpeername, AUE_GETPEERNAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 31 = getpeername */ + { AS(getsockname_args), (sy_call_t *)sys_getsockname, AUE_GETSOCKNAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 32 = getsockname */ + { AS(access_args), (sy_call_t *)sys_access, AUE_ACCESS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 33 = access */ + { AS(chflags_args), (sy_call_t *)sys_chflags, AUE_CHFLAGS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 34 = chflags */ + { AS(fchflags_args), (sy_call_t *)sys_fchflags, AUE_FCHFLAGS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 35 = fchflags */ + { 0, (sy_call_t *)sys_sync, AUE_SYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 36 = sync */ + { AS(kill_args), (sy_call_t *)sys_kill, AUE_KILL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 37 = kill */ { compat(AS(ofreebsd32_stat_args),freebsd32_stat), AUE_STAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 38 = old freebsd32_stat */ - { 0, (sy_call_t *)getppid, AUE_GETPPID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 39 = getppid */ + { 0, (sy_call_t *)sys_getppid, AUE_GETPPID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 39 = getppid */ { compat(AS(ofreebsd32_lstat_args),freebsd32_lstat), AUE_LSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 40 = old freebsd32_lstat */ - { AS(dup_args), (sy_call_t *)dup, AUE_DUP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 41 = dup */ - { 0, (sy_call_t *)pipe, AUE_PIPE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 42 = pipe */ - { 0, (sy_call_t *)getegid, AUE_GETEGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 43 = getegid */ - { AS(profil_args), (sy_call_t *)profil, AUE_PROFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 44 = profil */ - { AS(ktrace_args), (sy_call_t *)ktrace, AUE_KTRACE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 45 = ktrace */ + { AS(dup_args), (sy_call_t *)sys_dup, AUE_DUP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 41 = dup */ + { 0, (sy_call_t *)sys_pipe, AUE_PIPE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 42 = pipe */ + { 0, (sy_call_t *)sys_getegid, AUE_GETEGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 43 = getegid */ + { AS(profil_args), (sy_call_t *)sys_profil, AUE_PROFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 44 = profil */ + { AS(ktrace_args), (sy_call_t *)sys_ktrace, AUE_KTRACE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 45 = ktrace */ { compat(AS(ofreebsd32_sigaction_args),freebsd32_sigaction), AUE_SIGACTION, NULL, 0, 0, 0, SY_THR_STATIC }, /* 46 = old freebsd32_sigaction */ - { 0, (sy_call_t *)getgid, AUE_GETGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 47 = getgid */ + { 0, (sy_call_t *)sys_getgid, AUE_GETGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 47 = getgid */ { compat(AS(ofreebsd32_sigprocmask_args),freebsd32_sigprocmask), AUE_SIGPROCMASK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 48 = old freebsd32_sigprocmask */ - { AS(getlogin_args), (sy_call_t *)getlogin, AUE_GETLOGIN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 49 = getlogin */ - { AS(setlogin_args), (sy_call_t *)setlogin, AUE_SETLOGIN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 50 = setlogin */ - { AS(acct_args), (sy_call_t *)acct, AUE_ACCT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 51 = acct */ + { AS(getlogin_args), (sy_call_t *)sys_getlogin, AUE_GETLOGIN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 49 = getlogin */ + { AS(setlogin_args), (sy_call_t *)sys_setlogin, AUE_SETLOGIN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 50 = setlogin */ + { AS(acct_args), (sy_call_t *)sys_acct, AUE_ACCT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 51 = acct */ { compat(0,freebsd32_sigpending), AUE_SIGPENDING, NULL, 0, 0, 0, SY_THR_STATIC }, /* 52 = old freebsd32_sigpending */ { AS(freebsd32_sigaltstack_args), (sy_call_t *)freebsd32_sigaltstack, AUE_SIGALTSTACK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 53 = freebsd32_sigaltstack */ { AS(freebsd32_ioctl_args), (sy_call_t *)freebsd32_ioctl, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 54 = freebsd32_ioctl */ - { AS(reboot_args), (sy_call_t *)reboot, AUE_REBOOT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 55 = reboot */ - { AS(revoke_args), (sy_call_t *)revoke, AUE_REVOKE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 56 = revoke */ - { AS(symlink_args), (sy_call_t *)symlink, AUE_SYMLINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 57 = symlink */ - { AS(readlink_args), (sy_call_t *)readlink, AUE_READLINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 58 = readlink */ + { AS(reboot_args), (sy_call_t *)sys_reboot, AUE_REBOOT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 55 = reboot */ + { AS(revoke_args), (sy_call_t *)sys_revoke, AUE_REVOKE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 56 = revoke */ + { AS(symlink_args), (sy_call_t *)sys_symlink, AUE_SYMLINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 57 = symlink */ + { AS(readlink_args), (sy_call_t *)sys_readlink, AUE_READLINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 58 = readlink */ { AS(freebsd32_execve_args), (sy_call_t *)freebsd32_execve, AUE_EXECVE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 59 = freebsd32_execve */ - { AS(umask_args), (sy_call_t *)umask, AUE_UMASK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 60 = umask */ - { AS(chroot_args), (sy_call_t *)chroot, AUE_CHROOT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 61 = chroot */ + { AS(umask_args), (sy_call_t *)sys_umask, AUE_UMASK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 60 = umask */ + { AS(chroot_args), (sy_call_t *)sys_chroot, AUE_CHROOT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 61 = chroot */ { compat(AS(ofreebsd32_fstat_args),freebsd32_fstat), AUE_FSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 62 = old freebsd32_fstat */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 63 = obsolete ogetkerninfo */ { compat(AS(ofreebsd32_getpagesize_args),freebsd32_getpagesize), AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 64 = old freebsd32_getpagesize */ - { AS(msync_args), (sy_call_t *)msync, AUE_MSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 65 = msync */ - { 0, (sy_call_t *)vfork, AUE_VFORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 66 = vfork */ + { AS(msync_args), (sy_call_t *)sys_msync, AUE_MSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 65 = msync */ + { 0, (sy_call_t *)sys_vfork, AUE_VFORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 66 = vfork */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 67 = obsolete vread */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 68 = obsolete vwrite */ - { AS(sbrk_args), (sy_call_t *)sbrk, AUE_SBRK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 69 = sbrk */ - { AS(sstk_args), (sy_call_t *)sstk, AUE_SSTK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 70 = sstk */ + { AS(sbrk_args), (sy_call_t *)sys_sbrk, AUE_SBRK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 69 = sbrk */ + { AS(sstk_args), (sy_call_t *)sys_sstk, AUE_SSTK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 70 = sstk */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 71 = obsolete ommap */ - { AS(ovadvise_args), (sy_call_t *)ovadvise, AUE_O_VADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 72 = vadvise */ - { AS(munmap_args), (sy_call_t *)munmap, AUE_MUNMAP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 73 = munmap */ - { AS(mprotect_args), (sy_call_t *)mprotect, AUE_MPROTECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 74 = mprotect */ - { AS(madvise_args), (sy_call_t *)madvise, AUE_MADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 75 = madvise */ + { AS(ovadvise_args), (sy_call_t *)sys_ovadvise, AUE_O_VADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 72 = vadvise */ + { AS(munmap_args), (sy_call_t *)sys_munmap, AUE_MUNMAP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 73 = munmap */ + { AS(mprotect_args), (sy_call_t *)sys_mprotect, AUE_MPROTECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 74 = mprotect */ + { AS(madvise_args), (sy_call_t *)sys_madvise, AUE_MADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 75 = madvise */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 76 = obsolete vhangup */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 77 = obsolete vlimit */ - { AS(mincore_args), (sy_call_t *)mincore, AUE_MINCORE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 78 = mincore */ - { AS(getgroups_args), (sy_call_t *)getgroups, AUE_GETGROUPS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 79 = getgroups */ - { AS(setgroups_args), (sy_call_t *)setgroups, AUE_SETGROUPS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 80 = setgroups */ - { 0, (sy_call_t *)getpgrp, AUE_GETPGRP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 81 = getpgrp */ - { AS(setpgid_args), (sy_call_t *)setpgid, AUE_SETPGRP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 82 = setpgid */ + { AS(mincore_args), (sy_call_t *)sys_mincore, AUE_MINCORE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 78 = mincore */ + { AS(getgroups_args), (sy_call_t *)sys_getgroups, AUE_GETGROUPS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 79 = getgroups */ + { AS(setgroups_args), (sy_call_t *)sys_setgroups, AUE_SETGROUPS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 80 = setgroups */ + { 0, (sy_call_t *)sys_getpgrp, AUE_GETPGRP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 81 = getpgrp */ + { AS(setpgid_args), (sy_call_t *)sys_setpgid, AUE_SETPGRP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 82 = setpgid */ { AS(freebsd32_setitimer_args), (sy_call_t *)freebsd32_setitimer, AUE_SETITIMER, NULL, 0, 0, 0, SY_THR_STATIC }, /* 83 = freebsd32_setitimer */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 84 = obsolete owait */ - { AS(swapon_args), (sy_call_t *)swapon, AUE_SWAPON, NULL, 0, 0, 0, SY_THR_STATIC }, /* 85 = swapon */ + { AS(swapon_args), (sy_call_t *)sys_swapon, AUE_SWAPON, NULL, 0, 0, 0, SY_THR_STATIC }, /* 85 = swapon */ { AS(freebsd32_getitimer_args), (sy_call_t *)freebsd32_getitimer, AUE_GETITIMER, NULL, 0, 0, 0, SY_THR_STATIC }, /* 86 = freebsd32_getitimer */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 87 = obsolete ogethostname */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 88 = obsolete osethostname */ - { 0, (sy_call_t *)getdtablesize, AUE_GETDTABLESIZE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 89 = getdtablesize */ - { AS(dup2_args), (sy_call_t *)dup2, AUE_DUP2, NULL, 0, 0, 0, SY_THR_STATIC }, /* 90 = dup2 */ + { 0, (sy_call_t *)sys_getdtablesize, AUE_GETDTABLESIZE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 89 = getdtablesize */ + { AS(dup2_args), (sy_call_t *)sys_dup2, AUE_DUP2, NULL, 0, 0, 0, SY_THR_STATIC }, /* 90 = dup2 */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 91 = getdopt */ - { AS(fcntl_args), (sy_call_t *)fcntl, AUE_FCNTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 92 = fcntl */ + { AS(fcntl_args), (sy_call_t *)sys_fcntl, AUE_FCNTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 92 = fcntl */ { AS(freebsd32_select_args), (sy_call_t *)freebsd32_select, AUE_SELECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 93 = freebsd32_select */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 94 = setdopt */ - { AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 95 = fsync */ - { AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 96 = setpriority */ - { AS(socket_args), (sy_call_t *)socket, AUE_SOCKET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 97 = socket */ - { AS(connect_args), (sy_call_t *)connect, AUE_CONNECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 98 = connect */ + { AS(fsync_args), (sy_call_t *)sys_fsync, AUE_FSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 95 = fsync */ + { AS(setpriority_args), (sy_call_t *)sys_setpriority, AUE_SETPRIORITY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 96 = setpriority */ + { AS(socket_args), (sy_call_t *)sys_socket, AUE_SOCKET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 97 = socket */ + { AS(connect_args), (sy_call_t *)sys_connect, AUE_CONNECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 98 = connect */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 99 = obsolete oaccept */ - { AS(getpriority_args), (sy_call_t *)getpriority, AUE_GETPRIORITY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 100 = getpriority */ + { AS(getpriority_args), (sy_call_t *)sys_getpriority, AUE_GETPRIORITY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 100 = getpriority */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 101 = obsolete osend */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 102 = obsolete orecv */ { compat(AS(ofreebsd32_sigreturn_args),freebsd32_sigreturn), AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 103 = old freebsd32_sigreturn */ - { AS(bind_args), (sy_call_t *)bind, AUE_BIND, NULL, 0, 0, 0, SY_THR_STATIC }, /* 104 = bind */ - { AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_SETSOCKOPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 105 = setsockopt */ - { AS(listen_args), (sy_call_t *)listen, AUE_LISTEN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 106 = listen */ + { AS(bind_args), (sy_call_t *)sys_bind, AUE_BIND, NULL, 0, 0, 0, SY_THR_STATIC }, /* 104 = bind */ + { AS(setsockopt_args), (sy_call_t *)sys_setsockopt, AUE_SETSOCKOPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 105 = setsockopt */ + { AS(listen_args), (sy_call_t *)sys_listen, AUE_LISTEN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 106 = listen */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 107 = obsolete vtimes */ { compat(AS(ofreebsd32_sigvec_args),freebsd32_sigvec), AUE_O_SIGVEC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 108 = old freebsd32_sigvec */ { compat(AS(ofreebsd32_sigblock_args),freebsd32_sigblock), AUE_O_SIGBLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 109 = old freebsd32_sigblock */ @@ -165,26 +165,26 @@ struct sysent freebsd32_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 115 = obsolete vtrace */ { AS(freebsd32_gettimeofday_args), (sy_call_t *)freebsd32_gettimeofday, AUE_GETTIMEOFDAY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 116 = freebsd32_gettimeofday */ { AS(freebsd32_getrusage_args), (sy_call_t *)freebsd32_getrusage, AUE_GETRUSAGE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 117 = freebsd32_getrusage */ - { AS(getsockopt_args), (sy_call_t *)getsockopt, AUE_GETSOCKOPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 118 = getsockopt */ + { AS(getsockopt_args), (sy_call_t *)sys_getsockopt, AUE_GETSOCKOPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 118 = getsockopt */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 119 = resuba */ { AS(freebsd32_readv_args), (sy_call_t *)freebsd32_readv, AUE_READV, NULL, 0, 0, 0, SY_THR_STATIC }, /* 120 = freebsd32_readv */ { AS(freebsd32_writev_args), (sy_call_t *)freebsd32_writev, AUE_WRITEV, NULL, 0, 0, 0, SY_THR_STATIC }, /* 121 = freebsd32_writev */ { AS(freebsd32_settimeofday_args), (sy_call_t *)freebsd32_settimeofday, AUE_SETTIMEOFDAY, NULL, 0, 0, 0, SY_THR_STATIC }, /* 122 = freebsd32_settimeofday */ - { AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 123 = fchown */ - { AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 124 = fchmod */ + { AS(fchown_args), (sy_call_t *)sys_fchown, AUE_FCHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 123 = fchown */ + { AS(fchmod_args), (sy_call_t *)sys_fchmod, AUE_FCHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 124 = fchmod */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 125 = obsolete orecvfrom */ - { AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 126 = setreuid */ - { AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 127 = setregid */ - { AS(rename_args), (sy_call_t *)rename, AUE_RENAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 128 = rename */ + { AS(setreuid_args), (sy_call_t *)sys_setreuid, AUE_SETREUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 126 = setreuid */ + { AS(setregid_args), (sy_call_t *)sys_setregid, AUE_SETREGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 127 = setregid */ + { AS(rename_args), (sy_call_t *)sys_rename, AUE_RENAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 128 = rename */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 129 = obsolete otruncate */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 130 = obsolete ftruncate */ - { AS(flock_args), (sy_call_t *)flock, AUE_FLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 131 = flock */ - { AS(mkfifo_args), (sy_call_t *)mkfifo, AUE_MKFIFO, NULL, 0, 0, 0, SY_THR_STATIC }, /* 132 = mkfifo */ - { AS(sendto_args), (sy_call_t *)sendto, AUE_SENDTO, NULL, 0, 0, 0, SY_THR_STATIC }, /* 133 = sendto */ - { AS(shutdown_args), (sy_call_t *)shutdown, AUE_SHUTDOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 134 = shutdown */ - { AS(socketpair_args), (sy_call_t *)socketpair, AUE_SOCKETPAIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 135 = socketpair */ - { AS(mkdir_args), (sy_call_t *)mkdir, AUE_MKDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 136 = mkdir */ - { AS(rmdir_args), (sy_call_t *)rmdir, AUE_RMDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 137 = rmdir */ + { AS(flock_args), (sy_call_t *)sys_flock, AUE_FLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 131 = flock */ + { AS(mkfifo_args), (sy_call_t *)sys_mkfifo, AUE_MKFIFO, NULL, 0, 0, 0, SY_THR_STATIC }, /* 132 = mkfifo */ + { AS(sendto_args), (sy_call_t *)sys_sendto, AUE_SENDTO, NULL, 0, 0, 0, SY_THR_STATIC }, /* 133 = sendto */ + { AS(shutdown_args), (sy_call_t *)sys_shutdown, AUE_SHUTDOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 134 = shutdown */ + { AS(socketpair_args), (sy_call_t *)sys_socketpair, AUE_SOCKETPAIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 135 = socketpair */ + { AS(mkdir_args), (sy_call_t *)sys_mkdir, AUE_MKDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 136 = mkdir */ + { AS(rmdir_args), (sy_call_t *)sys_rmdir, AUE_RMDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 137 = rmdir */ { AS(freebsd32_utimes_args), (sy_call_t *)freebsd32_utimes, AUE_UTIMES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 138 = freebsd32_utimes */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 139 = obsolete 4.2 sigreturn */ { AS(freebsd32_adjtime_args), (sy_call_t *)freebsd32_adjtime, AUE_ADJTIME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 140 = freebsd32_adjtime */ @@ -194,8 +194,8 @@ struct sysent freebsd32_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 144 = obsolete getrlimit */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 145 = obsolete setrlimit */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 146 = obsolete killpg */ - { 0, (sy_call_t *)setsid, AUE_SETSID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 147 = setsid */ - { AS(quotactl_args), (sy_call_t *)quotactl, AUE_QUOTACTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 148 = quotactl */ + { 0, (sy_call_t *)sys_setsid, AUE_SETSID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 147 = setsid */ + { AS(quotactl_args), (sy_call_t *)sys_quotactl, AUE_QUOTACTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 148 = quotactl */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 149 = obsolete oquota */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 150 = obsolete ogetsockname */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 151 = sem_lock */ @@ -208,12 +208,12 @@ struct sysent freebsd32_sysent[] = { { compat4(AS(freebsd4_freebsd32_fstatfs_args),freebsd32_fstatfs), AUE_FSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 158 = freebsd4 freebsd32_fstatfs */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 159 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 160 = lgetfh */ - { AS(getfh_args), (sy_call_t *)getfh, AUE_NFS_GETFH, NULL, 0, 0, 0, SY_THR_STATIC }, /* 161 = getfh */ + { AS(getfh_args), (sy_call_t *)sys_getfh, AUE_NFS_GETFH, NULL, 0, 0, 0, SY_THR_STATIC }, /* 161 = getfh */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 162 = obsolete getdomainname */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 163 = obsolete setdomainname */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 164 = obsolete uname */ { AS(freebsd32_sysarch_args), (sy_call_t *)freebsd32_sysarch, AUE_SYSARCH, NULL, 0, 0, 0, SY_THR_STATIC }, /* 165 = freebsd32_sysarch */ - { AS(rtprio_args), (sy_call_t *)rtprio, AUE_RTPRIO, NULL, 0, 0, 0, SY_THR_STATIC }, /* 166 = rtprio */ + { AS(rtprio_args), (sy_call_t *)sys_rtprio, AUE_RTPRIO, NULL, 0, 0, 0, SY_THR_STATIC }, /* 166 = rtprio */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 167 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 168 = nosys */ { AS(freebsd32_semsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 169 = freebsd32_semsys */ @@ -223,14 +223,14 @@ struct sysent freebsd32_sysent[] = { { compat6(AS(freebsd6_freebsd32_pread_args),freebsd32_pread), AUE_PREAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 173 = freebsd6 freebsd32_pread */ { compat6(AS(freebsd6_freebsd32_pwrite_args),freebsd32_pwrite), AUE_PWRITE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 174 = freebsd6 freebsd32_pwrite */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 175 = nosys */ - { AS(ntp_adjtime_args), (sy_call_t *)ntp_adjtime, AUE_NTP_ADJTIME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 176 = ntp_adjtime */ + { AS(ntp_adjtime_args), (sy_call_t *)sys_ntp_adjtime, AUE_NTP_ADJTIME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 176 = ntp_adjtime */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 177 = sfork */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 178 = getdescriptor */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 179 = setdescriptor */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 180 = nosys */ - { AS(setgid_args), (sy_call_t *)setgid, AUE_SETGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 181 = setgid */ - { AS(setegid_args), (sy_call_t *)setegid, AUE_SETEGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 182 = setegid */ - { AS(seteuid_args), (sy_call_t *)seteuid, AUE_SETEUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 183 = seteuid */ + { AS(setgid_args), (sy_call_t *)sys_setgid, AUE_SETGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 181 = setgid */ + { AS(setegid_args), (sy_call_t *)sys_setegid, AUE_SETEGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 182 = setegid */ + { AS(seteuid_args), (sy_call_t *)sys_seteuid, AUE_SETEUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 183 = seteuid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 184 = lfs_bmapv */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 185 = lfs_markv */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 186 = lfs_segclean */ @@ -238,11 +238,11 @@ struct sysent freebsd32_sysent[] = { { AS(freebsd32_stat_args), (sy_call_t *)freebsd32_stat, AUE_STAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 188 = freebsd32_stat */ { AS(freebsd32_fstat_args), (sy_call_t *)freebsd32_fstat, AUE_FSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 189 = freebsd32_fstat */ { AS(freebsd32_lstat_args), (sy_call_t *)freebsd32_lstat, AUE_LSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 190 = freebsd32_lstat */ - { AS(pathconf_args), (sy_call_t *)pathconf, AUE_PATHCONF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 191 = pathconf */ - { AS(fpathconf_args), (sy_call_t *)fpathconf, AUE_FPATHCONF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 192 = fpathconf */ + { AS(pathconf_args), (sy_call_t *)sys_pathconf, AUE_PATHCONF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 191 = pathconf */ + { AS(fpathconf_args), (sy_call_t *)sys_fpathconf, AUE_FPATHCONF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 192 = fpathconf */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 193 = nosys */ - { AS(__getrlimit_args), (sy_call_t *)getrlimit, AUE_GETRLIMIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 194 = getrlimit */ - { AS(__setrlimit_args), (sy_call_t *)setrlimit, AUE_SETRLIMIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 195 = setrlimit */ + { AS(__getrlimit_args), (sy_call_t *)sys_getrlimit, AUE_GETRLIMIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 194 = getrlimit */ + { AS(__setrlimit_args), (sy_call_t *)sys_setrlimit, AUE_SETRLIMIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 195 = setrlimit */ { AS(freebsd32_getdirentries_args), (sy_call_t *)freebsd32_getdirentries, AUE_GETDIRENTRIES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 196 = freebsd32_getdirentries */ { compat6(AS(freebsd6_freebsd32_mmap_args),freebsd32_mmap), AUE_MMAP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 197 = freebsd6 freebsd32_mmap */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 198 = __syscall */ @@ -250,13 +250,13 @@ struct sysent freebsd32_sysent[] = { { compat6(AS(freebsd6_freebsd32_truncate_args),freebsd32_truncate), AUE_TRUNCATE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 200 = freebsd6 freebsd32_truncate */ { compat6(AS(freebsd6_freebsd32_ftruncate_args),freebsd32_ftruncate), AUE_FTRUNCATE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 201 = freebsd6 freebsd32_ftruncate */ { AS(freebsd32_sysctl_args), (sy_call_t *)freebsd32_sysctl, AUE_SYSCTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 202 = freebsd32_sysctl */ - { AS(mlock_args), (sy_call_t *)mlock, AUE_MLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 203 = mlock */ - { AS(munlock_args), (sy_call_t *)munlock, AUE_MUNLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 204 = munlock */ - { AS(undelete_args), (sy_call_t *)undelete, AUE_UNDELETE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 205 = undelete */ + { AS(mlock_args), (sy_call_t *)sys_mlock, AUE_MLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 203 = mlock */ + { AS(munlock_args), (sy_call_t *)sys_munlock, AUE_MUNLOCK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 204 = munlock */ + { AS(undelete_args), (sy_call_t *)sys_undelete, AUE_UNDELETE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 205 = undelete */ { AS(freebsd32_futimes_args), (sy_call_t *)freebsd32_futimes, AUE_FUTIMES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 206 = freebsd32_futimes */ - { AS(getpgid_args), (sy_call_t *)getpgid, AUE_GETPGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 207 = getpgid */ + { AS(getpgid_args), (sy_call_t *)sys_getpgid, AUE_GETPGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 207 = getpgid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 208 = newreboot */ - { AS(poll_args), (sy_call_t *)poll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 209 = poll */ + { AS(poll_args), (sy_call_t *)sys_poll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 209 = poll */ { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 210 = lkmnosys */ { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 211 = lkmnosys */ { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 212 = lkmnosys */ @@ -297,11 +297,11 @@ struct sysent freebsd32_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 247 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 248 = ntp_gettime */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 249 = nosys */ - { AS(minherit_args), (sy_call_t *)minherit, AUE_MINHERIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 250 = minherit */ - { AS(rfork_args), (sy_call_t *)rfork, AUE_RFORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 251 = rfork */ - { AS(openbsd_poll_args), (sy_call_t *)openbsd_poll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 252 = openbsd_poll */ - { 0, (sy_call_t *)issetugid, AUE_ISSETUGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 253 = issetugid */ - { AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 254 = lchown */ + { AS(minherit_args), (sy_call_t *)sys_minherit, AUE_MINHERIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 250 = minherit */ + { AS(rfork_args), (sy_call_t *)sys_rfork, AUE_RFORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 251 = rfork */ + { AS(openbsd_poll_args), (sy_call_t *)sys_openbsd_poll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 252 = openbsd_poll */ + { 0, (sy_call_t *)sys_issetugid, AUE_ISSETUGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 253 = issetugid */ + { AS(lchown_args), (sy_call_t *)sys_lchown, AUE_LCHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 254 = lchown */ { AS(freebsd32_aio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 255 = freebsd32_aio_read */ { AS(freebsd32_aio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 256 = freebsd32_aio_write */ { AS(freebsd32_lio_listio_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 257 = freebsd32_lio_listio */ @@ -319,15 +319,15 @@ struct sysent freebsd32_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 269 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 270 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 271 = nosys */ - { AS(getdents_args), (sy_call_t *)getdents, AUE_O_GETDENTS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 272 = getdents */ + { AS(getdents_args), (sy_call_t *)sys_getdents, AUE_O_GETDENTS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 272 = getdents */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 273 = nosys */ - { AS(lchmod_args), (sy_call_t *)lchmod, AUE_LCHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 274 = lchmod */ - { AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 275 = netbsd_lchown */ + { AS(lchmod_args), (sy_call_t *)sys_lchmod, AUE_LCHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 274 = lchmod */ + { AS(lchown_args), (sy_call_t *)sys_lchown, AUE_LCHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 275 = netbsd_lchown */ { AS(freebsd32_lutimes_args), (sy_call_t *)freebsd32_lutimes, AUE_LUTIMES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 276 = freebsd32_lutimes */ - { AS(msync_args), (sy_call_t *)msync, AUE_MSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 277 = netbsd_msync */ - { AS(nstat_args), (sy_call_t *)nstat, AUE_STAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 278 = nstat */ - { AS(nfstat_args), (sy_call_t *)nfstat, AUE_FSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 279 = nfstat */ - { AS(nlstat_args), (sy_call_t *)nlstat, AUE_LSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 280 = nlstat */ + { AS(msync_args), (sy_call_t *)sys_msync, AUE_MSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 277 = netbsd_msync */ + { AS(nstat_args), (sy_call_t *)sys_nstat, AUE_STAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 278 = nstat */ + { AS(nfstat_args), (sy_call_t *)sys_nfstat, AUE_FSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 279 = nfstat */ + { AS(nlstat_args), (sy_call_t *)sys_nlstat, AUE_LSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 280 = nlstat */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 281 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 282 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 283 = nosys */ @@ -345,21 +345,21 @@ struct sysent freebsd32_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 295 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 296 = nosys */ { compat4(AS(freebsd4_freebsd32_fhstatfs_args),freebsd32_fhstatfs), AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 297 = freebsd4 freebsd32_fhstatfs */ - { AS(fhopen_args), (sy_call_t *)fhopen, AUE_FHOPEN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 298 = fhopen */ - { AS(fhstat_args), (sy_call_t *)fhstat, AUE_FHSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 299 = fhstat */ - { AS(modnext_args), (sy_call_t *)modnext, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 300 = modnext */ + { AS(fhopen_args), (sy_call_t *)sys_fhopen, AUE_FHOPEN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 298 = fhopen */ + { AS(fhstat_args), (sy_call_t *)sys_fhstat, AUE_FHSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 299 = fhstat */ + { AS(modnext_args), (sy_call_t *)sys_modnext, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 300 = modnext */ { AS(freebsd32_modstat_args), (sy_call_t *)freebsd32_modstat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 301 = freebsd32_modstat */ - { AS(modfnext_args), (sy_call_t *)modfnext, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 302 = modfnext */ - { AS(modfind_args), (sy_call_t *)modfind, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 303 = modfind */ - { AS(kldload_args), (sy_call_t *)kldload, AUE_MODLOAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 304 = kldload */ - { AS(kldunload_args), (sy_call_t *)kldunload, AUE_MODUNLOAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 305 = kldunload */ - { AS(kldfind_args), (sy_call_t *)kldfind, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 306 = kldfind */ - { AS(kldnext_args), (sy_call_t *)kldnext, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 307 = kldnext */ + { AS(modfnext_args), (sy_call_t *)sys_modfnext, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 302 = modfnext */ + { AS(modfind_args), (sy_call_t *)sys_modfind, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 303 = modfind */ + { AS(kldload_args), (sy_call_t *)sys_kldload, AUE_MODLOAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 304 = kldload */ + { AS(kldunload_args), (sy_call_t *)sys_kldunload, AUE_MODUNLOAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 305 = kldunload */ + { AS(kldfind_args), (sy_call_t *)sys_kldfind, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 306 = kldfind */ + { AS(kldnext_args), (sy_call_t *)sys_kldnext, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 307 = kldnext */ { AS(freebsd32_kldstat_args), (sy_call_t *)freebsd32_kldstat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 308 = freebsd32_kldstat */ - { AS(kldfirstmod_args), (sy_call_t *)kldfirstmod, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 309 = kldfirstmod */ - { AS(getsid_args), (sy_call_t *)getsid, AUE_GETSID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 310 = getsid */ - { AS(setresuid_args), (sy_call_t *)setresuid, AUE_SETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 311 = setresuid */ - { AS(setresgid_args), (sy_call_t *)setresgid, AUE_SETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 312 = setresgid */ + { AS(kldfirstmod_args), (sy_call_t *)sys_kldfirstmod, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 309 = kldfirstmod */ + { AS(getsid_args), (sy_call_t *)sys_getsid, AUE_GETSID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 310 = getsid */ + { AS(setresuid_args), (sy_call_t *)sys_setresuid, AUE_SETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 311 = setresuid */ + { AS(setresgid_args), (sy_call_t *)sys_setresgid, AUE_SETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 312 = setresgid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 313 = obsolete signanosleep */ { AS(freebsd32_aio_return_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 314 = freebsd32_aio_return */ { AS(freebsd32_aio_suspend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 315 = freebsd32_aio_suspend */ @@ -368,48 +368,48 @@ struct sysent freebsd32_sysent[] = { { AS(freebsd32_oaio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 318 = freebsd32_oaio_read */ { AS(freebsd32_oaio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 319 = freebsd32_oaio_write */ { AS(freebsd32_olio_listio_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 320 = freebsd32_olio_listio */ - { 0, (sy_call_t *)yield, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 321 = yield */ + { 0, (sy_call_t *)sys_yield, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 321 = yield */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 322 = obsolete thr_sleep */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 323 = obsolete thr_wakeup */ - { AS(mlockall_args), (sy_call_t *)mlockall, AUE_MLOCKALL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 324 = mlockall */ - { 0, (sy_call_t *)munlockall, AUE_MUNLOCKALL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 325 = munlockall */ - { AS(__getcwd_args), (sy_call_t *)__getcwd, AUE_GETCWD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 326 = __getcwd */ - { AS(sched_setparam_args), (sy_call_t *)sched_setparam, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 327 = sched_setparam */ - { AS(sched_getparam_args), (sy_call_t *)sched_getparam, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 328 = sched_getparam */ - { AS(sched_setscheduler_args), (sy_call_t *)sched_setscheduler, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 329 = sched_setscheduler */ - { AS(sched_getscheduler_args), (sy_call_t *)sched_getscheduler, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 330 = sched_getscheduler */ - { 0, (sy_call_t *)sched_yield, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 331 = sched_yield */ - { AS(sched_get_priority_max_args), (sy_call_t *)sched_get_priority_max, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 332 = sched_get_priority_max */ - { AS(sched_get_priority_min_args), (sy_call_t *)sched_get_priority_min, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 333 = sched_get_priority_min */ - { AS(sched_rr_get_interval_args), (sy_call_t *)sched_rr_get_interval, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 334 = sched_rr_get_interval */ - { AS(utrace_args), (sy_call_t *)utrace, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 335 = utrace */ + { AS(mlockall_args), (sy_call_t *)sys_mlockall, AUE_MLOCKALL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 324 = mlockall */ + { 0, (sy_call_t *)sys_munlockall, AUE_MUNLOCKALL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 325 = munlockall */ + { AS(__getcwd_args), (sy_call_t *)sys___getcwd, AUE_GETCWD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 326 = __getcwd */ + { AS(sched_setparam_args), (sy_call_t *)sys_sched_setparam, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 327 = sched_setparam */ + { AS(sched_getparam_args), (sy_call_t *)sys_sched_getparam, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 328 = sched_getparam */ + { AS(sched_setscheduler_args), (sy_call_t *)sys_sched_setscheduler, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 329 = sched_setscheduler */ + { AS(sched_getscheduler_args), (sy_call_t *)sys_sched_getscheduler, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 330 = sched_getscheduler */ + { 0, (sy_call_t *)sys_sched_yield, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 331 = sched_yield */ + { AS(sched_get_priority_max_args), (sy_call_t *)sys_sched_get_priority_max, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 332 = sched_get_priority_max */ + { AS(sched_get_priority_min_args), (sy_call_t *)sys_sched_get_priority_min, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 333 = sched_get_priority_min */ + { AS(sched_rr_get_interval_args), (sy_call_t *)sys_sched_rr_get_interval, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 334 = sched_rr_get_interval */ + { AS(utrace_args), (sy_call_t *)sys_utrace, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 335 = utrace */ { compat4(AS(freebsd4_freebsd32_sendfile_args),freebsd32_sendfile), AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 336 = freebsd4 freebsd32_sendfile */ - { AS(kldsym_args), (sy_call_t *)kldsym, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 337 = kldsym */ + { AS(kldsym_args), (sy_call_t *)sys_kldsym, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 337 = kldsym */ { AS(freebsd32_jail_args), (sy_call_t *)freebsd32_jail, AUE_JAIL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 338 = freebsd32_jail */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 339 = pioctl */ - { AS(sigprocmask_args), (sy_call_t *)sigprocmask, AUE_SIGPROCMASK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 340 = sigprocmask */ - { AS(sigsuspend_args), (sy_call_t *)sigsuspend, AUE_SIGSUSPEND, NULL, 0, 0, 0, SY_THR_STATIC }, /* 341 = sigsuspend */ + { AS(sigprocmask_args), (sy_call_t *)sys_sigprocmask, AUE_SIGPROCMASK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 340 = sigprocmask */ + { AS(sigsuspend_args), (sy_call_t *)sys_sigsuspend, AUE_SIGSUSPEND, NULL, 0, 0, 0, SY_THR_STATIC }, /* 341 = sigsuspend */ { compat4(AS(freebsd4_freebsd32_sigaction_args),freebsd32_sigaction), AUE_SIGACTION, NULL, 0, 0, 0, SY_THR_STATIC }, /* 342 = freebsd4 freebsd32_sigaction */ - { AS(sigpending_args), (sy_call_t *)sigpending, AUE_SIGPENDING, NULL, 0, 0, 0, SY_THR_STATIC }, /* 343 = sigpending */ + { AS(sigpending_args), (sy_call_t *)sys_sigpending, AUE_SIGPENDING, NULL, 0, 0, 0, SY_THR_STATIC }, /* 343 = sigpending */ { compat4(AS(freebsd4_freebsd32_sigreturn_args),freebsd32_sigreturn), AUE_SIGRETURN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 344 = freebsd4 freebsd32_sigreturn */ { AS(freebsd32_sigtimedwait_args), (sy_call_t *)freebsd32_sigtimedwait, AUE_SIGWAIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 345 = freebsd32_sigtimedwait */ { AS(freebsd32_sigwaitinfo_args), (sy_call_t *)freebsd32_sigwaitinfo, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 346 = freebsd32_sigwaitinfo */ - { AS(__acl_get_file_args), (sy_call_t *)__acl_get_file, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 347 = __acl_get_file */ - { AS(__acl_set_file_args), (sy_call_t *)__acl_set_file, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 348 = __acl_set_file */ - { AS(__acl_get_fd_args), (sy_call_t *)__acl_get_fd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 349 = __acl_get_fd */ - { AS(__acl_set_fd_args), (sy_call_t *)__acl_set_fd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 350 = __acl_set_fd */ - { AS(__acl_delete_file_args), (sy_call_t *)__acl_delete_file, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 351 = __acl_delete_file */ - { AS(__acl_delete_fd_args), (sy_call_t *)__acl_delete_fd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 352 = __acl_delete_fd */ - { AS(__acl_aclcheck_file_args), (sy_call_t *)__acl_aclcheck_file, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 353 = __acl_aclcheck_file */ - { AS(__acl_aclcheck_fd_args), (sy_call_t *)__acl_aclcheck_fd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 354 = __acl_aclcheck_fd */ - { AS(extattrctl_args), (sy_call_t *)extattrctl, AUE_EXTATTRCTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 355 = extattrctl */ - { AS(extattr_set_file_args), (sy_call_t *)extattr_set_file, AUE_EXTATTR_SET_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 356 = extattr_set_file */ - { AS(extattr_get_file_args), (sy_call_t *)extattr_get_file, AUE_EXTATTR_GET_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 357 = extattr_get_file */ - { AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file, AUE_EXTATTR_DELETE_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 358 = extattr_delete_file */ + { AS(__acl_get_file_args), (sy_call_t *)sys___acl_get_file, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 347 = __acl_get_file */ + { AS(__acl_set_file_args), (sy_call_t *)sys___acl_set_file, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 348 = __acl_set_file */ + { AS(__acl_get_fd_args), (sy_call_t *)sys___acl_get_fd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 349 = __acl_get_fd */ + { AS(__acl_set_fd_args), (sy_call_t *)sys___acl_set_fd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 350 = __acl_set_fd */ + { AS(__acl_delete_file_args), (sy_call_t *)sys___acl_delete_file, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 351 = __acl_delete_file */ + { AS(__acl_delete_fd_args), (sy_call_t *)sys___acl_delete_fd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 352 = __acl_delete_fd */ + { AS(__acl_aclcheck_file_args), (sy_call_t *)sys___acl_aclcheck_file, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 353 = __acl_aclcheck_file */ + { AS(__acl_aclcheck_fd_args), (sy_call_t *)sys___acl_aclcheck_fd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 354 = __acl_aclcheck_fd */ + { AS(extattrctl_args), (sy_call_t *)sys_extattrctl, AUE_EXTATTRCTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 355 = extattrctl */ + { AS(extattr_set_file_args), (sy_call_t *)sys_extattr_set_file, AUE_EXTATTR_SET_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 356 = extattr_set_file */ + { AS(extattr_get_file_args), (sy_call_t *)sys_extattr_get_file, AUE_EXTATTR_GET_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 357 = extattr_get_file */ + { AS(extattr_delete_file_args), (sy_call_t *)sys_extattr_delete_file, AUE_EXTATTR_DELETE_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 358 = extattr_delete_file */ { AS(freebsd32_aio_waitcomplete_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 359 = freebsd32_aio_waitcomplete */ - { AS(getresuid_args), (sy_call_t *)getresuid, AUE_GETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 360 = getresuid */ - { AS(getresgid_args), (sy_call_t *)getresgid, AUE_GETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 361 = getresgid */ - { 0, (sy_call_t *)kqueue, AUE_KQUEUE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 362 = kqueue */ + { AS(getresuid_args), (sy_call_t *)sys_getresuid, AUE_GETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 360 = getresuid */ + { AS(getresgid_args), (sy_call_t *)sys_getresgid, AUE_GETRESGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 361 = getresgid */ + { 0, (sy_call_t *)sys_kqueue, AUE_KQUEUE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 362 = kqueue */ { AS(freebsd32_kevent_args), (sy_call_t *)freebsd32_kevent, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 363 = freebsd32_kevent */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 364 = __cap_get_proc */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 365 = __cap_set_proc */ @@ -418,12 +418,12 @@ struct sysent freebsd32_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 368 = __cap_set_fd */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 369 = __cap_set_file */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 370 = nosys */ - { AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_EXTATTR_SET_FD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 371 = extattr_set_fd */ - { AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_EXTATTR_GET_FD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 372 = extattr_get_fd */ - { AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_EXTATTR_DELETE_FD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 373 = extattr_delete_fd */ - { AS(__setugid_args), (sy_call_t *)__setugid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 374 = __setugid */ + { AS(extattr_set_fd_args), (sy_call_t *)sys_extattr_set_fd, AUE_EXTATTR_SET_FD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 371 = extattr_set_fd */ + { AS(extattr_get_fd_args), (sy_call_t *)sys_extattr_get_fd, AUE_EXTATTR_GET_FD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 372 = extattr_get_fd */ + { AS(extattr_delete_fd_args), (sy_call_t *)sys_extattr_delete_fd, AUE_EXTATTR_DELETE_FD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 373 = extattr_delete_fd */ + { AS(__setugid_args), (sy_call_t *)sys___setugid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 374 = __setugid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 375 = nfsclnt */ - { AS(eaccess_args), (sy_call_t *)eaccess, AUE_EACCESS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 376 = eaccess */ + { AS(eaccess_args), (sy_call_t *)sys_eaccess, AUE_EACCESS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 376 = eaccess */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 377 = afs_syscall */ { AS(freebsd32_nmount_args), (sy_call_t *)freebsd32_nmount, AUE_NMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 378 = freebsd32_nmount */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 379 = kse_exit */ @@ -437,15 +437,15 @@ struct sysent freebsd32_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 387 = __mac_get_file */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 388 = __mac_set_fd */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 389 = __mac_set_file */ - { AS(kenv_args), (sy_call_t *)kenv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 390 = kenv */ - { AS(lchflags_args), (sy_call_t *)lchflags, AUE_LCHFLAGS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 391 = lchflags */ - { AS(uuidgen_args), (sy_call_t *)uuidgen, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 392 = uuidgen */ + { AS(kenv_args), (sy_call_t *)sys_kenv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 390 = kenv */ + { AS(lchflags_args), (sy_call_t *)sys_lchflags, AUE_LCHFLAGS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 391 = lchflags */ + { AS(uuidgen_args), (sy_call_t *)sys_uuidgen, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 392 = uuidgen */ { AS(freebsd32_sendfile_args), (sy_call_t *)freebsd32_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 393 = freebsd32_sendfile */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 394 = mac_syscall */ - { AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 395 = getfsstat */ - { AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 396 = statfs */ - { AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 397 = fstatfs */ - { AS(fhstatfs_args), (sy_call_t *)fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 398 = fhstatfs */ + { AS(getfsstat_args), (sy_call_t *)sys_getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 395 = getfsstat */ + { AS(statfs_args), (sy_call_t *)sys_statfs, AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 396 = statfs */ + { AS(fstatfs_args), (sy_call_t *)sys_fstatfs, AUE_FSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 397 = fstatfs */ + { AS(fhstatfs_args), (sy_call_t *)sys_fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 398 = fhstatfs */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 399 = nosys */ { AS(ksem_close_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 400 = ksem_close */ { AS(ksem_post_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 401 = ksem_post */ @@ -459,9 +459,9 @@ struct sysent freebsd32_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 409 = __mac_get_pid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 410 = __mac_get_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 411 = __mac_set_link */ - { AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_EXTATTR_SET_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 412 = extattr_set_link */ - { AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_EXTATTR_GET_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 413 = extattr_get_link */ - { AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_EXTATTR_DELETE_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 414 = extattr_delete_link */ + { AS(extattr_set_link_args), (sy_call_t *)sys_extattr_set_link, AUE_EXTATTR_SET_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 412 = extattr_set_link */ + { AS(extattr_get_link_args), (sy_call_t *)sys_extattr_get_link, AUE_EXTATTR_GET_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 413 = extattr_get_link */ + { AS(extattr_delete_link_args), (sy_call_t *)sys_extattr_delete_link, AUE_EXTATTR_DELETE_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 414 = extattr_delete_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 415 = __mac_execve */ { AS(freebsd32_sigaction_args), (sy_call_t *)freebsd32_sigaction, AUE_SIGACTION, NULL, 0, 0, 0, SY_THR_STATIC }, /* 416 = freebsd32_sigaction */ { AS(freebsd32_sigreturn_args), (sy_call_t *)freebsd32_sigreturn, AUE_SIGRETURN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 417 = freebsd32_sigreturn */ @@ -472,56 +472,56 @@ struct sysent freebsd32_sysent[] = { { AS(freebsd32_setcontext_args), (sy_call_t *)freebsd32_setcontext, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 422 = freebsd32_setcontext */ { AS(freebsd32_swapcontext_args), (sy_call_t *)freebsd32_swapcontext, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 423 = freebsd32_swapcontext */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 424 = swapoff */ - { AS(__acl_get_link_args), (sy_call_t *)__acl_get_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 425 = __acl_get_link */ - { AS(__acl_set_link_args), (sy_call_t *)__acl_set_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 426 = __acl_set_link */ - { AS(__acl_delete_link_args), (sy_call_t *)__acl_delete_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 427 = __acl_delete_link */ - { AS(__acl_aclcheck_link_args), (sy_call_t *)__acl_aclcheck_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 428 = __acl_aclcheck_link */ - { AS(sigwait_args), (sy_call_t *)sigwait, AUE_SIGWAIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 429 = sigwait */ + { AS(__acl_get_link_args), (sy_call_t *)sys___acl_get_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 425 = __acl_get_link */ + { AS(__acl_set_link_args), (sy_call_t *)sys___acl_set_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 426 = __acl_set_link */ + { AS(__acl_delete_link_args), (sy_call_t *)sys___acl_delete_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 427 = __acl_delete_link */ + { AS(__acl_aclcheck_link_args), (sy_call_t *)sys___acl_aclcheck_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 428 = __acl_aclcheck_link */ + { AS(sigwait_args), (sy_call_t *)sys_sigwait, AUE_SIGWAIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 429 = sigwait */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 430 = thr_create; */ - { AS(thr_exit_args), (sy_call_t *)thr_exit, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 431 = thr_exit */ - { AS(thr_self_args), (sy_call_t *)thr_self, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 432 = thr_self */ - { AS(thr_kill_args), (sy_call_t *)thr_kill, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 433 = thr_kill */ + { AS(thr_exit_args), (sy_call_t *)sys_thr_exit, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 431 = thr_exit */ + { AS(thr_self_args), (sy_call_t *)sys_thr_self, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 432 = thr_self */ + { AS(thr_kill_args), (sy_call_t *)sys_thr_kill, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 433 = thr_kill */ { AS(freebsd32_umtx_lock_args), (sy_call_t *)freebsd32_umtx_lock, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 434 = freebsd32_umtx_lock */ { AS(freebsd32_umtx_unlock_args), (sy_call_t *)freebsd32_umtx_unlock, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 435 = freebsd32_umtx_unlock */ - { AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 436 = jail_attach */ - { AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 437 = extattr_list_fd */ - { AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_EXTATTR_LIST_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 438 = extattr_list_file */ - { AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_EXTATTR_LIST_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 439 = extattr_list_link */ + { AS(jail_attach_args), (sy_call_t *)sys_jail_attach, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 436 = jail_attach */ + { AS(extattr_list_fd_args), (sy_call_t *)sys_extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 437 = extattr_list_fd */ + { AS(extattr_list_file_args), (sy_call_t *)sys_extattr_list_file, AUE_EXTATTR_LIST_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 438 = extattr_list_file */ + { AS(extattr_list_link_args), (sy_call_t *)sys_extattr_list_link, AUE_EXTATTR_LIST_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 439 = extattr_list_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 440 = kse_switchin */ { AS(freebsd32_ksem_timedwait_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 441 = freebsd32_ksem_timedwait */ { AS(freebsd32_thr_suspend_args), (sy_call_t *)freebsd32_thr_suspend, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 442 = freebsd32_thr_suspend */ - { AS(thr_wake_args), (sy_call_t *)thr_wake, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 443 = thr_wake */ - { AS(kldunloadf_args), (sy_call_t *)kldunloadf, AUE_MODUNLOAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 444 = kldunloadf */ - { AS(audit_args), (sy_call_t *)audit, AUE_AUDIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 445 = audit */ - { AS(auditon_args), (sy_call_t *)auditon, AUE_AUDITON, NULL, 0, 0, 0, SY_THR_STATIC }, /* 446 = auditon */ - { AS(getauid_args), (sy_call_t *)getauid, AUE_GETAUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 447 = getauid */ - { AS(setauid_args), (sy_call_t *)setauid, AUE_SETAUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 448 = setauid */ - { AS(getaudit_args), (sy_call_t *)getaudit, AUE_GETAUDIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 449 = getaudit */ - { AS(setaudit_args), (sy_call_t *)setaudit, AUE_SETAUDIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 450 = setaudit */ - { AS(getaudit_addr_args), (sy_call_t *)getaudit_addr, AUE_GETAUDIT_ADDR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 451 = getaudit_addr */ - { AS(setaudit_addr_args), (sy_call_t *)setaudit_addr, AUE_SETAUDIT_ADDR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 452 = setaudit_addr */ - { AS(auditctl_args), (sy_call_t *)auditctl, AUE_AUDITCTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 453 = auditctl */ + { AS(thr_wake_args), (sy_call_t *)sys_thr_wake, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 443 = thr_wake */ + { AS(kldunloadf_args), (sy_call_t *)sys_kldunloadf, AUE_MODUNLOAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 444 = kldunloadf */ + { AS(audit_args), (sy_call_t *)sys_audit, AUE_AUDIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 445 = audit */ + { AS(auditon_args), (sy_call_t *)sys_auditon, AUE_AUDITON, NULL, 0, 0, 0, SY_THR_STATIC }, /* 446 = auditon */ + { AS(getauid_args), (sy_call_t *)sys_getauid, AUE_GETAUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 447 = getauid */ + { AS(setauid_args), (sy_call_t *)sys_setauid, AUE_SETAUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 448 = setauid */ + { AS(getaudit_args), (sy_call_t *)sys_getaudit, AUE_GETAUDIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 449 = getaudit */ + { AS(setaudit_args), (sy_call_t *)sys_setaudit, AUE_SETAUDIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 450 = setaudit */ + { AS(getaudit_addr_args), (sy_call_t *)sys_getaudit_addr, AUE_GETAUDIT_ADDR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 451 = getaudit_addr */ + { AS(setaudit_addr_args), (sy_call_t *)sys_setaudit_addr, AUE_SETAUDIT_ADDR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 452 = setaudit_addr */ + { AS(auditctl_args), (sy_call_t *)sys_auditctl, AUE_AUDITCTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 453 = auditctl */ { AS(freebsd32_umtx_op_args), (sy_call_t *)freebsd32_umtx_op, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 454 = freebsd32_umtx_op */ { AS(freebsd32_thr_new_args), (sy_call_t *)freebsd32_thr_new, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 455 = freebsd32_thr_new */ - { AS(sigqueue_args), (sy_call_t *)sigqueue, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 456 = sigqueue */ + { AS(sigqueue_args), (sy_call_t *)sys_sigqueue, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 456 = sigqueue */ { AS(freebsd32_kmq_open_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 457 = freebsd32_kmq_open */ { AS(freebsd32_kmq_setattr_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 458 = freebsd32_kmq_setattr */ { AS(freebsd32_kmq_timedreceive_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 459 = freebsd32_kmq_timedreceive */ { AS(freebsd32_kmq_timedsend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 460 = freebsd32_kmq_timedsend */ { AS(kmq_notify_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 461 = kmq_notify */ { AS(kmq_unlink_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 462 = kmq_unlink */ - { AS(abort2_args), (sy_call_t *)abort2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 463 = abort2 */ - { AS(thr_set_name_args), (sy_call_t *)thr_set_name, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 464 = thr_set_name */ + { AS(abort2_args), (sy_call_t *)sys_abort2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 463 = abort2 */ + { AS(thr_set_name_args), (sy_call_t *)sys_thr_set_name, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 464 = thr_set_name */ { AS(freebsd32_aio_fsync_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 465 = freebsd32_aio_fsync */ - { AS(rtprio_thread_args), (sy_call_t *)rtprio_thread, AUE_RTPRIO, NULL, 0, 0, 0, SY_THR_STATIC }, /* 466 = rtprio_thread */ + { AS(rtprio_thread_args), (sy_call_t *)sys_rtprio_thread, AUE_RTPRIO, NULL, 0, 0, 0, SY_THR_STATIC }, /* 466 = rtprio_thread */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 467 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 468 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 469 = __getpath_fromfd */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 470 = __getpath_fromaddr */ - { AS(sctp_peeloff_args), (sy_call_t *)sctp_peeloff, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 471 = sctp_peeloff */ - { AS(sctp_generic_sendmsg_args), (sy_call_t *)sctp_generic_sendmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 472 = sctp_generic_sendmsg */ - { AS(sctp_generic_sendmsg_iov_args), (sy_call_t *)sctp_generic_sendmsg_iov, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 473 = sctp_generic_sendmsg_iov */ - { AS(sctp_generic_recvmsg_args), (sy_call_t *)sctp_generic_recvmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 474 = sctp_generic_recvmsg */ + { AS(sctp_peeloff_args), (sy_call_t *)sys_sctp_peeloff, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 471 = sctp_peeloff */ + { AS(sctp_generic_sendmsg_args), (sy_call_t *)sys_sctp_generic_sendmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 472 = sctp_generic_sendmsg */ + { AS(sctp_generic_sendmsg_iov_args), (sy_call_t *)sys_sctp_generic_sendmsg_iov, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 473 = sctp_generic_sendmsg_iov */ + { AS(sctp_generic_recvmsg_args), (sy_call_t *)sys_sctp_generic_recvmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 474 = sctp_generic_recvmsg */ #ifdef PAD64_REQUIRED { AS(freebsd32_pread_args), (sy_call_t *)freebsd32_pread, AUE_PREAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 475 = freebsd32_pread */ { AS(freebsd32_pwrite_args), (sy_call_t *)freebsd32_pwrite, AUE_PWRITE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 476 = freebsd32_pwrite */ @@ -537,10 +537,10 @@ struct sysent freebsd32_sysent[] = { { AS(freebsd32_truncate_args), (sy_call_t *)freebsd32_truncate, AUE_TRUNCATE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 479 = freebsd32_truncate */ { AS(freebsd32_ftruncate_args), (sy_call_t *)freebsd32_ftruncate, AUE_FTRUNCATE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 480 = freebsd32_ftruncate */ #endif - { AS(thr_kill2_args), (sy_call_t *)thr_kill2, AUE_KILL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 481 = thr_kill2 */ - { AS(shm_open_args), (sy_call_t *)shm_open, AUE_SHMOPEN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 482 = shm_open */ - { AS(shm_unlink_args), (sy_call_t *)shm_unlink, AUE_SHMUNLINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 483 = shm_unlink */ - { AS(cpuset_args), (sy_call_t *)cpuset, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 484 = cpuset */ + { AS(thr_kill2_args), (sy_call_t *)sys_thr_kill2, AUE_KILL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 481 = thr_kill2 */ + { AS(shm_open_args), (sy_call_t *)sys_shm_open, AUE_SHMOPEN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 482 = shm_open */ + { AS(shm_unlink_args), (sy_call_t *)sys_shm_unlink, AUE_SHMUNLINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 483 = shm_unlink */ + { AS(cpuset_args), (sy_call_t *)sys_cpuset, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 484 = cpuset */ #ifdef PAD64_REQUIRED { AS(freebsd32_cpuset_setid_args), (sy_call_t *)freebsd32_cpuset_setid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 485 = freebsd32_cpuset_setid */ #else @@ -549,47 +549,47 @@ struct sysent freebsd32_sysent[] = { { AS(freebsd32_cpuset_getid_args), (sy_call_t *)freebsd32_cpuset_getid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 486 = freebsd32_cpuset_getid */ { AS(freebsd32_cpuset_getaffinity_args), (sy_call_t *)freebsd32_cpuset_getaffinity, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 487 = freebsd32_cpuset_getaffinity */ { AS(freebsd32_cpuset_setaffinity_args), (sy_call_t *)freebsd32_cpuset_setaffinity, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 488 = freebsd32_cpuset_setaffinity */ - { AS(faccessat_args), (sy_call_t *)faccessat, AUE_FACCESSAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 489 = faccessat */ - { AS(fchmodat_args), (sy_call_t *)fchmodat, AUE_FCHMODAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 490 = fchmodat */ - { AS(fchownat_args), (sy_call_t *)fchownat, AUE_FCHOWNAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 491 = fchownat */ + { AS(faccessat_args), (sy_call_t *)sys_faccessat, AUE_FACCESSAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 489 = faccessat */ + { AS(fchmodat_args), (sy_call_t *)sys_fchmodat, AUE_FCHMODAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 490 = fchmodat */ + { AS(fchownat_args), (sy_call_t *)sys_fchownat, AUE_FCHOWNAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 491 = fchownat */ { AS(freebsd32_fexecve_args), (sy_call_t *)freebsd32_fexecve, AUE_FEXECVE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 492 = freebsd32_fexecve */ { AS(freebsd32_fstatat_args), (sy_call_t *)freebsd32_fstatat, AUE_FSTATAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 493 = freebsd32_fstatat */ { AS(freebsd32_futimesat_args), (sy_call_t *)freebsd32_futimesat, AUE_FUTIMESAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 494 = freebsd32_futimesat */ - { AS(linkat_args), (sy_call_t *)linkat, AUE_LINKAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 495 = linkat */ - { AS(mkdirat_args), (sy_call_t *)mkdirat, AUE_MKDIRAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 496 = mkdirat */ - { AS(mkfifoat_args), (sy_call_t *)mkfifoat, AUE_MKFIFOAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 497 = mkfifoat */ - { AS(mknodat_args), (sy_call_t *)mknodat, AUE_MKNODAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 498 = mknodat */ - { AS(openat_args), (sy_call_t *)openat, AUE_OPENAT_RWTC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 499 = openat */ - { AS(readlinkat_args), (sy_call_t *)readlinkat, AUE_READLINKAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 500 = readlinkat */ - { AS(renameat_args), (sy_call_t *)renameat, AUE_RENAMEAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 501 = renameat */ - { AS(symlinkat_args), (sy_call_t *)symlinkat, AUE_SYMLINKAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 502 = symlinkat */ - { AS(unlinkat_args), (sy_call_t *)unlinkat, AUE_UNLINKAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 503 = unlinkat */ - { AS(posix_openpt_args), (sy_call_t *)posix_openpt, AUE_POSIX_OPENPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 504 = posix_openpt */ + { AS(linkat_args), (sy_call_t *)sys_linkat, AUE_LINKAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 495 = linkat */ + { AS(mkdirat_args), (sy_call_t *)sys_mkdirat, AUE_MKDIRAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 496 = mkdirat */ + { AS(mkfifoat_args), (sy_call_t *)sys_mkfifoat, AUE_MKFIFOAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 497 = mkfifoat */ + { AS(mknodat_args), (sy_call_t *)sys_mknodat, AUE_MKNODAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 498 = mknodat */ + { AS(openat_args), (sy_call_t *)sys_openat, AUE_OPENAT_RWTC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 499 = openat */ + { AS(readlinkat_args), (sy_call_t *)sys_readlinkat, AUE_READLINKAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 500 = readlinkat */ + { AS(renameat_args), (sy_call_t *)sys_renameat, AUE_RENAMEAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 501 = renameat */ + { AS(symlinkat_args), (sy_call_t *)sys_symlinkat, AUE_SYMLINKAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 502 = symlinkat */ + { AS(unlinkat_args), (sy_call_t *)sys_unlinkat, AUE_UNLINKAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 503 = unlinkat */ + { AS(posix_openpt_args), (sy_call_t *)sys_posix_openpt, AUE_POSIX_OPENPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 504 = posix_openpt */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 505 = gssd_syscall */ { AS(freebsd32_jail_get_args), (sy_call_t *)freebsd32_jail_get, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 506 = freebsd32_jail_get */ { AS(freebsd32_jail_set_args), (sy_call_t *)freebsd32_jail_set, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 507 = freebsd32_jail_set */ - { AS(jail_remove_args), (sy_call_t *)jail_remove, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 508 = jail_remove */ - { AS(closefrom_args), (sy_call_t *)closefrom, AUE_CLOSEFROM, NULL, 0, 0, 0, SY_THR_STATIC }, /* 509 = closefrom */ + { AS(jail_remove_args), (sy_call_t *)sys_jail_remove, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 508 = jail_remove */ + { AS(closefrom_args), (sy_call_t *)sys_closefrom, AUE_CLOSEFROM, NULL, 0, 0, 0, SY_THR_STATIC }, /* 509 = closefrom */ { AS(freebsd32_semctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 510 = freebsd32_semctl */ { AS(freebsd32_msgctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 511 = freebsd32_msgctl */ { AS(freebsd32_shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 512 = freebsd32_shmctl */ - { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 513 = lpathconf */ - { AS(cap_new_args), (sy_call_t *)cap_new, AUE_CAP_NEW, NULL, 0, 0, 0, SY_THR_STATIC }, /* 514 = cap_new */ - { AS(cap_getrights_args), (sy_call_t *)cap_getrights, AUE_CAP_GETRIGHTS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 515 = cap_getrights */ - { 0, (sy_call_t *)cap_enter, AUE_CAP_ENTER, NULL, 0, 0, 0, SY_THR_STATIC }, /* 516 = cap_enter */ - { AS(cap_getmode_args), (sy_call_t *)cap_getmode, AUE_CAP_GETMODE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 517 = cap_getmode */ + { AS(lpathconf_args), (sy_call_t *)sys_lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 513 = lpathconf */ + { AS(cap_new_args), (sy_call_t *)sys_cap_new, AUE_CAP_NEW, NULL, 0, 0, 0, SY_THR_STATIC }, /* 514 = cap_new */ + { AS(cap_getrights_args), (sy_call_t *)sys_cap_getrights, AUE_CAP_GETRIGHTS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 515 = cap_getrights */ + { 0, (sy_call_t *)sys_cap_enter, AUE_CAP_ENTER, NULL, 0, 0, 0, SY_THR_STATIC }, /* 516 = cap_enter */ + { AS(cap_getmode_args), (sy_call_t *)sys_cap_getmode, AUE_CAP_GETMODE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 517 = cap_getmode */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 518 = pdfork */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 519 = pdkill */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 520 = pdgetpid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 521 = pdwait */ { AS(freebsd32_pselect_args), (sy_call_t *)freebsd32_pselect, AUE_SELECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 522 = freebsd32_pselect */ - { AS(getloginclass_args), (sy_call_t *)getloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 523 = getloginclass */ - { AS(setloginclass_args), (sy_call_t *)setloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 524 = setloginclass */ - { AS(rctl_get_racct_args), (sy_call_t *)rctl_get_racct, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 525 = rctl_get_racct */ - { AS(rctl_get_rules_args), (sy_call_t *)rctl_get_rules, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 526 = rctl_get_rules */ - { AS(rctl_get_limits_args), (sy_call_t *)rctl_get_limits, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 527 = rctl_get_limits */ - { AS(rctl_add_rule_args), (sy_call_t *)rctl_add_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 528 = rctl_add_rule */ - { AS(rctl_remove_rule_args), (sy_call_t *)rctl_remove_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 529 = rctl_remove_rule */ + { AS(getloginclass_args), (sy_call_t *)sys_getloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 523 = getloginclass */ + { AS(setloginclass_args), (sy_call_t *)sys_setloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 524 = setloginclass */ + { AS(rctl_get_racct_args), (sy_call_t *)sys_rctl_get_racct, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 525 = rctl_get_racct */ + { AS(rctl_get_rules_args), (sy_call_t *)sys_rctl_get_rules, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 526 = rctl_get_rules */ + { AS(rctl_get_limits_args), (sy_call_t *)sys_rctl_get_limits, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 527 = rctl_get_limits */ + { AS(rctl_add_rule_args), (sy_call_t *)sys_rctl_add_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 528 = rctl_add_rule */ + { AS(rctl_remove_rule_args), (sy_call_t *)sys_rctl_remove_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 529 = rctl_remove_rule */ { AS(freebsd32_posix_fallocate_args), (sy_call_t *)freebsd32_posix_fallocate, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 530 = freebsd32_posix_fallocate */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 531 = posix_fadvise */ }; Modified: head/sys/compat/svr4/svr4_sysent.c ============================================================================== --- head/sys/compat/svr4/svr4_sysent.c Fri Sep 16 13:58:51 2011 (r225617) +++ head/sys/compat/svr4/svr4_sysent.c Fri Sep 16 14:04:14 2011 (r225618) @@ -20,30 +20,30 @@ /* The casts are bogus but will do for now. */ struct sysent svr4_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 0 = unused */ - { AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 1 = exit */ - { 0, (sy_call_t *)fork, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 2 = fork */ - { AS(read_args), (sy_call_t *)read, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 3 = read */ - { AS(write_args), (sy_call_t *)write, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 4 = write */ + { AS(sys_exit_args), (sy_call_t *)sys_sys_exit, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 1 = exit */ + { 0, (sy_call_t *)sys_fork, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 2 = fork */ + { AS(read_args), (sy_call_t *)sys_read, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 3 = read */ + { AS(write_args), (sy_call_t *)sys_write, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 4 = write */ { AS(svr4_sys_open_args), (sy_call_t *)svr4_sys_open, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 5 = svr4_sys_open */ - { AS(close_args), (sy_call_t *)close, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 6 = close */ + { AS(close_args), (sy_call_t *)sys_close, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 6 = close */ { AS(svr4_sys_wait_args), (sy_call_t *)svr4_sys_wait, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 7 = svr4_sys_wait */ { AS(svr4_sys_creat_args), (sy_call_t *)svr4_sys_creat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 8 = svr4_sys_creat */ - { AS(link_args), (sy_call_t *)link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 9 = link */ - { AS(unlink_args), (sy_call_t *)unlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 10 = unlink */ + { AS(link_args), (sy_call_t *)sys_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 9 = link */ + { AS(unlink_args), (sy_call_t *)sys_unlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 10 = unlink */ { AS(svr4_sys_execv_args), (sy_call_t *)svr4_sys_execv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 11 = svr4_sys_execv */ - { AS(chdir_args), (sy_call_t *)chdir, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 12 = chdir */ + { AS(chdir_args), (sy_call_t *)sys_chdir, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 12 = chdir */ { AS(svr4_sys_time_args), (sy_call_t *)svr4_sys_time, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 13 = svr4_sys_time */ { AS(svr4_sys_mknod_args), (sy_call_t *)svr4_sys_mknod, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 14 = svr4_sys_mknod */ - { AS(chmod_args), (sy_call_t *)chmod, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 15 = chmod */ - { AS(chown_args), (sy_call_t *)chown, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 16 = chown */ + { AS(chmod_args), (sy_call_t *)sys_chmod, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 15 = chmod */ + { AS(chown_args), (sy_call_t *)sys_chown, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 16 = chown */ { AS(svr4_sys_break_args), (sy_call_t *)svr4_sys_break, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 17 = svr4_sys_break */ { AS(svr4_sys_stat_args), (sy_call_t *)svr4_sys_stat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 18 = svr4_sys_stat */ - { AS(lseek_args), (sy_call_t *)lseek, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 19 = lseek */ - { 0, (sy_call_t *)getpid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 20 = getpid */ + { AS(lseek_args), (sy_call_t *)sys_lseek, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 19 = lseek */ + { 0, (sy_call_t *)sys_getpid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 20 = getpid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 21 = old_mount */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 22 = sysv_umount */ - { AS(setuid_args), (sy_call_t *)setuid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 23 = setuid */ - { 0, (sy_call_t *)getuid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 24 = getuid */ + { AS(setuid_args), (sy_call_t *)sys_setuid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 23 = setuid */ + { 0, (sy_call_t *)sys_getuid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 24 = getuid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 25 = stime */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 26 = ptrace */ { AS(svr4_sys_alarm_args), (sy_call_t *)svr4_sys_alarm, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 27 = svr4_sys_alarm */ @@ -55,18 +55,18 @@ struct sysent svr4_sysent[] = { { AS(svr4_sys_access_args), (sy_call_t *)svr4_sys_access, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 33 = svr4_sys_access */ { AS(svr4_sys_nice_args), (sy_call_t *)svr4_sys_nice, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 34 = svr4_sys_nice */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 35 = statfs */ - { 0, (sy_call_t *)sync, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 36 = sync */ + { 0, (sy_call_t *)sys_sync, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 36 = sync */ { AS(svr4_sys_kill_args), (sy_call_t *)svr4_sys_kill, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 37 = svr4_sys_kill */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 38 = fstatfs */ { AS(svr4_sys_pgrpsys_args), (sy_call_t *)svr4_sys_pgrpsys, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 39 = svr4_sys_pgrpsys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 40 = xenix */ - { AS(dup_args), (sy_call_t *)dup, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 41 = dup */ - { 0, (sy_call_t *)pipe, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 42 = pipe */ + { AS(dup_args), (sy_call_t *)sys_dup, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 41 = dup */ + { 0, (sy_call_t *)sys_pipe, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 42 = pipe */ { AS(svr4_sys_times_args), (sy_call_t *)svr4_sys_times, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 43 = svr4_sys_times */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 44 = profil */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 45 = plock */ - { AS(setgid_args), (sy_call_t *)setgid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 46 = setgid */ - { 0, (sy_call_t *)getgid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 47 = getgid */ + { AS(setgid_args), (sy_call_t *)sys_setgid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 46 = setgid */ + { 0, (sy_call_t *)sys_getgid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 47 = getgid */ { AS(svr4_sys_signal_args), (sy_call_t *)svr4_sys_signal, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 48 = svr4_sys_signal */ { AS(svr4_sys_msgsys_args), (sy_call_t *)svr4_sys_msgsys, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 49 = svr4_sys_msgsys */ { AS(svr4_sys_sysarch_args), (sy_call_t *)svr4_sys_sysarch, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 50 = svr4_sys_sysarch */ @@ -77,10 +77,10 @@ struct sysent svr4_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 55 = uadmin */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 56 = exch */ { AS(svr4_sys_utssys_args), (sy_call_t *)svr4_sys_utssys, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 57 = svr4_sys_utssys */ - { AS(fsync_args), (sy_call_t *)fsync, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 58 = fsync */ + { AS(fsync_args), (sy_call_t *)sys_fsync, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 58 = fsync */ { AS(svr4_sys_execve_args), (sy_call_t *)svr4_sys_execve, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 59 = svr4_sys_execve */ - { AS(umask_args), (sy_call_t *)umask, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 60 = umask */ - { AS(chroot_args), (sy_call_t *)chroot, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 61 = chroot */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 17:39:40 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E3C1106564A; Fri, 16 Sep 2011 17:39:40 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 12D2B8FC0A; Fri, 16 Sep 2011 17:39:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GHddu8031616; Fri, 16 Sep 2011 17:39:39 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GHddYa031610; Fri, 16 Sep 2011 17:39:39 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161739.p8GHddYa031610@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 17:39:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225619 - in stable/8: contrib/top usr.bin/top X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 17:39:40 -0000 Author: jhb Date: Fri Sep 16 17:39:39 2011 New Revision: 225619 URL: http://svn.freebsd.org/changeset/base/225619 Log: MFC 223936,224205: Allow per-CPU statistics to be toggled at runtime via the 'P' key. While here, make -P a toggle similar to other options such as -I. Modified: stable/8/contrib/top/commands.c stable/8/contrib/top/display.c stable/8/contrib/top/top.X stable/8/contrib/top/top.c stable/8/usr.bin/top/machine.c Directory Properties: stable/8/contrib/top/ (props changed) stable/8/contrib/top/install-sh (props changed) stable/8/usr.bin/top/ (props changed) Modified: stable/8/contrib/top/commands.c ============================================================================== --- stable/8/contrib/top/commands.c Fri Sep 16 14:04:14 2011 (r225618) +++ stable/8/contrib/top/commands.c Fri Sep 16 17:39:39 2011 (r225619) @@ -88,6 +88,7 @@ o - specify sort order (vcsw, ivcs stdout); #endif fputs("\ +P - toggle the displaying of per-CPU statistics\n\ r - renice a process\n\ s - change number of seconds to delay between updates\n\ S - toggle the displaying of system processes\n\ Modified: stable/8/contrib/top/display.c ============================================================================== --- stable/8/contrib/top/display.c Fri Sep 16 14:04:14 2011 (r225618) +++ stable/8/contrib/top/display.c Fri Sep 16 17:39:39 2011 (r225619) @@ -151,25 +151,50 @@ int display_resize() return(smart_terminal ? lines : Largest); } -int display_init(statics) +int display_updatecpus(statics) struct statics *statics; { + register int *lp; register int lines; - register char **pp; - register int *ip; register int i; - + /* call resize to do the dirty work */ lines = display_resize(); - num_cpus = statics->ncpus; + if (pcpu_stats) + num_cpus = statics->ncpus; + else + num_cpus = 1; cpustates_column = 5; /* CPU: */ if (num_cpus != 1) cpustates_column += 2; /* CPU 0: */ for (i = num_cpus; i > 9; i /= 10) cpustates_column++; + /* fill the "last" array with all -1s, to insure correct updating */ + lp = lcpustates; + i = num_cpustates * num_cpus; + while (--i >= 0) + { + *lp++ = -1; + } + + return(lines); +} + +int display_init(statics) + +struct statics *statics; + +{ + register int lines; + register char **pp; + register int *ip; + register int i; + + lines = display_updatecpus(statics); + /* only do the rest if we need to */ if (lines > -1) { @@ -184,7 +209,7 @@ struct statics *statics; num_swap = string_count(swap_names); lswap = (int *)malloc(num_swap * sizeof(int)); num_cpustates = string_count(cpustate_names); - lcpustates = (int *)malloc(num_cpustates * sizeof(int) * num_cpus); + lcpustates = (int *)malloc(num_cpustates * sizeof(int) * statics->ncpus); cpustate_columns = (int *)malloc(num_cpustates * sizeof(int)); memory_names = statics->memory_names; Modified: stable/8/contrib/top/top.X ============================================================================== --- stable/8/contrib/top/top.X Fri Sep 16 14:04:14 2011 (r225618) +++ stable/8/contrib/top/top.X Fri Sep 16 17:39:39 2011 (r225619) @@ -205,6 +205,7 @@ The options .BR \-H , .BR \-I , .BR \-j , +.BR \-P , .BR \-S , .BR \-t , .BR \-u , @@ -314,6 +315,9 @@ Toggle the display of .IR jail (8) ID. .TP +.B P +Toggle the display of per-CPU statistics. +.TP .B t Toggle the display of the .I top Modified: stable/8/contrib/top/top.c ============================================================================== --- stable/8/contrib/top/top.c Fri Sep 16 14:04:14 2011 (r225618) +++ stable/8/contrib/top/top.c Fri Sep 16 17:39:39 2011 (r225619) @@ -196,9 +196,9 @@ char *argv[]; fd_set readfds; #ifdef ORDER - static char command_chars[] = "\f qh?en#sdkriIutHmSCajzo"; + static char command_chars[] = "\f qh?en#sdkriIutHmSCajzPo"; #else - static char command_chars[] = "\f qh?en#sdkriIutHmSCajz"; + static char command_chars[] = "\f qh?en#sdkriIutHmSCajzP"; #endif /* these defines enumerate the "strchr"s of the commands in command_chars */ #define CMD_redraw 0 @@ -225,8 +225,9 @@ char *argv[]; #define CMD_showargs 20 #define CMD_jidtog 21 #define CMD_kidletog 22 +#define CMD_pcputog 23 #ifdef ORDER -#define CMD_order 23 +#define CMD_order 24 #endif /* set the buffer for stdout */ @@ -411,7 +412,7 @@ char *argv[]; break; case 'P': - pcpu_stats = Yes; + pcpu_stats = !pcpu_stats; break; case 'z': @@ -1088,6 +1089,16 @@ restart: ps.kidle ? "D" : "Not d"); putchar('\r'); break; + case CMD_pcputog: + pcpu_stats = !pcpu_stats; + new_message(MT_standout | MT_delayed, + " Displaying %sCPU statistics.", + pcpu_stats ? "per-" : "global "); + toggle_pcpustats(); + max_topn = display_updatecpus(&statics); + reset_display(); + putchar('\r'); + break; default: new_message(MT_standout, " BAD CASE IN SWITCH!"); putchar('\r'); Modified: stable/8/usr.bin/top/machine.c ============================================================================== --- stable/8/usr.bin/top/machine.c Fri Sep 16 14:04:14 2011 (r225618) +++ stable/8/usr.bin/top/machine.c Fri Sep 16 17:39:39 2011 (r225619) @@ -239,19 +239,46 @@ static const char *format_nice(const str static void getsysctl(const char *name, void *ptr, size_t len); static int swapmode(int *retavail, int *retfree); +void +toggle_pcpustats(void) +{ + + if (ncpus == 1) + return; + + /* Adjust display based on ncpus */ + if (pcpu_stats) { + y_mem += ncpus - 1; /* 3 */ + y_swap += ncpus - 1; /* 4 */ + y_idlecursor += ncpus - 1; /* 5 */ + y_message += ncpus - 1; /* 5 */ + y_header += ncpus - 1; /* 6 */ + y_procs += ncpus - 1; /* 7 */ + Header_lines += ncpus - 1; /* 7 */ + } else { + y_mem = 3; + y_swap = 4; + y_idlecursor = 5; + y_message = 5; + y_header = 6; + y_procs = 7; + Header_lines = 7; + } +} + int machine_init(struct statics *statics, char do_unames) { - int pagesize; - size_t modelen; + int i, j, empty, pagesize; + size_t size; struct passwd *pw; - modelen = sizeof(smpmode); - if ((sysctlbyname("machdep.smp_active", &smpmode, &modelen, + size = sizeof(smpmode); + if ((sysctlbyname("machdep.smp_active", &smpmode, &size, NULL, 0) != 0 && - sysctlbyname("kern.smp.active", &smpmode, &modelen, + sysctlbyname("kern.smp.active", &smpmode, &size, NULL, 0) != 0) || - modelen != sizeof(smpmode)) + size != sizeof(smpmode)) smpmode = 0; if (do_unames) { @@ -299,51 +326,37 @@ machine_init(struct statics *statics, ch statics->order_names = ordernames; #endif - /* Adjust display based on ncpus */ - if (pcpu_stats) { - int i, j, empty; - size_t size; - - cpumask = 0; - ncpus = 0; - GETSYSCTL("kern.smp.maxcpus", maxcpu); - size = sizeof(long) * maxcpu * CPUSTATES; - times = malloc(size); - if (times == NULL) - err(1, "malloc %zd bytes", size); - if (sysctlbyname("kern.cp_times", times, &size, NULL, 0) == -1) - err(1, "sysctlbyname kern.cp_times"); - pcpu_cp_time = calloc(1, size); - maxid = (size / CPUSTATES / sizeof(long)) - 1; - for (i = 0; i <= maxid; i++) { - empty = 1; - for (j = 0; empty && j < CPUSTATES; j++) { - if (times[i * CPUSTATES + j] != 0) - empty = 0; - } - if (!empty) { - cpumask |= (1ul << i); - ncpus++; - } + /* Allocate state for per-CPU stats. */ + cpumask = 0; + ncpus = 0; + GETSYSCTL("kern.smp.maxcpus", maxcpu); + size = sizeof(long) * maxcpu * CPUSTATES; + times = malloc(size); + if (times == NULL) + err(1, "malloc %zd bytes", size); + if (sysctlbyname("kern.cp_times", times, &size, NULL, 0) == -1) + err(1, "sysctlbyname kern.cp_times"); + pcpu_cp_time = calloc(1, size); + maxid = (size / CPUSTATES / sizeof(long)) - 1; + for (i = 0; i <= maxid; i++) { + empty = 1; + for (j = 0; empty && j < CPUSTATES; j++) { + if (times[i * CPUSTATES + j] != 0) + empty = 0; } - - if (ncpus > 1) { - y_mem += ncpus - 1; /* 3 */ - y_swap += ncpus - 1; /* 4 */ - y_idlecursor += ncpus - 1; /* 5 */ - y_message += ncpus - 1; /* 5 */ - y_header += ncpus - 1; /* 6 */ - y_procs += ncpus - 1; /* 7 */ - Header_lines += ncpus - 1; /* 7 */ + if (!empty) { + cpumask |= (1ul << i); + ncpus++; } - size = sizeof(long) * ncpus * CPUSTATES; - pcpu_cp_old = calloc(1, size); - pcpu_cp_diff = calloc(1, size); - pcpu_cpu_states = calloc(1, size); - statics->ncpus = ncpus; - } else { - statics->ncpus = 1; } + size = sizeof(long) * ncpus * CPUSTATES; + pcpu_cp_old = calloc(1, size); + pcpu_cp_diff = calloc(1, size); + pcpu_cpu_states = calloc(1, size); + statics->ncpus = ncpus; + + if (pcpu_stats) + toggle_pcpustats(); /* all done! */ return (0); @@ -398,14 +411,11 @@ get_system_info(struct system_info *si) int i, j; size_t size; - /* get the cp_time array */ - if (pcpu_stats) { - size = (maxid + 1) * CPUSTATES * sizeof(long); - if (sysctlbyname("kern.cp_times", pcpu_cp_time, &size, NULL, 0) == -1) - err(1, "sysctlbyname kern.cp_times"); - } else { - GETSYSCTL("kern.cp_time", cp_time); - } + /* get the CPU stats */ + size = (maxid + 1) * CPUSTATES * sizeof(long); + if (sysctlbyname("kern.cp_times", pcpu_cp_time, &size, NULL, 0) == -1) + err(1, "sysctlbyname kern.cp_times"); + GETSYSCTL("kern.cp_time", cp_time); GETSYSCTL("vm.loadavg", sysload); GETSYSCTL("kern.lastpid", lastpid); @@ -413,21 +423,17 @@ get_system_info(struct system_info *si) for (i = 0; i < 3; i++) si->load_avg[i] = (double)sysload.ldavg[i] / sysload.fscale; - if (pcpu_stats) { - for (i = j = 0; i <= maxid; i++) { - if ((cpumask & (1ul << i)) == 0) - continue; - /* convert cp_time counts to percentages */ - percentages(CPUSTATES, &pcpu_cpu_states[j * CPUSTATES], - &pcpu_cp_time[j * CPUSTATES], - &pcpu_cp_old[j * CPUSTATES], - &pcpu_cp_diff[j * CPUSTATES]); - j++; - } - } else { - /* convert cp_time counts to percentages */ - percentages(CPUSTATES, cpu_states, cp_time, cp_old, cp_diff); + /* convert cp_time counts to percentages */ + for (i = j = 0; i <= maxid; i++) { + if ((cpumask & (1ul << i)) == 0) + continue; + percentages(CPUSTATES, &pcpu_cpu_states[j * CPUSTATES], + &pcpu_cp_time[j * CPUSTATES], + &pcpu_cp_old[j * CPUSTATES], + &pcpu_cp_diff[j * CPUSTATES]); + j++; } + percentages(CPUSTATES, cpu_states, cp_time, cp_old, cp_diff); /* sum memory & swap statistics */ { From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 17:41:57 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1CFB11065675; Fri, 16 Sep 2011 17:41:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0C6F28FC15; Fri, 16 Sep 2011 17:41:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GHfutN031752; Fri, 16 Sep 2011 17:41:56 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GHfuVE031750; Fri, 16 Sep 2011 17:41:56 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161741.p8GHfuVE031750@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 17:41:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225620 - stable/8/usr.bin/top X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 17:41:57 -0000 Author: jhb Date: Fri Sep 16 17:41:56 2011 New Revision: 225620 URL: http://svn.freebsd.org/changeset/base/225620 Log: MFC 224062: Revert 130163 and let top use KERN_PROC_PROC when individual threads are not displayed. The KERN_PROC_PROC sysctl was fixed in 188764. Modified: stable/8/usr.bin/top/machine.c Directory Properties: stable/8/usr.bin/top/ (props changed) Modified: stable/8/usr.bin/top/machine.c ============================================================================== --- stable/8/usr.bin/top/machine.c Fri Sep 16 17:39:39 2011 (r225619) +++ stable/8/usr.bin/top/machine.c Fri Sep 16 17:41:56 2011 (r225620) @@ -622,7 +622,6 @@ get_process_info(struct system_info *si, int active_procs; struct kinfo_proc **prefp; struct kinfo_proc *pp; - struct kinfo_proc *prev_pp = NULL; /* these are copied out of sel for speed */ int show_idle; @@ -655,7 +654,8 @@ get_process_info(struct system_info *si, } previous_proc_count = nproc; - pbase = kvm_getprocs(kd, KERN_PROC_ALL, 0, &nproc); + pbase = kvm_getprocs(kd, sel->thread ? KERN_PROC_ALL : KERN_PROC_PROC, + 0, &nproc); if (nproc > onproc) pref = realloc(pref, sizeof(*pref) * (onproc = nproc)); if (pref == NULL || pbase == NULL) { @@ -725,21 +725,8 @@ get_process_info(struct system_info *si, /* skip proc. that don't belong to the selected UID */ continue; - /* - * When not showing threads, take the first thread - * for output and add the fields that we can from - * the rest of the process's threads rather than - * using the system's mostly-broken KERN_PROC_PROC. - */ - if (sel->thread || prev_pp == NULL || - prev_pp->ki_pid != pp->ki_pid) { - *prefp++ = pp; - active_procs++; - prev_pp = pp; - } else { - prev_pp->ki_pctcpu += pp->ki_pctcpu; - prev_pp->ki_runtime += pp->ki_runtime; - } + *prefp++ = pp; + active_procs++; } /* if requested, sort the "interesting" processes */ From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 17:44:34 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 746751065672; Fri, 16 Sep 2011 17:44:34 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4A2B98FC12; Fri, 16 Sep 2011 17:44:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GHiYVJ031897; Fri, 16 Sep 2011 17:44:34 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GHiYq3031895; Fri, 16 Sep 2011 17:44:34 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161744.p8GHiYq3031895@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 17:44:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225621 - stable/8/sys/dev/mfi X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 17:44:34 -0000 Author: jhb Date: Fri Sep 16 17:44:33 2011 New Revision: 225621 URL: http://svn.freebsd.org/changeset/base/225621 Log: MFC 224039: Use MFI_STAT_* constants for cmd_status field values rather than magic numbers in a few places. Modified: stable/8/sys/dev/mfi/mfi.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/mfi/mfi.c ============================================================================== --- stable/8/sys/dev/mfi/mfi.c Fri Sep 16 17:41:56 2011 (r225620) +++ stable/8/sys/dev/mfi/mfi.c Fri Sep 16 17:44:33 2011 (r225621) @@ -1149,7 +1149,8 @@ mfi_aen_complete(struct mfi_command *cm) if (sc->mfi_aen_cm == NULL) return; - if (sc->mfi_aen_cm->cm_aen_abort || hdr->cmd_status == 0xff) { + if (sc->mfi_aen_cm->cm_aen_abort || + hdr->cmd_status == MFI_STAT_INVALID_STATUS) { sc->mfi_aen_cm->cm_aen_abort = 0; aborted = 1; } else { @@ -1405,7 +1406,7 @@ mfi_bio_complete(struct mfi_command *cm) hdr = &cm->cm_frame->header; sc = cm->cm_sc; - if ((hdr->cmd_status != 0) || (hdr->scsi_status != 0)) { + if ((hdr->cmd_status != MFI_STAT_OK) || (hdr->scsi_status != 0)) { bio->bio_flags |= BIO_ERROR; bio->bio_error = EIO; device_printf(sc->mfi_dev, "I/O error, status= %d " @@ -1549,7 +1550,7 @@ mfi_send_frame(struct mfi_softc *sc, str cm->cm_timestamp = time_uptime; mfi_enqueue_busy(cm); } else { - hdr->cmd_status = 0xff; + hdr->cmd_status = MFI_STAT_INVALID_STATUS; hdr->flags |= MFI_FRAME_DONT_POST_IN_REPLY_QUEUE; } @@ -1574,14 +1575,14 @@ mfi_send_frame(struct mfi_softc *sc, str return (0); /* This is a polled command, so busy-wait for it to complete. */ - while (hdr->cmd_status == 0xff) { + while (hdr->cmd_status == MFI_STAT_INVALID_STATUS) { DELAY(1000); tm -= 1; if (tm <= 0) break; } - if (hdr->cmd_status == 0xff) { + if (hdr->cmd_status == MFI_STAT_INVALID_STATUS) { device_printf(sc->mfi_dev, "Frame %p timed out " "command 0x%X\n", hdr, cm->cm_frame->dcmd.opcode); return (ETIMEDOUT); From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 17:47:13 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2BFCB1065672; Fri, 16 Sep 2011 17:47:13 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 01BB98FC13; Fri, 16 Sep 2011 17:47:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GHlCtg032046; Fri, 16 Sep 2011 17:47:12 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GHlCBl032043; Fri, 16 Sep 2011 17:47:12 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161747.p8GHlCBl032043@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 17:47:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225622 - stable/8/sys/dev/mfi X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 17:47:13 -0000 Author: jhb Date: Fri Sep 16 17:47:12 2011 New Revision: 225622 URL: http://svn.freebsd.org/changeset/base/225622 Log: MFC 224041: Support controllers whose option ROM is disabled in the BIOS by kicking the firmware so that it boots. Modified: stable/8/sys/dev/mfi/mfi.c stable/8/sys/dev/mfi/mfireg.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/mfi/mfi.c ============================================================================== --- stable/8/sys/dev/mfi/mfi.c Fri Sep 16 17:44:33 2011 (r225621) +++ stable/8/sys/dev/mfi/mfi.c Fri Sep 16 17:47:12 2011 (r225622) @@ -260,8 +260,12 @@ mfi_transition_firmware(struct mfi_softc case MFI_FWSTATE_FLUSH_CACHE: max_wait = 20; break; + case MFI_FWSTATE_BOOT_MESSAGE_PENDING: + MFI_WRITE4(sc, MFI_IDB, MFI_FWINIT_HOTPLUG); + max_wait = 10; + break; default: - device_printf(sc->mfi_dev,"Unknown firmware state %d\n", + device_printf(sc->mfi_dev,"Unknown firmware state %#x\n", fw_state); return (ENXIO); } @@ -273,7 +277,7 @@ mfi_transition_firmware(struct mfi_softc break; } if (fw_state == cur_state) { - device_printf(sc->mfi_dev, "firmware stuck in state " + device_printf(sc->mfi_dev, "Firmware stuck in state " "%#x\n", fw_state); return (ENXIO); } Modified: stable/8/sys/dev/mfi/mfireg.h ============================================================================== --- stable/8/sys/dev/mfi/mfireg.h Fri Sep 16 17:44:33 2011 (r225621) +++ stable/8/sys/dev/mfi/mfireg.h Fri Sep 16 17:47:12 2011 (r225622) @@ -112,6 +112,7 @@ __FBSDID("$FreeBSD$"); #define MFI_FWSTATE_WAIT_HANDSHAKE 0x60000000 #define MFI_FWSTATE_FW_INIT_2 0x70000000 #define MFI_FWSTATE_DEVICE_SCAN 0x80000000 +#define MFI_FWSTATE_BOOT_MESSAGE_PENDING 0x90000000 #define MFI_FWSTATE_FLUSH_CACHE 0xa0000000 #define MFI_FWSTATE_READY 0xb0000000 #define MFI_FWSTATE_OPERATIONAL 0xc0000000 @@ -127,6 +128,7 @@ __FBSDID("$FreeBSD$"); #define MFI_FWINIT_READY 0x00000002 /* Move from operational to ready */ #define MFI_FWINIT_MFIMODE 0x00000004 /* unknown */ #define MFI_FWINIT_CLEAR_HANDSHAKE 0x00000008 /* Respond to WAIT_HANDSHAKE */ +#define MFI_FWINIT_HOTPLUG 0x00000010 /* MFI Commands */ typedef enum { From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 18:18:38 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BDA48106564A; Fri, 16 Sep 2011 18:18:38 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ACCE78FC0C; Fri, 16 Sep 2011 18:18:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GIIcDD033039; Fri, 16 Sep 2011 18:18:38 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GIIcBf033037; Fri, 16 Sep 2011 18:18:38 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161818.p8GIIcBf033037@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 18:18:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225623 - stable/8/sys/boot/forth X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 18:18:38 -0000 Author: jhb Date: Fri Sep 16 18:18:38 2011 New Revision: 225623 URL: http://svn.freebsd.org/changeset/base/225623 Log: MFC 224228: Note that the "kernel" variable in loader.conf is the name of a directory containing a kernel under /boot and that it's default value is "kernel" not "/boot/kernel/kernel". Modified: stable/8/sys/boot/forth/loader.conf.5 Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/boot/forth/loader.conf.5 ============================================================================== --- stable/8/sys/boot/forth/loader.conf.5 Fri Sep 16 17:47:12 2011 (r225622) +++ stable/8/sys/boot/forth/loader.conf.5 Fri Sep 16 18:18:38 2011 (r225623) @@ -23,7 +23,7 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd January 16, 2008 +.Dd July 20, 2011 .Dt LOADER.CONF 5 .Os .Sh NAME @@ -107,6 +107,9 @@ present file. Name of the kernel to be loaded. If no kernel name is set, no additional modules will be loaded. +The name must be a subdirectory of +.Pa /boot +that contains a kernel. .It Ar kernel_options Flags to be passed to the kernel. .It Ar password @@ -185,7 +188,7 @@ selects the video console, and selects a mute console (useful for systems with neither a video console nor a serial port). .It Va kernel -.Pq Dq Pa /boot/kernel/kernel +.Pq Dq kernel .It Va loader_conf_files .Pq Dq Pa /boot/loader.conf /boot/loader.conf.local .It Va splash_bmp_load From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 18:23:40 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23533106566B; Fri, 16 Sep 2011 18:23:40 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 120118FC14; Fri, 16 Sep 2011 18:23:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GINdad033243; Fri, 16 Sep 2011 18:23:39 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GINdK9033239; Fri, 16 Sep 2011 18:23:39 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161823.p8GINdK9033239@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 18:23:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225624 - stable/8/sys/nfsclient X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 18:23:40 -0000 Author: jhb Date: Fri Sep 16 18:23:39 2011 New Revision: 225624 URL: http://svn.freebsd.org/changeset/base/225624 Log: MFC 224733: Allow the NFS client to use a max file size larger than 1TB for v3 mounts. It now allows files up to OFF_MAX subject to whatever limit the server advertises. Modified: stable/8/sys/nfsclient/nfs_bio.c stable/8/sys/nfsclient/nfs_vfsops.c stable/8/sys/nfsclient/nfs_vnops.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/nfsclient/nfs_bio.c ============================================================================== --- stable/8/sys/nfsclient/nfs_bio.c Fri Sep 16 18:18:38 2011 (r225623) +++ stable/8/sys/nfsclient/nfs_bio.c Fri Sep 16 18:23:39 2011 (r225624) @@ -438,6 +438,7 @@ nfs_bioread(struct vnode *vp, struct uio struct thread *td; struct nfsmount *nmp = VFSTONFS(vp->v_mount); daddr_t lbn, rabn; + off_t end; int bcount; int seqcount; int nra, error = 0, n = 0, on = 0; @@ -457,8 +458,9 @@ nfs_bioread(struct vnode *vp, struct uio } else mtx_unlock(&nmp->nm_mtx); + end = uio->uio_offset + uio->uio_resid; if (vp->v_type != VDIR && - (uio->uio_offset + uio->uio_resid) > nmp->nm_maxfilesize) + (end > nmp->nm_maxfilesize || end < uio->uio_offset)) return (EFBIG); if (nfs_directio_enable && (ioflag & IO_DIRECT) && (vp->v_type == VREG)) @@ -858,6 +860,7 @@ nfs_write(struct vop_write_args *ap) struct vattr vattr; struct nfsmount *nmp = VFSTONFS(vp->v_mount); daddr_t lbn; + off_t end; int bcount; int n, on, error = 0; @@ -925,7 +928,8 @@ flush_and_restart: if (uio->uio_offset < 0) return (EINVAL); - if ((uio->uio_offset + uio->uio_resid) > nmp->nm_maxfilesize) + end = uio->uio_offset + uio->uio_resid; + if (end > nmp->nm_maxfilesize || end < uio->uio_offset) return (EFBIG); if (uio->uio_resid == 0) return (0); Modified: stable/8/sys/nfsclient/nfs_vfsops.c ============================================================================== --- stable/8/sys/nfsclient/nfs_vfsops.c Fri Sep 16 18:18:38 2011 (r225623) +++ stable/8/sys/nfsclient/nfs_vfsops.c Fri Sep 16 18:23:39 2011 (r225624) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1226,13 +1227,11 @@ mountnfs(struct nfs_args *argp, struct m * * For V3, nfs_fsinfo will adjust this as necessary. Assume maximum * that we can handle until we find out otherwise. - * XXX Our "safe" limit on the client is what we can store in our - * buffer cache using signed(!) block numbers. */ if ((argp->flags & NFSMNT_NFSV3) == 0) nmp->nm_maxfilesize = 0xffffffffLL; else - nmp->nm_maxfilesize = (u_int64_t)0x80000000 * DEV_BSIZE - 1; + nmp->nm_maxfilesize = OFF_MAX; nmp->nm_timeo = NFS_TIMEO; nmp->nm_retry = NFS_RETRANS; Modified: stable/8/sys/nfsclient/nfs_vnops.c ============================================================================== --- stable/8/sys/nfsclient/nfs_vnops.c Fri Sep 16 18:18:38 2011 (r225623) +++ stable/8/sys/nfsclient/nfs_vnops.c Fri Sep 16 18:23:39 2011 (r225624) @@ -1277,6 +1277,7 @@ nfs_readrpc(struct vnode *vp, struct uio caddr_t bpos, dpos; struct mbuf *mreq, *mrep, *md, *mb; struct nfsmount *nmp; + off_t end; int error = 0, len, retlen, tsiz, eof, attrflag; int v3 = NFS_ISV3(vp); int rsize; @@ -1287,7 +1288,8 @@ nfs_readrpc(struct vnode *vp, struct uio nmp = VFSTONFS(vp->v_mount); tsiz = uiop->uio_resid; mtx_lock(&nmp->nm_mtx); - if (uiop->uio_offset + tsiz > nmp->nm_maxfilesize) { + end = uiop->uio_offset + tsiz; + if (end > nmp->nm_maxfilesize || end < uiop->uio_offset) { mtx_unlock(&nmp->nm_mtx); return (EFBIG); } @@ -1349,6 +1351,7 @@ nfs_writerpc(struct vnode *vp, struct ui caddr_t bpos, dpos; struct mbuf *mreq, *mrep, *md, *mb; struct nfsmount *nmp = VFSTONFS(vp->v_mount); + off_t end; int error = 0, len, tsiz, wccflag = NFSV3_WCCRATTR, rlen, commit; int v3 = NFS_ISV3(vp), committed = NFSV3WRITE_FILESYNC; int wsize; @@ -1357,7 +1360,8 @@ nfs_writerpc(struct vnode *vp, struct ui *must_commit = 0; tsiz = uiop->uio_resid; mtx_lock(&nmp->nm_mtx); - if (uiop->uio_offset + tsiz > nmp->nm_maxfilesize) { + end = uiop->uio_offset + tsiz; + if (end > nmp->nm_maxfilesize || end < uiop->uio_offset) { mtx_unlock(&nmp->nm_mtx); return (EFBIG); } From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 18:26:41 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3D379106564A; Fri, 16 Sep 2011 18:26:41 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 130D28FC08; Fri, 16 Sep 2011 18:26:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GIQeCJ033380; Fri, 16 Sep 2011 18:26:40 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GIQeGS033378; Fri, 16 Sep 2011 18:26:40 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161826.p8GIQeGS033378@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 18:26:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225625 - stable/8/sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 18:26:41 -0000 Author: jhb Date: Fri Sep 16 18:26:40 2011 New Revision: 225625 URL: http://svn.freebsd.org/changeset/base/225625 Log: MFC 225079: Add two new macros DRIVER_MODULE_ORDERED() and EARLY_DRIVER_MODULE_ORDERED() that allow a module to use an order other than the default of SI_ORDER_MIDDLE when registering a driver. This can be useful for drivers in a kld that contain multiple new-bus drivers as part of one logical device driver. A typical case would be to use SI_ORDER_LAST for the "main" driver to ensure that any other "helper" drivers are registered and available before the "main" driver attempts to attach. Modified: stable/8/sys/sys/bus.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/sys/bus.h ============================================================================== --- stable/8/sys/sys/bus.h Fri Sep 16 18:23:39 2011 (r225624) +++ stable/8/sys/sys/bus.h Fri Sep 16 18:26:40 2011 (r225625) @@ -575,7 +575,8 @@ struct driver_module_data { int dmd_pass; }; -#define EARLY_DRIVER_MODULE(name, busname, driver, devclass, evh, arg, pass) \ +#define EARLY_DRIVER_MODULE_ORDERED(name, busname, driver, devclass, \ + evh, arg, order, pass) \ \ static struct driver_module_data name##_##busname##_driver_mod = { \ evh, arg, \ @@ -591,7 +592,16 @@ static moduledata_t name##_##busname##_m &name##_##busname##_driver_mod \ }; \ DECLARE_MODULE(name##_##busname, name##_##busname##_mod, \ - SI_SUB_DRIVERS, SI_ORDER_MIDDLE) + SI_SUB_DRIVERS, order) + +#define EARLY_DRIVER_MODULE(name, busname, driver, devclass, evh, arg, pass) \ + EARLY_DRIVER_MODULE_ORDERED(name, busname, driver, devclass, \ + evh, arg, SI_ORDER_MIDDLE, pass) + +#define DRIVER_MODULE_ORDERED(name, busname, driver, devclass, evh, arg,\ + order) \ + EARLY_DRIVER_MODULE_ORDERED(name, busname, driver, devclass, \ + evh, arg, order, BUS_PASS_DEFAULT) #define DRIVER_MODULE(name, busname, driver, devclass, evh, arg) \ EARLY_DRIVER_MODULE(name, busname, driver, devclass, evh, arg, \ From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 18:36:44 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0A207106564A; Fri, 16 Sep 2011 18:36:44 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D3D698FC14; Fri, 16 Sep 2011 18:36:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GIahZo033729; Fri, 16 Sep 2011 18:36:43 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GIahoB033725; Fri, 16 Sep 2011 18:36:43 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161836.p8GIahoB033725@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 18:36:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225626 - in stable/8/sys: amd64/amd64 amd64/conf conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 18:36:44 -0000 Author: jhb Date: Fri Sep 16 18:36:43 2011 New Revision: 225626 URL: http://svn.freebsd.org/changeset/base/225626 Log: MFC 225194: Make NKPT a kernel option on amd64 so that it can be set to a non-default value from kernel config files. Modified: stable/8/sys/amd64/amd64/minidump_machdep.c stable/8/sys/amd64/conf/NOTES stable/8/sys/conf/options.amd64 Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/amd64/amd64/minidump_machdep.c ============================================================================== --- stable/8/sys/amd64/amd64/minidump_machdep.c Fri Sep 16 18:26:40 2011 (r225625) +++ stable/8/sys/amd64/amd64/minidump_machdep.c Fri Sep 16 18:36:43 2011 (r225626) @@ -27,6 +27,7 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_pmap.h" #include "opt_watchdog.h" #include Modified: stable/8/sys/amd64/conf/NOTES ============================================================================== --- stable/8/sys/amd64/conf/NOTES Fri Sep 16 18:26:40 2011 (r225625) +++ stable/8/sys/amd64/conf/NOTES Fri Sep 16 18:36:43 2011 (r225626) @@ -493,6 +493,14 @@ options ENABLE_ALART # Control alarm o # options PMAP_SHPGPERPROC=201 +# +# Number of initial kernel page table pages used for early bootstrap. +# This number should include enough pages to map the kernel and any +# modules or other data loaded with the kernel by the loader. Each +# page table page maps 2MB. +# +options NKPT=31 + ##################################################################### # ABI Emulation Modified: stable/8/sys/conf/options.amd64 ============================================================================== --- stable/8/sys/conf/options.amd64 Fri Sep 16 18:26:40 2011 (r225625) +++ stable/8/sys/conf/options.amd64 Fri Sep 16 18:36:43 2011 (r225626) @@ -8,6 +8,7 @@ PERFMON PMAP_SHPGPERPROC opt_pmap.h MPTABLE_FORCE_HTT MP_WATCHDOG +NKPT opt_pmap.h # Options for emulators. These should only be used at config time, so # they are handled like options for static filesystems From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 18:41:20 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C8BD1065670; Fri, 16 Sep 2011 18:41:20 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D61048FC16; Fri, 16 Sep 2011 18:41:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GIfJ1K033909; Fri, 16 Sep 2011 18:41:19 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GIfJO9033906; Fri, 16 Sep 2011 18:41:19 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161841.p8GIfJO9033906@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 18:41:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225627 - in stable/8/sys: amd64/conf i386/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 18:41:20 -0000 Author: jhb Date: Fri Sep 16 18:41:19 2011 New Revision: 225627 URL: http://svn.freebsd.org/changeset/base/225627 Log: MFC 225201: Enable the puc(4) driver on amd64 and i386 in GENERIC. This allows devices supported by puc(4) to work "out of the box" since puc.ko does not work "out of the box". Modified: stable/8/sys/amd64/conf/GENERIC stable/8/sys/i386/conf/GENERIC Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/amd64/conf/GENERIC ============================================================================== --- stable/8/sys/amd64/conf/GENERIC Fri Sep 16 18:36:43 2011 (r225626) +++ stable/8/sys/amd64/conf/GENERIC Fri Sep 16 18:41:19 2011 (r225627) @@ -189,10 +189,7 @@ device plip # TCP/IP over parallel device ppi # Parallel port interface device #device vpo # Requires scbus and da -# If you've got a "dumb" serial or parallel PCI card that is -# supported by the puc(4) glue driver, uncomment the following -# line to enable it (connects to sio, uart and/or ppc drivers): -#device puc +device puc # Multi I/O cards and multi-channel UARTs # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') Modified: stable/8/sys/i386/conf/GENERIC ============================================================================== --- stable/8/sys/i386/conf/GENERIC Fri Sep 16 18:36:43 2011 (r225626) +++ stable/8/sys/i386/conf/GENERIC Fri Sep 16 18:41:19 2011 (r225627) @@ -199,10 +199,7 @@ device plip # TCP/IP over parallel device ppi # Parallel port interface device #device vpo # Requires scbus and da -# If you've got a "dumb" serial or parallel PCI card that is -# supported by the puc(4) glue driver, uncomment the following -# line to enable it (connects to sio, uart and/or ppc drivers): -#device puc +device puc # Multi I/O cards and multi-channel UARTs # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 19:29:12 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 493D1106566B; Fri, 16 Sep 2011 19:29:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 384648FC14; Fri, 16 Sep 2011 19:29:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GJTCk8035554; Fri, 16 Sep 2011 19:29:12 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GJTC2i035552; Fri, 16 Sep 2011 19:29:12 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161929.p8GJTC2i035552@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 19:29:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225628 - stable/8/sbin/ipfw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 19:29:12 -0000 Author: jhb Date: Fri Sep 16 19:29:11 2011 New Revision: 225628 URL: http://svn.freebsd.org/changeset/base/225628 Log: MFC 224942: Fix a regression where a rule containing a source port option after a destination IP would incorrectly display the source port as a destination port. Modified: stable/8/sbin/ipfw/ipfw2.c Directory Properties: stable/8/sbin/ipfw/ (props changed) Modified: stable/8/sbin/ipfw/ipfw2.c ============================================================================== --- stable/8/sbin/ipfw/ipfw2.c Fri Sep 16 18:41:19 2011 (r225627) +++ stable/8/sbin/ipfw/ipfw2.c Fri Sep 16 19:29:11 2011 (r225628) @@ -1263,6 +1263,8 @@ show_ipfw(struct ip_fw *rule, int pcwidt HAVE_PROTO | HAVE_SRCIP | HAVE_DSTIP | HAVE_IP, 0); case O_IP_SRCPORT: + if (flags & HAVE_DSTIP) + flags |= HAVE_IP; show_prerequisites(&flags, HAVE_PROTO | HAVE_SRCIP, 0); if ((cmd->len & F_OR) && !or_block) From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 19:52:49 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 881551065674; Fri, 16 Sep 2011 19:52:49 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6DFC98FC1B; Fri, 16 Sep 2011 19:52:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GJqnj4036326; Fri, 16 Sep 2011 19:52:49 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GJqnAr036324; Fri, 16 Sep 2011 19:52:49 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161952.p8GJqnAr036324@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 19:52:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225629 - stable/8/gnu/usr.bin/gdb/kgdb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 19:52:49 -0000 Author: jhb Date: Fri Sep 16 19:52:49 2011 New Revision: 225629 URL: http://svn.freebsd.org/changeset/base/225629 Log: MFC 225017: Walk the zombproc list as well as the allproc list when enumerating threads and processes in a kernel image. This allows examination of threads that have exited or are in the late stages of exiting. Modified: stable/8/gnu/usr.bin/gdb/kgdb/kthr.c Directory Properties: stable/8/gnu/usr.bin/gdb/kgdb/ (props changed) Modified: stable/8/gnu/usr.bin/gdb/kgdb/kthr.c ============================================================================== --- stable/8/gnu/usr.bin/gdb/kgdb/kthr.c Fri Sep 16 19:29:11 2011 (r225628) +++ stable/8/gnu/usr.bin/gdb/kgdb/kthr.c Fri Sep 16 19:52:49 2011 (r225629) @@ -72,12 +72,53 @@ kgdb_thr_first(void) return (first); } -struct kthr * -kgdb_thr_init(void) +static void +kgdb_thr_add_procs(uintptr_t paddr) { struct proc p; struct thread td; struct kthr *kt; + CORE_ADDR addr; + + while (paddr != 0) { + if (kvm_read(kvm, paddr, &p, sizeof(p)) != sizeof(p)) { + warnx("kvm_read: %s", kvm_geterr(kvm)); + break; + } + addr = (uintptr_t)TAILQ_FIRST(&p.p_threads); + while (addr != 0) { + if (kvm_read(kvm, addr, &td, sizeof(td)) != + sizeof(td)) { + warnx("kvm_read: %s", kvm_geterr(kvm)); + break; + } + kt = malloc(sizeof(*kt)); + kt->next = first; + kt->kaddr = addr; + if (td.td_tid == dumptid) + kt->pcb = dumppcb; + else if (td.td_state == TDS_RUNNING && ((1 << td.td_oncpu) & stopped_cpus) + && stoppcbs != 0) + kt->pcb = (uintptr_t)stoppcbs + + sizeof(struct pcb) * td.td_oncpu; + else + kt->pcb = (uintptr_t)td.td_pcb; + kt->kstack = td.td_kstack; + kt->tid = td.td_tid; + kt->pid = p.p_pid; + kt->paddr = paddr; + kt->cpu = td.td_oncpu; + first = kt; + addr = (uintptr_t)TAILQ_NEXT(&td, td_plist); + } + paddr = (uintptr_t)LIST_NEXT(&p, p_list); + } +} + +struct kthr * +kgdb_thr_init(void) +{ + struct kthr *kt; uintptr_t addr, paddr; while (first != NULL) { @@ -113,37 +154,11 @@ kgdb_thr_init(void) stoppcbs = kgdb_lookup("_stoppcbs"); - while (paddr != 0) { - if (kvm_read(kvm, paddr, &p, sizeof(p)) != sizeof(p)) { - warnx("kvm_read: %s", kvm_geterr(kvm)); - break; - } - addr = (uintptr_t)TAILQ_FIRST(&p.p_threads); - while (addr != 0) { - if (kvm_read(kvm, addr, &td, sizeof(td)) != - sizeof(td)) { - warnx("kvm_read: %s", kvm_geterr(kvm)); - break; - } - kt = malloc(sizeof(*kt)); - kt->next = first; - kt->kaddr = addr; - if (td.td_tid == dumptid) - kt->pcb = dumppcb; - else if (td.td_state == TDS_RUNNING && ((1 << td.td_oncpu) & stopped_cpus) - && stoppcbs != 0) - kt->pcb = (uintptr_t) stoppcbs + sizeof(struct pcb) * td.td_oncpu; - else - kt->pcb = (uintptr_t)td.td_pcb; - kt->kstack = td.td_kstack; - kt->tid = td.td_tid; - kt->pid = p.p_pid; - kt->paddr = paddr; - kt->cpu = td.td_oncpu; - first = kt; - addr = (uintptr_t)TAILQ_NEXT(&td, td_plist); - } - paddr = (uintptr_t)LIST_NEXT(&p, p_list); + kgdb_thr_add_procs(paddr); + addr = kgdb_lookup("zombproc"); + if (addr != 0) { + kvm_read(kvm, addr, &paddr, sizeof(paddr)); + kgdb_thr_add_procs(paddr); } curkthr = kgdb_thr_lookup_tid(dumptid); if (curkthr == NULL) From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 19:53:56 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 730681065677; Fri, 16 Sep 2011 19:53:56 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6221F8FC0A; Fri, 16 Sep 2011 19:53:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GJrubB036408; Fri, 16 Sep 2011 19:53:56 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GJrurq036406; Fri, 16 Sep 2011 19:53:56 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201109161953.p8GJrurq036406@svn.freebsd.org> From: John Baldwin Date: Fri, 16 Sep 2011 19:53:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225630 - stable/8/share/man/man4 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 19:53:56 -0000 Author: jhb Date: Fri Sep 16 19:53:56 2011 New Revision: 225630 URL: http://svn.freebsd.org/changeset/base/225630 Log: MFC 225200: - Replace references to sio(4) with uart(4) instead. - We no longer use the same data structure in as NetBSD in pucdata.c. - ppc(4) has had a puc(4) attachment for a while now. Modified: stable/8/share/man/man4/puc.4 Directory Properties: stable/8/share/man/man4/ (props changed) Modified: stable/8/share/man/man4/puc.4 ============================================================================== --- stable/8/share/man/man4/puc.4 Fri Sep 16 19:52:49 2011 (r225629) +++ stable/8/share/man/man4/puc.4 Fri Sep 16 19:53:56 2011 (r225630) @@ -35,11 +35,11 @@ Communications driver .Sh SYNOPSIS .Cd "device pci" .Cd "device puc" -.Cd "device sio" +.Cd "device uart" .Cd "device ppc" .Sh DESCRIPTION This driver acts as a shim to connect PCI serial and parallel ports to the -.Xr sio 4 +.Xr uart 4 and .Xr ppc 4 driver. @@ -49,14 +49,9 @@ The list of supported devices is in Support for new cards should be added there. .Sh SEE ALSO .Xr ppc 4 , -.Xr sio 4 +.Xr uart 4 .Sh HISTORY This driver took the idea from the .Nx .Xr puc 4 -driver and still uses the same structure to describe cards, to ease exchanging -card info. -.Sh BUGS -Only serial ports are supported through the -.Xr sio 4 -driver at the moment. +driver. From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 21:36:21 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5C95C106564A; Fri, 16 Sep 2011 21:36:21 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-qy0-f182.google.com (mail-qy0-f182.google.com [209.85.216.182]) by mx1.freebsd.org (Postfix) with ESMTP id D55BD8FC1B; Fri, 16 Sep 2011 21:36:20 +0000 (UTC) Received: by qyk4 with SMTP id 4so4825471qyk.13 for ; Fri, 16 Sep 2011 14:36:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=qd0o9HprGgD5B9HxA+/T4DtqZzEesqfqnw9fpBw9SQs=; b=Hy+TT/0XTpX6JlEGSZY2HK+06Anu0ZAkb4GYP33vSo8Cc4NO6kLHbTtLt17jmEQW6x EvbhnhfE1/vJqxgwW0jCHITk6yeKVpy6AilnVJanlsq+8C3HGH0BrDlPh6Ktwdm+IPzK NaDWTJUrgqXm3X1b5n+BDqEU6HOOvY8c5DNTQ= MIME-Version: 1.0 Received: by 10.224.18.203 with SMTP id x11mr2282913qaa.92.1316208979952; Fri, 16 Sep 2011 14:36:19 -0700 (PDT) Received: by 10.224.37.83 with HTTP; Fri, 16 Sep 2011 14:36:19 -0700 (PDT) In-Reply-To: <470110EF-3C4A-42D2-B2FE-3CE3836DAEBF@gmail.com> References: <201109160937.p8G9bDb3013489@svn.freebsd.org> <470110EF-3C4A-42D2-B2FE-3CE3836DAEBF@gmail.com> Date: Fri, 16 Sep 2011 14:36:19 -0700 Message-ID: From: Garrett Cooper To: Nathan Whitehorn Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r225612 - head/usr.sbin/bsdinstall/scripts X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 21:36:21 -0000 On Fri, Sep 16, 2011 at 6:29 AM, Garrett Cooper wrote: > On Sep 16, 2011, at 2:37 AM, Nathan Whitehorn wrote: > >> Author: nwhitehorn >> Date: Fri Sep 16 09:37:13 2011 >> New Revision: 225612 >> URL: http://svn.freebsd.org/changeset/base/225612 >> >> Log: >> =A0Fix WPA setup broken by changes to shell argument passing inside the >> =A0installer network configuration. >> >> =A0PR: =A0 =A0 =A0 =A0 =A0bin/159558 >> =A0Approved by: re (kib) >> >> Modified: >> =A0head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 >> >> Modified: head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 =A0 Fri Sep 16 09:15= :34 2011 =A0 =A0 =A0 =A0(r225611) >> +++ head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 =A0 Fri Sep 16 09:37= :13 2011 =A0 =A0 =A0 =A0(r225612) >> @@ -35,6 +35,7 @@ >> >> INTERFACE=3D$1 >> IFCONFIG_PREFIX=3D"$2" >> +test -z "$IFCONFIG_PREFIX" || IFCONFIG_PREFIX=3D"$2 " > > You can replace the above two lines with: > > IFCONFIG_PREFIX=3D${IFCONFIG_PREFIX:-$2} > > Example: > > starr-wireless:~ gcooper$ set -- "" "" > starr-wireless:~ gcooper$ IFCONFIG_PREFIX=3Dfoo > starr-wireless:~ gcooper$ IFCONFIG_PREFIX=3D${IFCONFIG_PREFIX:-$2} > starr-wireless:~ gcooper$ echo $IFCONFIG_PREFIX > foo > starr-wireless:~ gcooper$ set -- "" "a" > starr-wireless:~ gcooper$ IFCONFIG_PREFIX=3D > starr-wireless:~ gcooper$ IFCONFIG_PREFIX=3D${IFCONFIG_PREFIX:-$2} > starr-wireless:~ gcooper$ echo $IFCONFIG_PREFIX > a I didn't see the trailing space that was added. jilles@ noted that this form is usable though (and I agree): IFCONFIG_PREFIX=3D${2:+$2 } Thanks, -Garrett From owner-svn-src-all@FreeBSD.ORG Fri Sep 16 22:57:50 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC2C5106566B; Fri, 16 Sep 2011 22:57:50 +0000 (UTC) (envelope-from cs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 636058FC14; Fri, 16 Sep 2011 22:57:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8GMvojF042059; Fri, 16 Sep 2011 22:57:50 GMT (envelope-from cs@svn.freebsd.org) Received: (from cs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8GMvowd042057; Fri, 16 Sep 2011 22:57:50 GMT (envelope-from cs@svn.freebsd.org) Message-Id: <201109162257.p8GMvowd042057@svn.freebsd.org> From: Carlo Strub Date: Fri, 16 Sep 2011 22:57:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225632 - head/share/misc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 22:57:50 -0000 Author: cs (ports committer) Date: Fri Sep 16 22:57:50 2011 New Revision: 225632 URL: http://svn.freebsd.org/changeset/base/225632 Log: Add myself and connect me with my mentors Approved by: re@, glarkin@ Modified: head/share/misc/committers-ports.dot Modified: head/share/misc/committers-ports.dot ============================================================================== --- head/share/misc/committers-ports.dot Fri Sep 16 22:38:57 2011 (r225631) +++ head/share/misc/committers-ports.dot Fri Sep 16 22:57:50 2011 (r225632) @@ -68,6 +68,7 @@ clement [label="Clement Laforet\nclement clsung [label="Cheng-Lung Sung\nclsung@FreeBSD.org\n2004/8/18"] cperciva [label="Colin Percival\ncperciva@FreeBSD.org\n2006/01/31"] crees [label="Chris Rees\ncrees@FreeBSD.org\n2011/06/11"] +cs [label="Carlo Strub\ncs@FreeBSD.org\n2011/09/13"] culot [label="Frederic Culot\nculot@FreeBSD.org\n2010/10/16"] daichi [label="Daichi Goto\ndaichi@FreeBSD.org\n2002/10/17"] danfe [label="Alexey Dokuchaev\ndanfe@FreeBSD.org\n2004/08/20"] @@ -273,6 +274,7 @@ garga -> wxs garga -> xride glarkin -> avl +glarkin -> cs glewis -> hq glewis -> jkim @@ -421,6 +423,7 @@ thierry -> jadawin tmclaugh -> itetcu tmclaugh -> xride +wen -> cs wen -> culot wen -> pawel From owner-svn-src-all@FreeBSD.ORG Sat Sep 17 08:50:30 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 00B3F1065670; Sat, 17 Sep 2011 08:50:29 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AAADF8FC0C; Sat, 17 Sep 2011 08:50:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8H8oTWs060061; Sat, 17 Sep 2011 08:50:29 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8H8oTx2060055; Sat, 17 Sep 2011 08:50:29 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201109170850.p8H8oTx2060055@svn.freebsd.org> From: Michael Tuexen Date: Sat, 17 Sep 2011 08:50:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225635 - head/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Sep 2011 08:50:30 -0000 Author: tuexen Date: Sat Sep 17 08:50:29 2011 New Revision: 225635 URL: http://svn.freebsd.org/changeset/base/225635 Log: Fix the enabling/disabling of Heartbeats and path MTU discovery when using the SCTP_PEER_ADDR_PARAMS socket option. Approved by: re MFC after: 1 month. Modified: head/sys/netinet/sctp.h head/sys/netinet/sctp_constants.h head/sys/netinet/sctp_pcb.c head/sys/netinet/sctp_usrreq.c head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctp.h ============================================================================== --- head/sys/netinet/sctp.h Sat Sep 17 05:35:59 2011 (r225634) +++ head/sys/netinet/sctp.h Sat Sep 17 08:50:29 2011 (r225635) @@ -496,6 +496,7 @@ struct sctp_error_unrecognized_chunk { /* * PCB Features (in sctp_features bitmask) */ +#define SCTP_PCB_FLAGS_DO_NOT_PMTUD 0x00000001 #define SCTP_PCB_FLAGS_EXT_RCVINFO 0x00000002 /* deprecated */ #define SCTP_PCB_FLAGS_DONOT_HEARTBEAT 0x00000004 #define SCTP_PCB_FLAGS_FRAG_INTERLEAVE 0x00000008 Modified: head/sys/netinet/sctp_constants.h ============================================================================== --- head/sys/netinet/sctp_constants.h Sat Sep 17 05:35:59 2011 (r225634) +++ head/sys/netinet/sctp_constants.h Sat Sep 17 08:50:29 2011 (r225635) @@ -508,6 +508,7 @@ __FBSDID("$FreeBSD$"); /* SCTP reachability state for each address */ #define SCTP_ADDR_REACHABLE 0x001 +#define SCTP_ADDR_NO_PMTUD 0x002 #define SCTP_ADDR_NOHB 0x004 #define SCTP_ADDR_BEING_DELETED 0x008 #define SCTP_ADDR_NOT_IN_ASSOC 0x010 Modified: head/sys/netinet/sctp_pcb.c ============================================================================== --- head/sys/netinet/sctp_pcb.c Sat Sep 17 05:35:59 2011 (r225634) +++ head/sys/netinet/sctp_pcb.c Sat Sep 17 08:50:29 2011 (r225635) @@ -4030,11 +4030,16 @@ sctp_add_remote_addr(struct sctp_tcb *st #ifdef INET6 net->flowlabel = stcb->asoc.default_flowlabel; #endif - if (sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_DONOT_HEARTBEAT)) { + if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_DONOT_HEARTBEAT)) { net->dest_state |= SCTP_ADDR_NOHB; } else { net->dest_state &= ~SCTP_ADDR_NOHB; } + if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_DO_NOT_PMTUD)) { + net->dest_state |= SCTP_ADDR_NO_PMTUD; + } else { + net->dest_state &= ~SCTP_ADDR_NO_PMTUD; + } net->heart_beat_delay = stcb->asoc.heart_beat_delay; /* Init the timer structure */ SCTP_OS_TIMER_INIT(&net->rxt_timer.timer); Modified: head/sys/netinet/sctp_usrreq.c ============================================================================== --- head/sys/netinet/sctp_usrreq.c Sat Sep 17 05:35:59 2011 (r225634) +++ head/sys/netinet/sctp_usrreq.c Sat Sep 17 08:50:29 2011 (r225635) @@ -2423,12 +2423,13 @@ flags_out: paddrp->spp_pathmaxrxt = net->failure_threshold; paddrp->spp_pathmtu = net->mtu - ovh; /* get flags for HB */ - if (net->dest_state & SCTP_ADDR_NOHB) + if (net->dest_state & SCTP_ADDR_NOHB) { paddrp->spp_flags |= SPP_HB_DISABLE; - else + } else { paddrp->spp_flags |= SPP_HB_ENABLE; + } /* get flags for PMTU */ - if (SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) { + if (net->dest_state & SCTP_ADDR_NO_PMTUD) { paddrp->spp_flags |= SPP_PMTUD_ENABLE; } else { paddrp->spp_flags |= SPP_PMTUD_DISABLE; @@ -2449,8 +2450,6 @@ flags_out: * No destination so return default * value */ - int cnt = 0; - paddrp->spp_pathmaxrxt = stcb->asoc.def_net_failure; paddrp->spp_pathmtu = sctp_get_frag_point(stcb, &stcb->asoc); if (stcb->asoc.default_dscp & 0x01) { @@ -2464,20 +2463,17 @@ flags_out: } #endif /* default settings should be these */ - if (sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_DONOT_HEARTBEAT)) { + if (sctp_stcb_is_feature_on(inp, stcb, SCTP_PCB_FLAGS_DONOT_HEARTBEAT)) { paddrp->spp_flags |= SPP_HB_DISABLE; } else { paddrp->spp_flags |= SPP_HB_ENABLE; } - paddrp->spp_hbinterval = stcb->asoc.heart_beat_delay; - TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { - if (SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) { - cnt++; - } - } - if (cnt) { + if (sctp_stcb_is_feature_on(inp, stcb, SCTP_PCB_FLAGS_DO_NOT_PMTUD)) { + paddrp->spp_flags |= SPP_PMTUD_DISABLE; + } else { paddrp->spp_flags |= SPP_PMTUD_ENABLE; } + paddrp->spp_hbinterval = stcb->asoc.heart_beat_delay; } paddrp->spp_assoc_id = sctp_get_associd(stcb); SCTP_TCB_UNLOCK(stcb); @@ -2505,14 +2501,16 @@ flags_out: /* can't return this */ paddrp->spp_pathmtu = 0; - /* default behavior, no stcb */ - paddrp->spp_flags = SPP_PMTUD_ENABLE; - if (sctp_is_feature_off(inp, SCTP_PCB_FLAGS_DONOT_HEARTBEAT)) { paddrp->spp_flags |= SPP_HB_ENABLE; } else { paddrp->spp_flags |= SPP_HB_DISABLE; } + if (sctp_is_feature_off(inp, SCTP_PCB_FLAGS_DO_NOT_PMTUD)) { + paddrp->spp_flags |= SPP_PMTUD_ENABLE; + } else { + paddrp->spp_flags |= SPP_PMTUD_DISABLE; + } SCTP_INP_RUNLOCK(inp); } else { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); @@ -4651,6 +4649,7 @@ sctp_setopt(struct socket *so, int optna sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_10); } + net->dest_state |= SCTP_ADDR_NO_PMTUD; if (paddrp->spp_pathmtu > SCTP_DEFAULT_MINSEGMENT) { net->mtu = paddrp->spp_pathmtu + ovh; if (net->mtu < stcb->asoc.smallest_mtu) { @@ -4659,9 +4658,10 @@ sctp_setopt(struct socket *so, int optna } } if (paddrp->spp_flags & SPP_PMTUD_ENABLE) { - if (SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) { + if (!SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) { sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net); } + net->dest_state &= ~SCTP_ADDR_NO_PMTUD; } if (paddrp->spp_pathmaxrxt) { if (net->dest_state & SCTP_ADDR_PF) { @@ -4754,9 +4754,9 @@ sctp_setopt(struct socket *so, int optna SCTP_FROM_SCTP_USRREQ + SCTP_LOC_10); sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net); } + sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_DONOT_HEARTBEAT); } if (paddrp->spp_flags & SPP_HB_DISABLE) { - /* Turn back on the timer */ TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { if (!(net->dest_state & SCTP_ADDR_NOHB)) { net->dest_state |= SCTP_ADDR_NOHB; @@ -4765,6 +4765,7 @@ sctp_setopt(struct socket *so, int optna } } } + sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_DONOT_HEARTBEAT); } if ((paddrp->spp_flags & SPP_PMTUD_DISABLE) && (paddrp->spp_pathmtu >= SCTP_SMALLEST_PMTU)) { TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { @@ -4772,6 +4773,7 @@ sctp_setopt(struct socket *so, int optna sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_10); } + net->dest_state |= SCTP_ADDR_NO_PMTUD; if (paddrp->spp_pathmtu > SCTP_DEFAULT_MINSEGMENT) { net->mtu = paddrp->spp_pathmtu + ovh; if (net->mtu < stcb->asoc.smallest_mtu) { @@ -4779,13 +4781,16 @@ sctp_setopt(struct socket *so, int optna } } } + sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_DO_NOT_PMTUD); } if (paddrp->spp_flags & SPP_PMTUD_ENABLE) { TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { - if (SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) { + if (!SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) { sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net); } + net->dest_state &= ~SCTP_ADDR_NO_PMTUD; } + sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_DO_NOT_PMTUD); } if (paddrp->spp_flags & SPP_DSCP) { TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { @@ -4840,6 +4845,11 @@ sctp_setopt(struct socket *so, int optna } else if (paddrp->spp_flags & SPP_HB_DISABLE) { sctp_feature_on(inp, SCTP_PCB_FLAGS_DONOT_HEARTBEAT); } + if (paddrp->spp_flags & SPP_PMTUD_ENABLE) { + sctp_feature_off(inp, SCTP_PCB_FLAGS_DO_NOT_PMTUD); + } else if (paddrp->spp_flags & SPP_PMTUD_DISABLE) { + sctp_feature_on(inp, SCTP_PCB_FLAGS_DO_NOT_PMTUD); + } if (paddrp->spp_flags & SPP_DSCP) { inp->sctp_ep.default_dscp = paddrp->spp_dscp << 2; inp->sctp_ep.default_dscp |= 0x01; Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Sat Sep 17 05:35:59 2011 (r225634) +++ head/sys/netinet/sctputil.c Sat Sep 17 08:50:29 2011 (r225635) @@ -2052,6 +2052,9 @@ sctp_timer_start(int t_type, struct sctp if (net == NULL) { return; } + if (net->dest_state & SCTP_ADDR_NO_PMTUD) { + return; + } to_ticks = inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_PMTU]; tmr = &net->pmtu_timer; break; From owner-svn-src-all@FreeBSD.ORG Sat Sep 17 09:25:45 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC5BA106564A; Sat, 17 Sep 2011 09:25:45 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9224D8FC08; Sat, 17 Sep 2011 09:25:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8H9PjdL061193; Sat, 17 Sep 2011 09:25:45 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8H9Pjdw061190; Sat, 17 Sep 2011 09:25:45 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201109170925.p8H9Pjdw061190@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 17 Sep 2011 09:25:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225637 - in head: release usr.sbin/bsdinstall/scripts X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Sep 2011 09:25:45 -0000 Author: nwhitehorn Date: Sat Sep 17 09:25:45 2011 New Revision: 225637 URL: http://svn.freebsd.org/changeset/base/225637 Log: Inquire about terminal type if starting from a serial console and do not configure the host's networking if netbooted [1]. Also fix FTP installations behind some firewalls [2]. PR: bin/159583 [2] Reported by: stas [1] Approved by: re (kib) Modified: head/release/rc.local head/usr.sbin/bsdinstall/scripts/auto Modified: head/release/rc.local ============================================================================== --- head/release/rc.local Sat Sep 17 08:54:23 2011 (r225636) +++ head/release/rc.local Sat Sep 17 09:25:45 2011 (r225637) @@ -8,13 +8,37 @@ : ${DIALOG_ITEM_HELP=4} : ${DIALOG_ESC=255} -TERM=xterm; export TERM # XXX: serial consoles +kbdcontrol -d >/dev/null 2>&1 +if [ $? -eq 0 ]; then + # Syscons: use xterm + TERM=xterm +else + # Serial or other console + echo + echo "Welcome to FreeBSD!" + echo + echo "Please choose the appropriate terminal type for your system." + echo "Common console types are:" + echo " ansi Standard ANSI terminal" + echo " vt100 VT100 or compatible terminal" + echo " xterm xterm terminal emulator (or compatible)" + echo + echo -n "Console type [vt100]: " + read TERM + TERM=${TERM:-vt100} +fi +export TERM dialog --backtitle "FreeBSD Installer" --title "Welcome" --extra-button --extra-label "Shell" --ok-label "Install" --cancel-label "Live CD" --yesno "Welcome to FreeBSD! Would you like to begin an installation or use the live CD?" 0 0 case $? in $DIALOG_OK) # Install - BSDINSTALL_CONFIGCURRENT=yes; export BSDINSTALL_CONFIGCURRENT + # If not netbooting, have the installer configure the network + dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null` + if [ ${dlv:=0} -eq 0 -a ! -f /etc/diskless ]; then + BSDINSTALL_CONFIGCURRENT=yes; export BSDINSTALL_CONFIGCURRENT + fi + trap true SIGINT # Ignore cntrl-C here bsdinstall if [ $? -eq 0 ]; then Modified: head/usr.sbin/bsdinstall/scripts/auto ============================================================================== --- head/usr.sbin/bsdinstall/scripts/auto Sat Sep 17 08:54:23 2011 (r225636) +++ head/usr.sbin/bsdinstall/scripts/auto Sat Sep 17 09:25:45 2011 (r225637) @@ -35,7 +35,7 @@ error() { --no-label "Exit" --yes-label "Restart" --yesno \ "An installation step has been aborted. Would you like to restart the installation or exit the installer?" 0 0 if [ $? -ne 0 ]; then - exit + exit 1 else exec $0 fi @@ -128,14 +128,12 @@ if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then if [ -d $BSDINSTALL_DISTDIR ]; then DISTDIR_IS_UNIONFS=1 mount_nullfs -o union "$BSDINSTALL_FETCHDEST" "$BSDINSTALL_DISTDIR" - fi - - # Otherwise, fetch everything - if [ $? -ne 0 ]; then - export DISTRIBUTIONS="$ALL_DISTRIBUTIONS" + else + export DISTRIBUTIONS="MANIFEST $ALL_DISTRIBUTIONS" export BSDINSTALL_DISTDIR="$BSDINSTALL_FETCHDEST" fi + export FTP_PASSIVE_MODE=YES bsdinstall distfetch || error export DISTRIBUTIONS="$ALL_DISTRIBUTIONS" fi From owner-svn-src-all@FreeBSD.ORG Sat Sep 17 13:48:10 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 332D3106566C; Sat, 17 Sep 2011 13:48:10 +0000 (UTC) (envelope-from rstone@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 230448FC08; Sat, 17 Sep 2011 13:48:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8HDmADf085732; Sat, 17 Sep 2011 13:48:10 GMT (envelope-from rstone@svn.freebsd.org) Received: (from rstone@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8HDmAVd085730; Sat, 17 Sep 2011 13:48:10 GMT (envelope-from rstone@svn.freebsd.org) Message-Id: <201109171348.p8HDmAVd085730@svn.freebsd.org> From: Ryan Stone Date: Sat, 17 Sep 2011 13:48:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225640 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Sep 2011 13:48:10 -0000 Author: rstone Date: Sat Sep 17 13:48:09 2011 New Revision: 225640 URL: http://svn.freebsd.org/changeset/base/225640 Log: Clear transmit checksum offload context state upon lem(4) interface initialization. Prior to this change packets may be transmitted with an incorrect checksum. Em(4) already has an equivalent change in r213234. Obtained From: Sandvine MFC After: 1 week Approved by: re (bz) Modified: head/sys/dev/e1000/if_lem.c Modified: head/sys/dev/e1000/if_lem.c ============================================================================== --- head/sys/dev/e1000/if_lem.c Sat Sep 17 11:08:40 2011 (r225639) +++ head/sys/dev/e1000/if_lem.c Sat Sep 17 13:48:09 2011 (r225640) @@ -2654,6 +2654,7 @@ lem_setup_transmit_structures(struct ada } /* Reset state */ + adapter->last_hw_offload = 0; adapter->next_avail_tx_desc = 0; adapter->next_tx_to_clean = 0; adapter->num_tx_desc_avail = adapter->num_tx_desc; From owner-svn-src-all@FreeBSD.ORG Sat Sep 17 19:55:33 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9655B1065670; Sat, 17 Sep 2011 19:55:33 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 425788FC18; Sat, 17 Sep 2011 19:55:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8HJtXv1096855; Sat, 17 Sep 2011 19:55:33 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8HJtXdA096852; Sat, 17 Sep 2011 19:55:33 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201109171955.p8HJtXdA096852@svn.freebsd.org> From: Edward Tomasz Napierala Date: Sat, 17 Sep 2011 19:55:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225641 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Sep 2011 19:55:33 -0000 Author: trasz Date: Sat Sep 17 19:55:32 2011 New Revision: 225641 URL: http://svn.freebsd.org/changeset/base/225641 Log: Fix long-standing thinko regarding maxproc accounting. Basically, we were accounting the newly created process to its parent instead of the child itself. This caused problems later, when the child changed its credentials - the per-uid, per-jail etc counters were not properly updated, because the maxproc counter in the child process was 0. Approved by: re (kib) Modified: head/sys/kern/kern_exit.c head/sys/kern/kern_fork.c Modified: head/sys/kern/kern_exit.c ============================================================================== --- head/sys/kern/kern_exit.c Sat Sep 17 13:48:09 2011 (r225640) +++ head/sys/kern/kern_exit.c Sat Sep 17 19:55:32 2011 (r225641) @@ -765,12 +765,12 @@ proc_reap(struct thread *td, struct proc /* * Destroy resource accounting information associated with the process. */ - racct_proc_exit(p); #ifdef RACCT - PROC_LOCK(p->p_pptr); - racct_sub(p->p_pptr, RACCT_NPROC, 1); - PROC_UNLOCK(p->p_pptr); + PROC_LOCK(p); + racct_sub(p, RACCT_NPROC, 1); + PROC_UNLOCK(p); #endif + racct_proc_exit(p); /* * Free credentials, arguments, and sigacts. @@ -929,25 +929,13 @@ loop: void proc_reparent(struct proc *child, struct proc *parent) { -#ifdef RACCT - int locked; -#endif sx_assert(&proctree_lock, SX_XLOCKED); PROC_LOCK_ASSERT(child, MA_OWNED); if (child->p_pptr == parent) return; -#ifdef RACCT - locked = PROC_LOCKED(parent); - if (!locked) - PROC_LOCK(parent); - racct_add_force(parent, RACCT_NPROC, 1); - if (!locked) - PROC_UNLOCK(parent); -#endif PROC_LOCK(child->p_pptr); - racct_sub(child->p_pptr, RACCT_NPROC, 1); sigqueue_take(child->p_ksi); PROC_UNLOCK(child->p_pptr); LIST_REMOVE(child, p_sibling); Modified: head/sys/kern/kern_fork.c ============================================================================== --- head/sys/kern/kern_fork.c Sat Sep 17 13:48:09 2011 (r225640) +++ head/sys/kern/kern_fork.c Sat Sep 17 19:55:32 2011 (r225641) @@ -806,14 +806,6 @@ fork1(struct thread *td, int flags, int return (fork_norfproc(td, flags)); } -#ifdef RACCT - PROC_LOCK(p1); - error = racct_add(p1, RACCT_NPROC, 1); - PROC_UNLOCK(p1); - if (error != 0) - return (EAGAIN); -#endif - #ifdef PROCDESC /* * If required, create a process descriptor in the parent first; we @@ -822,14 +814,8 @@ fork1(struct thread *td, int flags, int */ if (flags & RFPROCDESC) { error = falloc(td, &fp_procdesc, procdescp, 0); - if (error != 0) { -#ifdef RACCT - PROC_LOCK(p1); - racct_sub(p1, RACCT_NPROC, 1); - PROC_UNLOCK(p1); -#endif + if (error != 0) return (error); - } } #endif @@ -920,7 +906,8 @@ fork1(struct thread *td, int flags, int * After fork, there is exactly one thread running. */ PROC_LOCK(newproc); - error = racct_set(newproc, RACCT_NTHR, 1); + error = racct_add(newproc, RACCT_NPROC, 1); + error += racct_add(newproc, RACCT_NTHR, 1); PROC_UNLOCK(newproc); if (error != 0) { error = EAGAIN; @@ -977,11 +964,6 @@ fail1: fdrop(fp_procdesc, td); #endif pause("fork", hz / 2); -#ifdef RACCT - PROC_LOCK(p1); - racct_sub(p1, RACCT_NPROC, 1); - PROC_UNLOCK(p1); -#endif return (error); } From owner-svn-src-all@FreeBSD.ORG Sat Sep 17 20:48:49 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB1A41065670; Sat, 17 Sep 2011 20:48:49 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 902F48FC08; Sat, 17 Sep 2011 20:48:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8HKmnFE098545; Sat, 17 Sep 2011 20:48:49 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8HKmns1098543; Sat, 17 Sep 2011 20:48:49 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201109172048.p8HKmns1098543@svn.freebsd.org> From: Edward Tomasz Napierala Date: Sat, 17 Sep 2011 20:48:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225642 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Sep 2011 20:48:49 -0000 Author: trasz Date: Sat Sep 17 20:48:49 2011 New Revision: 225642 URL: http://svn.freebsd.org/changeset/base/225642 Log: Fix error handling bug that would prevent MAC structures from getting freed properly if resource limit got exceeded. Approved by: re (kib) Modified: head/sys/kern/kern_fork.c Modified: head/sys/kern/kern_fork.c ============================================================================== --- head/sys/kern/kern_fork.c Sat Sep 17 19:55:32 2011 (r225641) +++ head/sys/kern/kern_fork.c Sat Sep 17 20:48:49 2011 (r225642) @@ -863,11 +863,6 @@ fork1(struct thread *td, int flags, int } } else vm2 = NULL; -#ifdef MAC - mac_proc_init(newproc); -#endif - knlist_init_mtx(&newproc->p_klist, &newproc->p_mtx); - STAILQ_INIT(&newproc->p_ktr); /* * XXX: This is ugly; when we copy resource usage, we need to bump @@ -884,6 +879,23 @@ fork1(struct thread *td, int flags, int goto fail1; } +#ifdef RACCT + PROC_LOCK(newproc); + error = racct_add(newproc, RACCT_NPROC, 1); + error += racct_add(newproc, RACCT_NTHR, 1); + PROC_UNLOCK(newproc); + if (error != 0) { + error = EAGAIN; + goto fail1; + } +#endif + +#ifdef MAC + mac_proc_init(newproc); +#endif + knlist_init_mtx(&newproc->p_klist, &newproc->p_mtx); + STAILQ_INIT(&newproc->p_ktr); + /* We have to lock the process tree while we look for a pid. */ sx_slock(&proctree_lock); @@ -901,20 +913,6 @@ fork1(struct thread *td, int flags, int goto fail; } -#ifdef RACCT - /* - * After fork, there is exactly one thread running. - */ - PROC_LOCK(newproc); - error = racct_add(newproc, RACCT_NPROC, 1); - error += racct_add(newproc, RACCT_NTHR, 1); - PROC_UNLOCK(newproc); - if (error != 0) { - error = EAGAIN; - goto fail; - } -#endif - /* * Increment the count of procs running with this uid. Don't allow * a nonprivileged user to exceed their current limit. @@ -946,7 +944,6 @@ fork1(struct thread *td, int flags, int error = EAGAIN; fail: - racct_proc_exit(newproc); sx_sunlock(&proctree_lock); if (ppsratecheck(&lastfail, &curfail, 1)) printf("maxproc limit exceeded by uid %i, please see tuning(7) and login.conf(5).\n", @@ -956,6 +953,7 @@ fail: mac_proc_destroy(newproc); #endif fail1: + racct_proc_exit(newproc); if (vm2 != NULL) vmspace_free(vm2); uma_zfree(proc_zone, newproc); From owner-svn-src-all@FreeBSD.ORG Sat Sep 17 22:17:31 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2B6B106564A; Sat, 17 Sep 2011 22:17:31 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D140F8FC08; Sat, 17 Sep 2011 22:17:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8HMHV8v001339; Sat, 17 Sep 2011 22:17:31 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8HMHVAQ001337; Sat, 17 Sep 2011 22:17:31 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201109172217.p8HMHVAQ001337@svn.freebsd.org> From: Xin LI Date: Sat, 17 Sep 2011 22:17:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225643 - head/contrib/smbfs/mount_smbfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Sep 2011 22:17:32 -0000 Author: delphij Date: Sat Sep 17 22:17:31 2011 New Revision: 225643 URL: http://svn.freebsd.org/changeset/base/225643 Log: Change the example of using smbfs in fstab to a password-less one, which is less likely to block a remote system from boot. Submitted by: Garrett Cooper PR: doc/160775 MFC after: 1 month Approved by: re (kib) Modified: head/contrib/smbfs/mount_smbfs/mount_smbfs.8 Modified: head/contrib/smbfs/mount_smbfs/mount_smbfs.8 ============================================================================== --- head/contrib/smbfs/mount_smbfs/mount_smbfs.8 Sat Sep 17 20:48:49 2011 (r225642) +++ head/contrib/smbfs/mount_smbfs/mount_smbfs.8 Sat Sep 17 22:17:31 2011 (r225643) @@ -157,11 +157,11 @@ mount_smbfs -I samba.mydomain.com //gues mount_smbfs -I 192.168.20.3 -E koi8-r:cp866 //guest@samba/tmp /smb/tmp .Ed .Pp -It is possible to use +It is also possible to use .Xr fstab 5 -for smbfs mounts: +for smbfs mounts (the example below doesn't prompt for a password): .Pp -.Dl "//guest@samba/public /smb/public smbfs rw,noauto 0 0" +.Dl "//guest@samba/public /smb/public smbfs rw,noauto,-N 0 0" .Sh AUTHORS .An Boris Popov Aq bp@butya.kz , .Aq bp@FreeBSD.org From owner-svn-src-all@FreeBSD.ORG Sat Sep 17 22:53:06 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 70BCC106564A; Sat, 17 Sep 2011 22:53:06 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 26BB58FC12; Sat, 17 Sep 2011 22:53:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8HMr6GZ002455; Sat, 17 Sep 2011 22:53:06 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8HMr6tb002453; Sat, 17 Sep 2011 22:53:06 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201109172253.p8HMr6tb002453@svn.freebsd.org> From: Xin LI Date: Sat, 17 Sep 2011 22:53:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225644 - head/contrib/smbfs/mount_smbfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Sep 2011 22:53:06 -0000 Author: delphij Date: Sat Sep 17 22:53:05 2011 New Revision: 225644 URL: http://svn.freebsd.org/changeset/base/225644 Log: Bump .Dd date for previous revision. Approved by: re (follow up commit fixing trivial issue) Modified: head/contrib/smbfs/mount_smbfs/mount_smbfs.8 Modified: head/contrib/smbfs/mount_smbfs/mount_smbfs.8 ============================================================================== --- head/contrib/smbfs/mount_smbfs/mount_smbfs.8 Sat Sep 17 22:17:31 2011 (r225643) +++ head/contrib/smbfs/mount_smbfs/mount_smbfs.8 Sat Sep 17 22:53:05 2011 (r225644) @@ -1,6 +1,6 @@ .\" $Id: mount_smbfs.8,v 1.10 2002/04/16 02:47:41 bp Exp $ .\" $FreeBSD$ -.Dd January 21, 2008 +.Dd September 17, 2011 .Dt MOUNT_SMBFS 8 .Os .Sh NAME