From owner-svn-src-stable-10@FreeBSD.ORG Sun Jun 21 00:36:03 2015 Return-Path: Delivered-To: svn-src-stable-10@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5564099B; Sun, 21 Jun 2015 00:36:03 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 28A4874E; Sun, 21 Jun 2015 00:36:03 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5L0a3vB073892; Sun, 21 Jun 2015 00:36:03 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5L0a3Cd073891; Sun, 21 Jun 2015 00:36:03 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201506210036.t5L0a3Cd073891@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 21 Jun 2015 00:36:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284653 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 00:36:03 -0000 Author: markj Date: Sun Jun 21 00:36:02 2015 New Revision: 284653 URL: https://svnweb.freebsd.org/changeset/base/284653 Log: MFC r284127: witness: don't warn about matrix inconsistencies without holding the mutex Lock order checking is done without the witness mutex held, so multiple threads that are racing to establish a new lock order may read matrix entries that are in an inconsistent state. Don't print a warning in this case, but instead just redo the check after taking the witness lock. Modified: stable/10/sys/kern/subr_witness.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/subr_witness.c ============================================================================== --- stable/10/sys/kern/subr_witness.c Sat Jun 20 23:15:57 2015 (r284652) +++ stable/10/sys/kern/subr_witness.c Sun Jun 21 00:36:02 2015 (r284653) @@ -1167,19 +1167,25 @@ witness_checkorder(struct lock_object *l /* * Try to perform most checks without a lock. If this succeeds we - * can skip acquiring the lock and return success. + * can skip acquiring the lock and return success. Otherwise we redo + * the check with the lock held to handle races with concurrent updates. */ w1 = plock->li_lock->lo_witness; if (witness_lock_order_check(w1, w)) return; + mtx_lock_spin(&w_mtx); + if (witness_lock_order_check(w1, w)) { + mtx_unlock_spin(&w_mtx); + return; + } + witness_lock_order_add(w1, w); + /* * Check for duplicate locks of the same type. Note that we only * have to check for this on the last lock we just acquired. Any * other cases will be caught as lock order violations. */ - mtx_lock_spin(&w_mtx); - witness_lock_order_add(w1, w); if (w1 == w) { i = w->w_index; if (!(lock->lo_flags & LO_DUPOK) && !(flags & LOP_DUPOK) && @@ -1993,7 +1999,10 @@ _isitmyx(struct witness *w1, struct witn /* The flags on one better be the inverse of the flags on the other */ if (!((WITNESS_ATOD(r1) == r2 && WITNESS_DTOA(r2) == r1) || - (WITNESS_DTOA(r1) == r2 && WITNESS_ATOD(r2) == r1))) { + (WITNESS_DTOA(r1) == r2 && WITNESS_ATOD(r2) == r1))) { + /* Don't squawk if we're potentially racing with an update. */ + if (!mtx_owned(&w_mtx)) + return (0); printf("%s: rmatrix mismatch between %s (index %d) and %s " "(index %d): w_rmatrix[%d][%d] == %hhx but " "w_rmatrix[%d][%d] == %hhx\n", From owner-svn-src-stable-10@FreeBSD.ORG Sun Jun 21 04:39:35 2015 Return-Path: Delivered-To: svn-src-stable-10@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 91E428F3; Sun, 21 Jun 2015 04:39:35 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 665392E1; Sun, 21 Jun 2015 04:39:35 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5L4dZN7091057; Sun, 21 Jun 2015 04:39:35 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5L4dY3O091055; Sun, 21 Jun 2015 04:39:34 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506210439.t5L4dY3O091055@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Sun, 21 Jun 2015 04:39:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284661 - stable/10/release X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 04:39:35 -0000 Author: gjb Date: Sun Jun 21 04:39:34 2015 New Revision: 284661 URL: https://svnweb.freebsd.org/changeset/base/284661 Log: MFC r284567: Add Makefile.azure, used to upload VHD images to the Microsoft Azure environment, similar to the EC2 AMIs. Sponsored by: The FreeBSD Foundation Added: stable/10/release/Makefile.azure - copied unchanged from r284567, head/release/Makefile.azure Modified: stable/10/release/Makefile.vm Directory Properties: stable/10/ (props changed) Copied: stable/10/release/Makefile.azure (from r284567, head/release/Makefile.azure) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/release/Makefile.azure Sun Jun 21 04:39:34 2015 (r284661, copy of r284567, head/release/Makefile.azure) @@ -0,0 +1,53 @@ +# +# $FreeBSD$ +# +# +# Makefile for uploading Microsoft Azure disk images. +# + +AZURE_IMG?= ${.OBJDIR}/azure.vhdf +AZURE_UPLOAD_TGTS= azure-check-depends \ + azure-do-upload +CLEANFILES+= ${AZURE_UPLOAD_TGTS} + +.if defined(AZURE_UPLOAD_CONF) && !empty(AZURE_UPLOAD_CONF) +. for VAR in _STORAGE _ACCOUNT _KEY +AZURE${VAR}!= grep -E ^AZURE${VAR} ${AZURE_UPLOAD_CONF} | awk -F' ' '{print $$2}' +. endfor +.endif + +.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" +SNAPSHOT_DATE!= date +-%Y-%m-%d +.endif + +AZURE_TARGET:= ${OSRELEASE}${SNAPSHOT_DATE}.vhd + +azure-upload: ${AZURE_UPLOAD_TGTS} + +azure-check-depends: +.for VAR in _STORAGE _ACCOUNT _KEY +. if !defined(AZURE${VAR}) || empty(AZURE${VAR}) + @echo "Variable AZURE${VAR} cannot be empty." + @false +. endif +.endfor +.if !exists(/usr/local/bin/azure) +. if !exists(/usr/local/bin/npm) +. if !exists(${PORTSDIR}/www/npm/Makefile) +. if !exists(/usr/local/sbin/pkg-static) + env ASSUME_ALWAYS_YES=yes pkg bootstrap -yf +. endif + env ASSUME_ALWAYS_YES=yes pkg install -y www/npm +. else + make -C ${PORTSDIR}/www/npm BATCH=1 all install clean +. endif +. endif + npm install -g azure-cli +.endif + +azure-do-upload: + /usr/local/bin/azure storage blob upload \ + ${AZURE_IMG} ${AZURE_STORAGE} ${AZURE_TARGET} \ + -t page -a ${AZURE_ACCOUNT} -k "${AZURE_KEY}" + touch ${.OBJDIR}/${.TARGET} + Modified: stable/10/release/Makefile.vm ============================================================================== --- stable/10/release/Makefile.vm Sun Jun 21 04:34:57 2015 (r284660) +++ stable/10/release/Makefile.vm Sun Jun 21 04:39:34 2015 (r284661) @@ -154,3 +154,4 @@ cloudware-install: .endif .include "${.CURDIR}/Makefile.ec2" +.include "${.CURDIR}/Makefile.azure" From owner-svn-src-stable-10@FreeBSD.ORG Sun Jun 21 06:28:31 2015 Return-Path: Delivered-To: svn-src-stable-10@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 24C5CA5B; Sun, 21 Jun 2015 06:28:31 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0FC6BF5C; Sun, 21 Jun 2015 06:28:31 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5L6SVP7045929; Sun, 21 Jun 2015 06:28:31 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5L6SRBZ045904; Sun, 21 Jun 2015 06:28:27 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201506210628.t5L6SRBZ045904@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 21 Jun 2015 06:28:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284665 - in stable/10: sys/amd64/conf sys/conf sys/i386/conf sys/kern sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sys sys/vm usr.bin/rctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 06:28:31 -0000 Author: trasz Date: Sun Jun 21 06:28:26 2015 New Revision: 284665 URL: https://svnweb.freebsd.org/changeset/base/284665 Log: MFC r282213: Add kern.racct.enable tunable and RACCT_DISABLED config option. The point of this is to be able to add RACCT (with RACCT_DISABLED) to GENERIC, to avoid having to rebuild the kernel to use rctl(8). MFC r282901: Build GENERIC with RACCT/RCTL support by default. Note that it still needs to be enabled by adding "kern.racct.enable=1" to /boot/loader.conf. Note those two are MFC-ed together, because the latter one changes the name of RACCT_DISABLED option to RACCT_DEFAULT_TO_DISABLED. Should have committed the renaming separately... Relnotes: yes Sponsored by: The FreeBSD Foundation Modified: stable/10/sys/amd64/conf/GENERIC stable/10/sys/conf/options stable/10/sys/i386/conf/GENERIC stable/10/sys/kern/imgact_elf.c stable/10/sys/kern/kern_descrip.c stable/10/sys/kern/kern_exit.c stable/10/sys/kern/kern_jail.c stable/10/sys/kern/kern_racct.c stable/10/sys/kern/kern_rctl.c stable/10/sys/kern/kern_thr.c stable/10/sys/kern/sched_4bsd.c stable/10/sys/kern/subr_trap.c stable/10/sys/kern/sysv_msg.c stable/10/sys/kern/sysv_sem.c stable/10/sys/kern/sysv_shm.c stable/10/sys/pc98/conf/GENERIC stable/10/sys/powerpc/conf/GENERIC stable/10/sys/sparc64/conf/GENERIC stable/10/sys/sys/racct.h stable/10/sys/vm/swap_pager.c stable/10/sys/vm/vm_map.c stable/10/sys/vm/vm_mmap.c stable/10/sys/vm/vm_pageout.c stable/10/sys/vm/vm_unix.c stable/10/usr.bin/rctl/rctl.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/conf/GENERIC ============================================================================== --- stable/10/sys/amd64/conf/GENERIC Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/amd64/conf/GENERIC Sun Jun 21 06:28:26 2015 (r284665) @@ -72,6 +72,9 @@ options KDTRACE_FRAME # Ensure frames options KDTRACE_HOOKS # Kernel DTrace hooks options DDB_CTF # Kernel ELF linker loads CTF data options INCLUDE_CONFIG_FILE # Include this file in kernel +options RACCT # Resource accounting framework +options RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default +options RCTL # Resource limits # Debugging support. Always need this: options KDB # Enable kernel debugger support. Modified: stable/10/sys/conf/options ============================================================================== --- stable/10/sys/conf/options Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/conf/options Sun Jun 21 06:28:26 2015 (r284665) @@ -925,6 +925,7 @@ IPOIB_CM opt_ofed.h # Resource Accounting RACCT opt_global.h +RACCT_DEFAULT_TO_DISABLED opt_global.h # Resource Limits RCTL opt_global.h Modified: stable/10/sys/i386/conf/GENERIC ============================================================================== --- stable/10/sys/i386/conf/GENERIC Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/i386/conf/GENERIC Sun Jun 21 06:28:26 2015 (r284665) @@ -72,6 +72,9 @@ options MAC # TrustedBSD MAC Framewor options KDTRACE_HOOKS # Kernel DTrace hooks options DDB_CTF # Kernel ELF linker loads CTF data options INCLUDE_CONFIG_FILE # Include this file in kernel +options RACCT # Resource accounting framework +options RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default +options RCTL # Resource limits # Debugging support. Always need this: options KDB # Enable kernel debugger support. Modified: stable/10/sys/kern/imgact_elf.c ============================================================================== --- stable/10/sys/kern/imgact_elf.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/imgact_elf.c Sun Jun 21 06:28:26 2015 (r284665) @@ -1231,12 +1231,14 @@ __elfN(coredump)(struct thread *td, stru coresize = round_page(hdrsize + notesz) + seginfo.size; #ifdef RACCT - PROC_LOCK(td->td_proc); - error = racct_add(td->td_proc, RACCT_CORE, coresize); - PROC_UNLOCK(td->td_proc); - if (error != 0) { - error = EFAULT; - goto done; + if (racct_enable) { + PROC_LOCK(td->td_proc); + error = racct_add(td->td_proc, RACCT_CORE, coresize); + PROC_UNLOCK(td->td_proc); + if (error != 0) { + error = EFAULT; + goto done; + } } #endif if (coresize >= limit) { Modified: stable/10/sys/kern/kern_descrip.c ============================================================================== --- stable/10/sys/kern/kern_descrip.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/kern_descrip.c Sun Jun 21 06:28:26 2015 (r284665) @@ -874,13 +874,15 @@ do_dup(struct thread *td, int flags, int * the limit on the size of the file descriptor table. */ #ifdef RACCT - PROC_LOCK(p); - error = racct_set(p, RACCT_NOFILE, new + 1); - PROC_UNLOCK(p); - if (error != 0) { - FILEDESC_XUNLOCK(fdp); - fdrop(fp, td); - return (EMFILE); + if (racct_enable) { + PROC_LOCK(p); + error = racct_set(p, RACCT_NOFILE, new + 1); + PROC_UNLOCK(p); + if (error != 0) { + FILEDESC_XUNLOCK(fdp); + fdrop(fp, td); + return (EMFILE); + } } #endif fdgrowtable_exp(fdp, new + 1); @@ -1641,11 +1643,13 @@ fdalloc(struct thread *td, int minfd, in if (fd >= fdp->fd_nfiles) { allocfd = min(fd * 2, maxfd); #ifdef RACCT - PROC_LOCK(p); - error = racct_set(p, RACCT_NOFILE, allocfd); - PROC_UNLOCK(p); - if (error != 0) - return (EMFILE); + if (racct_enable) { + PROC_LOCK(p); + error = racct_set(p, RACCT_NOFILE, allocfd); + PROC_UNLOCK(p); + if (error != 0) + return (EMFILE); + } #endif /* * fd is already equal to first free descriptor >= minfd, so @@ -2008,9 +2012,11 @@ fdescfree(struct thread *td) return; #ifdef RACCT - PROC_LOCK(td->td_proc); - racct_set(td->td_proc, RACCT_NOFILE, 0); - PROC_UNLOCK(td->td_proc); + if (racct_enable) { + PROC_LOCK(td->td_proc); + racct_set(td->td_proc, RACCT_NOFILE, 0); + PROC_UNLOCK(td->td_proc); + } #endif /* Check for special need to clear POSIX style locks */ Modified: stable/10/sys/kern/kern_exit.c ============================================================================== --- stable/10/sys/kern/kern_exit.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/kern_exit.c Sun Jun 21 06:28:26 2015 (r284665) @@ -921,9 +921,11 @@ proc_reap(struct thread *td, struct proc * Destroy resource accounting information associated with the process. */ #ifdef RACCT - PROC_LOCK(p); - racct_sub(p, RACCT_NPROC, 1); - PROC_UNLOCK(p); + if (racct_enable) { + PROC_LOCK(p); + racct_sub(p, RACCT_NPROC, 1); + PROC_UNLOCK(p); + } #endif racct_proc_exit(p); Modified: stable/10/sys/kern/kern_jail.c ============================================================================== --- stable/10/sys/kern/kern_jail.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/kern_jail.c Sun Jun 21 06:28:26 2015 (r284665) @@ -1787,7 +1787,7 @@ kern_jail_set(struct thread *td, struct mtx_unlock(&pr->pr_mtx); #ifdef RACCT - if (created) + if (racct_enable && created) prison_racct_attach(pr); #endif @@ -1871,7 +1871,7 @@ kern_jail_set(struct thread *td, struct } #ifdef RACCT - if (!created) { + if (racct_enable && !created) { if (!(flags & JAIL_ATTACH)) sx_sunlock(&allprison_lock); prison_racct_modify(pr); @@ -2661,7 +2661,8 @@ prison_deref(struct prison *pr, int flag cpuset_rel(pr->pr_cpuset); osd_jail_exit(pr); #ifdef RACCT - prison_racct_detach(pr); + if (racct_enable) + prison_racct_detach(pr); #endif free(pr, M_PRISON); @@ -4482,12 +4483,15 @@ SYSCTL_JAIL_PARAM(_allow_mount, tmpfs, C SYSCTL_JAIL_PARAM(_allow_mount, zfs, CTLTYPE_INT | CTLFLAG_RW, "B", "Jail may mount the zfs file system"); +#ifdef RACCT void prison_racct_foreach(void (*callback)(struct racct *racct, void *arg2, void *arg3), void *arg2, void *arg3) { struct prison_racct *prr; + ASSERT_RACCT_ENABLED(); + sx_slock(&allprison_lock); LIST_FOREACH(prr, &allprison_racct, prr_next) (callback)(prr->prr_racct, arg2, arg3); @@ -4499,6 +4503,7 @@ prison_racct_find_locked(const char *nam { struct prison_racct *prr; + ASSERT_RACCT_ENABLED(); sx_assert(&allprison_lock, SA_XLOCKED); if (name[0] == '\0' || strlen(name) >= MAXHOSTNAMELEN) @@ -4529,6 +4534,8 @@ prison_racct_find(const char *name) { struct prison_racct *prr; + ASSERT_RACCT_ENABLED(); + sx_xlock(&allprison_lock); prr = prison_racct_find_locked(name); sx_xunlock(&allprison_lock); @@ -4539,6 +4546,8 @@ void prison_racct_hold(struct prison_racct *prr) { + ASSERT_RACCT_ENABLED(); + refcount_acquire(&prr->prr_refcount); } @@ -4546,6 +4555,7 @@ static void prison_racct_free_locked(struct prison_racct *prr) { + ASSERT_RACCT_ENABLED(); sx_assert(&allprison_lock, SA_XLOCKED); if (refcount_release(&prr->prr_refcount)) { @@ -4560,6 +4570,7 @@ prison_racct_free(struct prison_racct *p { int old; + ASSERT_RACCT_ENABLED(); sx_assert(&allprison_lock, SA_UNLOCKED); old = prr->prr_refcount; @@ -4571,12 +4582,12 @@ prison_racct_free(struct prison_racct *p sx_xunlock(&allprison_lock); } -#ifdef RACCT static void prison_racct_attach(struct prison *pr) { struct prison_racct *prr; + ASSERT_RACCT_ENABLED(); sx_assert(&allprison_lock, SA_XLOCKED); prr = prison_racct_find_locked(pr->pr_name); @@ -4596,6 +4607,8 @@ prison_racct_modify(struct prison *pr) struct ucred *cred; struct prison_racct *oldprr; + ASSERT_RACCT_ENABLED(); + sx_slock(&allproc_lock); sx_xlock(&allprison_lock); @@ -4635,6 +4648,7 @@ static void prison_racct_detach(struct prison *pr) { + ASSERT_RACCT_ENABLED(); sx_assert(&allprison_lock, SA_UNLOCKED); if (pr->pr_prison_racct == NULL) Modified: stable/10/sys/kern/kern_racct.c ============================================================================== --- stable/10/sys/kern/kern_racct.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/kern_racct.c Sun Jun 21 06:28:26 2015 (r284665) @@ -71,8 +71,15 @@ FEATURE(racct, "Resource Accounting"); * Do not block processes that have their %cpu usage <= pcpu_threshold. */ static int pcpu_threshold = 1; +#ifdef RACCT_DEFAULT_TO_DISABLED +int racct_enable = 0; +#else +int racct_enable = 1; +#endif SYSCTL_NODE(_kern, OID_AUTO, racct, CTLFLAG_RW, 0, "Resource Accounting"); +SYSCTL_UINT(_kern_racct, OID_AUTO, enable, CTLFLAG_RDTUN, &racct_enable, + 0, "Enable RACCT/RCTL"); SYSCTL_UINT(_kern_racct, OID_AUTO, pcpu_threshold, CTLFLAG_RW, &pcpu_threshold, 0, "Processes with higher %cpu usage than this value can be throttled."); @@ -314,6 +321,8 @@ racct_getpcpu(struct proc *p, u_int pcpu fixpt_t p_pctcpu; struct thread *td; + ASSERT_RACCT_ENABLED(); + /* * If the process is swapped out, we count its %cpu usage as zero. * This behaviour is consistent with the userland ps(1) tool. @@ -378,6 +387,7 @@ racct_add_racct(struct racct *dest, cons { int i; + ASSERT_RACCT_ENABLED(); mtx_assert(&racct_lock, MA_OWNED); /* @@ -399,6 +409,7 @@ racct_sub_racct(struct racct *dest, cons { int i; + ASSERT_RACCT_ENABLED(); mtx_assert(&racct_lock, MA_OWNED); /* @@ -432,6 +443,9 @@ void racct_create(struct racct **racctp) { + if (!racct_enable) + return; + SDT_PROBE(racct, kernel, racct, create, racctp, 0, 0, 0, 0); KASSERT(*racctp == NULL, ("racct already allocated")); @@ -445,6 +459,8 @@ racct_destroy_locked(struct racct **racc int i; struct racct *racct; + ASSERT_RACCT_ENABLED(); + SDT_PROBE(racct, kernel, racct, destroy, racctp, 0, 0, 0, 0); mtx_assert(&racct_lock, MA_OWNED); @@ -471,6 +487,9 @@ void racct_destroy(struct racct **racct) { + if (!racct_enable) + return; + mtx_lock(&racct_lock); racct_destroy_locked(racct); mtx_unlock(&racct_lock); @@ -486,6 +505,7 @@ racct_alloc_resource(struct racct *racct uint64_t amount) { + ASSERT_RACCT_ENABLED(); mtx_assert(&racct_lock, MA_OWNED); KASSERT(racct != NULL, ("NULL racct")); @@ -517,6 +537,8 @@ racct_add_locked(struct proc *p, int res int error; #endif + ASSERT_RACCT_ENABLED(); + SDT_PROBE(racct, kernel, rusage, add, p, resource, amount, 0, 0); /* @@ -547,6 +569,9 @@ racct_add(struct proc *p, int resource, { int error; + if (!racct_enable) + return (0); + mtx_lock(&racct_lock); error = racct_add_locked(p, resource, amount); mtx_unlock(&racct_lock); @@ -558,6 +583,8 @@ racct_add_cred_locked(struct ucred *cred { struct prison *pr; + ASSERT_RACCT_ENABLED(); + SDT_PROBE(racct, kernel, rusage, add__cred, cred, resource, amount, 0, 0); @@ -578,6 +605,9 @@ void racct_add_cred(struct ucred *cred, int resource, uint64_t amount) { + if (!racct_enable) + return; + mtx_lock(&racct_lock); racct_add_cred_locked(cred, resource, amount); mtx_unlock(&racct_lock); @@ -591,6 +621,9 @@ void racct_add_force(struct proc *p, int resource, uint64_t amount) { + if (!racct_enable) + return; + SDT_PROBE(racct, kernel, rusage, add__force, p, resource, amount, 0, 0); /* @@ -613,6 +646,8 @@ racct_set_locked(struct proc *p, int res int error; #endif + ASSERT_RACCT_ENABLED(); + SDT_PROBE(racct, kernel, rusage, set, p, resource, amount, 0, 0); /* @@ -672,6 +707,9 @@ racct_set(struct proc *p, int resource, { int error; + if (!racct_enable) + return (0); + mtx_lock(&racct_lock); error = racct_set_locked(p, resource, amount); mtx_unlock(&racct_lock); @@ -684,6 +722,8 @@ racct_set_force_locked(struct proc *p, i int64_t old_amount, decayed_amount; int64_t diff_proc, diff_cred; + ASSERT_RACCT_ENABLED(); + SDT_PROBE(racct, kernel, rusage, set, p, resource, amount, 0, 0); /* @@ -718,6 +758,10 @@ racct_set_force_locked(struct proc *p, i void racct_set_force(struct proc *p, int resource, uint64_t amount) { + + if (!racct_enable) + return; + mtx_lock(&racct_lock); racct_set_force_locked(p, resource, amount); mtx_unlock(&racct_lock); @@ -733,6 +777,9 @@ uint64_t racct_get_limit(struct proc *p, int resource) { + if (!racct_enable) + return (UINT64_MAX); + #ifdef RCTL return (rctl_get_limit(p, resource)); #else @@ -750,6 +797,9 @@ uint64_t racct_get_available(struct proc *p, int resource) { + if (!racct_enable) + return (UINT64_MAX); + #ifdef RCTL return (rctl_get_available(p, resource)); #else @@ -766,6 +816,8 @@ static int64_t racct_pcpu_available(struct proc *p) { + ASSERT_RACCT_ENABLED(); + #ifdef RCTL return (rctl_pcpu_available(p)); #else @@ -780,6 +832,9 @@ void racct_sub(struct proc *p, int resource, uint64_t amount) { + if (!racct_enable) + return; + SDT_PROBE(racct, kernel, rusage, sub, p, resource, amount, 0, 0); /* @@ -805,6 +860,8 @@ racct_sub_cred_locked(struct ucred *cred { struct prison *pr; + ASSERT_RACCT_ENABLED(); + SDT_PROBE(racct, kernel, rusage, sub__cred, cred, resource, amount, 0, 0); @@ -828,6 +885,9 @@ void racct_sub_cred(struct ucred *cred, int resource, uint64_t amount) { + if (!racct_enable) + return; + mtx_lock(&racct_lock); racct_sub_cred_locked(cred, resource, amount); mtx_unlock(&racct_lock); @@ -841,6 +901,9 @@ racct_proc_fork(struct proc *parent, str { int i, error = 0; + if (!racct_enable) + return (0); + /* * Create racct for the child process. */ @@ -897,6 +960,9 @@ racct_proc_fork_done(struct proc *child) { #ifdef RCTL + if (!racct_enable) + return; + PROC_LOCK(child); mtx_lock(&racct_lock); rctl_enforce(child, RACCT_NPROC, 0); @@ -914,6 +980,9 @@ racct_proc_exit(struct proc *p) struct timeval wallclock; uint64_t pct_estimate, pct; + if (!racct_enable) + return; + PROC_LOCK(p); /* * We don't need to calculate rux, proc_reap() has already done this. @@ -968,6 +1037,9 @@ racct_proc_ucred_changed(struct proc *p, struct loginclass *oldlc, *newlc; struct prison *oldpr, *newpr, *pr; + if (!racct_enable) + return; + PROC_LOCK_ASSERT(p, MA_NOTOWNED); newuip = newcred->cr_ruidinfo; @@ -1005,6 +1077,8 @@ void racct_move(struct racct *dest, struct racct *src) { + ASSERT_RACCT_ENABLED(); + mtx_lock(&racct_lock); racct_add_racct(dest, src); @@ -1021,6 +1095,7 @@ racct_proc_throttle(struct proc *p) int cpuid; #endif + ASSERT_RACCT_ENABLED(); PROC_LOCK_ASSERT(p, MA_OWNED); /* @@ -1066,6 +1141,9 @@ racct_proc_throttle(struct proc *p) static void racct_proc_wakeup(struct proc *p) { + + ASSERT_RACCT_ENABLED(); + PROC_LOCK_ASSERT(p, MA_OWNED); if (p->p_throttled) { @@ -1080,6 +1158,8 @@ racct_decay_resource(struct racct *racct int resource; int64_t r_old, r_new; + ASSERT_RACCT_ENABLED(); + resource = *(int *)res; r_old = racct->r_resources[resource]; @@ -1096,6 +1176,9 @@ racct_decay_resource(struct racct *racct static void racct_decay(int resource) { + + ASSERT_RACCT_ENABLED(); + ui_racct_foreach(racct_decay_resource, &resource, NULL); loginclass_racct_foreach(racct_decay_resource, &resource, NULL); prison_racct_foreach(racct_decay_resource, &resource, NULL); @@ -1110,6 +1193,8 @@ racctd(void) uint64_t runtime; uint64_t pct, pct_estimate; + ASSERT_RACCT_ENABLED(); + for (;;) { racct_decay(RACCT_PCTCPU); @@ -1189,11 +1274,22 @@ static struct kproc_desc racctd_kp = { racctd, NULL }; -SYSINIT(racctd, SI_SUB_RACCTD, SI_ORDER_FIRST, kproc_start, &racctd_kp); + +static void +racctd_init(void) +{ + if (!racct_enable) + return; + + kproc_start(&racctd_kp); +} +SYSINIT(racctd, SI_SUB_RACCTD, SI_ORDER_FIRST, racctd_init, NULL); static void racct_init(void) { + if (!racct_enable) + return; racct_zone = uma_zcreate("racct", sizeof(struct racct), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE); Modified: stable/10/sys/kern/kern_rctl.c ============================================================================== --- stable/10/sys/kern/kern_rctl.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/kern_rctl.c Sun Jun 21 06:28:26 2015 (r284665) @@ -225,6 +225,7 @@ rctl_available_resource(const struct pro int64_t available = INT64_MAX; struct ucred *cred = p->p_ucred; + ASSERT_RACCT_ENABLED(); rw_assert(&rctl_lock, RA_LOCKED); resource = rule->rr_resource; @@ -264,6 +265,8 @@ rctl_would_exceed(const struct proc *p, { int64_t available; + ASSERT_RACCT_ENABLED(); + rw_assert(&rctl_lock, RA_LOCKED); available = rctl_available_resource(p, rule); @@ -283,6 +286,8 @@ rctl_pcpu_available(const struct proc *p struct rctl_rule_link *link; int64_t available, minavailable, limit; + ASSERT_RACCT_ENABLED(); + minavailable = INT64_MAX; limit = 0; @@ -334,6 +339,8 @@ rctl_enforce(struct proc *p, int resourc static int curtime = 0; static struct timeval lasttime; + ASSERT_RACCT_ENABLED(); + rw_rlock(&rctl_lock); /* @@ -457,6 +464,8 @@ rctl_get_limit(struct proc *p, int resou struct rctl_rule_link *link; uint64_t amount = UINT64_MAX; + ASSERT_RACCT_ENABLED(); + rw_rlock(&rctl_lock); /* @@ -487,6 +496,8 @@ rctl_get_available(struct proc *p, int r minavailable = INT64_MAX; + ASSERT_RACCT_ENABLED(); + rw_rlock(&rctl_lock); /* @@ -521,6 +532,8 @@ static int rctl_rule_matches(const struct rctl_rule *rule, const struct rctl_rule *filter) { + ASSERT_RACCT_ENABLED(); + if (filter->rr_subject_type != RCTL_SUBJECT_TYPE_UNDEFINED) { if (rule->rr_subject_type != filter->rr_subject_type) return (0); @@ -635,6 +648,7 @@ rctl_racct_add_rule(struct racct *racct, { struct rctl_rule_link *link; + ASSERT_RACCT_ENABLED(); KASSERT(rctl_rule_fully_specified(rule), ("rule not fully specified")); rctl_rule_acquire(rule); @@ -652,6 +666,7 @@ rctl_racct_add_rule_locked(struct racct { struct rctl_rule_link *link; + ASSERT_RACCT_ENABLED(); KASSERT(rctl_rule_fully_specified(rule), ("rule not fully specified")); rw_assert(&rctl_lock, RA_WLOCKED); @@ -678,6 +693,7 @@ rctl_racct_remove_rules(struct racct *ra int removed = 0; struct rctl_rule_link *link, *linktmp; + ASSERT_RACCT_ENABLED(); rw_assert(&rctl_lock, RA_WLOCKED); LIST_FOREACH_SAFE(link, &racct->r_rule_links, rrl_next, linktmp) { @@ -696,6 +712,8 @@ static void rctl_rule_acquire_subject(struct rctl_rule *rule) { + ASSERT_RACCT_ENABLED(); + switch (rule->rr_subject_type) { case RCTL_SUBJECT_TYPE_UNDEFINED: case RCTL_SUBJECT_TYPE_PROCESS: @@ -722,6 +740,8 @@ static void rctl_rule_release_subject(struct rctl_rule *rule) { + ASSERT_RACCT_ENABLED(); + switch (rule->rr_subject_type) { case RCTL_SUBJECT_TYPE_UNDEFINED: case RCTL_SUBJECT_TYPE_PROCESS: @@ -749,6 +769,8 @@ rctl_rule_alloc(int flags) { struct rctl_rule *rule; + ASSERT_RACCT_ENABLED(); + rule = uma_zalloc(rctl_rule_zone, flags); if (rule == NULL) return (NULL); @@ -771,6 +793,8 @@ rctl_rule_duplicate(const struct rctl_ru { struct rctl_rule *copy; + ASSERT_RACCT_ENABLED(); + copy = uma_zalloc(rctl_rule_zone, flags); if (copy == NULL) return (NULL); @@ -793,6 +817,7 @@ void rctl_rule_acquire(struct rctl_rule *rule) { + ASSERT_RACCT_ENABLED(); KASSERT(rule->rr_refcount > 0, ("rule->rr_refcount <= 0")); refcount_acquire(&rule->rr_refcount); @@ -805,6 +830,7 @@ rctl_rule_free(void *context, int pendin rule = (struct rctl_rule *)context; + ASSERT_RACCT_ENABLED(); KASSERT(rule->rr_refcount == 0, ("rule->rr_refcount != 0")); /* @@ -819,6 +845,7 @@ void rctl_rule_release(struct rctl_rule *rule) { + ASSERT_RACCT_ENABLED(); KASSERT(rule->rr_refcount > 0, ("rule->rr_refcount <= 0")); if (refcount_release(&rule->rr_refcount)) { @@ -838,6 +865,8 @@ static int rctl_rule_fully_specified(const struct rctl_rule *rule) { + ASSERT_RACCT_ENABLED(); + switch (rule->rr_subject_type) { case RCTL_SUBJECT_TYPE_UNDEFINED: return (0); @@ -882,6 +911,8 @@ rctl_string_to_rule(char *rulestr, struc struct rctl_rule *rule; id_t id; + ASSERT_RACCT_ENABLED(); + rule = rctl_rule_alloc(M_WAITOK); subjectstr = strsep(&rulestr, ":"); @@ -1008,6 +1039,7 @@ rctl_rule_add(struct rctl_rule *rule) struct rctl_rule *rule2; int match; + ASSERT_RACCT_ENABLED(); KASSERT(rctl_rule_fully_specified(rule), ("rule not fully specified")); /* @@ -1118,6 +1150,8 @@ rctl_rule_remove_callback(struct racct * struct rctl_rule *filter = (struct rctl_rule *)arg2; int found = 0; + ASSERT_RACCT_ENABLED(); + rw_wlock(&rctl_lock); found += rctl_racct_remove_rules(racct, filter); rw_wunlock(&rctl_lock); @@ -1134,6 +1168,8 @@ rctl_rule_remove(struct rctl_rule *filte int found = 0; struct proc *p; + ASSERT_RACCT_ENABLED(); + if (filter->rr_subject_type == RCTL_SUBJECT_TYPE_PROCESS && filter->rr_subject.rs_proc != NULL) { p = filter->rr_subject.rs_proc; @@ -1172,6 +1208,8 @@ rctl_rule_to_sbuf(struct sbuf *sb, const { int64_t amount; + ASSERT_RACCT_ENABLED(); + sbuf_printf(sb, "%s:", rctl_subject_type_name(rule->rr_subject_type)); switch (rule->rr_subject_type) { @@ -1231,6 +1269,8 @@ rctl_read_inbuf(char **inputstr, const c int error; char *str; + ASSERT_RACCT_ENABLED(); + if (inbuflen <= 0) return (EINVAL); if (inbuflen > RCTL_MAX_INBUFLEN) @@ -1256,6 +1296,8 @@ rctl_write_outbuf(struct sbuf *outputsbu { int error; + ASSERT_RACCT_ENABLED(); + if (outputsbuf == NULL) return (0); @@ -1277,6 +1319,8 @@ rctl_racct_to_sbuf(struct racct *racct, int64_t amount; struct sbuf *sb; + ASSERT_RACCT_ENABLED(); + sb = sbuf_new_auto(); for (i = 0; i <= RACCT_MAX; i++) { if (sloppy == 0 && RACCT_IS_SLOPPY(i)) @@ -1302,6 +1346,9 @@ sys_rctl_get_racct(struct thread *td, st struct loginclass *lc; struct prison_racct *prr; + if (!racct_enable) + return (ENOSYS); + error = priv_check(td, PRIV_RCTL_GET_RACCT); if (error != 0) return (error); @@ -1372,6 +1419,8 @@ rctl_get_rules_callback(struct racct *ra struct rctl_rule_link *link; struct sbuf *sb = (struct sbuf *)arg3; + ASSERT_RACCT_ENABLED(); + rw_rlock(&rctl_lock); LIST_FOREACH(link, &racct->r_rule_links, rrl_next) { if (!rctl_rule_matches(link->rrl_rule, filter)) @@ -1393,6 +1442,9 @@ sys_rctl_get_rules(struct thread *td, st struct rctl_rule_link *link; struct proc *p; + if (!racct_enable) + return (ENOSYS); + error = priv_check(td, PRIV_RCTL_GET_RULES); if (error != 0) return (error); @@ -1467,6 +1519,9 @@ sys_rctl_get_limits(struct thread *td, s struct rctl_rule *filter; struct rctl_rule_link *link; + if (!racct_enable) + return (ENOSYS); + error = priv_check(td, PRIV_RCTL_GET_LIMITS); if (error != 0) return (error); @@ -1538,6 +1593,9 @@ sys_rctl_add_rule(struct thread *td, str struct rctl_rule *rule; char *inputstr; + if (!racct_enable) + return (ENOSYS); + error = priv_check(td, PRIV_RCTL_ADD_RULE); if (error != 0) return (error); @@ -1580,6 +1638,9 @@ sys_rctl_remove_rule(struct thread *td, struct rctl_rule *filter; char *inputstr; + if (!racct_enable) + return (ENOSYS); + error = priv_check(td, PRIV_RCTL_REMOVE_RULE); if (error != 0) return (error); @@ -1616,6 +1677,8 @@ rctl_proc_ucred_changed(struct proc *p, struct prison_racct *newprr; LIST_HEAD(, rctl_rule_link) newrules; + ASSERT_RACCT_ENABLED(); + newuip = newcred->cr_ruidinfo; newlc = newcred->cr_loginclass; newprr = newcred->cr_prison->pr_prison_racct; @@ -1756,6 +1819,7 @@ rctl_proc_fork(struct proc *parent, stru LIST_INIT(&child->p_racct->r_rule_links); + ASSERT_RACCT_ENABLED(); KASSERT(parent->p_racct != NULL, ("process without racct; p = %p", parent)); rw_wlock(&rctl_lock); @@ -1809,6 +1873,8 @@ rctl_racct_release(struct racct *racct) { struct rctl_rule_link *link; + ASSERT_RACCT_ENABLED(); + rw_wlock(&rctl_lock); while (!LIST_EMPTY(&racct->r_rule_links)) { link = LIST_FIRST(&racct->r_rule_links); @@ -1823,6 +1889,9 @@ static void rctl_init(void) { + if (!racct_enable) + return; + rctl_rule_link_zone = uma_zcreate("rctl_rule_link", sizeof(struct rctl_rule_link), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE); Modified: stable/10/sys/kern/kern_thr.c ============================================================================== --- stable/10/sys/kern/kern_thr.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/kern_thr.c Sun Jun 21 06:28:26 2015 (r284665) @@ -281,9 +281,11 @@ create_thread(struct thread *td, mcontex fail: #ifdef RACCT - PROC_LOCK(p); - racct_sub(p, RACCT_NTHR, 1); - PROC_UNLOCK(p); + if (racct_enable) { + PROC_LOCK(p); + racct_sub(p, RACCT_NTHR, 1); + PROC_UNLOCK(p); + } #endif return (error); } Modified: stable/10/sys/kern/sched_4bsd.c ============================================================================== --- stable/10/sys/kern/sched_4bsd.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/sched_4bsd.c Sun Jun 21 06:28:26 2015 (r284665) @@ -1586,7 +1586,7 @@ sched_pctcpu(struct thread *td) return (ts->ts_pctcpu); } -#ifdef RACCT +#ifdef RACCT /* * Calculates the contribution to the thread cpu usage for the latest * (unfinished) second. Modified: stable/10/sys/kern/subr_trap.c ============================================================================== --- stable/10/sys/kern/subr_trap.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/subr_trap.c Sun Jun 21 06:28:26 2015 (r284665) @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -177,11 +178,13 @@ userret(struct thread *td, struct trapfr __func__, td, p->p_pid, td->td_name, curvnet, (td->td_vnet_lpush != NULL) ? td->td_vnet_lpush : "N/A")); #endif -#ifdef RACCT - PROC_LOCK(p); - while (p->p_throttled == 1) - msleep(p->p_racct, &p->p_mtx, 0, "racct", 0); - PROC_UNLOCK(p); +#ifdef RACCT + if (racct_enable) { + PROC_LOCK(p); + while (p->p_throttled == 1) + msleep(p->p_racct, &p->p_mtx, 0, "racct", 0); + PROC_UNLOCK(p); + } #endif } Modified: stable/10/sys/kern/sysv_msg.c ============================================================================== --- stable/10/sys/kern/sysv_msg.c Sun Jun 21 06:05:33 2015 (r284664) +++ stable/10/sys/kern/sysv_msg.c Sun Jun 21 06:28:26 2015 (r284665) @@ -623,12 +623,14 @@ sys_msgget(td, uap) goto done2; } #ifdef RACCT - PROC_LOCK(td->td_proc); - error = racct_add(td->td_proc, RACCT_NMSGQ, 1); - PROC_UNLOCK(td->td_proc); - if (error != 0) { - error = ENOSPC; - goto done2; + if (racct_enable) { + PROC_LOCK(td->td_proc); + error = racct_add(td->td_proc, RACCT_NMSGQ, 1); + PROC_UNLOCK(td->td_proc); + if (error != 0) { + error = ENOSPC; + goto done2; + } } #endif DPRINTF(("msqid %d is available\n", msqid)); @@ -730,20 +732,22 @@ kern_msgsnd(td, msqid, msgp, msgsz, msgf *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-10@FreeBSD.ORG Sun Jun 21 06:36:54 2015 Return-Path: Delivered-To: svn-src-stable-10@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E6C3FCA9; Sun, 21 Jun 2015 06:36:54 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D460520A; Sun, 21 Jun 2015 06:36:54 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5L6asZQ051272; Sun, 21 Jun 2015 06:36:54 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5L6asdX051271; Sun, 21 Jun 2015 06:36:54 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201506210636.t5L6asdX051271@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 21 Jun 2015 06:36:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284666 - stable/10/sbin/devd X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 06:36:55 -0000 Author: trasz Date: Sun Jun 21 06:36:54 2015 New Revision: 284666 URL: https://svnweb.freebsd.org/changeset/base/284666 Log: MFC r282857: Document RCTL events in devd.conf(5). Sponsored by: The FreeBSD Foundation Modified: stable/10/sbin/devd/devd.conf.5 Directory Properties: stable/10/ (props changed) Modified: stable/10/sbin/devd/devd.conf.5 ============================================================================== --- stable/10/sbin/devd/devd.conf.5 Sun Jun 21 06:28:26 2015 (r284665) +++ stable/10/sbin/devd/devd.conf.5 Sun Jun 21 06:36:54 2015 (r284666) @@ -41,7 +41,7 @@ .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" -.Dd January 14, 2015 +.Dd May 13, 2015 .Dt DEVD.CONF 5 .Os .Sh NAME @@ -270,6 +270,8 @@ Interface Class (USB) Interface Protocol (USB) .It Li intsubclass Interface Sub-class (USB) +.It Li jail +Jail name for the process triggering the rule (RCTL) .It Li manufacturer Manufacturer ID (pccard). .It Li mode @@ -280,12 +282,18 @@ Match the value of the variable. .It Li parent Parent device +.It Li pid +PID of the process triggering the rule (RCTL) .It Li port Hub port number (USB) .It Li product Product ID (pccard/USB). .It Li release Hardware revision (USB) +.It Li ruid +Real UID of the process triggering the rule (RCTL) +.It Li rule +Rule (RCTL) .It Li sernum Serial Number (USB). .It Li slot @@ -397,6 +405,20 @@ Physical media has changed. .El .El .Pp +.It Li RCTL +Events related to the +.Xr rctl 8 +framework. +.Bl -tag -width ".Sy Subsystem" -compact +.It Sy Subsystem +.It Li rule +.Bl -tag -width ".Li matched" -compact +.It Sy Type +.It Li matched +A rule with action specified as "devctl" was triggered. +.El +.El +.Pp .It Li USB Events related to the USB subsystem. .Bl -tag -width ".Sy Subsystem" -compact From owner-svn-src-stable-10@FreeBSD.ORG Sun Jun 21 06:40:45 2015 Return-Path: Delivered-To: svn-src-stable-10@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D6BF5E3E; Sun, 21 Jun 2015 06:40:44 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B76CE358; Sun, 21 Jun 2015 06:40:44 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5L6eiV2052483; Sun, 21 Jun 2015 06:40:44 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5L6eijW052482; Sun, 21 Jun 2015 06:40:44 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201506210640.t5L6eijW052482@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 21 Jun 2015 06:40:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284667 - stable/10/usr.bin/rctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 06:40:45 -0000 Author: trasz Date: Sun Jun 21 06:40:43 2015 New Revision: 284667 URL: https://svnweb.freebsd.org/changeset/base/284667 Log: MFC r282236: Make rctl(8) more user-friendly when RACCT/RCTL is disabled for some reason. Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.bin/rctl/rctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/rctl/rctl.c ============================================================================== --- stable/10/usr.bin/rctl/rctl.c Sun Jun 21 06:36:54 2015 (r284666) +++ stable/10/usr.bin/rctl/rctl.c Sun Jun 21 06:40:43 2015 (r284667) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -305,13 +306,37 @@ print_rules(char *rules, int hflag, int } static void +enosys(void) +{ + int error, racct_enable; + size_t racct_enable_len; + + racct_enable_len = sizeof(racct_enable); + error = sysctlbyname("kern.racct.enable", + &racct_enable, &racct_enable_len, NULL, 0); + + if (error != 0) { + if (errno == ENOENT) + errx(1, "RACCT/RCTL support not present in kernel; see rctl(8) for details."); + + err(1, "sysctlbyname"); + } + + if (racct_enable == 0) + errx(1, "RACCT/RCTL present, but disabled; enable using kern.racct.enable=1 tunable"); +} + +static void add_rule(char *rule) { int error; error = rctl_add_rule(rule, strlen(rule) + 1, NULL, 0); - if (error != 0) + if (error != 0) { + if (errno == ENOSYS) + enosys(); err(1, "rctl_add_rule"); + } free(rule); } @@ -330,8 +355,11 @@ show_limits(char *filter, int hflag, int error = rctl_get_limits(filter, strlen(filter) + 1, outbuf, outbuflen); - if (error && errno != ERANGE) + if (error && errno != ERANGE) { + if (errno == ENOSYS) + enosys(); err(1, "rctl_get_limits"); + } } while (error && errno == ERANGE); print_rules(outbuf, hflag, nflag); @@ -345,8 +373,11 @@ remove_rule(char *filter) int error; error = rctl_remove_rule(filter, strlen(filter) + 1, NULL, 0); - if (error != 0) + if (error != 0) { + if (errno == ENOSYS) + enosys(); err(1, "rctl_remove_rule"); + } free(filter); } @@ -399,8 +430,11 @@ show_usage(char *filter, int hflag) error = rctl_get_racct(filter, strlen(filter) + 1, outbuf, outbuflen); - if (error && errno != ERANGE) + if (error && errno != ERANGE) { + if (errno == ENOSYS) + enosys(); err(1, "rctl_get_racct"); + } } while (error && errno == ERANGE); while ((tmp = strsep(&outbuf, ",")) != NULL) { @@ -439,8 +473,11 @@ show_rules(char *filter, int hflag, int err(1, "realloc"); error = rctl_get_rules(filter, filterlen, outbuf, outbuflen); - if (error && errno != ERANGE) + if (error && errno != ERANGE) { + if (errno == ENOSYS) + enosys(); err(1, "rctl_get_rules"); + } } while (error && errno == ERANGE); print_rules(outbuf, hflag, nflag); From owner-svn-src-stable-10@FreeBSD.ORG Sun Jun 21 06:44:33 2015 Return-Path: Delivered-To: svn-src-stable-10@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 57C1E1A9; Sun, 21 Jun 2015 06:44:33 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4571F63A; Sun, 21 Jun 2015 06:44:33 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5L6iXl4055884; Sun, 21 Jun 2015 06:44:33 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5L6iXwG055883; Sun, 21 Jun 2015 06:44:33 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201506210644.t5L6iXwG055883@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 21 Jun 2015 06:44:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284668 - stable/10/usr.bin/rctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 06:44:33 -0000 Author: trasz Date: Sun Jun 21 06:44:32 2015 New Revision: 284668 URL: https://svnweb.freebsd.org/changeset/base/284668 Log: MFC r282238: Remove spurious period. Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.bin/rctl/rctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/rctl/rctl.c ============================================================================== --- stable/10/usr.bin/rctl/rctl.c Sun Jun 21 06:40:43 2015 (r284667) +++ stable/10/usr.bin/rctl/rctl.c Sun Jun 21 06:44:32 2015 (r284668) @@ -317,7 +317,7 @@ enosys(void) if (error != 0) { if (errno == ENOENT) - errx(1, "RACCT/RCTL support not present in kernel; see rctl(8) for details."); + errx(1, "RACCT/RCTL support not present in kernel; see rctl(8) for details"); err(1, "sysctlbyname"); } From owner-svn-src-stable-10@FreeBSD.ORG Sun Jun 21 06:49:45 2015 Return-Path: Delivered-To: svn-src-stable-10@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CE84F31B; Sun, 21 Jun 2015 06:49:45 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BBD7965C; Sun, 21 Jun 2015 06:49:45 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5L6njK1056640; Sun, 21 Jun 2015 06:49:45 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5L6njum056635; Sun, 21 Jun 2015 06:49:45 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201506210649.t5L6njum056635@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 21 Jun 2015 06:49:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284669 - stable/10/sbin/growfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 06:49:45 -0000 Author: trasz Date: Sun Jun 21 06:49:44 2015 New Revision: 284669 URL: https://svnweb.freebsd.org/changeset/base/284669 Log: MFC r281929: Fix growfs(8) build with debug enabled (make -DGFSDBG). Sponsored by: The FreeBSD Foundation Modified: stable/10/sbin/growfs/Makefile stable/10/sbin/growfs/growfs.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sbin/growfs/Makefile ============================================================================== --- stable/10/sbin/growfs/Makefile Sun Jun 21 06:44:32 2015 (r284668) +++ stable/10/sbin/growfs/Makefile Sun Jun 21 06:49:44 2015 (r284669) @@ -4,8 +4,6 @@ # $FreeBSD$ # -#GFSDBG= - .include .PATH: ${.CURDIR}/../mount @@ -16,7 +14,9 @@ MAN= growfs.8 CFLAGS+=-I${.CURDIR}/../mount .if defined(GFSDBG) -SRCS+= debug.c +SRCS+= debug.c +CFLAGS+= -DFS_DEBUG +NO_WCAST_ALIGN= yes .endif DPADD= ${LIBUTIL} Modified: stable/10/sbin/growfs/growfs.c ============================================================================== --- stable/10/sbin/growfs/growfs.c Sun Jun 21 06:44:32 2015 (r284668) +++ stable/10/sbin/growfs/growfs.c Sun Jun 21 06:49:44 2015 (r284669) @@ -161,7 +161,7 @@ growfs(int fsi, int fso, unsigned int Nf #ifdef FS_DEBUG { struct csum *dbg_csp; - int dbg_csc; + u_int32_t dbg_csc; char dbg_line[80]; dbg_csp = fscs; @@ -242,7 +242,7 @@ growfs(int fsi, int fso, unsigned int Nf #ifdef FS_DEBUG { struct csum *dbg_csp; - int dbg_csc; + u_int32_t dbg_csc; char dbg_line[80]; dbg_csp = fscs; From owner-svn-src-stable-10@FreeBSD.ORG Sun Jun 21 06:54:56 2015 Return-Path: Delivered-To: svn-src-stable-10@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E1CAE5E5; Sun, 21 Jun 2015 06:54:55 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C33058B8; Sun, 21 Jun 2015 06:54:55 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5L6sthk060938; Sun, 21 Jun 2015 06:54:55 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5L6ssPo060934; Sun, 21 Jun 2015 06:54:54 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201506210654.t5L6ssPo060934@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 21 Jun 2015 06:54:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284671 - in stable/10: usr.bin/ctlstat usr.sbin/ctladm usr.sbin/ctld usr.sbin/iostat X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 06:54:56 -0000 Author: trasz Date: Sun Jun 21 06:54:54 2015 New Revision: 284671 URL: https://svnweb.freebsd.org/changeset/base/284671 Log: MFC r283285: Advertise ctlstat(8) a little better. Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.bin/ctlstat/ctlstat.8 stable/10/usr.sbin/ctladm/ctladm.8 stable/10/usr.sbin/ctld/ctld.8 stable/10/usr.sbin/iostat/iostat.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/ctlstat/ctlstat.8 ============================================================================== --- stable/10/usr.bin/ctlstat/ctlstat.8 Sun Jun 21 06:52:03 2015 (r284670) +++ stable/10/usr.bin/ctlstat/ctlstat.8 Sun Jun 21 06:54:54 2015 (r284671) @@ -34,7 +34,7 @@ .\" $Id: //depot/users/kenm/FreeBSD-test2/usr.bin/ctlstat/ctlstat.8#2 $ .\" $FreeBSD$ .\" -.Dd March 8, 2015 +.Dd May 22, 2015 .Dt CTLSTAT 8 .Os .Sh NAME @@ -117,6 +117,7 @@ every 10 seconds. .Xr xpt 4 , .Xr camcontrol 8 , .Xr ctladm 8 , +.Xr ctld 8 , .Xr iostat 8 .Sh AUTHORS .An Ken Merry Aq ken@FreeBSD.org Modified: stable/10/usr.sbin/ctladm/ctladm.8 ============================================================================== --- stable/10/usr.sbin/ctladm/ctladm.8 Sun Jun 21 06:52:03 2015 (r284670) +++ stable/10/usr.sbin/ctladm/ctladm.8 Sun Jun 21 06:54:54 2015 (r284671) @@ -34,7 +34,7 @@ .\" $Id: //depot/users/kenm/FreeBSD-test2/usr.sbin/ctladm/ctladm.8#3 $ .\" $FreeBSD$ .\" -.Dd February 1, 2015 +.Dd May 22, 2015 .Dt CTLADM 8 .Os .Sh NAME @@ -1160,7 +1160,8 @@ This will result in a sense key of NOT R .Xr ctl 4 , .Xr xpt 4 , .Xr camcontrol 8 , -.Xr ctld 8 +.Xr ctld 8 , +.Xr ctlstat 8 .Sh HISTORY The .Nm Modified: stable/10/usr.sbin/ctld/ctld.8 ============================================================================== --- stable/10/usr.sbin/ctld/ctld.8 Sun Jun 21 06:52:03 2015 (r284670) +++ stable/10/usr.sbin/ctld/ctld.8 Sun Jun 21 06:54:54 2015 (r284671) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 9, 2014 +.Dd May 22, 2015 .Dt CTLD 8 .Os .Sh NAME @@ -104,7 +104,8 @@ utility exits 0 on success, and >0 if an .Sh SEE ALSO .Xr ctl 4 , .Xr ctl.conf 5 , -.Xr ctladm 8 +.Xr ctladm 8 , +.Xr ctlstat 8 .Sh HISTORY The .Nm Modified: stable/10/usr.sbin/iostat/iostat.8 ============================================================================== --- stable/10/usr.sbin/iostat/iostat.8 Sun Jun 21 06:52:03 2015 (r284670) +++ stable/10/usr.sbin/iostat/iostat.8 Sun Jun 21 06:54:54 2015 (r284671) @@ -56,7 +56,7 @@ .\" .\" @(#)iostat.8 8.1 (Berkeley) 6/6/93 .\" -.Dd December 15, 2012 +.Dd May 22, 2015 .Dt IOSTAT 8 .Os .Sh NAME @@ -494,6 +494,7 @@ flags are given, the TTY and CPU display .Xr ps 1 , .Xr systat 1 , .Xr devstat 3 , +.Xr ctlstat 8 , .Xr gstat 8 , .Xr pstat 8 , .Xr vmstat 8 From owner-svn-src-stable-10@FreeBSD.ORG Sun Jun 21 07:00:55 2015 Return-Path: Delivered-To: svn-src-stable-10@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 100629BD; Sun, 21 Jun 2015 07:00:55 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7BA4951; Sun, 21 Jun 2015 07:00:54 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5L70sjM062012; Sun, 21 Jun 2015 07:00:54 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5L70sIP062011; Sun, 21 Jun 2015 07:00:54 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201506210700.t5L70sIP062011@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 21 Jun 2015 07:00:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284674 - stable/10/usr.sbin/uefisign X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 07:00:55 -0000 Author: trasz Date: Sun Jun 21 07:00:54 2015 New Revision: 284674 URL: https://svnweb.freebsd.org/changeset/base/284674 Log: MFC r283141: Remove the warning about invalid PE checksum; apparently nothing cares about those checksums anyway. Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/uefisign/pe.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/uefisign/pe.c ============================================================================== --- stable/10/usr.sbin/uefisign/pe.c Sun Jun 21 06:57:40 2015 (r284673) +++ stable/10/usr.sbin/uefisign/pe.c Sun Jun 21 07:00:54 2015 (r284674) @@ -346,7 +346,9 @@ static void parse_optional_32_plus(struct executable *x, off_t off, int number_of_sections) { +#if 0 uint32_t computed_checksum; +#endif const struct pe_optional_header_32_plus *po; range_check(x, off, sizeof(*po), "PE Optional Header"); @@ -373,13 +375,13 @@ parse_optional_32_plus(struct executable #if 0 printf("checksum 0x%x at offset %zd, len %zd\n", po->po_checksum, x->x_checksum_off, x->x_checksum_len); -#endif computed_checksum = compute_checksum(x); if (computed_checksum != po->po_checksum) { warnx("invalid PE+ checksum; is 0x%x, should be 0x%x", po->po_checksum, computed_checksum); } +#endif if (x->x_len < x->x_headers_len) errx(1, "invalid SizeOfHeaders %d", po->po_size_of_headers); @@ -393,7 +395,9 @@ parse_optional_32_plus(struct executable static void parse_optional_32(struct executable *x, off_t off, int number_of_sections) { +#if 0 uint32_t computed_checksum; +#endif const struct pe_optional_header_32 *po; range_check(x, off, sizeof(*po), "PE Optional Header"); @@ -420,13 +424,13 @@ parse_optional_32(struct executable *x, #if 0 printf("checksum at offset %zd, len %zd\n", x->x_checksum_off, x->x_checksum_len); -#endif computed_checksum = compute_checksum(x); if (computed_checksum != po->po_checksum) { warnx("invalid PE checksum; is 0x%x, should be 0x%x", po->po_checksum, computed_checksum); } +#endif if (x->x_len < x->x_headers_len) errx(1, "invalid SizeOfHeaders %d", po->po_size_of_headers); From owner-svn-src-stable-10@FreeBSD.ORG Mon Jun 22 00:54:48 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 90D296CB; Mon, 22 Jun 2015 00:54:48 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7EC34DC4; Mon, 22 Jun 2015 00:54:48 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5M0smpw097159; Mon, 22 Jun 2015 00:54:48 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5M0smvC097158; Mon, 22 Jun 2015 00:54:48 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506220054.t5M0smvC097158@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 22 Jun 2015 00:54:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284690 - stable/10/release/tools X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2015 00:54:48 -0000 Author: gjb Date: Mon Jun 22 00:54:47 2015 New Revision: 284690 URL: https://svnweb.freebsd.org/changeset/base/284690 Log: MFC r284617: Fix path to waagent. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/tools/azure.conf Directory Properties: stable/10/ (props changed) Modified: stable/10/release/tools/azure.conf ============================================================================== --- stable/10/release/tools/azure.conf Mon Jun 22 00:34:29 2015 (r284689) +++ stable/10/release/tools/azure.conf Mon Jun 22 00:54:47 2015 (r284690) @@ -14,8 +14,8 @@ export VM_EXTRA_PACKAGES="sysutils/azure export VM_RC_LIST= vm_extra_pre_umount() { - chroot ${DESTDIR} /usr/sbin/waagent -verbose -install - yes | chroot ${DESTDIR} /usr/sbin/waagent -deprovision + chroot ${DESTDIR} /usr/local/sbin/waagent -verbose -install + yes | chroot ${DESTDIR} /usr/local/sbin/waagent -deprovision echo 'sshd_enable="YES"' >> ${DESTDIR}/etc/rc.conf echo 'ifconfig_hn0="SYNCDHCP"' >> ${DESTDIR}/etc/rc.conf echo 'waagent_enable="YES"' >> ${DESTDIR}/etc/rc.conf From owner-svn-src-stable-10@FreeBSD.ORG Mon Jun 22 05:31:30 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1F4A3E54; Mon, 22 Jun 2015 05:31:30 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0D01B875; Mon, 22 Jun 2015 05:31:30 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5M5VTGK032259; Mon, 22 Jun 2015 05:31:29 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5M5VT1f032257; Mon, 22 Jun 2015 05:31:29 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201506220531.t5M5VT1f032257@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Mon, 22 Jun 2015 05:31:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284692 - stable/10/usr.bin/sockstat X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2015 05:31:30 -0000 Author: tuexen Date: Mon Jun 22 05:31:29 2015 New Revision: 284692 URL: https://svnweb.freebsd.org/changeset/base/284692 Log: MFC r284547: Fix a bug reported by coverity. Since AF_UNIX sockets don't have multiple addresses, the problem didn't show up during testing. Reported by: Coverity CID: 1306787 Modified: stable/10/usr.bin/sockstat/sockstat.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/sockstat/sockstat.c ============================================================================== --- stable/10/usr.bin/sockstat/sockstat.c Mon Jun 22 04:25:41 2015 (r284691) +++ stable/10/usr.bin/sockstat/sockstat.c Mon Jun 22 05:31:29 2015 (r284692) @@ -865,6 +865,7 @@ displaysock(struct sock *s, int pos) void *p; int hash; struct addr *laddr, *faddr; + struct sock *s_tmp; while (pos < 29) pos += xprintf(" "); @@ -908,18 +909,20 @@ displaysock(struct sock *s, int pos) } pos += xprintf("-> "); for (hash = 0; hash < HASHSIZE; ++hash) { - for (s = sockhash[hash]; s != NULL; s = s->next) - if (s->pcb == p) + for (s_tmp = sockhash[hash]; + s_tmp != NULL; + s_tmp = s_tmp->next) + if (s_tmp->pcb == p) break; - if (s != NULL) + if (s_tmp != NULL) break; } - if (s == NULL || - s->laddr == NULL || - s->laddr->address.ss_len == 0) + if (s_tmp == NULL || + s_tmp->laddr == NULL || + s_tmp->laddr->address.ss_len == 0) pos += xprintf("??"); else - pos += printaddr(&s->laddr->address); + pos += printaddr(&s_tmp->laddr->address); break; default: abort(); From owner-svn-src-stable-10@FreeBSD.ORG Mon Jun 22 05:34:14 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8F150E8A; Mon, 22 Jun 2015 05:34:14 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7C862A4C; Mon, 22 Jun 2015 05:34:14 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5M5YEuc032668; Mon, 22 Jun 2015 05:34:14 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5M5YEvl032667; Mon, 22 Jun 2015 05:34:14 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201506220534.t5M5YEvl032667@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Mon, 22 Jun 2015 05:34:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284693 - stable/10/sys/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2015 05:34:14 -0000 Author: tuexen Date: Mon Jun 22 05:34:13 2015 New Revision: 284693 URL: https://svnweb.freebsd.org/changeset/base/284693 Log: MFC r284596: When setting the primary address, return an error whenever it fails. Modified: stable/10/sys/netinet/sctp_usrreq.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/netinet/sctp_usrreq.c ============================================================================== --- stable/10/sys/netinet/sctp_usrreq.c Mon Jun 22 05:31:29 2015 (r284692) +++ stable/10/sys/netinet/sctp_usrreq.c Mon Jun 22 05:34:13 2015 (r284693) @@ -5678,16 +5678,23 @@ sctp_setopt(struct socket *so, int optna } if ((stcb != NULL) && (net != NULL)) { - if ((net != stcb->asoc.primary_destination) && - (!(net->dest_state & SCTP_ADDR_UNCONFIRMED))) { - /* Ok we need to set it */ - if (sctp_set_primary_addr(stcb, (struct sockaddr *)NULL, net) == 0) { - if ((stcb->asoc.alternate) && - (!(net->dest_state & SCTP_ADDR_PF)) && - (net->dest_state & SCTP_ADDR_REACHABLE)) { - sctp_free_remote_addr(stcb->asoc.alternate); - stcb->asoc.alternate = NULL; + if (net != stcb->asoc.primary_destination) { + if (!(net->dest_state & SCTP_ADDR_UNCONFIRMED)) { + /* Ok we need to set it */ + if (sctp_set_primary_addr(stcb, (struct sockaddr *)NULL, net) == 0) { + if ((stcb->asoc.alternate) && + (!(net->dest_state & SCTP_ADDR_PF)) && + (net->dest_state & SCTP_ADDR_REACHABLE)) { + sctp_free_remote_addr(stcb->asoc.alternate); + stcb->asoc.alternate = NULL; + } + } else { + SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); + error = EINVAL; } + } else { + SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); + error = EINVAL; } } } else { From owner-svn-src-stable-10@FreeBSD.ORG Mon Jun 22 05:36:09 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 37302EBA; Mon, 22 Jun 2015 05:36:09 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0B2D5BCB; Mon, 22 Jun 2015 05:36:09 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5M5a83E032998; Mon, 22 Jun 2015 05:36:08 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5M5a8cF032997; Mon, 22 Jun 2015 05:36:08 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201506220536.t5M5a8cF032997@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Mon, 22 Jun 2015 05:36:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284694 - stable/10/usr.bin/sockstat X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2015 05:36:09 -0000 Author: tuexen Date: Mon Jun 22 05:36:08 2015 New Revision: 284694 URL: https://svnweb.freebsd.org/changeset/base/284694 Log: MFC r284604: Don't leak sockets. Reported by: Coverity CID: 1306785 Modified: stable/10/usr.bin/sockstat/sockstat.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/sockstat/sockstat.c ============================================================================== --- stable/10/usr.bin/sockstat/sockstat.c Mon Jun 22 05:34:13 2015 (r284693) +++ stable/10/usr.bin/sockstat/sockstat.c Mon Jun 22 05:36:08 2015 (r284694) @@ -255,6 +255,26 @@ sockaddr(struct sockaddr_storage *sa, in } static void +free_socket(struct sock *sock) +{ + struct addr *cur, *next; + + cur = sock->laddr; + while (cur != NULL) { + next = cur->next; + free(cur); + cur = next; + } + cur = sock->faddr; + while (cur != NULL) { + next = cur->next; + free(cur); + cur = next; + } + free(sock); +} + +static void gather_sctp(void) { struct sock *sock; @@ -366,14 +386,17 @@ gather_sctp(void) while (offset < len) { xstcb = (struct xsctp_tcb *)(void *)(buf + offset); offset += sizeof(struct xsctp_tcb); - if (no_stcb && - opt_l && - (!opt_L || !local_all_loopback) && - ((xinpcb->flags & SCTP_PCB_FLAGS_UDPTYPE) || - (xstcb->last == 1))) { - hash = (int)((uintptr_t)sock->socket % HASHSIZE); - sock->next = sockhash[hash]; - sockhash[hash] = sock; + if (no_stcb) { + if (opt_l && + (!opt_L || !local_all_loopback) && + ((xinpcb->flags & SCTP_PCB_FLAGS_UDPTYPE) || + (xstcb->last == 1))) { + hash = (int)((uintptr_t)sock->socket % HASHSIZE); + sock->next = sockhash[hash]; + sockhash[hash] = sock; + } else { + free_socket(sock); + } } if (xstcb->last == 1) break; @@ -476,11 +499,14 @@ gather_sctp(void) prev_faddr->next = faddr; prev_faddr = faddr; } - if (opt_c && - (!opt_L || !(local_all_loopback || foreign_all_loopback))) { - hash = (int)((uintptr_t)sock->socket % HASHSIZE); - sock->next = sockhash[hash]; - sockhash[hash] = sock; + if (opt_c) { + if (!opt_L || !(local_all_loopback || foreign_all_loopback)) { + hash = (int)((uintptr_t)sock->socket % HASHSIZE); + sock->next = sockhash[hash]; + sockhash[hash] = sock; + } else { + free_socket(sock); + } } } xinpcb = (struct xsctp_inpcb *)(void *)(buf + offset); From owner-svn-src-stable-10@FreeBSD.ORG Mon Jun 22 06:06:39 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F2999103; Mon, 22 Jun 2015 06:06:38 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E0474B76; Mon, 22 Jun 2015 06:06:38 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5M66cwm047435; Mon, 22 Jun 2015 06:06:38 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5M66cp0047434; Mon, 22 Jun 2015 06:06:38 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201506220606.t5M66cp0047434@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Mon, 22 Jun 2015 06:06:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284696 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2015 06:06:39 -0000 Author: tuexen Date: Mon Jun 22 06:06:38 2015 New Revision: 284696 URL: https://svnweb.freebsd.org/changeset/base/284696 Log: When using KTRACE, set a variable to the appropriate value and don't leave it initialized at NULL. Since the affected functions where moved from sys/kern/uipc_syscalls.c to sys/netinet/sctp_syscalls.c it was not possible to MFC r284613. Therefore, this is a direct commit with the corresponding changes of r284613. Reported by: Coverity CID: 1018058, 1018060 Modified: stable/10/sys/kern/uipc_syscalls.c Modified: stable/10/sys/kern/uipc_syscalls.c ============================================================================== --- stable/10/sys/kern/uipc_syscalls.c Mon Jun 22 05:41:13 2015 (r284695) +++ stable/10/sys/kern/uipc_syscalls.c Mon Jun 22 06:06:38 2015 (r284696) @@ -2742,6 +2742,10 @@ sys_sctp_generic_sendmsg (td, uap) auio.uio_td = td; auio.uio_offset = 0; /* XXX */ auio.uio_resid = 0; +#ifdef KTRACE + if (KTRPOINT(td, KTR_GENIO)) + ktruio = cloneuio(&auio); +#endif /* KTRACE */ len = auio.uio_resid = uap->mlen; CURVNET_SET(so->so_vnet); error = sctp_lower_sosend(so, to, &auio, (struct mbuf *)NULL, @@ -2865,6 +2869,10 @@ sys_sctp_generic_sendmsg_iov(td, uap) goto sctp_bad; } } +#ifdef KTRACE + if (KTRPOINT(td, KTR_GENIO)) + ktruio = cloneuio(&auio); +#endif /* KTRACE */ len = auio.uio_resid; CURVNET_SET(so->so_vnet); error = sctp_lower_sosend(so, to, &auio, From owner-svn-src-stable-10@FreeBSD.ORG Mon Jun 22 16:24:28 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2BCE4573; Mon, 22 Jun 2015 16:24:28 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 198BAC49; Mon, 22 Jun 2015 16:24:28 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5MGOR95054187; Mon, 22 Jun 2015 16:24:27 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5MGORlc054186; Mon, 22 Jun 2015 16:24:27 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201506221624.t5MGORlc054186@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Mon, 22 Jun 2015 16:24:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284700 - stable/10/kerberos5/lib/libhx509 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2015 16:24:28 -0000 Author: jkim Date: Mon Jun 22 16:24:27 2015 New Revision: 284700 URL: https://svnweb.freebsd.org/changeset/base/284700 Log: MFC: r284578 Fix a typo. Modified: stable/10/kerberos5/lib/libhx509/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/kerberos5/lib/libhx509/Makefile ============================================================================== --- stable/10/kerberos5/lib/libhx509/Makefile Mon Jun 22 16:13:17 2015 (r284699) +++ stable/10/kerberos5/lib/libhx509/Makefile Mon Jun 22 16:24:27 2015 (r284700) @@ -269,7 +269,7 @@ CLEANFILES= ${GEN} ${GEN:S/.x$/.c/:S/.hx INCS+= ocsp_asn1.h pkcs10_asn1.h crmf_asn1.h -.ORDER: ${GEN_OSCP} +.ORDER: ${GEN_OCSP} ${GEN_OCSP}: ocsp.asn1 ocsp.opt ${ASN1_COMPILE} --option-file=${.ALLSRC:M*.opt} \ ${.ALLSRC:M*.asn1} ocsp_asn1 From owner-svn-src-stable-10@FreeBSD.ORG Mon Jun 22 19:37:05 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3EDB1280; Mon, 22 Jun 2015 19:37:05 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2A9B41F4; Mon, 22 Jun 2015 19:37:05 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5MJb5f6059431; Mon, 22 Jun 2015 19:37:05 GMT (envelope-from gallatin@FreeBSD.org) Received: (from gallatin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5MJb5wt059430; Mon, 22 Jun 2015 19:37:05 GMT (envelope-from gallatin@FreeBSD.org) Message-Id: <201506221937.t5MJb5wt059430@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gallatin set sender to gallatin@FreeBSD.org using -f From: Andrew Gallatin Date: Mon, 22 Jun 2015 19:37:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284706 - stable/10/sys/dev/ixl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2015 19:37:05 -0000 Author: gallatin Date: Mon Jun 22 19:37:04 2015 New Revision: 284706 URL: https://svnweb.freebsd.org/changeset/base/284706 Log: MFC r284612: Fix a typo Sponsored by: Netflix Modified: stable/10/sys/dev/ixl/if_ixl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/ixl/if_ixl.c ============================================================================== --- stable/10/sys/dev/ixl/if_ixl.c Mon Jun 22 19:01:09 2015 (r284705) +++ stable/10/sys/dev/ixl/if_ixl.c Mon Jun 22 19:37:04 2015 (r284706) @@ -2324,7 +2324,7 @@ ixl_setup_interface(device_t dev, struct } if_initname(ifp, device_get_name(dev), device_get_unit(dev)); ifp->if_mtu = ETHERMTU; - ifp->if_baudrate = 4000000000; // ?? + ifp->if_baudrate = IF_Gbps(40); ifp->if_init = ixl_init; ifp->if_softc = vsi; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; From owner-svn-src-stable-10@FreeBSD.ORG Tue Jun 23 03:56:06 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 983E9FD4; Tue, 23 Jun 2015 03:56:06 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 860CAF32; Tue, 23 Jun 2015 03:56:06 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5N3u6kt048526; Tue, 23 Jun 2015 03:56:06 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5N3u6oc048525; Tue, 23 Jun 2015 03:56:06 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201506230356.t5N3u6oc048525@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Tue, 23 Jun 2015 03:56:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284713 - stable/10/sys/boot/forth X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2015 03:56:06 -0000 Author: dteske Date: Tue Jun 23 03:56:05 2015 New Revision: 284713 URL: https://svnweb.freebsd.org/changeset/base/284713 Log: MFC r284672 (antoine): Install version.4th.8 again It was disconnected from installation in r281081, but was never removed from the tree or added to ObsoleteFiles.inc Modified: stable/10/sys/boot/forth/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/forth/Makefile ============================================================================== --- stable/10/sys/boot/forth/Makefile Tue Jun 23 02:17:23 2015 (r284712) +++ stable/10/sys/boot/forth/Makefile Tue Jun 23 03:56:05 2015 (r284713) @@ -8,6 +8,7 @@ MAN+= beastie.4th.8 \ loader.conf.5 \ loader.4th.8 \ menu.4th.8 \ - menusets.4th.8 + menusets.4th.8 \ + version.4th.8 .include From owner-svn-src-stable-10@FreeBSD.ORG Tue Jun 23 04:03:55 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 858F8FA; Tue, 23 Jun 2015 04:03:55 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 59DD863C; Tue, 23 Jun 2015 04:03:55 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5N43tQH053686; Tue, 23 Jun 2015 04:03:55 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5N43sMj053683; Tue, 23 Jun 2015 04:03:54 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201506230403.t5N43sMj053683@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Tue, 23 Jun 2015 04:03:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284714 - stable/10/lib/libdpv X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2015 04:03:55 -0000 Author: dteske Date: Tue Jun 23 04:03:54 2015 New Revision: 284714 URL: https://svnweb.freebsd.org/changeset/base/284714 Log: MFC r283863: Fix a debug statement. Only the callback function (performing the incrementing of dpv_overall_oread) knows what its purpose is (and often times it was bytes, not lines). MFC r283975 (araujo): Clean up unused variable and silence clang warnings. Modified: stable/10/lib/libdpv/dprompt.c stable/10/lib/libdpv/dpv.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libdpv/dprompt.c ============================================================================== --- stable/10/lib/libdpv/dprompt.c Tue Jun 23 03:56:05 2015 (r284713) +++ stable/10/lib/libdpv/dprompt.c Tue Jun 23 04:03:54 2015 (r284714) @@ -391,7 +391,6 @@ dprompt_add_files(struct dpv_file_node * enum dprompt_state dstate; int estext_lsize; int estext_rsize; - int estext_size; int flabel_size; int hlen; int lsize; @@ -559,13 +558,11 @@ dprompt_add_files(struct dpv_file_node * bg_code = "\\Zr\\Z1"; /* Red */ estext_lsize = fail_lsize; estext_rsize = fail_rsize; - estext_size = fail_size; estext = fail; } else { /* e.g., DPV_STATUS_DONE */ bg_code = "\\Zr\\Z2"; /* Green */ estext_lsize = done_lsize; estext_rsize = done_rsize; - estext_size = done_size; estext = done; } switch (dstate) { Modified: stable/10/lib/libdpv/dpv.c ============================================================================== --- stable/10/lib/libdpv/dpv.c Tue Jun 23 03:56:05 2015 (r284713) +++ stable/10/lib/libdpv/dpv.c Tue Jun 23 04:03:54 2015 (r284714) @@ -692,7 +692,7 @@ dpv(struct dpv_config *config, struct dp if (!dpv_interrupt) printf("\n"); } else - warnx("%s: %lli lines read", __func__, dpv_overall_read); + warnx("%s: %lli overall read", __func__, dpv_overall_read); if (dpv_interrupt || dpv_abort) return (-1); From owner-svn-src-stable-10@FreeBSD.ORG Tue Jun 23 04:15:24 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B944921C; Tue, 23 Jun 2015 04:15:24 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8D93EC2F; Tue, 23 Jun 2015 04:15:24 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5N4FORX059427; Tue, 23 Jun 2015 04:15:24 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5N4FOeD059426; Tue, 23 Jun 2015 04:15:24 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201506230415.t5N4FOeD059426@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Tue, 23 Jun 2015 04:15:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284715 - stable/10 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2015 04:15:24 -0000 Author: dteske Date: Tue Jun 23 04:15:23 2015 New Revision: 284715 URL: https://svnweb.freebsd.org/changeset/base/284715 Log: MFC (mergeinfo only) obsolete revisions 278464-278465. Modified: Directory Properties: stable/10/ (props changed) From owner-svn-src-stable-10@FreeBSD.ORG Tue Jun 23 04:17:14 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EFC752A4; Tue, 23 Jun 2015 04:17:13 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DCD23E52; Tue, 23 Jun 2015 04:17:13 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5N4HD03059808; Tue, 23 Jun 2015 04:17:13 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5N4HDMT059805; Tue, 23 Jun 2015 04:17:13 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201506230417.t5N4HDMT059805@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Tue, 23 Jun 2015 04:17:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284716 - stable/10/usr.sbin/bsdconfig/usermgmt/share X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2015 04:17:14 -0000 Author: dteske Date: Tue Jun 23 04:17:12 2015 New Revision: 284716 URL: https://svnweb.freebsd.org/changeset/base/284716 Log: MFC r284609: Interim fix for "Login not found" error. PR: bin/196514 Modified: stable/10/usr.sbin/bsdconfig/usermgmt/share/group.subr stable/10/usr.sbin/bsdconfig/usermgmt/share/user.subr Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/bsdconfig/usermgmt/share/group.subr ============================================================================== --- stable/10/usr.sbin/bsdconfig/usermgmt/share/group.subr Tue Jun 23 04:15:23 2015 (r284715) +++ stable/10/usr.sbin/bsdconfig/usermgmt/share/group.subr Tue Jun 23 04:17:12 2015 (r284716) @@ -82,9 +82,9 @@ f_group_add() # # NB: pw(8) has a ``feature'' wherein `-n name' can be taken as GID # instead of name. Work-around is to also pass `-g GID' at the same - # time (any GID will do; but `-1' is appropriate for this context). + # time (the GID is ignored in this case, so any GID will do). # - if [ "$input" ] && f_quietly pw groupshow -n "$input" -g -1; then + if [ "$input" ] && f_quietly pw groupshow -n "$input" -g 1337; then f_show_err "$msg_group_already_used" "$input" return $FAILURE fi @@ -182,7 +182,7 @@ f_group_add() 1) # Group Name (prompt for new group name) f_dialog_input_group_name input "$group_name" || continue - if f_quietly pw groupshow -n "$input" -g -1; then + if f_quietly pw groupshow -n "$input" -g 1337; then f_show_err "$msg_group_already_used" "$input" continue fi @@ -368,9 +368,9 @@ f_group_edit() # # NB: pw(8) has a ``feature'' wherein `-n name' can be taken as GID # instead of name. Work-around is to also pass `-g GID' at the same - # time (any GID will do; but `-1' is appropriate for this context). + # time (the GID is ignored in this case, so any GID will do). # - if [ "$input" ] && ! f_quietly pw groupshow -n "$input" -g -1; then + if [ "$input" ] && ! f_quietly pw groupshow -n "$input" -g 1337; then f_show_err "$msg_group_not_found" "$input" return $FAILURE fi Modified: stable/10/usr.sbin/bsdconfig/usermgmt/share/user.subr ============================================================================== --- stable/10/usr.sbin/bsdconfig/usermgmt/share/user.subr Tue Jun 23 04:15:23 2015 (r284715) +++ stable/10/usr.sbin/bsdconfig/usermgmt/share/user.subr Tue Jun 23 04:17:12 2015 (r284716) @@ -231,9 +231,9 @@ f_user_add() # # NB: pw(8) has a ``feature'' wherein `-n name' can be taken as UID # instead of name. Work-around is to also pass `-u UID' at the same - # time (any UID will do; but `-1' is appropriate for this context). + # time (the UID is ignored in this case, so any UID will do). # - if [ "$input" ] && f_quietly pw usershow -n "$input" -u -1; then + if [ "$input" ] && f_quietly pw usershow -n "$input" -u 1337; then f_show_err "$msg_login_already_used" "$input" return $FAILURE fi @@ -414,7 +414,7 @@ f_user_add() 1) # Login (prompt for new login name) f_dialog_input_name input "$user_name" || continue - if f_quietly pw usershow -n "$input" -u -1; then + if f_quietly pw usershow -n "$input" -u 1337; then f_show_err "$msg_login_already_used" "$input" continue fi @@ -920,9 +920,9 @@ f_user_edit() # # NB: pw(8) has a ``feature'' wherein `-n name' can be taken as UID # instead of name. Work-around is to also pass `-u UID' at the same - # time (any UID will do; but `-1' is appropriate for this context). + # time (the UID is ignored in this case, so any UID will do). # - if [ "$input" ] && ! f_quietly pw usershow -n "$input" -u -1; then + if [ "$input" ] && ! f_quietly pw usershow -n "$input" -u 1337; then f_show_err "$msg_login_not_found" "$input" return $FAILURE fi From owner-svn-src-stable-10@FreeBSD.ORG Tue Jun 23 06:30:37 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DBFCFAB3; Tue, 23 Jun 2015 06:30:37 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C7B67F25; Tue, 23 Jun 2015 06:30:37 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5N6UbB1027887; Tue, 23 Jun 2015 06:30:37 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5N6UbLv027885; Tue, 23 Jun 2015 06:30:37 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201506230630.t5N6UbLv027885@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 23 Jun 2015 06:30:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284720 - in stable/10/sys: amd64/include sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2015 06:30:38 -0000 Author: kib Date: Tue Jun 23 06:30:36 2015 New Revision: 284720 URL: https://svnweb.freebsd.org/changeset/base/284720 Log: Revert part of the r283303 (by jhb): Revert MFC of r270223, which bumped MAXCPU on amd64 from 64 to 256. The cpuset_getaffinity(2) and cpuset_setaffinity(2) check minimum set size, which now fails for binaries compiled on 10.0 with MAXCPU == 64. Submitted by: jhb PR: 200802 Modified: stable/10/sys/amd64/include/param.h stable/10/sys/sys/param.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/include/param.h ============================================================================== --- stable/10/sys/amd64/include/param.h Tue Jun 23 06:12:14 2015 (r284719) +++ stable/10/sys/amd64/include/param.h Tue Jun 23 06:30:36 2015 (r284720) @@ -65,7 +65,7 @@ #if defined(SMP) || defined(KLD_MODULE) #ifndef MAXCPU -#define MAXCPU 256 +#define MAXCPU 64 #endif #else #define MAXCPU 1 Modified: stable/10/sys/sys/param.h ============================================================================== --- stable/10/sys/sys/param.h Tue Jun 23 06:12:14 2015 (r284719) +++ stable/10/sys/sys/param.h Tue Jun 23 06:30:36 2015 (r284720) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1001518 /* Master, propagated to newvers */ +#define __FreeBSD_version 1001519 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-stable-10@FreeBSD.ORG Tue Jun 23 06:56:14 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7DDC4D16; Tue, 23 Jun 2015 06:56:14 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 579042E5; Tue, 23 Jun 2015 06:56:14 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from [10.239.242.219] (unknown [166.170.31.47]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id A107EB91F; Tue, 23 Jun 2015 02:56:12 -0400 (EDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r284706 - stable/10/sys/dev/ixl From: John Baldwin X-Mailer: iPhone Mail (12F70) In-Reply-To: <201506221937.t5MJb5wt059430@svn.freebsd.org> Date: Tue, 23 Jun 2015 02:56:10 -0400 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-stable@freebsd.org" , "svn-src-stable-10@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <31922418-6DDC-4AA5-BF92-5E1C9075D00F@FreeBSD.org> References: <201506221937.t5MJb5wt059430@svn.freebsd.org> To: Andrew Gallatin X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Tue, 23 Jun 2015 02:56:12 -0400 (EDT) X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2015 06:56:14 -0000 I think you have to use if_initbaudrate() in 10 (maybe 9 as well?) instead o= f a direct assignment since if_baudrate is only a long (and thus 32-bit on 3= 2-bit platforms). We use an extra scaling variable in older branches to all= ow higher baud rates to be represented. --=20 John Baldwin > On Jun 22, 2015, at 15:37, Andrew Gallatin wrote: >=20 > Author: gallatin > Date: Mon Jun 22 19:37:04 2015 > New Revision: 284706 > URL: https://svnweb.freebsd.org/changeset/base/284706 >=20 > Log: > MFC r284612: Fix a typo >=20 > Sponsored by: Netflix >=20 > Modified: > stable/10/sys/dev/ixl/if_ixl.c > Directory Properties: > stable/10/ (props changed) >=20 > Modified: stable/10/sys/dev/ixl/if_ixl.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 > --- stable/10/sys/dev/ixl/if_ixl.c Mon Jun 22 19:01:09 2015 (r284705= ) > +++ stable/10/sys/dev/ixl/if_ixl.c Mon Jun 22 19:37:04 2015 (r284706= ) > @@ -2324,7 +2324,7 @@ ixl_setup_interface(device_t dev, struct > } > if_initname(ifp, device_get_name(dev), device_get_unit(dev)); > ifp->if_mtu =3D ETHERMTU; > - ifp->if_baudrate =3D 4000000000; // ?? > + ifp->if_baudrate =3D IF_Gbps(40); > ifp->if_init =3D ixl_init; > ifp->if_softc =3D vsi; > ifp->if_flags =3D IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; >=20 From owner-svn-src-stable-10@FreeBSD.ORG Tue Jun 23 22:31:04 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D89DB93A; Tue, 23 Jun 2015 22:31:04 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C3CD9F53; Tue, 23 Jun 2015 22:31:04 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5NMV4Pb014892; Tue, 23 Jun 2015 22:31:04 GMT (envelope-from gallatin@FreeBSD.org) Received: (from gallatin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5NMV4he014891; Tue, 23 Jun 2015 22:31:04 GMT (envelope-from gallatin@FreeBSD.org) Message-Id: <201506232231.t5NMV4he014891@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gallatin set sender to gallatin@FreeBSD.org using -f From: Andrew Gallatin Date: Tue, 23 Jun 2015 22:31:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284742 - stable/10/sys/dev/ixl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2015 22:31:05 -0000 Author: gallatin Date: Tue Jun 23 22:31:04 2015 New Revision: 284742 URL: https://svnweb.freebsd.org/changeset/base/284742 Log: Fix r284612: As pointed out by jhb, in stable branches, if_baudrate is 32b on 32b platforms. So rather than a simple MFC of r284612, we need to use if_initbaudrate() to properly express a 40Gb speed. Spotted by: jhb Sponsored by: Netflix Modified: stable/10/sys/dev/ixl/if_ixl.c Modified: stable/10/sys/dev/ixl/if_ixl.c ============================================================================== --- stable/10/sys/dev/ixl/if_ixl.c Tue Jun 23 22:22:36 2015 (r284741) +++ stable/10/sys/dev/ixl/if_ixl.c Tue Jun 23 22:31:04 2015 (r284742) @@ -2324,7 +2324,7 @@ ixl_setup_interface(device_t dev, struct } if_initname(ifp, device_get_name(dev), device_get_unit(dev)); ifp->if_mtu = ETHERMTU; - ifp->if_baudrate = IF_Gbps(40); + if_initbaudrate(ifp, IF_Gbps(40)); ifp->if_init = ixl_init; ifp->if_softc = vsi; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; From owner-svn-src-stable-10@FreeBSD.ORG Tue Jun 23 22:33:18 2015 Return-Path: Delivered-To: svn-src-stable-10@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 96BEE96B; Tue, 23 Jun 2015 22:33:18 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) (using TLSv1.1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 677351E2; Tue, 23 Jun 2015 22:33:18 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from [10.2.183.153] (unknown [69.53.232.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: gallatin) by duke.cs.duke.edu (Postfix) with ESMTPSA id 26F4CF80043; Tue, 23 Jun 2015 18:33:10 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cs.duke.edu; s=mail; t=1435098790; bh=IypYZiwyVE2WEMqTS8SF8SWikVfx6JL75BV2Ze6iqjI=; h=Date:From:To:Subject; b=XJh7FEMkRRwBuJ2FEpoG1CIj9qf0cma0OlO0CyUerxjBOLoqiZ2IdPrBG+DT+KKW4 teOA/PGXEsleTPcoUODMIyckakk2HYf/i95bGMQNnWiLaOCMYFpruCe3vxNqWPlN+P 3Chq/KpdD5mPKuGB5hS4cGwV8GIkvZmBaFrWaXh6tpPFH9yjeJfOY5j6IVxbrBG4vJ e1aS7xYCqOsQtSIA3HoneI6p/yj0Cei6RLIv9vAGROwwH+Ws8zpIdWXjfq2AfsOK/t KXAbMkzq8nmQut7yGEgCTkKOfoh9LVhM2kgC0KGN9RC1a4QCzq4WVcnSe5hd+E3bHd meu6qFXAUCDcg== Message-ID: <5589DEA3.4070600@cs.duke.edu> Date: Tue, 23 Jun 2015 15:33:07 -0700 From: Andrew Gallatin User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: John Baldwin , Andrew Gallatin CC: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-stable@freebsd.org" , "svn-src-stable-10@freebsd.org" Subject: Re: svn commit: r284706 - stable/10/sys/dev/ixl References: <201506221937.t5MJb5wt059430@svn.freebsd.org> <31922418-6DDC-4AA5-BF92-5E1C9075D00F@FreeBSD.org> In-Reply-To: <31922418-6DDC-4AA5-BF92-5E1C9075D00F@FreeBSD.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2015 22:33:18 -0000 On 6/22/15 11:56 PM, John Baldwin wrote: > I think you have to use if_initbaudrate() in 10 (maybe 9 as well?) instead of a direct assignment since if_baudrate is only a long (and thus 32-bit on 32-bit platforms). We use an extra scaling variable in older branches to allow higher baud rates to be represented. > Thanks for pointing that out. I'd forgotten about if_initbaudrate. Should be fixed now. Thanks again! Drew From owner-svn-src-stable-10@freebsd.org Wed Jun 24 12:19:12 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81688915708; Wed, 24 Jun 2015 12:19:12 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 71D631E63; Wed, 24 Jun 2015 12:19:12 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OCJCX5013311; Wed, 24 Jun 2015 12:19:12 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OCJCnL013310; Wed, 24 Jun 2015 12:19:12 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201506241219.t5OCJCnL013310@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Wed, 24 Jun 2015 12:19:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284750 - stable/10/usr.bin/calendar/calendars X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 12:19:12 -0000 Author: brueffer Date: Wed Jun 24 12:19:11 2015 New Revision: 284750 URL: https://svnweb.freebsd.org/changeset/base/284750 Log: MFH: r284249 Correct Hawaii's admission day. PR: 192651 Modified: stable/10/usr.bin/calendar/calendars/calendar.holiday Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/calendar/calendars/calendar.holiday ============================================================================== --- stable/10/usr.bin/calendar/calendars/calendar.holiday Wed Jun 24 09:28:43 2015 (r284749) +++ stable/10/usr.bin/calendar/calendars/calendar.holiday Wed Jun 24 12:19:11 2015 (r284750) @@ -357,7 +357,7 @@ 08/31 Independence Day (Merdeka) in Malaysia 08/31 Independence Day in Trinidad and Tobago 08/31 Pashtoonian Day in Afghanistan -08/FriThird Admission Day in Hawaii, 1984 (3rd Friday) +08/FriThird Admission Day in Hawaii, 1959 (3rd Friday) 09/01 Army Day in Chile 09/03 Independence Day in Qatar 09/03 Memorial Day in Tunisia From owner-svn-src-stable-10@freebsd.org Wed Jun 24 12:21:26 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1CDBC9157E2; Wed, 24 Jun 2015 12:21:26 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0DA291442; Wed, 24 Jun 2015 12:21:26 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OCLPmZ017285; Wed, 24 Jun 2015 12:21:25 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OCLPNE017284; Wed, 24 Jun 2015 12:21:25 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201506241221.t5OCLPNE017284@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Wed, 24 Jun 2015 12:21:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284752 - stable/10/sbin/geom/class/eli X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 12:21:26 -0000 Author: brueffer Date: Wed Jun 24 12:21:25 2015 New Revision: 284752 URL: https://svnweb.freebsd.org/changeset/base/284752 Log: MFH: r284250 Consistently use trailing whitespace in passphrase prompts. PR: 193496 Submitted by: Fabian Keil Modified: stable/10/sbin/geom/class/eli/geom_eli.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sbin/geom/class/eli/geom_eli.c ============================================================================== --- stable/10/sbin/geom/class/eli/geom_eli.c Wed Jun 24 12:19:49 2015 (r284751) +++ stable/10/sbin/geom/class/eli/geom_eli.c Wed Jun 24 12:21:25 2015 (r284752) @@ -423,7 +423,7 @@ eli_genkey_passphrase_prompt(struct gctl for (;;) { p = readpassphrase( - new ? "Enter new passphrase:" : "Enter passphrase:", + new ? "Enter new passphrase: " : "Enter passphrase: ", passbuf, passbufsize, RPP_ECHO_OFF | RPP_REQUIRE_TTY); if (p == NULL) { bzero(passbuf, passbufsize); From owner-svn-src-stable-10@freebsd.org Wed Jun 24 14:30:05 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30756915DB1; Wed, 24 Jun 2015 14:30:05 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 16FB812F9; Wed, 24 Jun 2015 14:30:05 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OEU4Yp077109; Wed, 24 Jun 2015 14:30:04 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OEU4qU077108; Wed, 24 Jun 2015 14:30:04 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201506241430.t5OEU4qU077108@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 24 Jun 2015 14:30:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284754 - stable/10/cddl/contrib/opensolaris/cmd/zfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 14:30:05 -0000 Author: avg Date: Wed Jun 24 14:30:04 2015 New Revision: 284754 URL: https://svnweb.freebsd.org/changeset/base/284754 Log: MFC r284309: zfs clone should not mount the clone if canmount == noauto Modified: stable/10/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Directory Properties: stable/10/ (props changed) Modified: stable/10/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- stable/10/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Wed Jun 24 12:48:55 2015 (r284753) +++ stable/10/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Wed Jun 24 14:30:04 2015 (r284754) @@ -593,6 +593,17 @@ finish_progress(char *done) } /* + * Check if the dataset is mountable and should be automatically mounted. + */ +static boolean_t +should_auto_mount(zfs_handle_t *zhp) +{ + if (!zfs_prop_valid_for_type(ZFS_PROP_CANMOUNT, zfs_get_type(zhp))) + return (B_FALSE); + return (zfs_prop_get_int(zhp, ZFS_PROP_CANMOUNT) == ZFS_CANMOUNT_ON); +} + +/* * zfs clone [-p] [-o prop=value] ... * * Given an existing dataset, create a writable copy whose initial contents @@ -677,9 +688,22 @@ zfs_do_clone(int argc, char **argv) clone = zfs_open(g_zfs, argv[1], ZFS_TYPE_DATASET); if (clone != NULL) { - if (zfs_get_type(clone) != ZFS_TYPE_VOLUME) - if ((ret = zfs_mount(clone, NULL, 0)) == 0) - ret = zfs_share(clone); + /* + * If the user doesn't want the dataset + * automatically mounted, then skip the mount/share + * step. + */ + if (should_auto_mount(clone)) { + if ((ret = zfs_mount(clone, NULL, 0)) != 0) { + (void) fprintf(stderr, gettext("clone " + "successfully created, " + "but not mounted\n")); + } else if ((ret = zfs_share(clone)) != 0) { + (void) fprintf(stderr, gettext("clone " + "successfully created, " + "but not shared\n")); + } + } zfs_close(clone); } } @@ -728,7 +752,6 @@ zfs_do_create(int argc, char **argv) int ret = 1; nvlist_t *props; uint64_t intval; - int canmount = ZFS_CANMOUNT_OFF; if (nvlist_alloc(&props, NV_UNIQUE_NAME, 0) != 0) nomem(); @@ -868,19 +891,15 @@ zfs_do_create(int argc, char **argv) goto error; ret = 0; - /* - * if the user doesn't want the dataset automatically mounted, - * then skip the mount/share step - */ - if (zfs_prop_valid_for_type(ZFS_PROP_CANMOUNT, type)) - canmount = zfs_prop_get_int(zhp, ZFS_PROP_CANMOUNT); /* * Mount and/or share the new filesystem as appropriate. We provide a * verbose error message to let the user know that their filesystem was * in fact created, even if we failed to mount or share it. + * If the user doesn't want the dataset automatically mounted, + * then skip the mount/share step altogether. */ - if (!nomount && canmount == ZFS_CANMOUNT_ON) { + if (!nomount && should_auto_mount(zhp)) { if (zfs_mount(zhp, NULL, 0) != 0) { (void) fprintf(stderr, gettext("filesystem " "successfully created, but not mounted\n")); From owner-svn-src-stable-10@freebsd.org Wed Jun 24 14:37:56 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A74D915FD8; Wed, 24 Jun 2015 14:37:56 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2139A1C32; Wed, 24 Jun 2015 14:37:56 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OEbuDn081888; Wed, 24 Jun 2015 14:37:56 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OEbthe081886; Wed, 24 Jun 2015 14:37:55 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201506241437.t5OEbthe081886@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 24 Jun 2015 14:37:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284757 - stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 14:37:56 -0000 Author: avg Date: Wed Jun 24 14:37:55 2015 New Revision: 284757 URL: https://svnweb.freebsd.org/changeset/base/284757 Log: MFC r284301: MFV r284040: check that datasets are snapshots Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c ============================================================================== --- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Wed Jun 24 14:37:19 2015 (r284756) +++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Wed Jun 24 14:37:55 2015 (r284757) @@ -855,6 +855,10 @@ dmu_send_estimate(dsl_dataset_t *ds, dsl if (!dsl_dataset_is_snapshot(ds)) return (SET_ERROR(EINVAL)); + /* fromsnap, if provided, must be a snapshot */ + if (fromds != NULL && !dsl_dataset_is_snapshot(fromds)) + return (SET_ERROR(EINVAL)); + /* * fromsnap must be an earlier snapshot from the same fs as tosnap, * or the origin's fs. Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Jun 24 14:37:19 2015 (r284756) +++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Jun 24 14:37:55 2015 (r284757) @@ -5364,11 +5364,19 @@ zfs_ioc_space_snaps(const char *lastsnap return (error); error = dsl_dataset_hold(dp, lastsnap, FTAG, &new); + if (error == 0 && !dsl_dataset_is_snapshot(new)) { + dsl_dataset_rele(new, FTAG); + error = SET_ERROR(EINVAL); + } if (error != 0) { dsl_pool_rele(dp, FTAG); return (error); } error = dsl_dataset_hold(dp, firstsnap, FTAG, &old); + if (error == 0 && !dsl_dataset_is_snapshot(old)) { + dsl_dataset_rele(old, FTAG); + error = SET_ERROR(EINVAL); + } if (error != 0) { dsl_dataset_rele(new, FTAG); dsl_pool_rele(dp, FTAG); From owner-svn-src-stable-10@freebsd.org Wed Jun 24 14:39:27 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2FF391504C; Wed, 24 Jun 2015 14:39:27 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A98521DAE; Wed, 24 Jun 2015 14:39:27 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OEdRZO082163; Wed, 24 Jun 2015 14:39:27 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OEdR5l082162; Wed, 24 Jun 2015 14:39:27 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201506241439.t5OEdR5l082162@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 24 Jun 2015 14:39:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284758 - stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 14:39:27 -0000 Author: avg Date: Wed Jun 24 14:39:26 2015 New Revision: 284758 URL: https://svnweb.freebsd.org/changeset/base/284758 Log: MFC r284303: MFV r283534: 5515 dataset user hold doesn't reject empty tags Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Jun 24 14:37:55 2015 (r284757) +++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Jun 24 14:39:26 2015 (r284758) @@ -25,12 +25,11 @@ * All rights reserved. * Copyright 2013 Martin Matuska . All rights reserved. * Copyright 2014 Xin Li . All rights reserved. - * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014, Joyent, Inc. All rights reserved. * Copyright (c) 2011, 2014 by Delphix. All rights reserved. * Copyright (c) 2013 by Saso Kiselkov. All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. - * Copyright (c) 2014, Nexenta Systems, Inc. All rights reserved. */ /* @@ -5242,6 +5241,7 @@ zfs_ioc_smb_acl(zfs_cmd_t *zc) static int zfs_ioc_hold(const char *pool, nvlist_t *args, nvlist_t *errlist) { + nvpair_t *pair; nvlist_t *holds; int cleanup_fd = -1; int error; @@ -5251,6 +5251,19 @@ zfs_ioc_hold(const char *pool, nvlist_t if (error != 0) return (SET_ERROR(EINVAL)); + /* make sure the user didn't pass us any invalid (empty) tags */ + for (pair = nvlist_next_nvpair(holds, NULL); pair != NULL; + pair = nvlist_next_nvpair(holds, pair)) { + char *htag; + + error = nvpair_value_string(pair, &htag); + if (error != 0) + return (SET_ERROR(error)); + + if (strlen(htag) == 0) + return (SET_ERROR(EINVAL)); + } + if (nvlist_lookup_int32(args, "cleanup_fd", &cleanup_fd) == 0) { error = zfs_onexit_fd_hold(cleanup_fd, &minor); if (error != 0) From owner-svn-src-stable-10@freebsd.org Wed Jun 24 14:41:55 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 655D29151F1; Wed, 24 Jun 2015 14:41:55 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 562E012A0; Wed, 24 Jun 2015 14:41:55 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OEft9q086149; Wed, 24 Jun 2015 14:41:55 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OEftNc086148; Wed, 24 Jun 2015 14:41:55 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201506241441.t5OEftNc086148@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 24 Jun 2015 14:41:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284760 - stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 14:41:55 -0000 Author: avg Date: Wed Jun 24 14:41:54 2015 New Revision: 284760 URL: https://svnweb.freebsd.org/changeset/base/284760 Log: MFC r284306: MFV r284036: 5961 Fix stack overflow in zfs_create_fs Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c ============================================================================== --- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Wed Jun 24 14:39:38 2015 (r284759) +++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Wed Jun 24 14:41:54 2015 (r284760) @@ -1797,7 +1797,6 @@ log: void zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t *zplprops, dmu_tx_t *tx) { - zfsvfs_t zfsvfs; uint64_t moid, obj, sa_obj, version; uint64_t sense = ZFS_CASE_SENSITIVE; uint64_t norm = 0; @@ -1805,6 +1804,7 @@ zfs_create_fs(objset_t *os, cred_t *cr, int error; int i; znode_t *rootzp = NULL; + zfsvfs_t *zfsvfs; vattr_t vattr; znode_t *zp; zfs_acl_ids_t acl_ids; @@ -1880,7 +1880,7 @@ zfs_create_fs(objset_t *os, cred_t *cr, vattr.va_uid = crgetuid(cr); vattr.va_gid = crgetgid(cr); - bzero(&zfsvfs, sizeof (zfsvfs_t)); + zfsvfs = kmem_zalloc(sizeof (zfsvfs_t), KM_SLEEP); rootzp = kmem_cache_alloc(znode_cache, KM_SLEEP); ASSERT(!POINTER_IS_VALID(rootzp->z_zfsvfs)); @@ -1889,15 +1889,15 @@ zfs_create_fs(objset_t *os, cred_t *cr, rootzp->z_atime_dirty = 0; rootzp->z_is_sa = USE_SA(version, os); - zfsvfs.z_os = os; - zfsvfs.z_parent = &zfsvfs; - zfsvfs.z_version = version; - zfsvfs.z_use_fuids = USE_FUIDS(version, os); - zfsvfs.z_use_sa = USE_SA(version, os); - zfsvfs.z_norm = norm; + zfsvfs->z_os = os; + zfsvfs->z_parent = zfsvfs; + zfsvfs->z_version = version; + zfsvfs->z_use_fuids = USE_FUIDS(version, os); + zfsvfs->z_use_sa = USE_SA(version, os); + zfsvfs->z_norm = norm; error = sa_setup(os, sa_obj, zfs_attr_table, ZPL_END, - &zfsvfs.z_attr_table); + &zfsvfs->z_attr_table); ASSERT(error == 0); @@ -1906,16 +1906,16 @@ zfs_create_fs(objset_t *os, cred_t *cr, * insensitive. */ if (sense == ZFS_CASE_INSENSITIVE || sense == ZFS_CASE_MIXED) - zfsvfs.z_norm |= U8_TEXTPREP_TOUPPER; + zfsvfs->z_norm |= U8_TEXTPREP_TOUPPER; - mutex_init(&zfsvfs.z_znodes_lock, NULL, MUTEX_DEFAULT, NULL); - list_create(&zfsvfs.z_all_znodes, sizeof (znode_t), + mutex_init(&zfsvfs->z_znodes_lock, NULL, MUTEX_DEFAULT, NULL); + list_create(&zfsvfs->z_all_znodes, sizeof (znode_t), offsetof(znode_t, z_link_node)); for (i = 0; i != ZFS_OBJ_MTX_SZ; i++) - mutex_init(&zfsvfs.z_hold_mtx[i], NULL, MUTEX_DEFAULT, NULL); + mutex_init(&zfsvfs->z_hold_mtx[i], NULL, MUTEX_DEFAULT, NULL); - rootzp->z_zfsvfs = &zfsvfs; + rootzp->z_zfsvfs = zfsvfs; VERIFY(0 == zfs_acl_ids_create(rootzp, IS_ROOT_NODE, &vattr, cr, NULL, &acl_ids)); zfs_mknode(rootzp, &vattr, tx, cr, IS_ROOT_NODE, &zp, &acl_ids); @@ -1932,12 +1932,13 @@ zfs_create_fs(objset_t *os, cred_t *cr, * Create shares directory */ - error = zfs_create_share_dir(&zfsvfs, tx); + error = zfs_create_share_dir(zfsvfs, tx); ASSERT(error == 0); for (i = 0; i != ZFS_OBJ_MTX_SZ; i++) - mutex_destroy(&zfsvfs.z_hold_mtx[i]); + mutex_destroy(&zfsvfs->z_hold_mtx[i]); + kmem_free(zfsvfs, sizeof (zfsvfs_t)); } #endif /* _KERNEL */ From owner-svn-src-stable-10@freebsd.org Wed Jun 24 18:40:35 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E42BE916A6A; Wed, 24 Jun 2015 18:40:35 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C87B410BE; Wed, 24 Jun 2015 18:40:35 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OIeZN8008507; Wed, 24 Jun 2015 18:40:35 GMT (envelope-from marcel@FreeBSD.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OIeZIs008503; Wed, 24 Jun 2015 18:40:35 GMT (envelope-from marcel@FreeBSD.org) Message-Id: <201506241840.t5OIeZIs008503@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marcel set sender to marcel@FreeBSD.org using -f From: Marcel Moolenaar Date: Wed, 24 Jun 2015 18:40:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284773 - stable/10/usr.bin/mkimg X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 18:40:36 -0000 Author: marcel Date: Wed Jun 24 18:40:34 2015 New Revision: 284773 URL: https://svnweb.freebsd.org/changeset/base/284773 Log: MFC r284269, r284270, r284655, r284656, r284658: VHD fixes for Microsoft Azure: 1. Round the image size to the VHD geometry and then round to a multiple of 1MB. 2. Change the creator OS from "FBSD" to "Wi2k". It matters... 3. Bump the VHD tool version and the mkimg version. Approved by: re (gjb) Modified: stable/10/usr.bin/mkimg/Makefile stable/10/usr.bin/mkimg/format.c stable/10/usr.bin/mkimg/vhd.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/mkimg/Makefile ============================================================================== --- stable/10/usr.bin/mkimg/Makefile Wed Jun 24 18:29:34 2015 (r284772) +++ stable/10/usr.bin/mkimg/Makefile Wed Jun 24 18:40:34 2015 (r284773) @@ -4,7 +4,7 @@ PROG= mkimg SRCS= format.c image.c mkimg.c scheme.c MAN= mkimg.1 -MKIMG_VERSION=20150222 +MKIMG_VERSION=20150620 mkimg.o: Makefile CFLAGS+=-DMKIMG_VERSION=${MKIMG_VERSION} Modified: stable/10/usr.bin/mkimg/format.c ============================================================================== --- stable/10/usr.bin/mkimg/format.c Wed Jun 24 18:29:34 2015 (r284772) +++ stable/10/usr.bin/mkimg/format.c Wed Jun 24 18:40:34 2015 (r284773) @@ -78,14 +78,10 @@ format_selected(void) int format_write(int fd) { - lba_t size; int error; if (format == NULL) return (ENOSYS); - size = image_get_size(); - error = format->resize(size); - if (!error) - error = format->write(fd); + error = format->write(fd); return (error); } Modified: stable/10/usr.bin/mkimg/vhd.c ============================================================================== --- stable/10/usr.bin/mkimg/vhd.c Wed Jun 24 18:29:34 2015 (r284772) +++ stable/10/usr.bin/mkimg/vhd.c Wed Jun 24 18:40:34 2015 (r284773) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2014 Marcel Moolenaar + * Copyright (c) 2014, 2015 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -62,6 +62,12 @@ __FBSDID("$FreeBSD$"); #define VHD_SECTOR_SIZE 512 #define VHD_BLOCK_SIZE (4096 * VHD_SECTOR_SIZE) /* 2MB blocks */ +struct vhd_geom { + uint16_t cylinders; + uint8_t heads; + uint8_t sectors; +}; + struct vhd_footer { uint64_t cookie; #define VHD_FOOTER_COOKIE 0x636f6e6563746978 @@ -75,14 +81,12 @@ struct vhd_footer { uint32_t creator_tool; #define VHD_CREATOR_TOOL 0x2a696d67 /* FreeBSD mkimg */ uint32_t creator_version; -#define VHD_CREATOR_VERSION 0x00010000 +#define VHD_CREATOR_VERSION 0x00020000 uint32_t creator_os; -#define VHD_CREATOR_OS 0x46425344 +#define VHD_CREATOR_OS 0x5769326b /* Wi2k */ uint64_t original_size; uint64_t current_size; - uint16_t cylinders; - uint8_t heads; - uint8_t sectors; + struct vhd_geom geometry; uint32_t disk_type; #define VHD_DISK_TYPE_FIXED 2 #define VHD_DISK_TYPE_DYNAMIC 3 @@ -111,46 +115,48 @@ vhd_checksum(void *buf, size_t sz) } static void -vhd_geometry(struct vhd_footer *footer, uint64_t image_size) +vhd_geometry(uint64_t image_size, struct vhd_geom *geom) { lba_t imgsz; long cth; + imgsz = image_size / VHD_SECTOR_SIZE; + /* Respect command line options if possible. */ if (nheads > 1 && nheads < 256 && nsecs > 1 && nsecs < 256 && ncyls < 65536) { - be16enc(&footer->cylinders, ncyls); - footer->heads = nheads; - footer->sectors = nsecs; + geom->cylinders = (ncyls != 0) ? ncyls : + imgsz / (nheads * nsecs); + geom->heads = nheads; + geom->sectors = nsecs; return; } - imgsz = image_size / VHD_SECTOR_SIZE; if (imgsz > 65536 * 16 * 255) imgsz = 65536 * 16 * 255; if (imgsz >= 65535 * 16 * 63) { - be16enc(&footer->cylinders, imgsz / (16 * 255)); - footer->heads = 16; - footer->sectors = 255; + geom->cylinders = imgsz / (16 * 255); + geom->heads = 16; + geom->sectors = 255; return; } - footer->sectors = 17; + geom->sectors = 17; cth = imgsz / 17; - footer->heads = (cth + 1023) / 1024; - if (footer->heads < 4) - footer->heads = 4; - if (cth >= (footer->heads * 1024) || footer->heads > 16) { - footer->heads = 16; - footer->sectors = 31; + geom->heads = (cth + 1023) / 1024; + if (geom->heads < 4) + geom->heads = 4; + if (cth >= (geom->heads * 1024) || geom->heads > 16) { + geom->heads = 16; + geom->sectors = 31; cth = imgsz / 31; } - if (cth >= (footer->heads * 1024)) { - footer->heads = 16; - footer->sectors = 63; + if (cth >= (geom->heads * 1024)) { + geom->heads = 16; + geom->sectors = 63; cth = imgsz / 63; } - be16enc(&footer->cylinders, cth / footer->heads); + geom->cylinders = cth / geom->heads; } static uint32_t @@ -198,7 +204,8 @@ vhd_make_footer(struct vhd_footer *foote be32enc(&footer->creator_os, VHD_CREATOR_OS); be64enc(&footer->original_size, image_size); be64enc(&footer->current_size, image_size); - vhd_geometry(footer, image_size); + vhd_geometry(image_size, &footer->geometry); + be16enc(&footer->geometry.cylinders, footer->geometry.cylinders); be32enc(&footer->disk_type, disk_type); mkimg_uuid(&id); vhd_uuid_enc(&footer->id, &id); @@ -206,23 +213,6 @@ vhd_make_footer(struct vhd_footer *foote } /* - * We round the image size to 2MB for both the dynamic and - * fixed VHD formats. For dynamic VHD, this is needed to - * have the image size be a multiple of the grain size. For - * fixed VHD this is not really needed, but makes sure that - * it's easy to convert from fixed VHD to dynamic VHD. - */ -static int -vhd_resize(lba_t imgsz) -{ - uint64_t imagesz; - - imagesz = imgsz * secsz; - imagesz = (imagesz + VHD_BLOCK_SIZE - 1) & ~(VHD_BLOCK_SIZE - 1); - return (image_set_size(imagesz / secsz)); -} - -/* * PART 2: Dynamic VHD support * * Notes: @@ -262,6 +252,16 @@ _Static_assert(sizeof(struct vhd_dyn_hea #endif static int +vhd_dyn_resize(lba_t imgsz) +{ + uint64_t imagesz; + + imagesz = imgsz * secsz; + imagesz = (imagesz + VHD_BLOCK_SIZE - 1) & ~(VHD_BLOCK_SIZE - 1); + return (image_set_size(imagesz / secsz)); +} + +static int vhd_dyn_write(int fd) { struct vhd_footer footer; @@ -349,17 +349,45 @@ vhd_dyn_write(int fd) static struct mkimg_format vhd_dyn_format = { .name = "vhd", .description = "Virtual Hard Disk", - .resize = vhd_resize, + .resize = vhd_dyn_resize, .write = vhd_dyn_write, }; FORMAT_DEFINE(vhd_dyn_format); /* - * PART 2: Fixed VHD + * PART 3: Fixed VHD */ static int +vhd_fix_resize(lba_t imgsz) +{ + struct vhd_geom geom; + int64_t imagesz; + + /* + * Round the image size to the pre-determined geometry that + * matches the image size. This circular dependency implies + * that we need to loop to handle boundary conditions. + */ + imgsz *= secsz; + imagesz = imgsz; + while (1) { + vhd_geometry(imagesz, &geom); + imagesz = (int64_t)geom.cylinders * geom.heads * + geom.sectors * VHD_SECTOR_SIZE; + if (imagesz >= imgsz) + break; + imagesz += geom.heads * geom.sectors * VHD_SECTOR_SIZE; + } + /* + * Azure demands that images are a whole number of megabytes. + */ + imagesz = (imagesz + 0xfffffULL) & ~0xfffffULL; + return (image_set_size(imagesz / secsz)); +} + +static int vhd_fix_write(int fd) { struct vhd_footer footer; @@ -379,7 +407,7 @@ vhd_fix_write(int fd) static struct mkimg_format vhd_fix_format = { .name = "vhdf", .description = "Fixed Virtual Hard Disk", - .resize = vhd_resize, + .resize = vhd_fix_resize, .write = vhd_fix_write, }; From owner-svn-src-stable-10@freebsd.org Wed Jun 24 18:43:21 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9DBA916ACF; Wed, 24 Jun 2015 18:43:21 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id A7F4A1442; Wed, 24 Jun 2015 18:43:21 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by freefall.freebsd.org (Postfix) with ESMTP id D921C15C4; Wed, 24 Jun 2015 18:43:20 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Date: Wed, 24 Jun 2015 18:42:55 +0000 From: Glen Barber To: Marcel Moolenaar Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: Re: svn commit: r284773 - stable/10/usr.bin/mkimg Message-ID: <20150624184255.GB1919@FreeBSD.org> References: <201506241840.t5OIeZIs008503@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="aVD9QWMuhilNxW9f" Content-Disposition: inline In-Reply-To: <201506241840.t5OIeZIs008503@svn.freebsd.org> X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event X-PEKBAC-Definition: Problem Exists, Keyboard Between Admin/Computer User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 18:43:21 -0000 --aVD9QWMuhilNxW9f Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jun 24, 2015 at 06:40:35PM +0000, Marcel Moolenaar wrote: > Author: marcel > Date: Wed Jun 24 18:40:34 2015 > New Revision: 284773 > URL: https://svnweb.freebsd.org/changeset/base/284773 >=20 > Log: > MFC r284269, r284270, r284655, r284656, r284658: > VHD fixes for Microsoft Azure: > 1. Round the image size to the VHD geometry and then round to a > multiple of 1MB. > 2. Change the creator OS from "FBSD" to "Wi2k". It matters... > 3. Bump the VHD tool version and the mkimg version. > =20 Thank you! Glen --aVD9QWMuhilNxW9f Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJVivovAAoJEAMUWKVHj+KTPfkP/0oxa+WbcVTp/1CHJZ07AKgU LwWgoRBglPs7JufVYE63aJHOlRNOFlHQkt2A1r0xhA/ObW7D5P9tgUskRydkvpHO DV3lICJYmTeP28oqU3eHJ9ecOUjizuv/DNaX9JaIlmt9/kSXEEE1GLU2XpSvNelb eHBPzI7XrmmMfA7jxJDGynyJ93IOlMFaN/T66hWURnSe7lsBH8y06peP4aA4POkc 9s/lrNApYwZJ/++KeuKG6tcHjK1ihplAYHh6kQabxFiZ9iCQoqqfbLOcAkeY7D20 ub3H7Aja5dp+VNj8U5pzLrWJHH1+0BqKH+WGt7zRbTsoPDVgq1DUkm1psPvYLUCk YqgSCm+ZxnaHl1otFFEvnHdUOqaA6HQuE5vLDcMmjMeaGN3n09F935KA/yji0GRK bxhSYEGrDL1Rxo62ugpwABFkxk6NFzBczkaGZ9S5bKikSNCl6oNss+7AQKOG69Qs R0IhEI2T2ceJAhu82ay9IVjqYvGunscFL492ywzfAlHttkQDiN5xCppULGfmxbWA 3QDNk8NDPmjNneCizrIpMt9eSgVQuX3hmuB72FG3kq1b+17bV4FFwg1u2fYo9cyo dQ6+CRIzyR/0GD/mcBawRQae8C2onXoMOh59k1WlRmGnKjcm/xJLpk0HKukUPdQt PSgvYxGefKt4uxCbuh2Q =BWJe -----END PGP SIGNATURE----- --aVD9QWMuhilNxW9f-- From owner-svn-src-stable-10@freebsd.org Wed Jun 24 18:56:29 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 97EAF916E0A; Wed, 24 Jun 2015 18:56:29 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7C7241BBA; Wed, 24 Jun 2015 18:56:29 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OIuTNJ015868; Wed, 24 Jun 2015 18:56:29 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OIuSm0015865; Wed, 24 Jun 2015 18:56:28 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506241856.t5OIuSm0015865@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 24 Jun 2015 18:56:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284774 - in stable/10/release: . tools X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 18:56:29 -0000 Author: gjb Date: Wed Jun 24 18:56:28 2015 New Revision: 284774 URL: https://svnweb.freebsd.org/changeset/base/284774 Log: MFC r284660, r284676: r284660: Remove the Azure-local vm_extra_create_disk(), since we no longer need qemu-img to convert the final VHD image to an Azure-compatible format. Although the waagent utility is installed from ports, create the symlink to /usr/sbin, pending investigation on where this is hard-coded, so it can be reported upstream. r284676: Append the hour and minute to the snapshot suffix for EC2 AMIs and Azure VM images. This is particularly helpful for testing to avoid name collisions, but also useful for cases where a necessary rebuild is done before the date changes. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/Makefile.azure stable/10/release/Makefile.ec2 stable/10/release/tools/azure.conf Directory Properties: stable/10/ (props changed) Modified: stable/10/release/Makefile.azure ============================================================================== --- stable/10/release/Makefile.azure Wed Jun 24 18:40:34 2015 (r284773) +++ stable/10/release/Makefile.azure Wed Jun 24 18:56:28 2015 (r284774) @@ -17,7 +17,7 @@ AZURE${VAR}!= grep -E ^AZURE${VAR} ${AZU .endif .if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" -SNAPSHOT_DATE!= date +-%Y-%m-%d +SNAPSHOT_DATE!= date +-%Y-%m-%d-%H:%M .endif AZURE_TARGET:= ${OSRELEASE}${SNAPSHOT_DATE}.vhd Modified: stable/10/release/Makefile.ec2 ============================================================================== --- stable/10/release/Makefile.ec2 Wed Jun 24 18:40:34 2015 (r284773) +++ stable/10/release/Makefile.ec2 Wed Jun 24 18:56:28 2015 (r284774) @@ -6,7 +6,7 @@ # .if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" -AMINAMESUFFIX!= date +-%Y-%m-%d +AMINAMESUFFIX!= date +-%Y-%m-%d-%H:%M .endif .if defined(EC2PUBLIC) PUBLISH= --public Modified: stable/10/release/tools/azure.conf ============================================================================== --- stable/10/release/tools/azure.conf Wed Jun 24 18:40:34 2015 (r284773) +++ stable/10/release/tools/azure.conf Wed Jun 24 18:56:28 2015 (r284774) @@ -14,6 +14,7 @@ export VM_EXTRA_PACKAGES="sysutils/azure export VM_RC_LIST= vm_extra_pre_umount() { + chroot ${DESTDIR} ln -s /usr/local/sbin/waagent /usr/sbin/waagent chroot ${DESTDIR} /usr/local/sbin/waagent -verbose -install yes | chroot ${DESTDIR} /usr/local/sbin/waagent -deprovision echo 'sshd_enable="YES"' >> ${DESTDIR}/etc/rc.conf @@ -26,17 +27,3 @@ vm_extra_pre_umount() { return 0 } - -vm_extra_create_disk() { - if [ ! -x "/usr/local/bin/qemu-img" ]; then - env ASSUME_ALWAYS_YES=yes pkg install -y emulators/qemu-devel - fi - - mv ${VMIMAGE} ${VMIMAGE}.raw - size=$(qemu-img info -f raw --output json ${VMIMAGE}.raw | awk '/virtual-size/ {print $2}' | tr -d ',') - size=$(( ( ${size} / ( 1024 * 1024 ) + 1 ) * ( 1024 * 1024 ) )) - qemu-img resize ${VMIMAGE}.raw ${size} - qemu-img convert -f raw -o subformat=fixed -O vpc ${VMIMAGE}.raw ${VMIMAGE} - - return 0 -} From owner-svn-src-stable-10@freebsd.org Wed Jun 24 18:58:43 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ACE3D916EF8; Wed, 24 Jun 2015 18:58:43 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9DEAE1D88; Wed, 24 Jun 2015 18:58:43 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OIwhqG016254; Wed, 24 Jun 2015 18:58:43 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OIwhv5016253; Wed, 24 Jun 2015 18:58:43 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506241858.t5OIwhv5016253@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 24 Jun 2015 18:58:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284775 - stable/10/etc/etc.arm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 18:58:43 -0000 Author: gjb Date: Wed Jun 24 18:58:42 2015 New Revision: 284775 URL: https://svnweb.freebsd.org/changeset/base/284775 Log: MFC r284683: Enable ttyu1, ttyu2, ttyu3 for arm installations. This should make all consoles available, whether it is VGA, HDMI, serial, or JTAG, but more importantly enables all consoles when ttyu0 is not predictable. For example, the Pandaboard ES apparently has three consoles available, but the DB9/RS232 serial port is ttyu2, so not available by default after the system boots. Sponsored by: The FreeBSD Foundation Modified: stable/10/etc/etc.arm/ttys Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/etc.arm/ttys ============================================================================== --- stable/10/etc/etc.arm/ttys Wed Jun 24 18:56:28 2015 (r284774) +++ stable/10/etc/etc.arm/ttys Wed Jun 24 18:58:42 2015 (r284775) @@ -42,8 +42,8 @@ ttyv7 "/usr/libexec/getty Pc" xterm off # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. ttyu0 "/usr/libexec/getty 3wire" vt100 onifconsole secure -ttyu1 "/usr/libexec/getty std.9600" dialup off secure -ttyu2 "/usr/libexec/getty std.9600" dialup off secure -ttyu3 "/usr/libexec/getty std.9600" dialup off secure +ttyu1 "/usr/libexec/getty 3wire" vt100 onifconsole secure +ttyu2 "/usr/libexec/getty 3wire" vt100 onifconsole secure +ttyu3 "/usr/libexec/getty 3wire" vt100 onifconsole secure # Dumb console dcons "/usr/libexec/getty std.9600" vt100 off secure From owner-svn-src-stable-10@freebsd.org Wed Jun 24 19:06:55 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6FE9491618A; Wed, 24 Jun 2015 19:06:55 +0000 (UTC) (envelope-from eri@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6131914CD; Wed, 24 Jun 2015 19:06:55 +0000 (UTC) (envelope-from eri@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OJ6t9V021037; Wed, 24 Jun 2015 19:06:55 GMT (envelope-from eri@FreeBSD.org) Received: (from eri@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OJ6tg7021036; Wed, 24 Jun 2015 19:06:55 GMT (envelope-from eri@FreeBSD.org) Message-Id: <201506241906.t5OJ6tg7021036@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: eri set sender to eri@FreeBSD.org using -f From: Ermal Luçi Date: Wed, 24 Jun 2015 19:06:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284776 - stable/10/sys/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 19:06:55 -0000 Author: eri Date: Wed Jun 24 19:06:54 2015 New Revision: 284776 URL: https://svnweb.freebsd.org/changeset/base/284776 Log: MFC r284512: Properly handle locking on the ARP protocol request sending. Modified: stable/10/sys/netinet/if_ether.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/netinet/if_ether.c ============================================================================== --- stable/10/sys/netinet/if_ether.c Wed Jun 24 18:58:42 2015 (r284775) +++ stable/10/sys/netinet/if_ether.c Wed Jun 24 19:06:54 2015 (r284776) @@ -365,6 +365,7 @@ retry: if ((la->la_flags & LLE_VALID) && ((la->la_flags & LLE_STATIC) || la->la_expire > time_uptime)) { bcopy(&la->ll_addr, desten, ifp->if_addrlen); + renew = 0; /* * If entry has an expiry time and it is approaching, * see if we need to send an ARP request within this @@ -372,13 +373,21 @@ retry: */ if (!(la->la_flags & LLE_STATIC) && time_uptime + la->la_preempt > la->la_expire) { - arprequest(ifp, NULL, &SIN(dst)->sin_addr, NULL); + renew = 1; la->la_preempt--; } *lle = la; - error = 0; - goto done; + + if (flags & LLE_EXCLUSIVE) + LLE_WUNLOCK(la); + else + LLE_RUNLOCK(la); + + if (renew == 1) + arprequest(ifp, NULL, &SIN(dst)->sin_addr, NULL); + + return (0); } if (la->la_flags & LLE_STATIC) { /* should not happen! */ From owner-svn-src-stable-10@freebsd.org Wed Jun 24 19:58:19 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF685916AEF; Wed, 24 Jun 2015 19:58:19 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BD8B61E21; Wed, 24 Jun 2015 19:58:19 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5OJwJ0h046246; Wed, 24 Jun 2015 19:58:19 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5OJwFOq046220; Wed, 24 Jun 2015 19:58:15 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201506241958.t5OJwFOq046220@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 24 Jun 2015 19:58:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284778 - in stable/10: contrib/file contrib/file/doc contrib/file/magic contrib/file/magic/Magdir contrib/file/python contrib/file/src contrib/file/tests lib/libmagic X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jun 2015 19:58:20 -0000 Author: delphij Date: Wed Jun 24 19:58:14 2015 New Revision: 284778 URL: https://svnweb.freebsd.org/changeset/base/284778 Log: MFC r284237,284277: file 5.23. Relnotes: yes Added: stable/10/contrib/file/magic/Magdir/cbor - copied unchanged from r284237, head/contrib/file/magic/Magdir/cbor stable/10/contrib/file/magic/Magdir/nasa - copied unchanged from r284237, head/contrib/file/magic/Magdir/nasa stable/10/contrib/file/src/gmtime_r.c - copied unchanged from r284237, head/contrib/file/src/gmtime_r.c stable/10/contrib/file/src/localtime_r.c - copied unchanged from r284237, head/contrib/file/src/localtime_r.c Modified: stable/10/contrib/file/ChangeLog stable/10/contrib/file/Makefile.in stable/10/contrib/file/TODO stable/10/contrib/file/aclocal.m4 stable/10/contrib/file/compile stable/10/contrib/file/config.h.in stable/10/contrib/file/configure stable/10/contrib/file/configure.ac stable/10/contrib/file/depcomp stable/10/contrib/file/doc/Makefile.in stable/10/contrib/file/doc/file.man stable/10/contrib/file/doc/libmagic.man stable/10/contrib/file/ltmain.sh stable/10/contrib/file/magic/Magdir/android stable/10/contrib/file/magic/Magdir/apple stable/10/contrib/file/magic/Magdir/archive stable/10/contrib/file/magic/Magdir/audio stable/10/contrib/file/magic/Magdir/cafebabe stable/10/contrib/file/magic/Magdir/commands stable/10/contrib/file/magic/Magdir/compress stable/10/contrib/file/magic/Magdir/console stable/10/contrib/file/magic/Magdir/dyadic stable/10/contrib/file/magic/Magdir/filesystems stable/10/contrib/file/magic/Magdir/gnu stable/10/contrib/file/magic/Magdir/images stable/10/contrib/file/magic/Magdir/jpeg stable/10/contrib/file/magic/Magdir/linux stable/10/contrib/file/magic/Magdir/mach stable/10/contrib/file/magic/Magdir/mathematica stable/10/contrib/file/magic/Magdir/misctools stable/10/contrib/file/magic/Magdir/modem stable/10/contrib/file/magic/Magdir/mozilla stable/10/contrib/file/magic/Magdir/os2 stable/10/contrib/file/magic/Magdir/pdf stable/10/contrib/file/magic/Magdir/perl stable/10/contrib/file/magic/Magdir/riff stable/10/contrib/file/magic/Magdir/sereal stable/10/contrib/file/magic/Magdir/sgml stable/10/contrib/file/magic/Magdir/varied.script stable/10/contrib/file/magic/Magdir/vorbis stable/10/contrib/file/magic/Makefile.am stable/10/contrib/file/magic/Makefile.in stable/10/contrib/file/missing stable/10/contrib/file/python/Makefile.in stable/10/contrib/file/src/Makefile.in stable/10/contrib/file/src/apprentice.c stable/10/contrib/file/src/ascmagic.c stable/10/contrib/file/src/cdf.c stable/10/contrib/file/src/cdf.h stable/10/contrib/file/src/compress.c stable/10/contrib/file/src/encoding.c stable/10/contrib/file/src/file.c stable/10/contrib/file/src/file.h stable/10/contrib/file/src/file_opts.h stable/10/contrib/file/src/fsmagic.c stable/10/contrib/file/src/funcs.c stable/10/contrib/file/src/is_tar.c stable/10/contrib/file/src/magic.c stable/10/contrib/file/src/magic.h stable/10/contrib/file/src/magic.h.in stable/10/contrib/file/src/print.c stable/10/contrib/file/src/readcdf.c stable/10/contrib/file/src/readelf.c stable/10/contrib/file/src/softmagic.c stable/10/contrib/file/tests/Makefile.in stable/10/lib/libmagic/config.h Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/file/ChangeLog ============================================================================== --- stable/10/contrib/file/ChangeLog Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/ChangeLog Wed Jun 24 19:58:14 2015 (r284778) @@ -1,3 +1,56 @@ +2015-06-11 8:52 Christos Zoulas + + * redo long option encoding to fix off-by-one in 5.23 + +2015-06-10 13:50 Christos Zoulas + + * release 5.23 + +2015-06-09 16:10 Christos Zoulas + + * Fix issue with regex range for magic with offset + * Always return true from mget with USE (success to mget not match + indication). Fixes mime evaluation after USE magic + * PR/459: Don't insert magic entries to the list if there are parsing + errors for them. + +2015-06-03 16:00 Christos Zoulas + + * PR/455: Add utf-7 encoding + +2015-06-03 14:30 Christos Zoulas + + * PR/455: Implement -Z, look inside, but don't report on compression + * PR/454: Fix allocation error on bad magic. + +2015-05-29 10:30 Christos Zoulas + + * handle MAGIC_CONTINUE everywhere, not just in softmagic + +2015-05-21 14:30 Christos Zoulas + + * don't print descriptions for NAME types when mime. + +2015-04-09 15:59 Christos Zoulas + + * Add --extension to list the known extensions for this file type + Idea by Andrew J Roazen + +2015-02-14 12:23 Christos Zoulas + + * Bump file search buffer size to 1M. + +2015-01-09 14:35 Christos Zoulas + + * Fix multiple issues with date formats reported by Christoph Biedl: + - T_LOCAL meaning was reversed + - Arithmetic did not work + Also stop adjusting daylight savings for gmt printing. + +2015-01-05 13:00 Christos Zoulas + + * PR/411: Fix memory corruption from corrupt cdf file. + 2015-01-02 15:15 Christos Zoulas * release 5.22 Modified: stable/10/contrib/file/Makefile.in ============================================================================== --- stable/10/contrib/file/Makefile.in Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/Makefile.in Wed Jun 24 19:58:14 2015 (r284778) @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,7 +14,17 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -77,11 +87,6 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/config.h.in AUTHORS COPYING ChangeLog INSTALL NEWS \ - README TODO compile config.guess config.sub depcomp install-sh \ - missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -89,6 +94,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/l $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d @@ -152,6 +159,9 @@ ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \ + COPYING ChangeLog INSTALL NEWS README TODO compile \ + config.guess config.sub depcomp install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -336,7 +346,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefi echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -567,15 +576,15 @@ dist-xz: distdir $(am__post_remove_distdir) dist-tarZ: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -611,16 +620,17 @@ distcheck: dist esac chmod -R a-w $(distdir) chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -797,6 +807,8 @@ uninstall-am: mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. Modified: stable/10/contrib/file/TODO ============================================================================== --- stable/10/contrib/file/TODO Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/TODO Wed Jun 24 19:58:14 2015 (r284778) @@ -17,3 +17,6 @@ hard-wired routines). In this regard, no BSD-licensed, has a magic reimplementation in Python. Read the kerberos magic entry for more ideas. + +Write a string merger to make magic entry sizes dynamic. +Strings will be converted to offsets from the string table. Modified: stable/10/contrib/file/aclocal.m4 ============================================================================== --- stable/10/contrib/file/aclocal.m4 Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/aclocal.m4 Wed Jun 24 19:58:14 2015 (r284778) @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.14 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -21,7 +21,7 @@ If you have problems, you may need to re To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # visibility.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2005, 2008, 2010-2013 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2008, 2010-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -98,7 +98,7 @@ AC_DEFUN([gl_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,10 +110,10 @@ AC_DEFUN([gl_VISIBILITY], # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' +[am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14], [], +m4_if([$1], [1.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -129,14 +129,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14])dnl +[AM_AUTOMAKE_VERSION([1.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -181,15 +181,14 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCON # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -220,7 +219,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -411,7 +410,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -487,7 +486,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS] # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -577,8 +576,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl @@ -651,7 +650,11 @@ to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi -fi]) +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further @@ -680,7 +683,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -691,7 +694,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNA # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -701,7 +704,7 @@ if test x"${install_sh}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# Copyright (C) 2003-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -722,7 +725,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -772,7 +775,7 @@ rm -f confinc confmf # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -811,7 +814,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -840,7 +843,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -887,7 +890,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -906,7 +909,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -987,7 +990,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# Copyright (C) 2009-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1047,7 +1050,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1075,7 +1078,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# Copyright (C) 2006-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1094,7 +1097,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# Copyright (C) 2004-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, Modified: stable/10/contrib/file/compile ============================================================================== --- stable/10/contrib/file/compile Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/compile Wed Jun 24 19:58:14 2015 (r284778) @@ -3,7 +3,7 @@ scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify Modified: stable/10/contrib/file/config.h.in ============================================================================== --- stable/10/contrib/file/config.h.in Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/config.h.in Wed Jun 24 19:58:14 2015 (r284778) @@ -62,6 +62,9 @@ /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE +/* Define to 1 if you have the `gmtime_r' function. */ +#undef HAVE_GMTIME_R + /* Define to 1 if the system has the type `intptr_t'. */ #undef HAVE_INTPTR_T @@ -80,6 +83,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H +/* Define to 1 if you have the `localtime_r' function. */ +#undef HAVE_LOCALTIME_R + /* Define to 1 if mbrtowc and mbstate_t are properly declared. */ #undef HAVE_MBRTOWC @@ -107,6 +113,12 @@ /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE +/* Define to 1 if you have the header file. */ +#undef HAVE_SIGNAL_H + +/* Have sig_t type */ +#undef HAVE_SIG_T + /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H Modified: stable/10/contrib/file/configure ============================================================================== --- stable/10/contrib/file/configure Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/configure Wed Jun 24 19:58:14 2015 (r284778) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for file 5.22. +# Generated by GNU Autoconf 2.69 for file 5.23. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='file' PACKAGE_TARNAME='file' -PACKAGE_VERSION='5.22' -PACKAGE_STRING='file 5.22' +PACKAGE_VERSION='5.23' +PACKAGE_STRING='file 5.23' PACKAGE_BUGREPORT='christos@astron.com' PACKAGE_URL='' @@ -1327,7 +1327,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures file 5.22 to adapt to many kinds of systems. +\`configure' configures file 5.23 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1397,7 +1397,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of file 5.22:";; + short | recursive ) echo "Configuration of file 5.23:";; esac cat <<\_ACEOF @@ -1507,7 +1507,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -file configure 5.22 +file configure 5.23 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2163,7 +2163,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by file $as_me 5.22, which was +It was created by file $as_me 5.23, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2514,7 +2514,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLA ac_compiler_gnu=$ac_cv_c_compiler_gnu -am__api_version='1.14' +am__api_version='1.15' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2715,8 +2715,8 @@ test "$program_suffix" != NONE && ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in @@ -2735,7 +2735,7 @@ else $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -3029,7 +3029,7 @@ fi # Define the identity of the package. PACKAGE='file' - VERSION='5.22' + VERSION='5.23' cat >>confdefs.h <<_ACEOF @@ -3063,8 +3063,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}ma # mkdir_p='$(MKDIR_P)' -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' @@ -3121,6 +3121,7 @@ END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi + # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; @@ -12785,7 +12786,7 @@ fi done -for ac_header in getopt.h err.h xlocale.h +for ac_header in getopt.h err.h xlocale.h signal.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -12823,6 +12824,17 @@ fi done +ac_fn_c_check_type "$LINENO" "sig_t" "ac_cv_type_sig_t" " +#ifdef HAVE_SIGNAL_H +#include +#endif +" +if test "x$ac_cv_type_sig_t" = xyes; then : + +$as_echo "#define HAVE_SIG_T 1" >>confdefs.h + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } @@ -14308,6 +14320,32 @@ esac fi +ac_fn_c_check_func "$LINENO" "localtime_r" "ac_cv_func_localtime_r" +if test "x$ac_cv_func_localtime_r" = xyes; then : + $as_echo "#define HAVE_LOCALTIME_R 1" >>confdefs.h + +else + case " $LIBOBJS " in + *" localtime_r.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS localtime_r.$ac_objext" + ;; +esac + +fi + +ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r" +if test "x$ac_cv_func_gmtime_r" = xyes; then : + $as_echo "#define HAVE_GMTIME_R 1" >>confdefs.h + +else + case " $LIBOBJS " in + *" gmtime_r.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS gmtime_r.$ac_objext" + ;; +esac + +fi + ac_fn_c_check_func "$LINENO" "pread" "ac_cv_func_pread" if test "x$ac_cv_func_pread" = xyes; then : $as_echo "#define HAVE_PREAD 1" >>confdefs.h @@ -14998,7 +15036,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by file $as_me 5.22, which was +This file was extended by file $as_me 5.23, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15064,7 +15102,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -file config.status 5.22 +file config.status 5.23 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: stable/10/contrib/file/configure.ac ============================================================================== --- stable/10/contrib/file/configure.ac Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/configure.ac Wed Jun 24 19:58:14 2015 (r284778) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([file],[5.22],[christos@astron.com]) +AC_INIT([file],[5.23],[christos@astron.com]) AM_INIT_AUTOMAKE([subdir-objects foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) @@ -82,9 +82,13 @@ AC_HEADER_MAJOR AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(stdint.h fcntl.h locale.h stdint.h inttypes.h unistd.h) AC_CHECK_HEADERS(stddef.h utime.h wchar.h wctype.h limits.h) -AC_CHECK_HEADERS(getopt.h err.h xlocale.h) +AC_CHECK_HEADERS(getopt.h err.h xlocale.h signal.h) AC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h) AC_CHECK_HEADERS(zlib.h) +AC_CHECK_TYPE([sig_t],[AC_DEFINE([HAVE_SIG_T],1,[Have sig_t type])],,[ +#ifdef HAVE_SIGNAL_H +#include +#endif]) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST @@ -141,7 +145,7 @@ dnl Checks for functions AC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale setlocale) dnl Provide implementation of some required functions if necessary -AC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline ctime_r asctime_r pread strcasestr fmtcheck) +AC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline ctime_r asctime_r localtime_r gmtime_r pread strcasestr fmtcheck) dnl Checks for libraries AC_CHECK_LIB(z,gzopen) Modified: stable/10/contrib/file/depcomp ============================================================================== --- stable/10/contrib/file/depcomp Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/depcomp Wed Jun 24 19:58:14 2015 (r284778) @@ -3,7 +3,7 @@ scriptversion=2013-05-30.07; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by Modified: stable/10/contrib/file/doc/Makefile.in ============================================================================== --- stable/10/contrib/file/doc/Makefile.in Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/doc/Makefile.in Wed Jun 24 19:58:14 2015 (r284778) @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,7 +14,17 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -77,7 +87,6 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -85,6 +94,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/l $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -144,6 +154,7 @@ man5dir = $(mandir)/man5 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkgdatadir = @pkgdatadir@ ACLOCAL = @ACLOCAL@ @@ -286,7 +297,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefi echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -642,6 +652,8 @@ uninstall-man: uninstall-man1 uninstall- tags-am uninstall uninstall-am uninstall-man uninstall-man1 \ uninstall-man3 uninstall-man4 uninstall-man5 +.PRECIOUS: Makefile + file.1: Makefile file.man @rm -f $@ Modified: stable/10/contrib/file/doc/file.man ============================================================================== --- stable/10/contrib/file/doc/file.man Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/doc/file.man Wed Jun 24 19:58:14 2015 (r284778) @@ -1,5 +1,5 @@ -.\" $File: file.man,v 1.111 2014/12/16 23:18:40 christos Exp $ -.Dd December 16, 2014 +.\" $File: file.man,v 1.117 2015/06/03 19:51:27 christos Exp $ +.Dd June 3, 2015 .Dt FILE __CSECTION__ .Os .Sh NAME @@ -8,8 +8,9 @@ .Sh SYNOPSIS .Nm .Bk -words -.Op Fl bcEhiklLNnprsvz0 +.Op Fl bcEhiklLNnprsvzZ0 .Op Fl Fl apple +.Op Fl Fl extension .Op Fl Fl mime-encoding .Op Fl Fl mime-type .Op Fl e Ar testname @@ -213,6 +214,8 @@ Consults magic files. .It tar Examines tar files. .El +.It Fl Fl extension +Print a slash-separated list of valid extensions for the file type found. .It Fl F , Fl Fl separator Ar separator Use the specified string as the separator between the filename and the file result returned. @@ -343,6 +346,9 @@ since on some systems it reports a zero Print the version of the program and exit. .It Fl z , Fl Fl uncompress Try to look inside compressed files. +.It Fl Z , Fl Fl uncompress-noreport +Try to look inside compressed files, but report information about the contents +only not the compression. .It Fl 0 , Fl Fl print0 Output a null character .Sq \e0 @@ -587,20 +593,30 @@ last-pushed (most specific, one hopes) v use a default if the list is empty. This should not slow down evaluation. .Pp +The handling of +.Dv MAGIC_CONTINUE +and printing \e012- between entries is clumsy and complicated; refactor +and centralize. +.Pp +Some of the encoding logic is hard-coded in encoding.c and can be moved +to the magic files if we had a !:charset annotation +.Pp Continue to squash all magic bugs. See Debian BTS for a good source. .Pp Store arbitrarily long strings, for example for %s patterns, so that they can be printed out. Fixes Debian bug #271672. -Would require more complex store/load code in apprentice. +This can be done by allocating strings in a string pool, storing the +string pool at the end of the magic file and converting all the string +pointers to relative offsets from the string pool. .Pp Add syntax for relative offsets after current level (Debian bug #466037). .Pp Make file -ki work, i.e. give multiple MIME types. .Pp Add a zip library so we can peek inside Office2007 documents to -figure out what they are. +print more details about their contents. .Pp Add an option to print URLs for the sources of the file descriptions. .Pp @@ -610,6 +626,9 @@ string to be looked up in a table). This would avoid adding the same magic repeatedly for each new hash-bang interpreter. .Pp +When a file descriptor is available, we can skip and adjust the buffer +instead of the hacky buffer management we do now. +.Pp Fix .Dq name and @@ -627,6 +646,15 @@ Make more efficient by keeping a sorted list of names. Special-case ^ to flip endianness in the parser so that it does not have to be escaped, and document it. +.Pp +If the offsets specified internally in the file exceed the buffer size +( +.Dv HOWMANY +variable in file.h), then we don't seek to that offset, but we give up. +It would be better if buffer managements was done when the file descriptor +is available so move around the file. +One must be careful though because this has performance (and thus security +considerations). .Sh AVAILABILITY You can obtain the original author's latest version by anonymous FTP on Modified: stable/10/contrib/file/doc/libmagic.man ============================================================================== --- stable/10/contrib/file/doc/libmagic.man Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/doc/libmagic.man Wed Jun 24 19:58:14 2015 (r284778) @@ -1,4 +1,4 @@ -.\" $File: libmagic.man,v 1.34 2014/12/16 23:18:40 christos Exp $ +.\" $File: libmagic.man,v 1.37 2015/06/03 18:21:24 christos Exp $ .\" .\" Copyright (c) Christos Zoulas 2003. .\" All Rights Reserved. @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 16, 2014 +.Dd June 3, 2015 .Dt LIBMAGIC 3 .Os .Sh NAME @@ -132,6 +132,10 @@ Treat operating system errors while tryi as real errors, instead of printing them in the magic buffer. .It Dv MAGIC_APPLE Return the Apple creator and type. +.It Dv MAGIC_EXTENSION +Return a slash-separated list of extensions for this file type. +.It Dv MAGIC_COMPRESS_TRANSP +Don't report on compression, only report about the uncompressed data. .It Dv MAGIC_NO_CHECK_APPTYPE Don't check for .Dv EMX Modified: stable/10/contrib/file/ltmain.sh ============================================================================== --- stable/10/contrib/file/ltmain.sh Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/ltmain.sh Wed Jun 24 19:58:14 2015 (r284778) @@ -6900,7 +6900,11 @@ func_mode_link () # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" + if test -f "$inst_prefix_dir$libdir/$linklib"; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" Modified: stable/10/contrib/file/magic/Magdir/android ============================================================================== --- stable/10/contrib/file/magic/Magdir/android Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/magic/Magdir/android Wed Jun 24 19:58:14 2015 (r284778) @@ -1,6 +1,6 @@ #------------------------------------------------------------ -# $File: android,v 1.7 2014/11/10 05:08:23 christos Exp $ +# $File: android,v 1.8 2015/03/19 18:04:37 christos Exp $ # Various android related magic entries #------------------------------------------------------------ @@ -137,3 +137,9 @@ >16 lelong x \b, Total of %d >12 lelong x \b %d-byte output blocks in >20 lelong x \b %d input chunks. + +# Android binary XML magic +# In include/androidfw/ResourceTypes.h: +# RES_XML_TYPE = 0x0003 followed by the size of the header (ResXMLTree_header), +# which is 8 bytes (2 bytes type + 2 bytes header size + 4 bytes size). +0 lelong 0x00080003 Android binary XML Modified: stable/10/contrib/file/magic/Magdir/apple ============================================================================== --- stable/10/contrib/file/magic/Magdir/apple Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/magic/Magdir/apple Wed Jun 24 19:58:14 2015 (r284778) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: apple,v 1.29 2014/04/30 21:41:02 christos Exp $ +# $File: apple,v 1.30 2015/04/13 13:09:06 christos Exp $ # apple: file(1) magic for Apple file formats # 0 search/1/t FiLeStArTfIlEsTaRt binscii (apple ][) text @@ -300,3 +300,12 @@ #http://wiki.mozilla.org/DS_Store_File_Format` #http://en.wikipedia.org/wiki/.DS_Store 0 string \0\0\0\1Bud1\0 Apple Desktop Services Store + +# HFS/HFS+ Resource fork files (andrew.roazen@nau.edu Apr 13 2015) +# Usually not in separate files, but have either filename rsrc with +# no extension, or a filename corresponding to another file, with +# extensions rsr/rsrc +0 string \000\000\001\000 +>4 leshort 0 +>>16 lelong 0 Apple HFS/HFS+ resource fork + Modified: stable/10/contrib/file/magic/Magdir/archive ============================================================================== --- stable/10/contrib/file/magic/Magdir/archive Wed Jun 24 19:16:41 2015 (r284777) +++ stable/10/contrib/file/magic/Magdir/archive Wed Jun 24 19:58:14 2015 (r284778) @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------ -# $File: archive,v 1.88 2014/08/16 10:42:17 christos Exp $ +# $File: archive,v 1.90 2015/04/24 15:44:12 christos Exp $ # archive: file(1) magic for archive formats (see also "msdos" for self- # extracting compressed archives) # @@ -714,7 +714,7 @@ >>>4 byte 0x0a \b, at least v1.0 to extract >>>4 byte 0x0b \b, at least v1.1 to extract >>>4 byte 0x14 \b, at least v2.0 to extract ->>>4 byte 0x2d \b, at least v3.0 to extract +>>>4 byte 0x2d \b, at least v4.5 to extract >>>0x161 string WINZIP \b, WinZIP self-extracting # StarView Metafile @@ -911,6 +911,9 @@ # ZPAQ: http://mattmahoney.net/dc/zpaq.html 0 string zPQ ZPAQ stream >3 byte x \b, level %d +# From: Barry Carter +# http://encode.ru/threads/456-zpaq-updates/page32 +0 string 7kSt ZPAQ file *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-10@freebsd.org Thu Jun 25 01:49:45 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8EB23915AE3; Thu, 25 Jun 2015 01:49:45 +0000 (UTC) (envelope-from gshapiro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7710B188B; Thu, 25 Jun 2015 01:49:45 +0000 (UTC) (envelope-from gshapiro@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P1njlH029517; Thu, 25 Jun 2015 01:49:45 GMT (envelope-from gshapiro@FreeBSD.org) Received: (from gshapiro@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P1njco029516; Thu, 25 Jun 2015 01:49:45 GMT (envelope-from gshapiro@FreeBSD.org) Message-Id: <201506250149.t5P1njco029516@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gshapiro set sender to gshapiro@FreeBSD.org using -f From: Gregory Neil Shapiro Date: Thu, 25 Jun 2015 01:49:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284786 - stable/10/contrib/sendmail/src X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 01:49:45 -0000 Author: gshapiro Date: Thu Jun 25 01:49:44 2015 New Revision: 284786 URL: https://svnweb.freebsd.org/changeset/base/284786 Log: MFC: An additional fix for the openssl Weak DH remediation: The import of openssl to address the FreeBSD-SA-15:10.openssl security advisory includes a change which rejects handshakes with DH parameters below 768 bits. sendmail releases prior to 8.15.2 (not yet released), defaulted to a 512 bit DH parameter setting for client connections. The first fix committed last week changed the default to 1024 bits. This commit fixes the case where the DHParameters option is set to a file which doesn't exist, which is the case on newer versions of FreeBSD which enable STARTTLS by default by auto-creating TLS certificates. Modified: stable/10/contrib/sendmail/src/sendmail.h Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/sendmail/src/sendmail.h ============================================================================== --- stable/10/contrib/sendmail/src/sendmail.h Thu Jun 25 01:42:59 2015 (r284785) +++ stable/10/contrib/sendmail/src/sendmail.h Thu Jun 25 01:49:44 2015 (r284786) @@ -1935,7 +1935,7 @@ struct termescape /* server requirements */ #define TLS_I_SRV (TLS_I_SRV_CERT | TLS_I_RSA_TMP | TLS_I_VRFY_PATH | \ - TLS_I_VRFY_LOC | TLS_I_TRY_DH | TLS_I_DH512 | \ + TLS_I_VRFY_LOC | TLS_I_TRY_DH | TLS_I_DH1024 | \ TLS_I_CACHE) /* client requirements */ From owner-svn-src-stable-10@freebsd.org Thu Jun 25 01:51:15 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 491FA915B55; Thu, 25 Jun 2015 01:51:15 +0000 (UTC) (envelope-from gshapiro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 39A181C3C; Thu, 25 Jun 2015 01:51:15 +0000 (UTC) (envelope-from gshapiro@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P1pFRZ032384; Thu, 25 Jun 2015 01:51:15 GMT (envelope-from gshapiro@FreeBSD.org) Received: (from gshapiro@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P1pFlr032383; Thu, 25 Jun 2015 01:51:15 GMT (envelope-from gshapiro@FreeBSD.org) Message-Id: <201506250151.t5P1pFlr032383@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gshapiro set sender to gshapiro@FreeBSD.org using -f From: Gregory Neil Shapiro Date: Thu, 25 Jun 2015 01:51:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284787 - stable/10 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 01:51:15 -0000 Author: gshapiro Date: Thu Jun 25 01:51:14 2015 New Revision: 284787 URL: https://svnweb.freebsd.org/changeset/base/284787 Log: Add a note on the second sendmail fix for WeakDH interoperability. Modified: stable/10/UPDATING Modified: stable/10/UPDATING ============================================================================== --- stable/10/UPDATING Thu Jun 25 01:49:44 2015 (r284786) +++ stable/10/UPDATING Thu Jun 25 01:51:14 2015 (r284787) @@ -16,6 +16,10 @@ from older versions of FreeBSD, try WITH stable/10, and then rebuild without this option. The bootstrap process from older version of current is a bit fragile. +20150624: + An additional fix for the issue described in the 20150614 sendmail + entry below has been been committed in revision 284786. + 20150615: The fix for the issue described in the 20150614 sendmail entry below has been been committed in revision 284485. The work From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:06:25 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5613E98C6E0; Thu, 25 Jun 2015 07:06:25 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46221152A; Thu, 25 Jun 2015 07:06:25 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P76PXw086521; Thu, 25 Jun 2015 07:06:25 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P76Pqq086520; Thu, 25 Jun 2015 07:06:25 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250706.t5P76Pqq086520@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:06:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284793 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:06:25 -0000 Author: mav Date: Thu Jun 25 07:06:24 2015 New Revision: 284793 URL: https://svnweb.freebsd.org/changeset/base/284793 Log: MFC r284541: Change ATIO/INOT counting to prevent periph destruction while requests are still running inside CTL. Modified: stable/10/sys/cam/ctl/scsi_ctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/scsi_ctl.c ============================================================================== --- stable/10/sys/cam/ctl/scsi_ctl.c Thu Jun 25 06:15:08 2015 (r284792) +++ stable/10/sys/cam/ctl/scsi_ctl.c Thu Jun 25 07:06:24 2015 (r284793) @@ -104,10 +104,10 @@ struct ctlfe_lun_softc { uint64_t ccbs_freed; uint64_t ctios_sent; uint64_t ctios_returned; - uint64_t atios_sent; - uint64_t atios_returned; - uint64_t inots_sent; - uint64_t inots_returned; + uint64_t atios_alloced; + uint64_t atios_freed; + uint64_t inots_alloced; + uint64_t inots_freed; /* bus_dma_tag_t dma_tag; */ TAILQ_HEAD(, ccb_hdr) work_queue; STAILQ_ENTRY(ctlfe_lun_softc) links; @@ -546,6 +546,7 @@ ctlferegister(struct cam_periph *periph, status = CAM_RESRC_UNAVAIL; break; } + softc->atios_alloced++; new_ccb->ccb_h.io_ptr = new_io; xpt_setup_ccb(&new_ccb->ccb_h, periph->path, /*priority*/ 1); @@ -553,7 +554,6 @@ ctlferegister(struct cam_periph *periph, new_ccb->ccb_h.cbfcnp = ctlfedone; new_ccb->ccb_h.flags |= CAM_UNLOCKED; xpt_action(new_ccb); - softc->atios_sent++; status = new_ccb->ccb_h.status; if ((status & CAM_STATUS_MASK) != CAM_REQ_INPROG) { ctl_free_io(new_io); @@ -591,6 +591,7 @@ ctlferegister(struct cam_periph *periph, status = CAM_RESRC_UNAVAIL; break; } + softc->inots_alloced++; new_ccb->ccb_h.io_ptr = new_io; xpt_setup_ccb(&new_ccb->ccb_h, periph->path, /*priority*/ 1); @@ -598,7 +599,6 @@ ctlferegister(struct cam_periph *periph, new_ccb->ccb_h.cbfcnp = ctlfedone; new_ccb->ccb_h.flags |= CAM_UNLOCKED; xpt_action(new_ccb); - softc->inots_sent++; status = new_ccb->ccb_h.status; if ((status & CAM_STATUS_MASK) != CAM_REQ_INPROG) { /* @@ -650,10 +650,6 @@ ctlfeoninvalidate(struct cam_periph *per * XXX KDM what do we do now? */ } - xpt_print(periph->path, "LUN removed, %ju ATIOs outstanding, %ju " - "INOTs outstanding, %d refs\n", softc->atios_sent - - softc->atios_returned, softc->inots_sent - - softc->inots_returned, periph->refcount); bus_softc = softc->parent_softc; mtx_lock(&bus_softc->lun_softc_mtx); @@ -666,13 +662,20 @@ ctlfecleanup(struct cam_periph *periph) { struct ctlfe_lun_softc *softc; - xpt_print(periph->path, "%s: Called\n", __func__); - softc = (struct ctlfe_lun_softc *)periph->softc; - /* - * XXX KDM is there anything else that needs to be done here? - */ + KASSERT(softc->ccbs_freed == softc->ccbs_alloced, ("%s: " + "ccbs_freed %ju != ccbs_alloced %ju", __func__, + softc->ccbs_freed, softc->ccbs_alloced)); + KASSERT(softc->ctios_returned == softc->ctios_sent, ("%s: " + "ctios_returned %ju != ctios_sent %ju", __func__, + softc->ctios_returned, softc->ctios_sent)); + KASSERT(softc->atios_freed == softc->atios_alloced, ("%s: " + "atios_freed %ju != atios_alloced %ju", __func__, + softc->atios_freed, softc->atios_alloced)); + KASSERT(softc->inots_freed == softc->inots_alloced, ("%s: " + "inots_freed %ju != inots_alloced %ju", __func__, + softc->inots_freed, softc->inots_alloced)); free(softc, M_CTLFE); } @@ -871,7 +874,6 @@ ctlfestart(struct cam_periph *periph, un * Send the ATIO back down to the SIM. */ xpt_action((union ccb *)atio); - softc->atios_sent++; /* * If we still have work to do, ask for @@ -989,11 +991,11 @@ ctlfe_free_ccb(struct cam_periph *periph switch (ccb->ccb_h.func_code) { case XPT_ACCEPT_TARGET_IO: - softc->atios_returned++; + softc->atios_freed++; break; case XPT_IMMEDIATE_NOTIFY: case XPT_NOTIFY_ACKNOWLEDGE: - softc->inots_returned++; + softc->inots_freed++; break; default: break; @@ -1002,20 +1004,20 @@ ctlfe_free_ccb(struct cam_periph *periph ctl_free_io(ccb->ccb_h.io_ptr); free(ccb, M_CTLFE); - KASSERT(softc->atios_returned <= softc->atios_sent, ("%s: " - "atios_returned %ju > atios_sent %ju", __func__, - softc->atios_returned, softc->atios_sent)); - KASSERT(softc->inots_returned <= softc->inots_sent, ("%s: " - "inots_returned %ju > inots_sent %ju", __func__, - softc->inots_returned, softc->inots_sent)); + KASSERT(softc->atios_freed <= softc->atios_alloced, ("%s: " + "atios_freed %ju > atios_alloced %ju", __func__, + softc->atios_freed, softc->atios_alloced)); + KASSERT(softc->inots_freed <= softc->inots_alloced, ("%s: " + "inots_freed %ju > inots_alloced %ju", __func__, + softc->inots_freed, softc->inots_alloced)); /* * If we have received all of our CCBs, we can release our * reference on the peripheral driver. It will probably go away * now. */ - if ((softc->atios_returned == softc->atios_sent) - && (softc->inots_returned == softc->inots_sent)) { + if ((softc->atios_freed == softc->atios_alloced) + && (softc->inots_freed == softc->inots_alloced)) { cam_periph_release_locked(periph); } } @@ -1135,8 +1137,6 @@ ctlfedone(struct cam_periph *periph, uni atio = &done_ccb->atio; - softc->atios_returned++; - resubmit: /* * Allocate a ctl_io, pass it to CTL, and wait for the @@ -1291,7 +1291,6 @@ ctlfedone(struct cam_periph *periph, uni if (periph->flags & CAM_PERIPH_INVALID) { ctlfe_free_ccb(periph, (union ccb *)atio); } else { - softc->atios_sent++; mtx_unlock(mtx); xpt_action((union ccb *)atio); return; @@ -1422,8 +1421,6 @@ ctlfedone(struct cam_periph *periph, uni inot = &done_ccb->cin1; - softc->inots_returned++; - frozen = (done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0; printf("%s: got XPT_IMMEDIATE_NOTIFY status %#x tag %#x " @@ -1543,7 +1540,6 @@ ctlfedone(struct cam_periph *periph, uni */ done_ccb->ccb_h.func_code = XPT_IMMEDIATE_NOTIFY; xpt_action(done_ccb); - softc->inots_sent++; break; case XPT_SET_SIM_KNOB: case XPT_GET_SIM_KNOB: @@ -2043,7 +2039,6 @@ ctlfe_done(union ctl_io *io) if (periph->flags & CAM_PERIPH_INVALID) { ctlfe_free_ccb(periph, ccb); } else { - softc->atios_sent++; cam_periph_unlock(periph); xpt_action(ccb); return; From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:07:33 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6146B98C721; Thu, 25 Jun 2015 07:07:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4771A164A; Thu, 25 Jun 2015 07:07:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P77XmD086730; Thu, 25 Jun 2015 07:07:33 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P77XUh086729; Thu, 25 Jun 2015 07:07:33 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250707.t5P77XUh086729@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:07:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284794 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:07:33 -0000 Author: mav Date: Thu Jun 25 07:07:32 2015 New Revision: 284794 URL: https://svnweb.freebsd.org/changeset/base/284794 Log: MFC r284622: Remove device queue freeze handling and replace it with dummy. At this point CTL has no known use case for device queue freezes. Same time existing (considered to be broken) code was found to cause modify-after-free issues. Modified: stable/10/sys/cam/ctl/scsi_ctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/scsi_ctl.c ============================================================================== --- stable/10/sys/cam/ctl/scsi_ctl.c Thu Jun 25 07:06:24 2015 (r284793) +++ stable/10/sys/cam/ctl/scsi_ctl.c Thu Jun 25 07:07:32 2015 (r284794) @@ -848,15 +848,6 @@ ctlfestart(struct cam_periph *periph, un atio->ccb_h.target_lun = CAM_LUN_WILDCARD; } - if ((atio->ccb_h.status & CAM_DEV_QFRZN) != 0) { - cam_release_devq(periph->path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); - atio->ccb_h.status &= ~CAM_DEV_QFRZN; - } - if (atio->ccb_h.func_code != XPT_ACCEPT_TARGET_IO) { xpt_print(periph->path, "%s: func_code " "is %#x\n", __func__, @@ -966,15 +957,6 @@ ctlfestart(struct cam_periph *periph, un xpt_action(start_ccb); cam_periph_lock(periph); - if ((atio->ccb_h.status & CAM_DEV_QFRZN) != 0) { - cam_release_devq(periph->path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); - atio->ccb_h.status &= ~CAM_DEV_QFRZN; - } - /* * If we still have work to do, ask for another CCB. */ @@ -1107,6 +1089,19 @@ ctlfedone(struct cam_periph *periph, uni done_ccb->ccb_h.func_code); #endif + /* + * At this point CTL has no known use case for device queue freezes. + * In case some SIM think different -- drop its freeze right here. + */ + if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + cam_release_devq(periph->path, + /*relsim_flags*/0, + /*reduction*/0, + /*timeout*/0, + /*getcount_only*/0); + done_ccb->ccb_h.status &= ~CAM_DEV_QFRZN; + } + softc = (struct ctlfe_lun_softc *)periph->softc; bus_softc = softc->parent_softc; mtx = cam_periph_mtx(periph); @@ -1417,12 +1412,9 @@ ctlfedone(struct cam_periph *periph, uni union ctl_io *io; struct ccb_immediate_notify *inot; cam_status status; - int frozen, send_ctl_io; + int send_ctl_io; inot = &done_ccb->cin1; - - frozen = (done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0; - printf("%s: got XPT_IMMEDIATE_NOTIFY status %#x tag %#x " "seq %#x\n", __func__, inot->ccb_h.status, inot->tag_id, inot->seq_id); @@ -1524,14 +1516,6 @@ ctlfedone(struct cam_periph *periph, uni done_ccb->ccb_h.func_code = XPT_NOTIFY_ACKNOWLEDGE; xpt_action(done_ccb); } - - if (frozen != 0) { - cam_release_devq(periph->path, - /*relsim_flags*/ 0, - /*opening reduction*/ 0, - /*timeout*/ 0, - /*getcount_only*/ 0); - } break; } case XPT_NOTIFY_ACKNOWLEDGE: From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:08:47 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5BDA598C755; Thu, 25 Jun 2015 07:08:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4CFD318DC; Thu, 25 Jun 2015 07:08:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P78l9M086958; Thu, 25 Jun 2015 07:08:47 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P78lSj086957; Thu, 25 Jun 2015 07:08:47 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250708.t5P78lSj086957@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:08:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284795 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:08:47 -0000 Author: mav Date: Thu Jun 25 07:08:46 2015 New Revision: 284795 URL: https://svnweb.freebsd.org/changeset/base/284795 Log: MFC r284641: Fix REPORT LUNS command output for the case when same LUN mapped to same port several times. While it is unusual configuration, it is not illegal. Modified: stable/10/sys/cam/ctl/ctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl.c ============================================================================== --- stable/10/sys/cam/ctl/ctl.c Thu Jun 25 07:07:32 2015 (r284794) +++ stable/10/sys/cam/ctl/ctl.c Thu Jun 25 07:08:46 2015 (r284795) @@ -9452,11 +9452,16 @@ ctl_report_luns(struct ctl_scsiio *ctsio well_known = 0; cdb = (struct scsi_report_luns *)ctsio->cdb; + port = ctl_io_port(&ctsio->io_hdr); CTL_DEBUG_PRINT(("ctl_report_luns\n")); mtx_lock(&softc->ctl_lock); - num_luns = softc->num_luns; + num_luns = 0; + for (targ_lun_id = 0; targ_lun_id < CTL_MAX_LUNS; targ_lun_id++) { + if (ctl_lun_map_from_port(port, targ_lun_id) < CTL_MAX_LUNS) + num_luns++; + } mtx_unlock(&softc->ctl_lock); switch (cdb->select_report) { @@ -9499,7 +9504,6 @@ ctl_report_luns(struct ctl_scsiio *ctsio request_lun = (struct ctl_lun *) ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; - port = ctl_io_port(&ctsio->io_hdr); lun_datalen = sizeof(*lun_data) + (num_luns * sizeof(struct scsi_report_luns_lundata)); From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:09:40 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A47898C8BB; Thu, 25 Jun 2015 07:09:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3EE231AA2; Thu, 25 Jun 2015 07:09:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P79e86087237; Thu, 25 Jun 2015 07:09:40 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P79dPd087235; Thu, 25 Jun 2015 07:09:39 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250709.t5P79dPd087235@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:09:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284796 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:09:40 -0000 Author: mav Date: Thu Jun 25 07:09:39 2015 New Revision: 284796 URL: https://svnweb.freebsd.org/changeset/base/284796 Log: MFC r284639: Introduce separate lock for tokens to reduce ctl_lock scope. Modified: stable/10/sys/cam/ctl/ctl_private.h stable/10/sys/cam/ctl/ctl_tpc.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl_private.h ============================================================================== --- stable/10/sys/cam/ctl/ctl_private.h Thu Jun 25 07:08:46 2015 (r284795) +++ stable/10/sys/cam/ctl/ctl_private.h Thu Jun 25 07:09:39 2015 (r284796) @@ -494,6 +494,7 @@ struct ctl_softc { struct ctl_thread threads[CTL_MAX_THREADS]; TAILQ_HEAD(tpc_tokens, tpc_token) tpc_tokens; struct callout tpc_timeout; + struct mtx tpc_lock; }; #ifdef _KERNEL Modified: stable/10/sys/cam/ctl/ctl_tpc.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_tpc.c Thu Jun 25 07:08:46 2015 (r284795) +++ stable/10/sys/cam/ctl/ctl_tpc.c Thu Jun 25 07:09:39 2015 (r284796) @@ -167,6 +167,7 @@ tpc_timeout(void *arg) } /* Free inactive ROD tokens with expired timeout. */ + mtx_lock(&softc->tpc_lock); TAILQ_FOREACH_SAFE(token, &softc->tpc_tokens, links, ttoken) { if (token->active || time_uptime < token->last_active + token->timeout + 1) @@ -175,6 +176,7 @@ tpc_timeout(void *arg) free(token->params, M_CTL); free(token, M_CTL); } + mtx_unlock(&softc->tpc_lock); callout_schedule(&softc->tpc_timeout, hz); } @@ -182,6 +184,7 @@ void ctl_tpc_init(struct ctl_softc *softc) { + mtx_init(&softc->tpc_lock, "CTL TPC mutex", NULL, MTX_DEF); TAILQ_INIT(&softc->tpc_tokens); callout_init_mtx(&softc->tpc_timeout, &softc->ctl_lock, 0); callout_reset(&softc->tpc_timeout, hz, tpc_timeout, softc); @@ -195,13 +198,14 @@ ctl_tpc_shutdown(struct ctl_softc *softc callout_drain(&softc->tpc_timeout); /* Free ROD tokens. */ - mtx_lock(&softc->ctl_lock); + mtx_lock(&softc->tpc_lock); while ((token = TAILQ_FIRST(&softc->tpc_tokens)) != NULL) { TAILQ_REMOVE(&softc->tpc_tokens, token, links); free(token->params, M_CTL); free(token, M_CTL); } - mtx_unlock(&softc->ctl_lock); + mtx_unlock(&softc->tpc_lock); + mtx_destroy(&softc->tpc_lock); } void @@ -227,7 +231,7 @@ ctl_tpc_lun_shutdown(struct ctl_lun *lun } /* Free ROD tokens for this LUN. */ - mtx_assert(&softc->ctl_lock, MA_OWNED); + mtx_lock(&softc->tpc_lock); TAILQ_FOREACH_SAFE(token, &softc->tpc_tokens, links, ttoken) { if (token->lun != lun->lun || token->active) continue; @@ -235,6 +239,7 @@ ctl_tpc_lun_shutdown(struct ctl_lun *lun free(token->params, M_CTL); free(token, M_CTL); } + mtx_unlock(&softc->tpc_lock); } int @@ -1394,10 +1399,10 @@ done: free(list->params, M_CTL); list->params = NULL; if (list->token) { - mtx_lock(&softc->ctl_lock); + mtx_lock(&softc->tpc_lock); if (--list->token->active == 0) list->token->last_active = time_uptime; - mtx_unlock(&softc->ctl_lock); + mtx_unlock(&softc->tpc_lock); list->token = NULL; } mtx_lock(&lun->lun_lock); @@ -1991,9 +1996,9 @@ ctl_populate_token(struct ctl_scsiio *ct list->curseg = 0; list->completed = 1; list->last_active = time_uptime; - mtx_lock(&softc->ctl_lock); + mtx_lock(&softc->tpc_lock); TAILQ_INSERT_TAIL(&softc->tpc_tokens, token, links); - mtx_unlock(&softc->ctl_lock); + mtx_unlock(&softc->tpc_lock); ctl_set_success(ctsio); ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); @@ -2100,7 +2105,7 @@ ctl_write_using_token(struct ctl_scsiio return (CTL_RETVAL_COMPLETE); } - mtx_lock(&softc->ctl_lock); + mtx_lock(&softc->tpc_lock); TAILQ_FOREACH(token, &softc->tpc_tokens, links) { if (memcmp(token->token, data->rod_token, sizeof(data->rod_token)) == 0) @@ -2112,7 +2117,7 @@ ctl_write_using_token(struct ctl_scsiio if (data->flags & EC_WUT_DEL_TKN) token->timeout = 0; } - mtx_unlock(&softc->ctl_lock); + mtx_unlock(&softc->tpc_lock); if (token == NULL) { mtx_lock(&lun->lun_lock); TAILQ_REMOVE(&lun->tpc_lists, list, links); @@ -2254,10 +2259,10 @@ ctl_report_all_rod_tokens(struct ctl_scs retval = CTL_RETVAL_COMPLETE; tokens = 0; - mtx_lock(&softc->ctl_lock); + mtx_lock(&softc->tpc_lock); TAILQ_FOREACH(token, &softc->tpc_tokens, links) tokens++; - mtx_unlock(&softc->ctl_lock); + mtx_unlock(&softc->tpc_lock); if (tokens > 512) tokens = 512; @@ -2282,7 +2287,7 @@ ctl_report_all_rod_tokens(struct ctl_scs data = (struct scsi_report_all_rod_tokens_data *)ctsio->kern_data_ptr; i = 0; - mtx_lock(&softc->ctl_lock); + mtx_lock(&softc->tpc_lock); TAILQ_FOREACH(token, &softc->tpc_tokens, links) { if (i >= tokens) break; @@ -2290,7 +2295,7 @@ ctl_report_all_rod_tokens(struct ctl_scs token->token, 96); i++; } - mtx_unlock(&softc->ctl_lock); + mtx_unlock(&softc->tpc_lock); scsi_ulto4b(sizeof(*data) - 4 + i * 96, data->available_data); /* printf("RART tokens=%d\n", i); From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:10:52 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6EF8898CC6F; Thu, 25 Jun 2015 07:10:52 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5FDBD1D0A; Thu, 25 Jun 2015 07:10:52 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P7AqZu090541; Thu, 25 Jun 2015 07:10:52 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P7Ap9a090538; Thu, 25 Jun 2015 07:10:51 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250710.t5P7Ap9a090538@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:10:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284797 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:10:52 -0000 Author: mav Date: Thu Jun 25 07:10:51 2015 New Revision: 284797 URL: https://svnweb.freebsd.org/changeset/base/284797 Log: MFC r284627: Remove some dead and duplicate LUN enabling code. Modified: stable/10/sys/cam/ctl/ctl.c stable/10/sys/cam/ctl/ctl_frontend.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl.c ============================================================================== --- stable/10/sys/cam/ctl/ctl.c Thu Jun 25 07:09:39 2015 (r284796) +++ stable/10/sys/cam/ctl/ctl.c Thu Jun 25 07:10:51 2015 (r284797) @@ -4537,7 +4537,6 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft struct ctl_be_lun *const be_lun, struct ctl_id target_id) { struct ctl_lun *nlun, *lun; - struct ctl_port *port; struct scsi_vpd_id_descriptor *desc; struct scsi_vpd_id_t10 *t10id; const char *eui, *naa, *scsiname, *vendor, *value; @@ -4767,24 +4766,6 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft mtx_unlock(&ctl_softc->ctl_lock); lun->be_lun->lun_config_status(lun->be_lun->be_lun, CTL_LUN_CONFIG_OK); - - /* - * Run through each registered FETD and bring it online if it isn't - * already. Enable the target ID if it hasn't been enabled, and - * enable this particular LUN. - */ - STAILQ_FOREACH(port, &ctl_softc->port_list, links) { - int retval; - - retval = port->lun_enable(port->targ_lun_arg, target_id,lun_number); - if (retval != 0) { - printf("ctl_alloc_lun: FETD %s port %d returned error " - "%d for lun_enable on target %ju lun %d\n", - port->port_name, port->targ_port, retval, - (uintmax_t)target_id.id, lun_number); - } else - port->status |= CTL_PORT_STATUS_LUN_ONLINE; - } return (0); } @@ -4821,58 +4802,6 @@ ctl_free_lun(struct ctl_lun *lun) softc->num_luns--; /* - * XXX KDM this scheme only works for a single target/multiple LUN - * setup. It needs to be revamped for a multiple target scheme. - * - * XXX KDM this results in port->lun_disable() getting called twice, - * once when ctl_disable_lun() is called, and a second time here. - * We really need to re-think the LUN disable semantics. There - * should probably be several steps/levels to LUN removal: - * - disable - * - invalidate - * - free - * - * Right now we only have a disable method when communicating to - * the front end ports, at least for individual LUNs. - */ -#if 0 - STAILQ_FOREACH(port, &softc->port_list, links) { - int retval; - - retval = port->lun_disable(port->targ_lun_arg, lun->target, - lun->lun); - if (retval != 0) { - printf("ctl_free_lun: FETD %s port %d returned error " - "%d for lun_disable on target %ju lun %jd\n", - port->port_name, port->targ_port, retval, - (uintmax_t)lun->target.id, (intmax_t)lun->lun); - } - - if (STAILQ_FIRST(&softc->lun_list) == NULL) { - port->status &= ~CTL_PORT_STATUS_LUN_ONLINE; - - retval = port->targ_disable(port->targ_lun_arg,lun->target); - if (retval != 0) { - printf("ctl_free_lun: FETD %s port %d " - "returned error %d for targ_disable on " - "target %ju\n", port->port_name, - port->targ_port, retval, - (uintmax_t)lun->target.id); - } else - port->status &= ~CTL_PORT_STATUS_TARG_ONLINE; - - if ((port->status & CTL_PORT_STATUS_TARG_ONLINE) != 0) - continue; - -#if 0 - port->port_offline(port->onoff_arg); - port->status &= ~CTL_PORT_STATUS_ONLINE; -#endif - } - } -#endif - - /* * Tell the backend to free resources, if this LUN has a backend. */ atomic_subtract_int(&lun->be_lun->be->num_luns, 1); @@ -4966,12 +4895,6 @@ ctl_enable_lun(struct ctl_be_lun *be_lun __func__, port->port_name, port->targ_port, retval, (uintmax_t)lun->target.id, (intmax_t)lun->lun); } -#if 0 - else { - /* NOTE: TODO: why does lun enable affect port status? */ - port->status |= CTL_PORT_STATUS_LUN_ONLINE; - } -#endif } mtx_unlock(&softc->ctl_lock); Modified: stable/10/sys/cam/ctl/ctl_frontend.h ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend.h Thu Jun 25 07:09:39 2015 (r284796) +++ stable/10/sys/cam/ctl/ctl_frontend.h Thu Jun 25 07:10:51 2015 (r284797) @@ -41,9 +41,7 @@ typedef enum { CTL_PORT_STATUS_NONE = 0x00, - CTL_PORT_STATUS_ONLINE = 0x01, - CTL_PORT_STATUS_TARG_ONLINE = 0x02, - CTL_PORT_STATUS_LUN_ONLINE = 0x04 + CTL_PORT_STATUS_ONLINE = 0x01 } ctl_port_status; typedef int (*fe_init_t)(void); From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:11:51 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2614798CCC0; Thu, 25 Jun 2015 07:11:51 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 162B11E93; Thu, 25 Jun 2015 07:11:51 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P7Bppc091258; Thu, 25 Jun 2015 07:11:51 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P7BmtJ091247; Thu, 25 Jun 2015 07:11:48 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250711.t5P7BmtJ091247@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:11:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284798 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:11:51 -0000 Author: mav Date: Thu Jun 25 07:11:48 2015 New Revision: 284798 URL: https://svnweb.freebsd.org/changeset/base/284798 Log: MFC r284640: Bring per-port LUN enable/disable code up to date: - remove last remnants of never implemented multiple targets support; - implement missing support for LUN mapping in this area. Due to existing locking constraints LUN mapping code is practically unlocked at this point. Hopefully it is not racy enough to live until somebody get idea how to call sleeping fronend methods under lock also taken by the same frontend in non-sleepable context. :( Modified: stable/10/sys/cam/ctl/ctl.c stable/10/sys/cam/ctl/ctl_frontend.c stable/10/sys/cam/ctl/ctl_frontend.h stable/10/sys/cam/ctl/ctl_frontend_cam_sim.c stable/10/sys/cam/ctl/ctl_frontend_internal.c stable/10/sys/cam/ctl/ctl_frontend_iscsi.c stable/10/sys/cam/ctl/ctl_private.h stable/10/sys/cam/ctl/ctl_tpc_local.c stable/10/sys/cam/ctl/scsi_ctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl.c ============================================================================== --- stable/10/sys/cam/ctl/ctl.c Thu Jun 25 07:10:51 2015 (r284797) +++ stable/10/sys/cam/ctl/ctl.c Thu Jun 25 07:11:48 2015 (r284798) @@ -385,8 +385,8 @@ static int ctl_open(struct cdev *dev, in static int ctl_close(struct cdev *dev, int flags, int fmt, struct thread *td); static void ctl_ioctl_online(void *arg); static void ctl_ioctl_offline(void *arg); -static int ctl_ioctl_lun_enable(void *arg, struct ctl_id targ_id, int lun_id); -static int ctl_ioctl_lun_disable(void *arg, struct ctl_id targ_id, int lun_id); +static int ctl_ioctl_lun_enable(void *arg, int lun_id); +static int ctl_ioctl_lun_disable(void *arg, int lun_id); static int ctl_ioctl_do_datamove(struct ctl_scsiio *ctsio); static int ctl_serialize_other_sc_cmd(struct ctl_scsiio *ctsio); static int ctl_ioctl_submit_wait(union ctl_io *io); @@ -401,7 +401,7 @@ static int ctl_ioctl_fill_ooa(struct ctl static int ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td); static int ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *lun, - struct ctl_be_lun *be_lun, struct ctl_id target_id); + struct ctl_be_lun *be_lun); static int ctl_free_lun(struct ctl_lun *lun); static void ctl_create_lun(struct ctl_be_lun *be_lun); static struct ctl_port * ctl_io_port(struct ctl_io_hdr *io_hdr); @@ -1130,13 +1130,6 @@ ctl_init(void) softc->port_offset = (softc->ha_id - 1) * CTL_MAX_PORTS; softc->persis_offset = softc->port_offset * CTL_MAX_INIT_PER_PORT; - /* - * XXX KDM need to figure out where we want to get our target ID - * and WWID. Is it different on each port? - */ - softc->target.id = 0; - softc->target.wwid[0] = 0x12345678; - softc->target.wwid[1] = 0x87654321; STAILQ_INIT(&softc->lun_list); STAILQ_INIT(&softc->pending_lun_queue); STAILQ_INIT(&softc->fe_list); @@ -1649,13 +1642,13 @@ ctl_create_iid(struct ctl_port *port, in } static int -ctl_ioctl_lun_enable(void *arg, struct ctl_id targ_id, int lun_id) +ctl_ioctl_lun_enable(void *arg, int lun_id) { return (0); } static int -ctl_ioctl_lun_disable(void *arg, struct ctl_id targ_id, int lun_id) +ctl_ioctl_lun_disable(void *arg, int lun_id) { return (0); } @@ -2480,28 +2473,9 @@ ctl_ioctl(struct cdev *dev, u_long cmd, mtx_unlock(&softc->ctl_lock); if (cmd == CTL_ENABLE_PORT) { - struct ctl_lun *lun; - - STAILQ_FOREACH(lun, &softc->lun_list, - links) { - port->lun_enable(port->targ_lun_arg, - lun->target, - lun->lun); - } - ctl_port_online(port); } else if (cmd == CTL_DISABLE_PORT) { - struct ctl_lun *lun; - ctl_port_offline(port); - - STAILQ_FOREACH(lun, &softc->lun_list, - links) { - port->lun_disable( - port->targ_lun_arg, - lun->target, - lun->lun); - } } mtx_lock(&softc->ctl_lock); @@ -3562,26 +3536,22 @@ ctl_ioctl(struct cdev *dev, u_long cmd, mtx_unlock(&softc->ctl_lock); return (ENXIO); } + mtx_unlock(&softc->ctl_lock); // XXX: port_enable sleeps if (lm->plun < CTL_MAX_LUNS) { if (lm->lun == UINT32_MAX) retval = ctl_lun_map_unset(port, lm->plun); else if (lm->lun < CTL_MAX_LUNS && softc->ctl_luns[lm->lun] != NULL) retval = ctl_lun_map_set(port, lm->plun, lm->lun); - else { - mtx_unlock(&softc->ctl_lock); + else return (ENXIO); - } } else if (lm->plun == UINT32_MAX) { if (lm->lun == UINT32_MAX) retval = ctl_lun_map_deinit(port); else retval = ctl_lun_map_init(port); - } else { - mtx_unlock(&softc->ctl_lock); + } else return (ENXIO); - } - mtx_unlock(&softc->ctl_lock); break; } default: { @@ -3651,6 +3621,8 @@ ctl_port_idx(int port_num) int ctl_lun_map_init(struct ctl_port *port) { + struct ctl_softc *softc = control_softc; + struct ctl_lun *lun; uint32_t i; if (port->lun_map == NULL) @@ -3660,17 +3632,27 @@ ctl_lun_map_init(struct ctl_port *port) return (ENOMEM); for (i = 0; i < CTL_MAX_LUNS; i++) port->lun_map[i] = UINT32_MAX; + if (port->status & CTL_PORT_STATUS_ONLINE) { + STAILQ_FOREACH(lun, &softc->lun_list, links) + port->lun_disable(port->targ_lun_arg, lun->lun); + } return (0); } int ctl_lun_map_deinit(struct ctl_port *port) { + struct ctl_softc *softc = control_softc; + struct ctl_lun *lun; if (port->lun_map == NULL) return (0); free(port->lun_map, M_CTL); port->lun_map = NULL; + if (port->status & CTL_PORT_STATUS_ONLINE) { + STAILQ_FOREACH(lun, &softc->lun_list, links) + port->lun_enable(port->targ_lun_arg, lun->lun); + } return (0); } @@ -3678,37 +3660,31 @@ int ctl_lun_map_set(struct ctl_port *port, uint32_t plun, uint32_t glun) { int status; + uint32_t old; if (port->lun_map == NULL) { status = ctl_lun_map_init(port); if (status != 0) return (status); } + old = port->lun_map[plun]; port->lun_map[plun] = glun; + if ((port->status & CTL_PORT_STATUS_ONLINE) && old >= CTL_MAX_LUNS) + port->lun_enable(port->targ_lun_arg, plun); return (0); } int ctl_lun_map_unset(struct ctl_port *port, uint32_t plun) { + uint32_t old; if (port->lun_map == NULL) return (0); + old = port->lun_map[plun]; port->lun_map[plun] = UINT32_MAX; - return (0); -} - -int -ctl_lun_map_unsetg(struct ctl_port *port, uint32_t glun) -{ - int i; - - if (port->lun_map == NULL) - return (0); - for (i = 0; i < CTL_MAX_LUNS; i++) { - if (port->lun_map[i] == glun) - port->lun_map[i] = UINT32_MAX; - } + if ((port->status & CTL_PORT_STATUS_ONLINE) && old < CTL_MAX_LUNS) + port->lun_disable(port->targ_lun_arg, plun); return (0); } @@ -4534,7 +4510,7 @@ hex2bin(const char *str, uint8_t *buf, i */ static int ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *ctl_lun, - struct ctl_be_lun *const be_lun, struct ctl_id target_id) + struct ctl_be_lun *const be_lun) { struct ctl_lun *nlun, *lun; struct scsi_vpd_id_descriptor *desc; @@ -4671,8 +4647,7 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft lun_number = ctl_ffz(ctl_softc->ctl_lun_mask, CTL_MAX_LUNS); if (lun_number == -1) { mtx_unlock(&ctl_softc->ctl_lock); - printf("ctl: can't allocate LUN on target %ju, out of " - "LUNs\n", (uintmax_t)target_id.id); + printf("ctl: can't allocate LUN, out of LUNs\n"); if (lun->flags & CTL_LUN_MALLOCED) free(lun, M_CTL); be_lun->lun_config_status(be_lun->be_lun, @@ -4683,7 +4658,6 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft ctl_set_mask(ctl_softc->ctl_lun_mask, lun_number); mtx_init(&lun->lun_lock, "CTL LUN", NULL, MTX_DEF); - lun->target = target_id; lun->lun = lun_number; lun->be_lun = be_lun; /* @@ -4779,7 +4753,6 @@ static int ctl_free_lun(struct ctl_lun *lun) { struct ctl_softc *softc; - struct ctl_port *port; struct ctl_lun *nlun; int i; @@ -4787,9 +4760,6 @@ ctl_free_lun(struct ctl_lun *lun) mtx_assert(&softc->ctl_lock, MA_OWNED); - STAILQ_FOREACH(port, &softc->port_list, links) - ctl_lun_map_unsetg(port, lun->lun); - STAILQ_REMOVE(&softc->lun_list, lun, ctl_lun, links); ctl_clear_mask(softc->ctl_lun_mask, lun->lun); @@ -4837,7 +4807,7 @@ ctl_create_lun(struct ctl_be_lun *be_lun /* * ctl_alloc_lun() should handle all potential failure cases. */ - ctl_alloc_lun(softc, NULL, be_lun, softc->target); + ctl_alloc_lun(softc, NULL, be_lun); } int @@ -4880,6 +4850,9 @@ ctl_enable_lun(struct ctl_be_lun *be_lun for (port = STAILQ_FIRST(&softc->port_list); port != NULL; port = nport) { nport = STAILQ_NEXT(port, links); + if ((port->status & CTL_PORT_STATUS_ONLINE) == 0 || + port->lun_map != NULL) + continue; /* * Drop the lock while we call the FETD's enable routine. @@ -4887,13 +4860,13 @@ ctl_enable_lun(struct ctl_be_lun *be_lun * case of the internal initiator frontend. */ mtx_unlock(&softc->ctl_lock); - retval = port->lun_enable(port->targ_lun_arg, lun->target,lun->lun); + retval = port->lun_enable(port->targ_lun_arg, lun->lun); mtx_lock(&softc->ctl_lock); if (retval != 0) { printf("%s: FETD %s port %d returned error " - "%d for lun_enable on target %ju lun %jd\n", - __func__, port->port_name, port->targ_port, retval, - (uintmax_t)lun->target.id, (intmax_t)lun->lun); + "%d for lun_enable on lun %jd\n", + __func__, port->port_name, port->targ_port, + retval, (intmax_t)lun->lun); } } @@ -4924,6 +4897,9 @@ ctl_disable_lun(struct ctl_be_lun *be_lu mtx_unlock(&lun->lun_lock); STAILQ_FOREACH(port, &softc->port_list, links) { + if ((port->status & CTL_PORT_STATUS_ONLINE) == 0 || + port->lun_map != NULL) + continue; mtx_unlock(&softc->ctl_lock); /* * Drop the lock before we call the frontend's disable @@ -4932,14 +4908,13 @@ ctl_disable_lun(struct ctl_be_lun *be_lu * XXX KDM what happens if the frontend list changes while * we're traversing it? It's unlikely, but should be handled. */ - retval = port->lun_disable(port->targ_lun_arg, lun->target, - lun->lun); + retval = port->lun_disable(port->targ_lun_arg, lun->lun); mtx_lock(&softc->ctl_lock); if (retval != 0) { printf("%s: FETD %s port %d returned error " - "%d for lun_disable on target %ju lun %jd\n", - __func__, port->port_name, port->targ_port, retval, - (uintmax_t)lun->target.id, (intmax_t)lun->lun); + "%d for lun_disable on lun %jd\n", + __func__, port->port_name, port->targ_port, + retval, (intmax_t)lun->lun); } } Modified: stable/10/sys/cam/ctl/ctl_frontend.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend.c Thu Jun 25 07:10:51 2015 (r284797) +++ stable/10/sys/cam/ctl/ctl_frontend.c Thu Jun 25 07:11:48 2015 (r284798) @@ -301,6 +301,20 @@ ctl_port_set_wwns(struct ctl_port *port, void ctl_port_online(struct ctl_port *port) { + struct ctl_softc *softc = control_softc; + struct ctl_lun *lun; + uint32_t l; + + if (port->lun_map) { + for (l = 0; l < CTL_MAX_LUNS; l++) { + if (ctl_lun_map_from_port(port, l) >= CTL_MAX_LUNS) + continue; + port->lun_enable(port->targ_lun_arg, l); + } + } else { + STAILQ_FOREACH(lun, &softc->lun_list, links) + port->lun_enable(port->targ_lun_arg, lun->lun); + } port->port_online(port->onoff_arg); /* XXX KDM need a lock here? */ port->status |= CTL_PORT_STATUS_ONLINE; @@ -309,7 +323,21 @@ ctl_port_online(struct ctl_port *port) void ctl_port_offline(struct ctl_port *port) { + struct ctl_softc *softc = control_softc; + struct ctl_lun *lun; + uint32_t l; + port->port_offline(port->onoff_arg); + if (port->lun_map) { + for (l = 0; l < CTL_MAX_LUNS; l++) { + if (ctl_lun_map_from_port(port, l) >= CTL_MAX_LUNS) + continue; + port->lun_disable(port->targ_lun_arg, l); + } + } else { + STAILQ_FOREACH(lun, &softc->lun_list, links) + port->lun_disable(port->targ_lun_arg, lun->lun); + } /* XXX KDM need a lock here? */ port->status &= ~CTL_PORT_STATUS_ONLINE; } Modified: stable/10/sys/cam/ctl/ctl_frontend.h ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend.h Thu Jun 25 07:10:51 2015 (r284797) +++ stable/10/sys/cam/ctl/ctl_frontend.h Thu Jun 25 07:11:48 2015 (r284798) @@ -48,7 +48,7 @@ typedef int (*fe_init_t)(void); typedef void (*fe_shutdown_t)(void); typedef void (*port_func_t)(void *onoff_arg); typedef int (*port_info_func_t)(void *onoff_arg, struct sbuf *sb); -typedef int (*lun_func_t)(void *arg, struct ctl_id targ_id, int lun_id); +typedef int (*lun_func_t)(void *arg, int lun_id); typedef int (*fe_ioctl_t)(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td); Modified: stable/10/sys/cam/ctl/ctl_frontend_cam_sim.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend_cam_sim.c Thu Jun 25 07:10:51 2015 (r284797) +++ stable/10/sys/cam/ctl/ctl_frontend_cam_sim.c Thu Jun 25 07:11:48 2015 (r284798) @@ -99,8 +99,8 @@ int cfcs_init(void); static void cfcs_poll(struct cam_sim *sim); static void cfcs_online(void *arg); static void cfcs_offline(void *arg); -static int cfcs_lun_enable(void *arg, struct ctl_id target_id, int lun_id); -static int cfcs_lun_disable(void *arg, struct ctl_id target_id, int lun_id); +static int cfcs_lun_enable(void *arg, int lun_id); +static int cfcs_lun_disable(void *arg, int lun_id); static void cfcs_datamove(union ctl_io *io); static void cfcs_done(union ctl_io *io); void cfcs_action(struct cam_sim *sim, union ccb *ccb); @@ -303,12 +303,12 @@ cfcs_offline(void *arg) } static int -cfcs_lun_enable(void *arg, struct ctl_id target_id, int lun_id) +cfcs_lun_enable(void *arg, int lun_id) { return (0); } static int -cfcs_lun_disable(void *arg, struct ctl_id target_id, int lun_id) +cfcs_lun_disable(void *arg, int lun_id) { return (0); } Modified: stable/10/sys/cam/ctl/ctl_frontend_internal.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend_internal.c Thu Jun 25 07:10:51 2015 (r284797) +++ stable/10/sys/cam/ctl/ctl_frontend_internal.c Thu Jun 25 07:11:48 2015 (r284798) @@ -144,7 +144,6 @@ typedef enum { } cfi_lun_state; struct cfi_lun { - struct ctl_id target_id; int lun_id; struct scsi_inquiry_data inq_data; uint64_t num_blocks; @@ -192,8 +191,8 @@ int cfi_init(void); void cfi_shutdown(void) __unused; static void cfi_online(void *arg); static void cfi_offline(void *arg); -static int cfi_lun_enable(void *arg, struct ctl_id target_id, int lun_id); -static int cfi_lun_disable(void *arg, struct ctl_id target_id, int lun_id); +static int cfi_lun_enable(void *arg, int lun_id); +static int cfi_lun_disable(void *arg, int lun_id); static void cfi_datamove(union ctl_io *io); static cfi_error_action cfi_checkcond_parse(union ctl_io *io, struct cfi_lun_io *lun_io); @@ -324,7 +323,7 @@ cfi_offline(void *arg) } static int -cfi_lun_enable(void *arg, struct ctl_id target_id, int lun_id) +cfi_lun_enable(void *arg, int lun_id) { struct cfi_softc *softc; struct cfi_lun *lun; @@ -335,8 +334,7 @@ cfi_lun_enable(void *arg, struct ctl_id found = 0; mtx_lock(&softc->lock); STAILQ_FOREACH(lun, &softc->lun_list, links) { - if ((lun->target_id.id == target_id.id) - && (lun->lun_id == lun_id)) { + if (lun->lun_id == lun_id) { found = 1; break; } @@ -356,7 +354,6 @@ cfi_lun_enable(void *arg, struct ctl_id return (1); } - lun->target_id = target_id; lun->lun_id = lun_id; lun->cur_tag_num = 0; lun->state = CFI_LUN_INQUIRY; @@ -373,7 +370,7 @@ cfi_lun_enable(void *arg, struct ctl_id } static int -cfi_lun_disable(void *arg, struct ctl_id target_id, int lun_id) +cfi_lun_disable(void *arg, int lun_id) { struct cfi_softc *softc; struct cfi_lun *lun; @@ -391,8 +388,7 @@ cfi_lun_disable(void *arg, struct ctl_id */ mtx_lock(&softc->lock); STAILQ_FOREACH(lun, &softc->lun_list, links) { - if ((lun->target_id.id == target_id.id) - && (lun->lun_id == lun_id)) { + if (lun->lun_id == lun_id) { found = 1; break; } @@ -403,8 +399,7 @@ cfi_lun_disable(void *arg, struct ctl_id mtx_unlock(&softc->lock); if (found == 0) { - printf("%s: can't find target %ju lun %d\n", __func__, - (uintmax_t)target_id.id, lun_id); + printf("%s: can't find lun %d\n", __func__, lun_id); return (1); } @@ -700,7 +695,7 @@ cfi_init_io(union ctl_io *io, struct cfi io->io_hdr.nexus.initid.id = 7; io->io_hdr.nexus.targ_port = lun->softc->port.targ_port; - io->io_hdr.nexus.targ_target.id = lun->target_id.id; + io->io_hdr.nexus.targ_target.id = 0; io->io_hdr.nexus.targ_lun = lun->lun_id; io->io_hdr.retries = retries; lun_io = (struct cfi_lun_io *)io->io_hdr.port_priv; @@ -1008,8 +1003,7 @@ cfi_lun_probe(struct cfi_lun *lun, int h M_CTL_CFI, M_NOWAIT); if (dataptr == NULL) { printf("%s: unable to allocate SCSI read capacity " - "buffer for target %ju lun %d\n", __func__, - (uintmax_t)lun->target_id.id, lun->lun_id); + "buffer for lun %d\n", __func__, lun->lun_id); return; } if (lun->state == CFI_LUN_READCAPACITY) { Modified: stable/10/sys/cam/ctl/ctl_frontend_iscsi.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend_iscsi.c Thu Jun 25 07:10:51 2015 (r284797) +++ stable/10/sys/cam/ctl/ctl_frontend_iscsi.c Thu Jun 25 07:11:48 2015 (r284798) @@ -150,10 +150,8 @@ int cfiscsi_init(void); static void cfiscsi_online(void *arg); static void cfiscsi_offline(void *arg); static int cfiscsi_info(void *arg, struct sbuf *sb); -static int cfiscsi_lun_enable(void *arg, - struct ctl_id target_id, int lun_id); -static int cfiscsi_lun_disable(void *arg, - struct ctl_id target_id, int lun_id); +static int cfiscsi_lun_enable(void *arg, int lun_id); +static int cfiscsi_lun_disable(void *arg, int lun_id); static int cfiscsi_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td); static void cfiscsi_datamove(union ctl_io *io); @@ -2301,14 +2299,14 @@ cfiscsi_target_find_or_create(struct cfi } static int -cfiscsi_lun_enable(void *arg, struct ctl_id target_id, int lun_id) +cfiscsi_lun_enable(void *arg, int lun_id) { return (0); } static int -cfiscsi_lun_disable(void *arg, struct ctl_id target_id, int lun_id) +cfiscsi_lun_disable(void *arg, int lun_id) { return (0); Modified: stable/10/sys/cam/ctl/ctl_private.h ============================================================================== --- stable/10/sys/cam/ctl/ctl_private.h Thu Jun 25 07:10:51 2015 (r284797) +++ stable/10/sys/cam/ctl/ctl_private.h Thu Jun 25 07:11:48 2015 (r284798) @@ -397,7 +397,6 @@ struct ctl_devid { struct tpc_list; struct ctl_lun { struct mtx lun_lock; - struct ctl_id target; uint64_t lun; ctl_lun_flags flags; ctl_lun_serseq serseq; @@ -460,7 +459,6 @@ struct ctl_softc { struct mtx ctl_lock; struct cdev *dev; int open_count; - struct ctl_id target; int num_disks; int num_luns; ctl_gen_flags flags; @@ -508,7 +506,6 @@ int ctl_lun_map_init(struct ctl_port *po int ctl_lun_map_deinit(struct ctl_port *port); int ctl_lun_map_set(struct ctl_port *port, uint32_t plun, uint32_t glun); int ctl_lun_map_unset(struct ctl_port *port, uint32_t plun); -int ctl_lun_map_unsetg(struct ctl_port *port, uint32_t glun); uint32_t ctl_lun_map_from_port(struct ctl_port *port, uint32_t plun); uint32_t ctl_lun_map_to_port(struct ctl_port *port, uint32_t glun); int ctl_pool_create(struct ctl_softc *ctl_softc, const char *pool_name, Modified: stable/10/sys/cam/ctl/ctl_tpc_local.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_tpc_local.c Thu Jun 25 07:10:51 2015 (r284797) +++ stable/10/sys/cam/ctl/ctl_tpc_local.c Thu Jun 25 07:11:48 2015 (r284798) @@ -69,8 +69,8 @@ static int tpcl_init(void); static void tpcl_shutdown(void); static void tpcl_online(void *arg); static void tpcl_offline(void *arg); -static int tpcl_lun_enable(void *arg, struct ctl_id target_id, int lun_id); -static int tpcl_lun_disable(void *arg, struct ctl_id target_id, int lun_id); +static int tpcl_lun_enable(void *arg, int lun_id); +static int tpcl_lun_disable(void *arg, int lun_id); static void tpcl_datamove(union ctl_io *io); static void tpcl_done(union ctl_io *io); @@ -152,14 +152,14 @@ tpcl_offline(void *arg) } static int -tpcl_lun_enable(void *arg, struct ctl_id target_id, int lun_id) +tpcl_lun_enable(void *arg, int lun_id) { return (0); } static int -tpcl_lun_disable(void *arg, struct ctl_id target_id, int lun_id) +tpcl_lun_disable(void *arg, int lun_id) { return (0); Modified: stable/10/sys/cam/ctl/scsi_ctl.c ============================================================================== --- stable/10/sys/cam/ctl/scsi_ctl.c Thu Jun 25 07:10:51 2015 (r284797) +++ stable/10/sys/cam/ctl/scsi_ctl.c Thu Jun 25 07:11:48 2015 (r284798) @@ -202,10 +202,8 @@ static void ctlfedone(struct cam_periph static void ctlfe_onoffline(void *arg, int online); static void ctlfe_online(void *arg); static void ctlfe_offline(void *arg); -static int ctlfe_lun_enable(void *arg, struct ctl_id targ_id, - int lun_id); -static int ctlfe_lun_disable(void *arg, struct ctl_id targ_id, - int lun_id); +static int ctlfe_lun_enable(void *arg, int lun_id); +static int ctlfe_lun_disable(void *arg, int lun_id); static void ctlfe_dump_sim(struct cam_sim *sim); static void ctlfe_dump_queue(struct ctlfe_lun_softc *softc); static void ctlfe_datamove(union ctl_io *io); @@ -1800,7 +1798,7 @@ ctlfe_offline(void *arg) * CTL. So we only need to create a path/periph for this particular bus. */ static int -ctlfe_lun_enable(void *arg, struct ctl_id targ_id, int lun_id) +ctlfe_lun_enable(void *arg, int lun_id) { struct ctlfe_softc *bus_softc; struct ctlfe_lun_softc *softc; @@ -1811,8 +1809,7 @@ ctlfe_lun_enable(void *arg, struct ctl_i bus_softc = (struct ctlfe_softc *)arg; status = xpt_create_path(&path, /*periph*/ NULL, - bus_softc->path_id, - targ_id.id, lun_id); + bus_softc->path_id, 0, lun_id); /* XXX KDM need some way to return status to CTL here? */ if (status != CAM_REQ_CMP) { printf("%s: could not create path, status %#x\n", __func__, @@ -1863,7 +1860,7 @@ ctlfe_lun_enable(void *arg, struct ctl_i * on every bus that is attached to CTL. */ static int -ctlfe_lun_disable(void *arg, struct ctl_id targ_id, int lun_id) +ctlfe_lun_disable(void *arg, int lun_id) { struct ctlfe_softc *softc; struct ctlfe_lun_softc *lun_softc; @@ -1876,15 +1873,14 @@ ctlfe_lun_disable(void *arg, struct ctl_ path = lun_softc->periph->path; - if ((xpt_path_target_id(path) == targ_id.id) + if ((xpt_path_target_id(path) == 0) && (xpt_path_lun_id(path) == lun_id)) { break; } } if (lun_softc == NULL) { mtx_unlock(&softc->lun_softc_mtx); - printf("%s: can't find target %d lun %d\n", __func__, - targ_id.id, lun_id); + printf("%s: can't find lun %d\n", __func__, lun_id); return (1); } cam_periph_acquire(lun_softc->periph); From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:22:39 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 058E498CF36; Thu, 25 Jun 2015 07:22:39 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DE494143F; Thu, 25 Jun 2015 07:22:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P7Mcii096474; Thu, 25 Jun 2015 07:22:38 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P7MccC096472; Thu, 25 Jun 2015 07:22:38 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250722.t5P7MccC096472@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:22:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284799 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:22:39 -0000 Author: mav Date: Thu Jun 25 07:22:37 2015 New Revision: 284799 URL: https://svnweb.freebsd.org/changeset/base/284799 Log: MFC r274675 (by jhb), r274708: Convert the refire_notify_ack timer from timeout(9) to callout(9). Modified: stable/10/sys/dev/isp/isp_freebsd.c stable/10/sys/dev/isp/isp_freebsd.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp_freebsd.c ============================================================================== --- stable/10/sys/dev/isp/isp_freebsd.c Thu Jun 25 07:11:48 2015 (r284798) +++ stable/10/sys/dev/isp/isp_freebsd.c Thu Jun 25 07:22:37 2015 (r284799) @@ -2118,10 +2118,9 @@ static void isp_refire_putback_atio(void *arg) { union ccb *ccb = arg; - ispsoftc_t *isp = XS_ISP(ccb); - ISP_LOCK(isp); + + ISP_ASSERT_LOCKED((ispsoftc_t *)XS_ISP(ccb)); isp_target_putback_atio(ccb); - ISP_UNLOCK(isp); } static void @@ -2129,13 +2128,13 @@ isp_refire_notify_ack(void *arg) { isp_tna_t *tp = arg; ispsoftc_t *isp = tp->isp; - ISP_LOCK(isp); + + ISP_ASSERT_LOCKED(isp); if (isp_notify_ack(isp, tp->not)) { - (void) timeout(isp_refire_notify_ack, tp, 5); + callout_schedule(&tp->timer, 5); } else { free(tp, M_DEVBUF); } - ISP_UNLOCK(isp); } @@ -2152,7 +2151,8 @@ isp_target_putback_atio(union ccb *ccb) if (qe == NULL) { xpt_print(ccb->ccb_h.path, "%s: Request Queue Overflow\n", __func__); - (void) timeout(isp_refire_putback_atio, ccb, 10); + callout_reset(&PISP_PCMD(ccb)->wdog, 10, + isp_refire_putback_atio, ccb); return; } memset(qe, 0, QENTRY_LEN); @@ -5991,7 +5991,9 @@ isp_async(ispsoftc_t *isp, ispasync_t cm } else { tp->not = NULL; } - (void) timeout(isp_refire_notify_ack, tp, 5); + callout_init_mtx(&tp->timer, &isp->isp_lock, 0); + callout_reset(&tp->timer, 5, + isp_refire_notify_ack, tp); } else { isp_prt(isp, ISP_LOGERR, "you lose- cannot allocate a notify refire"); } Modified: stable/10/sys/dev/isp/isp_freebsd.h ============================================================================== --- stable/10/sys/dev/isp/isp_freebsd.h Thu Jun 25 07:11:48 2015 (r284798) +++ stable/10/sys/dev/isp/isp_freebsd.h Thu Jun 25 07:22:37 2015 (r284799) @@ -158,6 +158,7 @@ typedef struct isp_timed_notify_ack { void *isp; void *not; uint8_t data[64]; /* sb QENTRY_LEN, but order of definitions is wrong */ + struct callout timer; } isp_tna_t; TAILQ_HEAD(isp_ccbq, ccb_hdr); @@ -396,8 +397,9 @@ struct isposinfo { /* * Locking macros... */ -#define ISP_LOCK(isp) mtx_lock(&isp->isp_osinfo.lock) -#define ISP_UNLOCK(isp) mtx_unlock(&isp->isp_osinfo.lock) +#define ISP_LOCK(isp) mtx_lock(&(isp)->isp_osinfo.lock) +#define ISP_UNLOCK(isp) mtx_unlock(&(isp)->isp_osinfo.lock) +#define ISP_ASSERT_LOCKED(isp) mtx_assert(&(isp)->isp_osinfo.lock, MA_OWNED) /* * Required Macros/Defines From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:23:35 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E575B98CF78; Thu, 25 Jun 2015 07:23:35 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D6966158D; Thu, 25 Jun 2015 07:23:35 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P7NZeP096664; Thu, 25 Jun 2015 07:23:35 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P7NZTk096663; Thu, 25 Jun 2015 07:23:35 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250723.t5P7NZTk096663@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:23:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284800 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:23:36 -0000 Author: mav Date: Thu Jun 25 07:23:35 2015 New Revision: 284800 URL: https://svnweb.freebsd.org/changeset/base/284800 Log: MFC r284540: In case of target mode disable at least ISP2532 return invalid zero ct_rxid value on CTIO completion. Try to workaround that using tag_id from the CCB, pointed by still valid ct_syshandle. I don't know whether this is valid fix or dirty hack, but considering that alternative is indefinitely stuck command -- it worth trying. Modified: stable/10/sys/dev/isp/isp_freebsd.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp_freebsd.c ============================================================================== --- stable/10/sys/dev/isp/isp_freebsd.c Thu Jun 25 07:22:37 2015 (r284799) +++ stable/10/sys/dev/isp/isp_freebsd.c Thu Jun 25 07:23:35 2015 (r284800) @@ -2914,6 +2914,14 @@ isp_handle_platform_ctio(ispsoftc_t *isp atp = isp_find_atpd(isp, tptr, ((ct_entry_t *)arg)->ct_fwhandle); } if (atp == NULL) { + /* + * In case of target mode disable at least ISP2532 return + * invalid zero ct_rxid value. Try to workaround that using + * tag_id from the CCB, pointed by valid ct_syshandle. + */ + atp = isp_find_atpd(isp, tptr, ccb->csio.tag_id); + } + if (atp == NULL) { rls_lun_statep(isp, tptr); isp_prt(isp, ISP_LOGERR, "%s: cannot find adjunct for %x after I/O", __func__, ccb->csio.tag_id); return; From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:24:48 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7A08698D258; Thu, 25 Jun 2015 07:24:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6B525169A; Thu, 25 Jun 2015 07:24:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P7Omu0096927; Thu, 25 Jun 2015 07:24:48 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P7OmbK096926; Thu, 25 Jun 2015 07:24:48 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250724.t5P7OmbK096926@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:24:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284801 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:24:48 -0000 Author: mav Date: Thu Jun 25 07:24:47 2015 New Revision: 284801 URL: https://svnweb.freebsd.org/changeset/base/284801 Log: MFC r284697: Add logging of executed mailbox command names. Previously those commands were logged only as part of register dump, that is not very readable. Modified: stable/10/sys/dev/isp/isp.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp.c ============================================================================== --- stable/10/sys/dev/isp/isp.c Thu Jun 25 07:23:35 2015 (r284800) +++ stable/10/sys/dev/isp/isp.c Thu Jun 25 07:24:47 2015 (r284801) @@ -7344,6 +7344,7 @@ isp_mboxcmd(ispsoftc_t *isp, mbreg_t *mb isp_prt(isp, ISP_LOGERR, "Unknown Command 0x%x", opcode); return; } + cname = fc_mbcmd_names[opcode]; ibits = ISP_FC_IBITS(opcode); obits = ISP_FC_OBITS(opcode); } else { @@ -7352,9 +7353,15 @@ isp_mboxcmd(ispsoftc_t *isp, mbreg_t *mb isp_prt(isp, ISP_LOGERR, "Unknown Command 0x%x", opcode); return; } + cname = scsi_mbcmd_names[opcode]; ibits = ISP_SCSI_IBITS(opcode); obits = ISP_SCSI_OBITS(opcode); } + if (cname == NULL) { + cname = tname; + ISP_SNPRINTF(tname, sizeof tname, "opcode %x", opcode); + } + isp_prt(isp, ISP_LOGDEBUG3, "Mailbox Command '%s'", cname); /* * Pick up any additional bits that the caller might have set. @@ -7440,11 +7447,6 @@ isp_mboxcmd(ispsoftc_t *isp, mbreg_t *mb if (mbp->logval == 0 || opcode == MBOX_EXEC_FIRMWARE) { return; } - cname = (IS_FC(isp))? fc_mbcmd_names[opcode] : scsi_mbcmd_names[opcode]; - if (cname == NULL) { - cname = tname; - ISP_SNPRINTF(tname, sizeof tname, "opcode %x", opcode); - } /* * Just to be chatty here... From owner-svn-src-stable-10@freebsd.org Thu Jun 25 07:25:41 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0C4B98D3A6; Thu, 25 Jun 2015 07:25:41 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B1B6A192F; Thu, 25 Jun 2015 07:25:41 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P7PfY8097142; Thu, 25 Jun 2015 07:25:41 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P7Pf2T097141; Thu, 25 Jun 2015 07:25:41 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201506250725.t5P7Pf2T097141@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 25 Jun 2015 07:25:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284802 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 07:25:41 -0000 Author: mav Date: Thu Jun 25 07:25:40 2015 New Revision: 284802 URL: https://svnweb.freebsd.org/changeset/base/284802 Log: MFC r284698: Dump additional config bytes for INIT_FIRMWARE_MULTI_ID. Modified: stable/10/sys/dev/isp/isp.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp.c ============================================================================== --- stable/10/sys/dev/isp/isp.c Thu Jun 25 07:24:47 2015 (r284801) +++ stable/10/sys/dev/isp/isp.c Thu Jun 25 07:25:40 2015 (r284802) @@ -2182,6 +2182,11 @@ isp_fibre_init_2400(ispsoftc_t *isp) isp_put_vp_port_info(isp, &pi, pdst); amt += ICB2400_VPOPT_WRITE_SIZE; } + if (isp->isp_dblev & ISP_LOGDEBUG1) { + isp_print_bytes(isp, "isp_fibre_init_2400", + amt - ICB2400_VPINFO_OFF, + (char *)fcp->isp_scratch + ICB2400_VPINFO_OFF); + } } /* From owner-svn-src-stable-10@freebsd.org Thu Jun 25 08:11:40 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1A06D98CC12; Thu, 25 Jun 2015 08:11:40 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 086371DAA; Thu, 25 Jun 2015 08:11:40 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5P8Bd2a021468; Thu, 25 Jun 2015 08:11:39 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5P8Bdq8021467; Thu, 25 Jun 2015 08:11:39 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201506250811.t5P8Bdq8021467@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Thu, 25 Jun 2015 08:11:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284805 - stable/10/cddl/contrib/opensolaris/lib/libzfs/common X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 08:11:40 -0000 Author: avg Date: Thu Jun 25 08:11:39 2015 New Revision: 284805 URL: https://svnweb.freebsd.org/changeset/base/284805 Log: MFC r284308: MFV r284042: 1778 Assertion failed: rn->rn_nozpool == B_FALSE Modified: stable/10/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c Directory Properties: stable/10/ (props changed) Modified: stable/10/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c ============================================================================== --- stable/10/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c Thu Jun 25 08:10:23 2015 (r284804) +++ stable/10/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c Thu Jun 25 08:11:39 2015 (r284805) @@ -23,6 +23,7 @@ * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013 by Delphix. All rights reserved. + * Copyright 2015 RackTop Systems. */ /* @@ -1094,11 +1095,7 @@ zpool_open_func(void *arg) } (void) close(fd); - rn->rn_config = config; - if (config != NULL) { - assert(rn->rn_nozpool == B_FALSE); - } } /* From owner-svn-src-stable-10@freebsd.org Thu Jun 25 13:01:14 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0DA6E98C83E; Thu, 25 Jun 2015 13:01:14 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E67571233; Thu, 25 Jun 2015 13:01:13 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PD1DYU066618; Thu, 25 Jun 2015 13:01:13 GMT (envelope-from tijl@FreeBSD.org) Received: (from tijl@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PD1AbQ066585; Thu, 25 Jun 2015 13:01:10 GMT (envelope-from tijl@FreeBSD.org) Message-Id: <201506251301.t5PD1AbQ066585@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: tijl set sender to tijl@FreeBSD.org using -f From: Tijl Coosemans Date: Thu, 25 Jun 2015 13:01:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284810 - in stable/10/lib/msun: . ld128 ld80 man src X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 13:01:14 -0000 Author: tijl Date: Thu Jun 25 13:01:10 2015 New Revision: 284810 URL: https://svnweb.freebsd.org/changeset/base/284810 Log: MFC r271651, r271719, r272138, r272457, r272845, r275476, r275518, r275614, r275819, r276176, r278154, r278160, r278339, r279127, r279240, r279491, r279493, r279856, r283032, r284423, r284426, r284427, r284428 Merge changes to libm from the past 9 months. This includes improvements to the Bessel functions and adds the C99 function lgammal. Added: stable/10/lib/msun/ld128/e_lgammal_r.c - copied, changed from r271651, head/lib/msun/ld128/e_lgammal_r.c stable/10/lib/msun/ld80/e_lgammal_r.c - copied, changed from r271651, head/lib/msun/ld80/e_lgammal_r.c stable/10/lib/msun/src/e_lgammal.c - copied unchanged from r271651, head/lib/msun/src/e_lgammal.c Modified: stable/10/lib/msun/Makefile stable/10/lib/msun/Symbol.map stable/10/lib/msun/ld128/k_expl.h stable/10/lib/msun/ld80/k_expl.h stable/10/lib/msun/man/j0.3 stable/10/lib/msun/man/lgamma.3 stable/10/lib/msun/src/catrig.c stable/10/lib/msun/src/catrigf.c stable/10/lib/msun/src/e_j0.c stable/10/lib/msun/src/e_j0f.c stable/10/lib/msun/src/e_j1.c stable/10/lib/msun/src/e_j1f.c stable/10/lib/msun/src/e_jn.c stable/10/lib/msun/src/e_jnf.c stable/10/lib/msun/src/e_lgamma.c stable/10/lib/msun/src/e_lgamma_r.c stable/10/lib/msun/src/e_lgammaf_r.c stable/10/lib/msun/src/imprecise.c stable/10/lib/msun/src/k_exp.c stable/10/lib/msun/src/k_expf.c stable/10/lib/msun/src/math.h stable/10/lib/msun/src/math_private.h stable/10/lib/msun/src/s_ccosh.c stable/10/lib/msun/src/s_ccoshf.c stable/10/lib/msun/src/s_cexp.c stable/10/lib/msun/src/s_cexpf.c stable/10/lib/msun/src/s_conj.c stable/10/lib/msun/src/s_conjf.c stable/10/lib/msun/src/s_conjl.c stable/10/lib/msun/src/s_cproj.c stable/10/lib/msun/src/s_cprojf.c stable/10/lib/msun/src/s_cprojl.c stable/10/lib/msun/src/s_csinh.c stable/10/lib/msun/src/s_csinhf.c stable/10/lib/msun/src/s_csqrt.c stable/10/lib/msun/src/s_csqrtf.c stable/10/lib/msun/src/s_csqrtl.c stable/10/lib/msun/src/s_ctanh.c stable/10/lib/msun/src/s_ctanhf.c stable/10/lib/msun/src/s_scalbln.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/msun/Makefile ============================================================================== --- stable/10/lib/msun/Makefile Thu Jun 25 11:32:41 2015 (r284809) +++ stable/10/lib/msun/Makefile Thu Jun 25 13:01:10 2015 (r284810) @@ -98,6 +98,7 @@ COMMON_SRCS+= s_copysignl.c s_fabsl.c s_ # If long double != double use these; otherwise, we alias the double versions. COMMON_SRCS+= e_acoshl.c e_acosl.c e_asinl.c e_atan2l.c e_atanhl.c \ e_coshl.c e_fmodl.c e_hypotl.c \ + e_lgammal.c e_lgammal_r.c \ e_remainderl.c e_sinhl.c e_sqrtl.c \ invtrig.c k_cosl.c k_sinl.c k_tanl.c \ s_asinhl.c s_atanl.c s_cbrtl.c s_ceill.c s_cosl.c s_cprojl.c \ @@ -188,7 +189,8 @@ MLINKS+=ilogb.3 ilogbf.3 ilogb.3 ilogbl. ilogb.3 logb.3 ilogb.3 logbf.3 ilogb.3 logbl.3 MLINKS+=j0.3 j1.3 j0.3 jn.3 j0.3 y0.3 j0.3 y1.3 j0.3 y1f.3 j0.3 yn.3 MLINKS+=j0.3 j0f.3 j0.3 j1f.3 j0.3 jnf.3 j0.3 y0f.3 j0.3 ynf.3 -MLINKS+=lgamma.3 gamma.3 lgamma.3 gammaf.3 lgamma.3 lgammaf.3 \ +MLINKS+=lgamma.3 gamma.3 lgamma.3 gammaf.3 \ + lgamma.3 lgammaf.3 lgamma.3 lgammal.3 \ lgamma.3 tgamma.3 lgamma.3 tgammaf.3 MLINKS+=log.3 log10.3 log.3 log10f.3 log.3 log10l.3 \ log.3 log1p.3 log.3 log1pf.3 log.3 log1pl.3 \ Modified: stable/10/lib/msun/Symbol.map ============================================================================== --- stable/10/lib/msun/Symbol.map Thu Jun 25 11:32:41 2015 (r284809) +++ stable/10/lib/msun/Symbol.map Thu Jun 25 13:01:10 2015 (r284810) @@ -269,6 +269,7 @@ FBSD_1.3 { erfl; expl; expm1l; + lgammal; log10l; log1pl; log2l; @@ -276,7 +277,11 @@ FBSD_1.3 { sinhl; tanhl; /* Implemented as weak aliases for imprecise versions */ - lgammal; powl; tgammal; }; + +/* First added in 11.0-CURRENT */ +FBSD_1.4 { + lgammal_r; +}; Copied and modified: stable/10/lib/msun/ld128/e_lgammal_r.c (from r271651, head/lib/msun/ld128/e_lgammal_r.c) ============================================================================== --- head/lib/msun/ld128/e_lgammal_r.c Mon Sep 15 23:21:57 2014 (r271651, copy source) +++ stable/10/lib/msun/ld128/e_lgammal_r.c Thu Jun 25 13:01:10 2015 (r284810) @@ -206,13 +206,13 @@ sin_pil(long double x) n--; } n &= 7; - y = y - z + n * 0.25L; + y = y - z + n * 0.25; switch (n) { case 0: y = __kernel_sinl(pi*y,zero,0); break; case 1: case 2: y = __kernel_cosl(pi*(0.5-y),zero); break; - case 3: + case 3: case 4: y = __kernel_sinl(pi*(one-y),zero,0); break; case 5: case 6: y = -__kernel_cosl(pi*(y-1.5),zero); break; @@ -221,37 +221,33 @@ sin_pil(long double x) return -y; } - long double lgammal_r(long double x, int *signgamp) { long double nadj,p,p1,p2,p3,q,r,t,w,y,z; uint64_t llx,lx; int i; - uint16_t hx; - - EXTRACT_LDBL128_WORDS(hx, lx, llx, x); + uint16_t hx,ix; - if((hx & 0x7fff) == 0x7fff) { /* erfl(nan)=nan */ - i = (hx>>15)<<1; - return (1-i)+one/x; /* erfl(+-inf)=+-1 */ - } + EXTRACT_LDBL128_WORDS(hx,lx,llx,x); - /* purge off +-inf, NaN, +-0, tiny and negative arguments */ + /* purge +-Inf and NaNs */ *signgamp = 1; - if((hx & 0x7fff) == 0x7fff) /* x is +-Inf or NaN */ - return x*x; - if((hx==0||hx==0x8000)&&lx==0) return one/vzero; - - /* purge off tiny and negative arguments */ - if(fabsl(x)<0x1p-119L) { - if(hx&0x8000) { - *signgamp = -1; - return -logl(-x); - } else return -logl(x); + ix = hx&0x7fff; + if(ix==0x7fff) return x*x; + + /* purge +-0 and tiny arguments */ + *signgamp = 1-2*(hx>>15); + if(ix<0x3fff-116) { /* |x|<2**-(p+3), return -log(|x|) */ + if((ix|lx|llx)==0) + return one/vzero; + return -logl(fabsl(x)); } + + /* purge negative integers and start evaluation for other x < 0 */ if(hx&0x8000) { - if(fabsl(x)>=0x1p112) + *signgamp = 1; + if(ix>=0x3fff+112) /* |x|>=2**(p-1), must be -integer */ return one/vzero; t = sin_pil(x); if(t==zero) return one/vzero; @@ -260,17 +256,19 @@ lgammal_r(long double x, int *signgamp) x = -x; } - if(x == 1 || x ==2) r = 0; - else if(x<2) { - if(x<=0.8999996185302734) { + /* purge 1 and 2 */ + if((ix==0x3fff || ix==0x4000) && (lx|llx)==0) r = 0; + /* for x < 2.0 */ + else if(ix<0x4000) { + if(x<=8.9999961853027344e-01) { r = -logl(x); - if(x>=0.7315998077392578) {y = 1-x; i= 0;} - else if(x>=0.2316399812698364) {y= x-(tc-1); i=1;} + if(x>=7.3159980773925781e-01) {y = 1-x; i= 0;} + else if(x>=2.3163998126983643e-01) {y= x-(tc-1); i=1;} else {y = x; i=2;} } else { - r = 0; - if(x>=1.7316312789916992) {y=2-x;i=0;} - else if(x>=1.2316322326660156) {y=x-tc;i=1;} + r = 0; + if(x>=1.7316312789916992e+00) {y=2-x;i=0;} + else if(x>=1.2316322326660156e+00) {y=x-tc;i=1;} else {y=x-1;i=2;} } switch(i) { @@ -281,23 +279,24 @@ lgammal_r(long double x, int *signgamp) p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*(a11+z*(a13+z*(a15+ z*(a17+z*(a19+z*(a21+z*a23))))))))))); p = y*p1+p2; - r += (p-y/2); break; + r += p-y/2; break; case 1: p = t0+y*t1+tt+y*y*(t2+y*(t3+y*(t4+y*(t5+y*(t6+y*(t7+y*(t8+ y*(t9+y*(t10+y*(t11+y*(t12+y*(t13+y*(t14+y*(t15+y*(t16+ y*(t17+y*(t18+y*(t19+y*(t20+y*(t21+y*(t22+y*(t23+ y*(t24+y*(t25+y*(t26+y*(t27+y*(t28+y*(t29+y*(t30+ y*(t31+y*t32)))))))))))))))))))))))))))))); - r += (tf + p); break; + r += tf + p; break; case 2: p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*(u5+y*(u6+y*(u7+ y*(u8+y*(u9+y*u10)))))))))); p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*(v5+y*(v6+y*(v7+ y*(v8+y*(v9+y*(v10+y*v11)))))))))); - r += (-y/2 + p1/p2); + r += p1/p2-y/2; } } - else if(x<8) { + /* x < 8.0 */ + else if(ix<0x4002) { i = x; y = x-i; p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*(s6+y*(s7+y*(s8+ @@ -314,7 +313,8 @@ lgammal_r(long double x, int *signgamp) case 3: z *= (y+2); /* FALLTHRU */ r += logl(z); break; } - } else if (x < 0x1p119L) { + /* 8.0 <= x < 2**(p+3) */ + } else if (ix<0x3fff+116) { t = logl(x); z = one/x; y = z*z; @@ -322,6 +322,7 @@ lgammal_r(long double x, int *signgamp) y*(w9+y*(w10+y*(w11+y*(w12+y*(w13+y*(w14+y*(w15+y*(w16+ y*(w17+y*w18))))))))))))))))); r = (x-half)*(t-one)+w; + /* 2**(p+3) <= x <= inf */ } else r = x*(logl(x)-1); if(hx&0x8000) r = nadj - r; Modified: stable/10/lib/msun/ld128/k_expl.h ============================================================================== --- stable/10/lib/msun/ld128/k_expl.h Thu Jun 25 11:32:41 2015 (r284809) +++ stable/10/lib/msun/ld128/k_expl.h Thu Jun 25 13:01:10 2015 (r284810) @@ -322,7 +322,7 @@ __ldexp_cexpl(long double complex z, int scale2 = 1; SET_LDBL_EXPSIGN(scale1, BIAS + expt - half_expt); - return (cpackl(cos(y) * exp_x * scale1 * scale2, + return (CMPLXL(cos(y) * exp_x * scale1 * scale2, sinl(y) * exp_x * scale1 * scale2)); } #endif /* _COMPLEX_H */ Copied and modified: stable/10/lib/msun/ld80/e_lgammal_r.c (from r271651, head/lib/msun/ld80/e_lgammal_r.c) ============================================================================== --- head/lib/msun/ld80/e_lgammal_r.c Mon Sep 15 23:21:57 2014 (r271651, copy source) +++ stable/10/lib/msun/ld80/e_lgammal_r.c Thu Jun 25 13:01:10 2015 (r284810) @@ -14,12 +14,11 @@ __FBSDID("$FreeBSD$"); /* - * See s_lgamma_r.c for complete comments. + * See e_lgamma_r.c for complete comments. * * Converted to long double by Steven G. Kargl. */ -#include #ifdef __i386__ #include #endif @@ -219,8 +218,8 @@ sin_pil(long double x) y = -x; - vz = y+0x1p63L; - z = vz-0x1p63L; + vz = y+0x1p63; + z = vz-0x1p63; if (z == y) return zero; @@ -243,7 +242,7 @@ sin_pil(long double x) case 5: case 6: y = -__kernel_cosl(pi*(y-1.5),zero); break; default: y = __kernel_sinl(pi*(y-2.0),zero,0); break; - } + } return -y; } @@ -253,27 +252,29 @@ lgammal_r(long double x, int *signgamp) long double nadj,p,p1,p2,p3,q,r,t,w,y,z; uint64_t lx; int i; - uint16_t hx; + uint16_t hx,ix; EXTRACT_LDBL80_WORDS(hx,lx,x); - /* purge off +-inf, NaN, +-0 */ + /* purge +-Inf and NaNs */ *signgamp = 1; - if((hx & 0x7fff) == 0x7fff) /* x is +-Inf or NaN */ - return x*x; - if((hx==0||hx==0x8000)&&lx==0) return one/vzero; + ix = hx&0x7fff; + if(ix==0x7fff) return x*x; ENTERI(); - /* purge off tiny and negative arguments */ - if(fabsl(x)<0x1p-70L) { /* |x|<2**-70, return -log(|x|) */ - if(hx&0x8000) { - *signgamp = -1; - RETURNI(-logl(-x)); - } else RETURNI(-logl(x)); + /* purge +-0 and tiny arguments */ + *signgamp = 1-2*(hx>>15); + if(ix<0x3fff-67) { /* |x|<2**-(p+3), return -log(|x|) */ + if((ix|lx)==0) + RETURNI(one/vzero); + RETURNI(-logl(fabsl(x))); } + + /* purge negative integers and start evaluation for other x < 0 */ if(hx&0x8000) { - if(fabsl(x)>=0x1p63) /* |x|>=2**(p-1), must be -integer */ + *signgamp = 1; + if(ix>=0x3fff+63) /* |x|>=2**(p-1), must be -integer */ RETURNI(one/vzero); t = sin_pil(x); if(t==zero) RETURNI(one/vzero); /* -integer */ @@ -282,19 +283,30 @@ lgammal_r(long double x, int *signgamp) x = -x; } - /* purge off 1 and 2 */ - if(x == 1 || x == 2) r = 0; + /* purge 1 and 2 */ + if((ix==0x3fff || ix==0x4000) && lx==0x8000000000000000ULL) r = 0; /* for x < 2.0 */ - else if(x<2) { - if(x<=0.8999996185302734) { /* lgamma(x) = lgamma(x+1)-log(x) */ - r = - logl(x); - if(x>=0.7315998077392578) {y = 1-x; i= 0;} - else if(x>=0.2316399812698364) {y= x-(tc-1); i=1;} - else {y = x; i=2;} + else if(ix<0x4000) { + /* + * XXX Supposedly, one can use the following information to replace the + * XXX FP rational expressions. A similar approach is appropriate + * XXX for ld128, but one (may need?) needs to consider llx, too. + * + * 8.9999961853027344e-01 3ffe e666600000000000 + * 7.3159980773925781e-01 3ffe bb4a200000000000 + * 2.3163998126983643e-01 3ffc ed33080000000000 + * 1.7316312789916992e+00 3fff dda6180000000000 + * 1.2316322326660156e+00 3fff 9da6200000000000 + */ + if(x<8.9999961853027344e-01) { + r = -logl(x); + if(x>=7.3159980773925781e-01) {y = 1-x; i= 0;} + else if(x>=2.3163998126983643e-01) {y= x-(tc-1); i=1;} + else {y = x; i=2;} } else { r = 0; - if(x>=1.7316312789916992) {y=2-x;i=0;} - else if(x>=1.2316322326660156) {y=x-tc;i=1;} + if(x>=1.7316312789916992e+00) {y=2-x;i=0;} + else if(x>=1.2316322326660156e+00) {y=x-tc;i=1;} else {y=x-1;i=2;} } switch(i) { @@ -303,19 +315,20 @@ lgammal_r(long double x, int *signgamp) p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*(a10+z*a12))))); p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*(a11+z*a13)))))); p = y*p1+p2; - r += (p-y/2); break; + r += p-y/2; break; case 1: p = t0+y*t1+tt+y*y*(t2+y*(t3+y*(t4+y*(t5+y*(t6+y*(t7+y*(t8+ y*(t9+y*(t10+y*(t11+y*(t12+y*(t13+y*(t14+y*(t15+y*(t16+ y*(t17+y*t18)))))))))))))))); - r += (tf + p); break; + r += tf + p; break; case 2: p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*(u5+y*u6)))))); p2 = 1+y*(v1+y*(v2+y*(v3+y*(v4+y*(v5+y*v6))))); - r += (-y/2 + p1/p2); + r += p1/p2-y/2; } } - else if(x<8) { + /* x < 8.0 */ + else if(ix<0x4002) { i = x; y = x-i; p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6)))))); @@ -330,15 +343,15 @@ lgammal_r(long double x, int *signgamp) case 3: z *= (y+2); /* FALLTHRU */ r += logl(z); break; } - /* 8.0 <= x < 2**70 */ - } else if (x < 0x1p70L) { + /* 8.0 <= x < 2**(p+3) */ + } else if (ix<0x3fff+67) { t = logl(x); z = one/x; y = z*z; w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*(w6+y*(w7+y*w8))))))); r = (x-half)*(t-one)+w; + /* 2**(p+3) <= x <= inf */ } else - /* 2**70 <= x <= inf */ r = x*(logl(x)-1); if(hx&0x8000) r = nadj - r; RETURNI(r); Modified: stable/10/lib/msun/ld80/k_expl.h ============================================================================== --- stable/10/lib/msun/ld80/k_expl.h Thu Jun 25 11:32:41 2015 (r284809) +++ stable/10/lib/msun/ld80/k_expl.h Thu Jun 25 13:01:10 2015 (r284810) @@ -299,7 +299,7 @@ __ldexp_cexpl(long double complex z, int scale2 = 1; SET_LDBL_EXPSIGN(scale1, BIAS + expt - half_expt); - return (cpackl(cos(y) * exp_x * scale1 * scale2, + return (CMPLXL(cos(y) * exp_x * scale1 * scale2, sinl(y) * exp_x * scale1 * scale2)); } #endif /* _COMPLEX_H */ Modified: stable/10/lib/msun/man/j0.3 ============================================================================== --- stable/10/lib/msun/man/j0.3 Thu Jun 25 11:32:41 2015 (r284809) +++ stable/10/lib/msun/man/j0.3 Thu Jun 25 13:01:10 2015 (r284810) @@ -28,7 +28,7 @@ .\" from: @(#)j0.3 6.7 (Berkeley) 4/19/91 .\" $FreeBSD$ .\" -.Dd February 18, 2008 +.Dd March 10, 2015 .Dt J0 3 .Os .Sh NAME @@ -77,24 +77,17 @@ The functions .Fn j0 , .Fn j0f , -.Fn j1 +.Fn j1 , and .Fn j1f -compute the -.Em Bessel function of the first kind of the order -0 and the -.Em order -1, respectively, -for the -real value +compute the Bessel function of the first kind of orders +0 and 1 for the real value .Fa x ; the functions .Fn jn and .Fn jnf -compute the -.Em Bessel function of the first kind of the integer -.Em order +compute the Bessel function of the first kind of the integer order .Fa n for the real value .Fa x . @@ -105,13 +98,8 @@ The functions .Fn y1 , and .Fn y1f -compute the linearly independent -.Em Bessel function of the second kind of the order -0 and the -.Em order -1, respectively, -for the -positive +compute the linearly independent Bessel function of the second kind +of orders 0 and 1 for the positive .Em real value .Fa x ; @@ -119,9 +107,7 @@ the functions .Fn yn and .Fn ynf -compute the -.Em Bessel function of the second kind for the integer -.Em order +compute the Bessel function of the second kind for the integer order .Fa n for the positive .Em real @@ -141,11 +127,20 @@ and .Fn ynf . If .Fa x -is negative, these routines will generate an invalid exception and -return \*(Na. +is negative, including -\*(If, these routines will generate an invalid +exception and return \*(Na. +If +.Fa x +is \*(Pm0, these routines +will generate a divide-by-zero exception and return -\*(If. If .Fa x -is 0 or a sufficiently small positive number, these routines +is a sufficiently small positive number, then +.Fn y1 , +.Fn y1f , +.Fn yn , +and +.Fn ynf will generate an overflow exception and return -\*(If. .Sh SEE ALSO .Xr math 3 Modified: stable/10/lib/msun/man/lgamma.3 ============================================================================== --- stable/10/lib/msun/man/lgamma.3 Thu Jun 25 11:32:41 2015 (r284809) +++ stable/10/lib/msun/man/lgamma.3 Thu Jun 25 13:01:10 2015 (r284810) @@ -28,7 +28,7 @@ .\" from: @(#)lgamma.3 6.6 (Berkeley) 12/3/92 .\" $FreeBSD$ .\" -.Dd January 14, 2005 +.Dd September 12, 2014 .Dt LGAMMA 3 .Os .Sh NAME @@ -36,6 +36,8 @@ .Nm lgamma_r , .Nm lgammaf , .Nm lgammaf_r , +.Nm lgammal , +.Nm lgammal_r , .Nm gamma , .Nm gamma_r , .Nm gammaf , @@ -58,6 +60,10 @@ .Fn lgammaf "float x" .Ft float .Fn lgammaf_r "float x" "int *signgamp" +.Ft "long double" +.Fn lgammal "long double x" +.Ft "long double" +.Fn lgammal_r "long double x" "int *signgamp" .Ft double .Fn gamma "double x" .Ft double @@ -66,14 +72,15 @@ .Fn gammaf "float x" .Ft float .Fn gammaf_r "float x" "int *signgamp" -.Ft double +.Ft "long double" .Fn tgamma "double x" .Ft float .Fn tgammaf "float x" .Sh DESCRIPTION -.Fn lgamma x +.Fn lgamma x , +.Fn lgammaf x , and -.Fn lgammaf x +.Fn lgammal x .if t \{\ return ln\||\(*G(x)| where .Bd -unfilled -offset indent @@ -87,13 +94,15 @@ The external integer .Fa signgam returns the sign of \(*G(x). .Pp -.Fn lgamma_r x signgamp +.Fn lgamma_r x signgamp , +.Fn lgammaf_r x signgamp , and -.Fn lgammaf_r x signgamp +.Fn lgammal_r x signgamp provide the same functionality as -.Fn lgamma x +.Fn lgamma x , +.Fn lgammaf x , and -.Fn lgammaf x +.Fn lgammal x , but the caller must provide an integer to store the sign of \(*G(x). .Pp The @@ -115,6 +124,7 @@ are deprecated aliases for and .Fn lgammaf_r , respectively. + .Sh IDIOSYNCRASIES Do not use the expression .Dq Li signgam\(**exp(lgamma(x)) @@ -139,14 +149,18 @@ Exponentiation of will lose up to 10 significant bits. .Sh RETURN VALUES .Fn gamma , -.Fn gamma_r , .Fn gammaf , +.Fn gammal , +.Fn gamma_r , .Fn gammaf_r , +.Fn gammal_r , .Fn lgamma , -.Fn lgamma_r , .Fn lgammaf , +.Fn lgammal , +.Fn lgamma_r , +.Fn lgammaf_r , and -.Fn lgammaf_r +.Fn lgammal_r return appropriate values unless an argument is out of range. Overflow will occur for sufficiently large positive values, and non-positive integers. @@ -159,6 +173,7 @@ will underflow. The .Fn lgamma , .Fn lgammaf , +.Fn lgammal , .Fn tgamma , and .Fn tgammaf Modified: stable/10/lib/msun/src/catrig.c ============================================================================== --- stable/10/lib/msun/src/catrig.c Thu Jun 25 11:32:41 2015 (r284809) +++ stable/10/lib/msun/src/catrig.c Thu Jun 25 13:01:10 2015 (r284810) @@ -286,19 +286,19 @@ casinh(double complex z) if (isnan(x) || isnan(y)) { /* casinh(+-Inf + I*NaN) = +-Inf + I*NaN */ if (isinf(x)) - return (cpack(x, y + y)); + return (CMPLX(x, y + y)); /* casinh(NaN + I*+-Inf) = opt(+-)Inf + I*NaN */ if (isinf(y)) - return (cpack(y, x + x)); + return (CMPLX(y, x + x)); /* casinh(NaN + I*0) = NaN + I*0 */ if (y == 0) - return (cpack(x + x, y)); + return (CMPLX(x + x, y)); /* * All other cases involving NaN return NaN + I*NaN. * C99 leaves it optional whether to raise invalid if one of * the arguments is not NaN, so we opt not to raise it. */ - return (cpack(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); + return (CMPLX(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); } if (ax > RECIP_EPSILON || ay > RECIP_EPSILON) { @@ -307,7 +307,7 @@ casinh(double complex z) w = clog_for_large_values(z) + m_ln2; else w = clog_for_large_values(-z) + m_ln2; - return (cpack(copysign(creal(w), x), copysign(cimag(w), y))); + return (CMPLX(copysign(creal(w), x), copysign(cimag(w), y))); } /* Avoid spuriously raising inexact for z = 0. */ @@ -325,7 +325,7 @@ casinh(double complex z) ry = asin(B); else ry = atan2(new_y, sqrt_A2my2); - return (cpack(copysign(rx, x), copysign(ry, y))); + return (CMPLX(copysign(rx, x), copysign(ry, y))); } /* @@ -335,9 +335,9 @@ casinh(double complex z) double complex casin(double complex z) { - double complex w = casinh(cpack(cimag(z), creal(z))); + double complex w = casinh(CMPLX(cimag(z), creal(z))); - return (cpack(cimag(w), creal(w))); + return (CMPLX(cimag(w), creal(w))); } /* @@ -370,19 +370,19 @@ cacos(double complex z) if (isnan(x) || isnan(y)) { /* cacos(+-Inf + I*NaN) = NaN + I*opt(-)Inf */ if (isinf(x)) - return (cpack(y + y, -INFINITY)); + return (CMPLX(y + y, -INFINITY)); /* cacos(NaN + I*+-Inf) = NaN + I*-+Inf */ if (isinf(y)) - return (cpack(x + x, -y)); + return (CMPLX(x + x, -y)); /* cacos(0 + I*NaN) = PI/2 + I*NaN with inexact */ if (x == 0) - return (cpack(pio2_hi + pio2_lo, y + y)); + return (CMPLX(pio2_hi + pio2_lo, y + y)); /* * All other cases involving NaN return NaN + I*NaN. * C99 leaves it optional whether to raise invalid if one of * the arguments is not NaN, so we opt not to raise it. */ - return (cpack(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); + return (CMPLX(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); } if (ax > RECIP_EPSILON || ay > RECIP_EPSILON) { @@ -392,18 +392,18 @@ cacos(double complex z) ry = creal(w) + m_ln2; if (sy == 0) ry = -ry; - return (cpack(rx, ry)); + return (CMPLX(rx, ry)); } /* Avoid spuriously raising inexact for z = 1. */ if (x == 1 && y == 0) - return (cpack(0, -y)); + return (CMPLX(0, -y)); /* All remaining cases are inexact. */ raise_inexact(); if (ax < SQRT_6_EPSILON / 4 && ay < SQRT_6_EPSILON / 4) - return (cpack(pio2_hi - (x - pio2_lo), -y)); + return (CMPLX(pio2_hi - (x - pio2_lo), -y)); do_hard_work(ay, ax, &ry, &B_is_usable, &B, &sqrt_A2mx2, &new_x); if (B_is_usable) { @@ -419,7 +419,7 @@ cacos(double complex z) } if (sy == 0) ry = -ry; - return (cpack(rx, ry)); + return (CMPLX(rx, ry)); } /* @@ -437,15 +437,15 @@ cacosh(double complex z) ry = cimag(w); /* cacosh(NaN + I*NaN) = NaN + I*NaN */ if (isnan(rx) && isnan(ry)) - return (cpack(ry, rx)); + return (CMPLX(ry, rx)); /* cacosh(NaN + I*+-Inf) = +Inf + I*NaN */ /* cacosh(+-Inf + I*NaN) = +Inf + I*NaN */ if (isnan(rx)) - return (cpack(fabs(ry), rx)); + return (CMPLX(fabs(ry), rx)); /* cacosh(0 + I*NaN) = NaN + I*NaN */ if (isnan(ry)) - return (cpack(ry, ry)); - return (cpack(fabs(ry), copysign(rx, cimag(z)))); + return (CMPLX(ry, ry)); + return (CMPLX(fabs(ry), copysign(rx, cimag(z)))); } /* @@ -475,16 +475,16 @@ clog_for_large_values(double complex z) * this method is still poor since it is uneccessarily slow. */ if (ax > DBL_MAX / 2) - return (cpack(log(hypot(x / m_e, y / m_e)) + 1, atan2(y, x))); + return (CMPLX(log(hypot(x / m_e, y / m_e)) + 1, atan2(y, x))); /* * Avoid overflow when x or y is large. Avoid underflow when x or * y is small. */ if (ax > QUARTER_SQRT_MAX || ay < SQRT_MIN) - return (cpack(log(hypot(x, y)), atan2(y, x))); + return (CMPLX(log(hypot(x, y)), atan2(y, x))); - return (cpack(log(ax * ax + ay * ay) / 2, atan2(y, x))); + return (CMPLX(log(ax * ax + ay * ay) / 2, atan2(y, x))); } /* @@ -575,30 +575,30 @@ catanh(double complex z) /* This helps handle many cases. */ if (y == 0 && ax <= 1) - return (cpack(atanh(x), y)); + return (CMPLX(atanh(x), y)); /* To ensure the same accuracy as atan(), and to filter out z = 0. */ if (x == 0) - return (cpack(x, atan(y))); + return (CMPLX(x, atan(y))); if (isnan(x) || isnan(y)) { /* catanh(+-Inf + I*NaN) = +-0 + I*NaN */ if (isinf(x)) - return (cpack(copysign(0, x), y + y)); + return (CMPLX(copysign(0, x), y + y)); /* catanh(NaN + I*+-Inf) = sign(NaN)0 + I*+-PI/2 */ if (isinf(y)) - return (cpack(copysign(0, x), + return (CMPLX(copysign(0, x), copysign(pio2_hi + pio2_lo, y))); /* * All other cases involving NaN return NaN + I*NaN. * C99 leaves it optional whether to raise invalid if one of * the arguments is not NaN, so we opt not to raise it. */ - return (cpack(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); + return (CMPLX(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); } if (ax > RECIP_EPSILON || ay > RECIP_EPSILON) - return (cpack(real_part_reciprocal(x, y), + return (CMPLX(real_part_reciprocal(x, y), copysign(pio2_hi + pio2_lo, y))); if (ax < SQRT_3_EPSILON / 2 && ay < SQRT_3_EPSILON / 2) { @@ -623,7 +623,7 @@ catanh(double complex z) else ry = atan2(2 * ay, (1 - ax) * (1 + ax) - ay * ay) / 2; - return (cpack(copysign(rx, x), copysign(ry, y))); + return (CMPLX(copysign(rx, x), copysign(ry, y))); } /* @@ -633,7 +633,7 @@ catanh(double complex z) double complex catan(double complex z) { - double complex w = catanh(cpack(cimag(z), creal(z))); + double complex w = catanh(CMPLX(cimag(z), creal(z))); - return (cpack(cimag(w), creal(w))); + return (CMPLX(cimag(w), creal(w))); } Modified: stable/10/lib/msun/src/catrigf.c ============================================================================== --- stable/10/lib/msun/src/catrigf.c Thu Jun 25 11:32:41 2015 (r284809) +++ stable/10/lib/msun/src/catrigf.c Thu Jun 25 13:01:10 2015 (r284810) @@ -156,12 +156,12 @@ casinhf(float complex z) if (isnan(x) || isnan(y)) { if (isinf(x)) - return (cpackf(x, y + y)); + return (CMPLXF(x, y + y)); if (isinf(y)) - return (cpackf(y, x + x)); + return (CMPLXF(y, x + x)); if (y == 0) - return (cpackf(x + x, y)); - return (cpackf(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); + return (CMPLXF(x + x, y)); + return (CMPLXF(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); } if (ax > RECIP_EPSILON || ay > RECIP_EPSILON) { @@ -169,7 +169,7 @@ casinhf(float complex z) w = clog_for_large_values(z) + m_ln2; else w = clog_for_large_values(-z) + m_ln2; - return (cpackf(copysignf(crealf(w), x), + return (CMPLXF(copysignf(crealf(w), x), copysignf(cimagf(w), y))); } @@ -186,15 +186,15 @@ casinhf(float complex z) ry = asinf(B); else ry = atan2f(new_y, sqrt_A2my2); - return (cpackf(copysignf(rx, x), copysignf(ry, y))); + return (CMPLXF(copysignf(rx, x), copysignf(ry, y))); } float complex casinf(float complex z) { - float complex w = casinhf(cpackf(cimagf(z), crealf(z))); + float complex w = casinhf(CMPLXF(cimagf(z), crealf(z))); - return (cpackf(cimagf(w), crealf(w))); + return (CMPLXF(cimagf(w), crealf(w))); } float complex @@ -214,12 +214,12 @@ cacosf(float complex z) if (isnan(x) || isnan(y)) { if (isinf(x)) - return (cpackf(y + y, -INFINITY)); + return (CMPLXF(y + y, -INFINITY)); if (isinf(y)) - return (cpackf(x + x, -y)); + return (CMPLXF(x + x, -y)); if (x == 0) - return (cpackf(pio2_hi + pio2_lo, y + y)); - return (cpackf(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); + return (CMPLXF(pio2_hi + pio2_lo, y + y)); + return (CMPLXF(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); } if (ax > RECIP_EPSILON || ay > RECIP_EPSILON) { @@ -228,16 +228,16 @@ cacosf(float complex z) ry = crealf(w) + m_ln2; if (sy == 0) ry = -ry; - return (cpackf(rx, ry)); + return (CMPLXF(rx, ry)); } if (x == 1 && y == 0) - return (cpackf(0, -y)); + return (CMPLXF(0, -y)); raise_inexact(); if (ax < SQRT_6_EPSILON / 4 && ay < SQRT_6_EPSILON / 4) - return (cpackf(pio2_hi - (x - pio2_lo), -y)); + return (CMPLXF(pio2_hi - (x - pio2_lo), -y)); do_hard_work(ay, ax, &ry, &B_is_usable, &B, &sqrt_A2mx2, &new_x); if (B_is_usable) { @@ -253,7 +253,7 @@ cacosf(float complex z) } if (sy == 0) ry = -ry; - return (cpackf(rx, ry)); + return (CMPLXF(rx, ry)); } float complex @@ -266,12 +266,12 @@ cacoshf(float complex z) rx = crealf(w); ry = cimagf(w); if (isnan(rx) && isnan(ry)) - return (cpackf(ry, rx)); + return (CMPLXF(ry, rx)); if (isnan(rx)) - return (cpackf(fabsf(ry), rx)); + return (CMPLXF(fabsf(ry), rx)); if (isnan(ry)) - return (cpackf(ry, ry)); - return (cpackf(fabsf(ry), copysignf(rx, cimagf(z)))); + return (CMPLXF(ry, ry)); + return (CMPLXF(fabsf(ry), copysignf(rx, cimagf(z)))); } static float complex @@ -291,13 +291,13 @@ clog_for_large_values(float complex z) } if (ax > FLT_MAX / 2) - return (cpackf(logf(hypotf(x / m_e, y / m_e)) + 1, + return (CMPLXF(logf(hypotf(x / m_e, y / m_e)) + 1, atan2f(y, x))); if (ax > QUARTER_SQRT_MAX || ay < SQRT_MIN) - return (cpackf(logf(hypotf(x, y)), atan2f(y, x))); + return (CMPLXF(logf(hypotf(x, y)), atan2f(y, x))); - return (cpackf(logf(ax * ax + ay * ay) / 2, atan2f(y, x))); + return (CMPLXF(logf(ax * ax + ay * ay) / 2, atan2f(y, x))); } static inline float @@ -346,22 +346,22 @@ catanhf(float complex z) ay = fabsf(y); if (y == 0 && ax <= 1) - return (cpackf(atanhf(x), y)); + return (CMPLXF(atanhf(x), y)); if (x == 0) - return (cpackf(x, atanf(y))); + return (CMPLXF(x, atanf(y))); if (isnan(x) || isnan(y)) { if (isinf(x)) - return (cpackf(copysignf(0, x), y + y)); + return (CMPLXF(copysignf(0, x), y + y)); if (isinf(y)) - return (cpackf(copysignf(0, x), + return (CMPLXF(copysignf(0, x), copysignf(pio2_hi + pio2_lo, y))); - return (cpackf(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); + return (CMPLXF(x + 0.0L + (y + 0), x + 0.0L + (y + 0))); } if (ax > RECIP_EPSILON || ay > RECIP_EPSILON) - return (cpackf(real_part_reciprocal(x, y), + return (CMPLXF(real_part_reciprocal(x, y), copysignf(pio2_hi + pio2_lo, y))); if (ax < SQRT_3_EPSILON / 2 && ay < SQRT_3_EPSILON / 2) { @@ -381,13 +381,13 @@ catanhf(float complex z) else ry = atan2f(2 * ay, (1 - ax) * (1 + ax) - ay * ay) / 2; - return (cpackf(copysignf(rx, x), copysignf(ry, y))); + return (CMPLXF(copysignf(rx, x), copysignf(ry, y))); } float complex catanf(float complex z) { - float complex w = catanhf(cpackf(cimagf(z), crealf(z))); + float complex w = catanhf(CMPLXF(cimagf(z), crealf(z))); - return (cpackf(cimagf(w), crealf(w))); + return (CMPLXF(cimagf(w), crealf(w))); } Modified: stable/10/lib/msun/src/e_j0.c ============================================================================== --- stable/10/lib/msun/src/e_j0.c Thu Jun 25 11:32:41 2015 (r284809) +++ stable/10/lib/msun/src/e_j0.c Thu Jun 25 13:01:10 2015 (r284810) @@ -62,7 +62,9 @@ __FBSDID("$FreeBSD$"); #include "math.h" #include "math_private.h" -static double pzero(double), qzero(double); +static __inline double pzero(double), qzero(double); + +static const volatile double vone = 1, vzero = 0; static const double huge = 1e300, @@ -115,7 +117,7 @@ __ieee754_j0(double x) if(ix<0x3f200000) { /* |x| < 2**-13 */ if(huge+x>one) { /* raise inexact if x != 0 */ if(ix<0x3e400000) return one; /* |x|<2**-27 */ - else return one - 0.25*x*x; + else return one - x*x/4; } } z = x*x; @@ -150,10 +152,16 @@ __ieee754_y0(double x) EXTRACT_WORDS(hx,lx,x); ix = 0x7fffffff&hx; - /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0 */ - if(ix>=0x7ff00000) return one/(x+x*x); - if((ix|lx)==0) return -one/zero; - if(hx<0) return zero/zero; + /* + * y0(NaN) = NaN. + * y0(Inf) = 0. + * y0(-Inf) = NaN and raise invalid exception. + */ + if(ix>=0x7ff00000) return vone/(x+x*x); + /* y0(+-0) = -inf and raise divide-by-zero exception. */ + if((ix|lx)==0) return -one/vzero; + /* y0(x<0) = NaN and raise invalid exception. */ + if(hx<0) return vzero/vzero; if(ix >= 0x40000000) { /* |x| >= 2.0 */ /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0)) * where x0 = x-pi/4 @@ -268,7 +276,8 @@ static const double pS2[5] = { 1.46576176948256193810e+01, /* 0x402D50B3, 0x44391809 */ }; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-10@freebsd.org Thu Jun 25 14:58:52 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5336A98CDEA; Thu, 25 Jun 2015 14:58:52 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 43DF411EC; Thu, 25 Jun 2015 14:58:52 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PEwqRC023437; Thu, 25 Jun 2015 14:58:52 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PEwp9K023433; Thu, 25 Jun 2015 14:58:51 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251458.t5PEwp9K023433@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 14:58:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284813 - in stable/10/release: . tools X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 14:58:52 -0000 Author: gjb Date: Thu Jun 25 14:58:50 2015 New Revision: 284813 URL: https://svnweb.freebsd.org/changeset/base/284813 Log: MFC r284780, r284811, r284812: r284780: Ensure ASSUME_ALWAYS_YES is set when deleting pkg(8) from the DESTDIR, otherwise it can get stuck in ttyin. r284811: Consider PRERELEASE builds snapshots, in addition to CURRENT and STABLE. r284812: Change the hour:minute delimiter from ':' to '-', since the former is an invalid character in EC2 images. Approved by: re (glebius, insta-MFC) Sponsored by: The FreeBSD Foundation Modified: stable/10/release/Makefile.azure stable/10/release/Makefile.ec2 stable/10/release/Makefile.mirrors stable/10/release/tools/ec2.conf Directory Properties: stable/10/ (props changed) Modified: stable/10/release/Makefile.azure ============================================================================== --- stable/10/release/Makefile.azure Thu Jun 25 14:24:06 2015 (r284812) +++ stable/10/release/Makefile.azure Thu Jun 25 14:58:50 2015 (r284813) @@ -16,8 +16,8 @@ AZURE${VAR}!= grep -E ^AZURE${VAR} ${AZU . endfor .endif -.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" -SNAPSHOT_DATE!= date +-%Y-%m-%d-%H:%M +.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" +SNAPSHOT_DATE!= date +-%Y-%m-%d-%H-%M .endif AZURE_TARGET:= ${OSRELEASE}${SNAPSHOT_DATE}.vhd Modified: stable/10/release/Makefile.ec2 ============================================================================== --- stable/10/release/Makefile.ec2 Thu Jun 25 14:24:06 2015 (r284812) +++ stable/10/release/Makefile.ec2 Thu Jun 25 14:58:50 2015 (r284813) @@ -5,8 +5,8 @@ # Makefile for creating an EC2 AMI from a disk image. # -.if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" -AMINAMESUFFIX!= date +-%Y-%m-%d-%H:%M +.if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" || ${BRANCH} == "PRERELEASE" +AMINAMESUFFIX!= date +-%Y-%m-%d-%H-%M .endif .if defined(EC2PUBLIC) PUBLISH= --public Modified: stable/10/release/Makefile.mirrors ============================================================================== --- stable/10/release/Makefile.mirrors Thu Jun 25 14:24:06 2015 (r284812) +++ stable/10/release/Makefile.mirrors Thu Jun 25 14:58:50 2015 (r284813) @@ -27,7 +27,7 @@ EMBEDDED= 1 .endif # snapshot -.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" +.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" SNAPSHOT= 1 TLD?= ${FTPDIR}/snapshots . if !defined(SVNREVISION) || empty(SVNREVISION) @@ -63,7 +63,7 @@ BOARDNAME:= ${KERNCONF} . else OLDNAME:= ${KERNCONF} . endif -. if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" +. if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" SNAPSHOT= 1 . endif IMAGES:= img Modified: stable/10/release/tools/ec2.conf ============================================================================== --- stable/10/release/tools/ec2.conf Thu Jun 25 14:24:06 2015 (r284812) +++ stable/10/release/tools/ec2.conf Thu Jun 25 14:58:50 2015 (r284813) @@ -32,7 +32,7 @@ vm_extra_pre_umount() { # catalogue and install or update pkg when the instance first # launches, so these files would just be replaced anyway; removing # them from the image allows it to boot faster. - pkg -c ${DESTDIR} delete -f -y pkg + env ASSUME_ALWAYS_YES=yes pkg -c ${DESTDIR} delete -f -y pkg rm ${DESTDIR}/var/db/pkg/repo-*.sqlite # The size of the EC2 root disk can be configured at instance launch From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:10 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7499098D054; Thu, 25 Jun 2015 18:45:10 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5CA422772; Thu, 25 Jun 2015 18:45:10 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjAf1048228; Thu, 25 Jun 2015 18:45:10 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjAF6048226; Thu, 25 Jun 2015 18:45:10 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjAF6048226@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284844 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:10 -0000 Author: gjb Date: Thu Jun 25 18:45:09 2015 New Revision: 284844 URL: https://svnweb.freebsd.org/changeset/base/284844 Log: Document r282870, freebsd-update(8) prevents upgrading a system with pending (incomplete) updates. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:07 2015 (r284843) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:09 2015 (r284844) @@ -204,6 +204,11 @@ would cause final results to be sent to &man.stderr.4; when receiving the SIGINFO signal has been fixed. + + The &man.freebsd-update.8; utility has + been updated to prevent fetching updated binary patches when + a previous upgrade has not been thoroughly completed. From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:08 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E24F98D041; Thu, 25 Jun 2015 18:45:08 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3D85126D0; Thu, 25 Jun 2015 18:45:08 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIj8Y0048164; Thu, 25 Jun 2015 18:45:08 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIj8m6048163; Thu, 25 Jun 2015 18:45:08 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIj8m6048163@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284843 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:08 -0000 Author: gjb Date: Thu Jun 25 18:45:07 2015 New Revision: 284843 URL: https://svnweb.freebsd.org/changeset/base/284843 Log: Document r282746, openresolv updated to 3.7.0. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:44:59 2015 (r284842) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:07 2015 (r284843) @@ -217,6 +217,10 @@ The &man.acpi.4; subsystem has been updated to version 20150410. + + The + &man.resolvconf.8; utility has been updated to version + 3.7.0. From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:30 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AC0498D19A; Thu, 25 Jun 2015 18:45:30 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A22D2D13; Thu, 25 Jun 2015 18:45:30 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjU1q048748; Thu, 25 Jun 2015 18:45:30 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjUdu048746; Thu, 25 Jun 2015 18:45:30 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjUdu048746@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284853 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:30 -0000 Author: gjb Date: Thu Jun 25 18:45:29 2015 New Revision: 284853 URL: https://svnweb.freebsd.org/changeset/base/284853 Log: Document r284460, ACPICA updated to 20150515. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:27 2015 (r284852) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:29 2015 (r284853) @@ -226,15 +226,15 @@ file has been updated to version 5.22. - The &man.acpi.4; subsystem has been - updated to version 20150410. - The &man.resolvconf.8; utility has been updated to version 3.7.0. OpenSSL has been updated to version 1.0.1o. + + The &man.acpi.4; subsystem has been + updated to version 20150515. From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:34 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D85D98D1BA; Thu, 25 Jun 2015 18:45:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3B01F2E19; Thu, 25 Jun 2015 18:45:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjYAO048884; Thu, 25 Jun 2015 18:45:34 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjYgC048882; Thu, 25 Jun 2015 18:45:34 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjYgC048882@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284855 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:34 -0000 Author: gjb Date: Thu Jun 25 18:45:33 2015 New Revision: 284855 URL: https://svnweb.freebsd.org/changeset/base/284855 Log: Document r284665: - kern.racct.enable tunable and RACCT_DISABLED kernel configuration option. - RACCT/RCTL in GENERIC by default. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:31 2015 (r284854) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:33 2015 (r284855) @@ -325,6 +325,26 @@ The kern.osrelease and kern.osreldate are now configurable &man.jail.8; parameters. + + A new + &man.sysctl.8;, kern.racct.enable, has been + added, which when set to a non-zero value allows using + &man.rctl.8; with the GENERIC kernel. + A new kernel configuration option, + RACCT_DISABLED has also been added. + + The + GENERIC kernel configuration now includes + RACCT and RCTL by + default. + + + To enable RACCT and + RCTL on a system using the + GENERIC kernel configuration, add + kern.racct.enable=1 to + &man.loader.conf.5;, and reboot the system. + From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:19 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0887098D12C; Thu, 25 Jun 2015 18:45:19 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BDAFD29D5; Thu, 25 Jun 2015 18:45:18 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjIPT048456; Thu, 25 Jun 2015 18:45:18 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjIn6048455; Thu, 25 Jun 2015 18:45:18 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjIn6048455@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284848 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:19 -0000 Author: gjb Date: Thu Jun 25 18:45:17 2015 New Revision: 284848 URL: https://svnweb.freebsd.org/changeset/base/284848 Log: Document r283242, autofs(5) '-noauto' map addition. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:15 2015 (r284847) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:17 2015 (r284848) @@ -397,6 +397,12 @@ allows automatically mounting removable media, such as CD drives or USB flash drives. + + The + &man.autofs.5; subsystem has been updated to include a new + &man.auto.master.5; map, -noauto, which + handles &man.fstab.5; entries set to + noauto. From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:36 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91DC698D1F0; Thu, 25 Jun 2015 18:45:36 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 420362EAF; Thu, 25 Jun 2015 18:45:36 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjaML048938; Thu, 25 Jun 2015 18:45:36 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIja9T048937; Thu, 25 Jun 2015 18:45:36 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIja9T048937@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284856 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:36 -0000 Author: gjb Date: Thu Jun 25 18:45:35 2015 New Revision: 284856 URL: https://svnweb.freebsd.org/changeset/base/284856 Log: Document r284778, file(1) updated to 5.23. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:33 2015 (r284855) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:35 2015 (r284856) @@ -235,6 +235,9 @@ The &man.acpi.4; subsystem has been updated to version 20150515. + + The &man.file.1; utility has been + updated to version 5.23. From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:14 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF4F798D0BA; Thu, 25 Jun 2015 18:45:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7C06E2881; Thu, 25 Jun 2015 18:45:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjEp5048329; Thu, 25 Jun 2015 18:45:14 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjEU1048328; Thu, 25 Jun 2015 18:45:14 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjEU1048328@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284846 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:14 -0000 Author: gjb Date: Thu Jun 25 18:45:13 2015 New Revision: 284846 URL: https://svnweb.freebsd.org/changeset/base/284846 Log: Document r283223, autofs(5) '-media' map. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:11 2015 (r284845) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:13 2015 (r284846) @@ -390,6 +390,13 @@ The &man.ctld.8; utility has been updated to allow controlling non-iSCSI &man.ctl.4; ports. + + The + &man.autofs.5; subsystem has been updated to include a new + &man.auto.master.5; map, -media, which + allows automatically mounting removable media, such as + CD drives or USB flash + drives. From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:16 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BBA0798D0FB; Thu, 25 Jun 2015 18:45:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A28E6292F; Thu, 25 Jun 2015 18:45:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjGJc048384; Thu, 25 Jun 2015 18:45:16 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjGSZ048383; Thu, 25 Jun 2015 18:45:16 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjGSZ048383@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284847 - stable/10/release/doc/share/xml X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:16 -0000 Author: gjb Date: Thu Jun 25 18:45:15 2015 New Revision: 284847 URL: https://svnweb.freebsd.org/changeset/base/284847 Log: Add ScaleEngine, Inc. to sponsors.ent. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/share/xml/sponsor.ent Modified: stable/10/release/doc/share/xml/sponsor.ent ============================================================================== --- stable/10/release/doc/share/xml/sponsor.ent Thu Jun 25 18:45:13 2015 (r284846) +++ stable/10/release/doc/share/xml/sponsor.ent Thu Jun 25 18:45:15 2015 (r284847) @@ -29,4 +29,5 @@ + From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:12 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3B0D98D08A; Thu, 25 Jun 2015 18:45:12 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9BBC727EE; Thu, 25 Jun 2015 18:45:12 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjC0h048280; Thu, 25 Jun 2015 18:45:12 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjCPs048279; Thu, 25 Jun 2015 18:45:12 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjCPs048279@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284845 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:12 -0000 Author: gjb Date: Thu Jun 25 18:45:11 2015 New Revision: 284845 URL: https://svnweb.freebsd.org/changeset/base/284845 Log: Document r282974, uefisign(8) added. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:09 2015 (r284844) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:11 2015 (r284845) @@ -209,6 +209,9 @@ sponsor="&scaleengine;">The &man.freebsd-update.8; utility has been updated to prevent fetching updated binary patches when a previous upgrade has not been thoroughly completed. + + The + &man.uefisign.8; utility has been added. From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:28 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7752498D185; Thu, 25 Jun 2015 18:45:28 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 135652C91; Thu, 25 Jun 2015 18:45:28 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjRkR048700; Thu, 25 Jun 2015 18:45:27 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjRHh048699; Thu, 25 Jun 2015 18:45:27 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjRHh048699@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284852 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:28 -0000 Author: gjb Date: Thu Jun 25 18:45:27 2015 New Revision: 284852 URL: https://svnweb.freebsd.org/changeset/base/284852 Log: Document r284330, OpenSSL updated to 1.0.1o. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:24 2015 (r284851) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:27 2015 (r284852) @@ -226,15 +226,15 @@ file has been updated to version 5.22. - OpenSSL has - been updated to version 1.0.1m. - The &man.acpi.4; subsystem has been updated to version 20150410. The &man.resolvconf.8; utility has been updated to version 3.7.0. + + OpenSSL has + been updated to version 1.0.1o. From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:21 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04A4598D133; Thu, 25 Jun 2015 18:45:21 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D4C1B2A7E; Thu, 25 Jun 2015 18:45:20 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjKmp048508; Thu, 25 Jun 2015 18:45:20 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjK2L048507; Thu, 25 Jun 2015 18:45:20 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjK2L048507@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284849 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:21 -0000 Author: gjb Date: Thu Jun 25 18:45:20 2015 New Revision: 284849 URL: https://svnweb.freebsd.org/changeset/base/284849 Log: Document r283262, boot-time memory test on amd64 platforms is now disabled by default. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:17 2015 (r284848) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:20 2015 (r284849) @@ -458,6 +458,10 @@ loading the kernel. To enable this behavior, add geom_eli_passphrase_prompt="YES" to &man.loader.conf.5;. + + The + memory test run at boot time on &os;/&arch.amd64; platforms + has been disabled by default. From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:26 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B20598D16B; Thu, 25 Jun 2015 18:45:26 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E84A22BFE; Thu, 25 Jun 2015 18:45:25 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjPZV048644; Thu, 25 Jun 2015 18:45:25 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjPdk048638; Thu, 25 Jun 2015 18:45:25 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjPdk048638@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284851 - in stable/10/release/doc: en_US.ISO8859-1/relnotes share/xml X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:26 -0000 Author: gjb Date: Thu Jun 25 18:45:24 2015 New Revision: 284851 URL: https://svnweb.freebsd.org/changeset/base/284851 Log: Document r283875, chmod, chflags, chown and chgrp recursive symlink processing. Add Multiplay to sponsors.ent. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml stable/10/release/doc/share/xml/sponsor.ent Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:22 2015 (r284850) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:24 2015 (r284851) @@ -212,6 +212,12 @@ The &man.uefisign.8; utility has been added. + + The &man.chflags.1;, &man.chgrp.1;, + &man.chmod.1;, and &man.chown.8; utilities now affect symbolic + links when the -R flag is specified, as + documented in &man.symlink.7;. Modified: stable/10/release/doc/share/xml/sponsor.ent ============================================================================== --- stable/10/release/doc/share/xml/sponsor.ent Thu Jun 25 18:45:22 2015 (r284850) +++ stable/10/release/doc/share/xml/sponsor.ent Thu Jun 25 18:45:24 2015 (r284851) @@ -27,6 +27,7 @@ + From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:32 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF9B998D1AA; Thu, 25 Jun 2015 18:45:32 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B9802D99; Thu, 25 Jun 2015 18:45:32 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjWjY048799; Thu, 25 Jun 2015 18:45:32 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjWEo048798; Thu, 25 Jun 2015 18:45:32 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjWEo048798@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284854 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:32 -0000 Author: gjb Date: Thu Jun 25 18:45:31 2015 New Revision: 284854 URL: https://svnweb.freebsd.org/changeset/base/284854 Log: Document rr284522, EM_MULTIQUEUE kernel configuration option. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:29 2015 (r284853) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:31 2015 (r284854) @@ -291,7 +291,15 @@ Kernel Configuration -   + A new kernel configuration option, + EM_MULTIQUEUE, has been added which enables + multi-queue support in the &man.em.4; driver. + + + Multi-queue support in the &man.em.4; driver is not + officially supported by &intel;. + From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:38 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 822FB98D20E; Thu, 25 Jun 2015 18:45:38 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 622BD2F3E; Thu, 25 Jun 2015 18:45:38 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjcAd048989; Thu, 25 Jun 2015 18:45:38 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjc5M048988; Thu, 25 Jun 2015 18:45:38 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjc5M048988@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284857 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:38 -0000 Author: gjb Date: Thu Jun 25 18:45:37 2015 New Revision: 284857 URL: https://svnweb.freebsd.org/changeset/base/284857 Log: Update the svn revision marker. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:35 2015 (r284856) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:37 2015 (r284857) @@ -22,7 +22,7 @@ $FreeBSD$ - + 2015 From owner-svn-src-stable-10@freebsd.org Thu Jun 25 18:45:23 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3A8098D153; Thu, 25 Jun 2015 18:45:23 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 64D312B37; Thu, 25 Jun 2015 18:45:23 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PIjN61048563; Thu, 25 Jun 2015 18:45:23 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PIjMZe048560; Thu, 25 Jun 2015 18:45:22 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506251845.t5PIjMZe048560@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 18:45:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284850 - in stable/10/release/doc: en_US.ISO8859-1/relnotes share/xml X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 18:45:23 -0000 Author: gjb Date: Thu Jun 25 18:45:22 2015 New Revision: 284850 URL: https://svnweb.freebsd.org/changeset/base/284850 Log: Document r283280, several improvements/updates to the HyperV drivers. Add Microsoft Open Source Technology Center to sponsors.ent. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml stable/10/release/doc/share/xml/sponsor.ent Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:20 2015 (r284849) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 25 18:45:22 2015 (r284850) @@ -361,6 +361,27 @@ The &man.bhyve.8; hypervisor has been updated to support DSM TRIM commands for virtual AHCI disks. + + The + Hyper-V™ drivers have been updated with several + enhancements: + + + + The &man.hv.vmbus.4; driver now has multi-channel + support. + + + + The &man.hv.storvsc.4; driver now has scatter/gather + support, in addition to performance improvements. + + + + The &man.hv.kvp.4; driver has received several bug + fixes. + + Modified: stable/10/release/doc/share/xml/sponsor.ent ============================================================================== --- stable/10/release/doc/share/xml/sponsor.ent Thu Jun 25 18:45:20 2015 (r284849) +++ stable/10/release/doc/share/xml/sponsor.ent Thu Jun 25 18:45:22 2015 (r284850) @@ -26,6 +26,8 @@ + + From owner-svn-src-stable-10@freebsd.org Thu Jun 25 20:01:28 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AFE4998DD10; Thu, 25 Jun 2015 20:01:28 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 861EB1ECA; Thu, 25 Jun 2015 20:01:28 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5PK1SOY095007; Thu, 25 Jun 2015 20:01:28 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5PK1SIY095003; Thu, 25 Jun 2015 20:01:28 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201506252001.t5PK1SIY095003@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 25 Jun 2015 20:01:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284859 - in stable: 10/release/doc/share/xml 8/release/doc/share/xml 9/release/doc/share/xml X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 20:01:28 -0000 Author: gjb Date: Thu Jun 25 20:01:27 2015 New Revision: 284859 URL: https://svnweb.freebsd.org/changeset/base/284859 Log: Document FreeBSD-EN-15:06.file, FreeBSD-EN-15:07.zfs, FreeBSD-EN-15:08.sendmail, FreeBSD-SA-15:10.openssl. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/share/xml/errata.xml stable/10/release/doc/share/xml/security.xml Changes in other areas also in this revision: Modified: stable/8/release/doc/share/xml/errata.xml stable/8/release/doc/share/xml/security.xml stable/9/release/doc/share/xml/errata.xml stable/9/release/doc/share/xml/security.xml Modified: stable/10/release/doc/share/xml/errata.xml ============================================================================== --- stable/10/release/doc/share/xml/errata.xml Thu Jun 25 19:39:07 2015 (r284858) +++ stable/10/release/doc/share/xml/errata.xml Thu Jun 25 20:01:27 2015 (r284859) @@ -64,6 +64,27 @@ Deadlock on reboot with UFS tuned with SU+J + + + FreeBSD-EN-15:06.file + 9 June 2015 + Multiple denial of service issues + + + + FreeBSD-EN-15:07.zfs + 9 June 2015 + ZFS reliability improvements + + + + FreeBSD-EN-15:08.sendmail + 18 June 2015 + Sendmail TLS/DH interoperability improvement + Modified: stable/10/release/doc/share/xml/security.xml ============================================================================== --- stable/10/release/doc/share/xml/security.xml Thu Jun 25 19:39:07 2015 (r284858) +++ stable/10/release/doc/share/xml/security.xml Thu Jun 25 20:01:27 2015 (r284859) @@ -109,6 +109,13 @@ Router advertisement Denial of Service + + + FreeBSD-SA-15:10.openssl + 16 June 2015 + Multiple vulnerabilities + From owner-svn-src-stable-10@freebsd.org Fri Jun 26 06:08:53 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4C39198DD2D; Fri, 26 Jun 2015 06:08:53 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 328401C50; Fri, 26 Jun 2015 06:08:53 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5Q68rRR001543; Fri, 26 Jun 2015 06:08:53 GMT (envelope-from arybchik@FreeBSD.org) Received: (from arybchik@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5Q68rVj001542; Fri, 26 Jun 2015 06:08:53 GMT (envelope-from arybchik@FreeBSD.org) Message-Id: <201506260608.t5Q68rVj001542@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: arybchik set sender to arybchik@FreeBSD.org using -f From: Andrew Rybchenko Date: Fri, 26 Jun 2015 06:08:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284867 - stable/10/sys/dev/sfxge X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jun 2015 06:08:53 -0000 Author: arybchik Date: Fri Jun 26 06:08:52 2015 New Revision: 284867 URL: https://svnweb.freebsd.org/changeset/base/284867 Log: MFC: r284747 sfxge: skip VPD info population if access is denied The patch allows to run on unprivileged PF (PFIOV) passed to a virtual machine. Reviewed by: gnn Sponsored by: Solarflare Communications, Inc. Modified: stable/10/sys/dev/sfxge/sfxge.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/sfxge/sfxge.c ============================================================================== --- stable/10/sys/dev/sfxge/sfxge.c Fri Jun 26 04:14:05 2015 (r284866) +++ stable/10/sys/dev/sfxge/sfxge.c Fri Jun 26 06:08:52 2015 (r284867) @@ -902,8 +902,15 @@ sfxge_vpd_init(struct sfxge_softc *sc) efx_vpd_value_t value; int rc; - if ((rc = efx_vpd_size(sc->enp, &sc->vpd_size)) != 0) + if ((rc = efx_vpd_size(sc->enp, &sc->vpd_size)) != 0) { + /* + * Unpriviledged functions deny VPD access. + * Simply skip VPD in this case. + */ + if (rc == EACCES) + goto done; goto fail; + } sc->vpd_data = malloc(sc->vpd_size, M_SFXGE, M_WAITOK); if ((rc = efx_vpd_read(sc->enp, sc->vpd_data, sc->vpd_size)) != 0) goto fail2; @@ -932,6 +939,7 @@ sfxge_vpd_init(struct sfxge_softc *sc) for (keyword[1] = 'A'; keyword[1] <= 'Z'; keyword[1]++) sfxge_vpd_try_add(sc, vpd_list, EFX_VPD_RO, keyword); +done: return (0); fail2: From owner-svn-src-stable-10@freebsd.org Fri Jun 26 06:25:15 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73AFE98DF4B; Fri, 26 Jun 2015 06:25:15 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5A25C1251; Fri, 26 Jun 2015 06:25:15 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5Q6PFeT011581; Fri, 26 Jun 2015 06:25:15 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5Q6PFju011580; Fri, 26 Jun 2015 06:25:15 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201506260625.t5Q6PFju011580@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 26 Jun 2015 06:25:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284868 - stable/10/sys/fs/tmpfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jun 2015 06:25:15 -0000 Author: kib Date: Fri Jun 26 06:25:14 2015 New Revision: 284868 URL: https://svnweb.freebsd.org/changeset/base/284868 Log: MFC r284594: Restore the td_cookie value upon detach. Modified: stable/10/sys/fs/tmpfs/tmpfs_subr.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- stable/10/sys/fs/tmpfs/tmpfs_subr.c Fri Jun 26 06:08:52 2015 (r284867) +++ stable/10/sys/fs/tmpfs/tmpfs_subr.c Fri Jun 26 06:25:14 2015 (r284868) @@ -1031,6 +1031,7 @@ tmpfs_dir_detach(struct vnode *vp, struc tmpfs_free_dirent(tmp, xde); } } + de->td_cookie = de->td_hash; } else RB_REMOVE(tmpfs_dir, head, de); From owner-svn-src-stable-10@freebsd.org Fri Jun 26 17:13:23 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D984D98C097; Fri, 26 Jun 2015 17:13:23 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C5C821BBB; Fri, 26 Jun 2015 17:13:23 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5QHDN5o053985; Fri, 26 Jun 2015 17:13:23 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5QHDNUS053984; Fri, 26 Jun 2015 17:13:23 GMT (envelope-from erj@FreeBSD.org) Message-Id: <201506261713.t5QHDNUS053984@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Fri, 26 Jun 2015 17:13:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284876 - stable/10/sys/dev/ixgbe X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jun 2015 17:13:24 -0000 Author: erj Date: Fri Jun 26 17:13:23 2015 New Revision: 284876 URL: https://svnweb.freebsd.org/changeset/base/284876 Log: Limit the number of autoconfigured queues to 8. This limit was in a previous version of the driver, but it is being re- added to match the behavior of previous versions of 10. It prevents the driver from using too many MSI-X vectors on systems with a large number of logical CPU cores. Thanks to for bringing up this issue. Approved by: jfv (mentor) Modified: stable/10/sys/dev/ixgbe/if_ix.c Modified: stable/10/sys/dev/ixgbe/if_ix.c ============================================================================== --- stable/10/sys/dev/ixgbe/if_ix.c Fri Jun 26 16:14:00 2015 (r284875) +++ stable/10/sys/dev/ixgbe/if_ix.c Fri Jun 26 17:13:23 2015 (r284876) @@ -285,7 +285,8 @@ SYSCTL_INT(_hw_ix, OID_AUTO, enable_msix */ static int ixgbe_num_queues = 0; SYSCTL_INT(_hw_ix, OID_AUTO, num_queues, CTLFLAG_RDTUN, &ixgbe_num_queues, 0, - "Number of queues to configure, 0 indicates autoconfigure"); + "Number of queues to configure up to a maximum of 8; " + "0 indicates autoconfigure"); /* ** Number of TX descriptors per ring, @@ -548,7 +549,6 @@ ixgbe_attach(device_t dev) /* Check PCIE slot type/speed/width */ ixgbe_get_slot_info(hw); - /* Set an initial default flow control value */ adapter->fc = ixgbe_fc_full; @@ -2328,6 +2328,9 @@ ixgbe_setup_msix(struct adapter *adapter if (ixgbe_num_queues != 0) queues = ixgbe_num_queues; + /* Set max queues to 8 when autoconfiguring */ + else if ((ixgbe_num_queues == 0) && (queues > 8)) + queues = 8; /* reflect correct sysctl value */ ixgbe_num_queues = queues; From owner-svn-src-stable-10@freebsd.org Fri Jun 26 19:55:03 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2CA9398DBBC; Fri, 26 Jun 2015 19:55:03 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1BF4E1BEA; Fri, 26 Jun 2015 19:55:03 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5QJt2DG036694; Fri, 26 Jun 2015 19:55:02 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5QJt2q6036689; Fri, 26 Jun 2015 19:55:02 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201506261955.t5QJt2q6036689@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 26 Jun 2015 19:55:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284879 - stable/10/sys/dev/hpt27xx X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jun 2015 19:55:03 -0000 Author: delphij Date: Fri Jun 26 19:55:01 2015 New Revision: 284879 URL: https://svnweb.freebsd.org/changeset/base/284879 Log: MFC r267386,269611,284730: Update vendor driver to 1.2.7. This update improves driver reliability and adds support of 4Kn drives and report LUNs command. Many thanks to HighPoint for providing this driver update. Modified: stable/10/sys/dev/hpt27xx/README stable/10/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu (contents, props changed) stable/10/sys/dev/hpt27xx/array.h stable/10/sys/dev/hpt27xx/him.h stable/10/sys/dev/hpt27xx/himfuncs.h stable/10/sys/dev/hpt27xx/hpt27xx_config.c stable/10/sys/dev/hpt27xx/hpt27xx_config.h stable/10/sys/dev/hpt27xx/hpt27xx_os_bsd.c stable/10/sys/dev/hpt27xx/hpt27xx_osm_bsd.c stable/10/sys/dev/hpt27xx/hptintf.h stable/10/sys/dev/hpt27xx/i386-elf.hpt27xx_lib.o.uu stable/10/sys/dev/hpt27xx/ldm.h stable/10/sys/dev/hpt27xx/list.h stable/10/sys/dev/hpt27xx/os_bsd.h stable/10/sys/dev/hpt27xx/osm.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/hpt27xx/README ============================================================================== --- stable/10/sys/dev/hpt27xx/README Fri Jun 26 18:03:19 2015 (r284878) +++ stable/10/sys/dev/hpt27xx/README Fri Jun 26 19:55:01 2015 (r284879) @@ -1,10 +1,34 @@ RocketRAID Controller Driver for FreeBSD -Copyright (C) 2011 HighPoint Technologies, Inc. All rights reserved. +Copyright (C) 2005-2015 HighPoint Technologies, Inc. All rights reserved. ############################################################################# Revision History: - v1.0 2011-12-27 - First source code release + v1.2.7.1 06/08/2015 + * Add 10.x comment and correct file name in readme. + + v1.2.7 05/22/2015 + * Support Report Luns command. + + v1.2.6 04/13/2015 + * Fix a bug that some disks will be dropped when data integrity test over + one hour on 32bit system. + + v1.2.5 01/26/2015 + * Fix a bug that failed to verify controller by retrying 8 times. + * Supported 4Kn drive. + + v1.2.4 09/29/2014 + * Fix a bug that memory would be corrupted and caused strange system + behavior when running IO and WebGUI + + v1.2.3 01/24/2014 + * fixup system crash while write date to raid5. + + v1.1 07/01/2013 + * Fix 2nd RAID controller can not load as multipath issue. + + v1.0 12/13/2011 + * First source code release ############################################################################# @@ -40,7 +64,7 @@ Revision History: 2) Extract the driver files under the kernel source tree: # cd /usr/src/sys/ - # tar xvzf /your/path/to/hpt27xx-freebsd-src-v1.0-111227.tgz + # tar xvzf /your/path/to/HPT27xx_FreeBSD_Src_v1.2.7.1_15_06_08.tgz 3) Update the kernel configuration file to include the HighPoint source. Assume the configure file is GENERIC, and new kernel configure file is @@ -62,8 +86,8 @@ Revision History: compile-with "uudecode < $S/dev/hpt27xx/i386-elf.hpt27xx_lib.o.uu" \ no-implicit-rule - dev/hpt27xx/os_bsd.c optional hpt27xx - dev/hpt27xx/osm_bsd.c optional hpt27xx + dev/hpt27xx/hpt27xx_os_bsd.c optional hpt27xx + dev/hpt27xx/hpt27xx_osm_bsd.c optional hpt27xx dev/hpt27xx/hpt27xx_config.c optional hpt27xx For amd64 system, edit /usr/src/sys/conf/files.amd64 and append the lines @@ -74,13 +98,13 @@ Revision History: compile-with "uudecode < $S/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu" \ no-implicit-rule - dev/hpt27xx/os_bsd.c optional hpt27xx - dev/hpt27xx/osm_bsd.c optional hpt27xx + dev/hpt27xx/hpt27xx_os_bsd.c optional hpt27xx + dev/hpt27xx/hpt27xx_osm_bsd.c optional hpt27xx dev/hpt27xx/hpt27xx_config.c optional hpt27xx 6) Rebuild and install the kernel: - a) for FreeBSD 5.x-i386/6.x-i386/7.x-i386/8.x-i386/9.x-i386: + a) for FreeBSD 5.x-i386/6.x-i386/7.x-i386/8.x-i386/9.x-i386/10.x-i386: # cd /usr/src/sys/i386/conf/ # /usr/sbin/config MYKERNEL @@ -89,7 +113,7 @@ Revision History: # make # make install - b) for FreeBSD 5.x-amd64/6.x-amd64/7.x-amd64/8.x-amd64/9.x-amd64: + b) for FreeBSD 5.x-amd64/6.x-amd64/7.x-amd64/8.x-amd64/9.x-amd64/10.x-amd64: # cd /usr/src/sys/amd64/conf/ # /usr/sbin/config MYKERNEL @@ -122,7 +146,7 @@ Revision History: 2) Extract the driver files under the kernel source tree: # cd /usr/src/sys/ - # tar xvzf /your/path/to/hpt27xx-freebsd-src-v1.0-111227.tgz + # tar xvzf /your/path/to/HPT27xx_FreeBSD_Src_v1.2.7.1_15_06_08.tgz 4) Build the driver module: @@ -136,7 +160,7 @@ Revision History: # cp hpt27xx.ko /modules/ - For FreeBSD 5.x/6.x/7.x/8.x/9.x: + For FreeBSD 5.x/6.x/7.x/8.x/9.x/10.x: # cp hpt27xx.ko /boot/kernel/ @@ -162,7 +186,7 @@ Revision History: /modules/hpt27xx.ko text=0xf571 data=0x2c8+0x254 ok boot - For FreeBSD 5.x/6.x/7.x/8.x/9.x, you can select 6 on the boot menu to get a loader + For FreeBSD 5.x/6.x/7.x/8.x/9.x/10.x, you can select 6 on the boot menu to get a loader prompt. 7) You can add a below line into /boot/defaults/loader.conf to load the Modified: stable/10/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu ============================================================================== --- stable/10/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu Fri Jun 26 18:03:19 2015 (r284878) +++ stable/10/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu Fri Jun 26 19:55:01 2015 (r284879) @@ -1,13034 +1,14239 @@ begin 644 hpt27xx_lib.o -M?T5,1@(!`0D```````````$`/@`!`````````````````````````(A^"@`` -M`````````$```````$``$``-`,8'",9'`1)`@/X!&<#WT(/@!(A'`L9'`P#& -M1P0`QD<%`,9'!@#&1P<`QD<(`,9'"0#&1PH`QD<+`(#Z`1G`@^`@B$<,QD<- -M`,9'#@#&1P\`QD<0`,9'$0#&1Q(`QD<3`+@4````PV9F9I!F9I!F9I!(@^PX -M2(E<)`A(B6PD$$R)9"083(EL)"!,B70D*$R)?"0P28G_2(GU08G608G-Z``` -M``!)B<2X`````$V%Y`^$HP```$F+7"0000^VU4$/MO9(C7L$Z`````!!B<7& -M`P#&0P$`QD,"`,9#`P!(B>Y,B?_H`````+D`````NA````!(C44XB`A(_\!( -M_\IU]D&-103&13@5QD4Y$8A%/,9%/0!(C5U81`^VZ$2);33'A90````````` -M28M$)!!(B45(3(EE>+X`````2(G?Z`````!)BW0D&$2)ZDB)W^@`````N`$` -M``!(BUPD"$B+;"003(MD)!A,BVPD($R+="0H3(M\)#!(@\0XPY"0D)"0D$&) -M\&:)=PC&1PX`9L='#```O@````!F1#G&`^2\/E<"`^8\/E<(/ML"%P@^%S0$```^V1SB#^"\/A*X` -M``"#^"]_.8/X"G1[@_@*D'\.@_@(='#IA@$``&9F9I"#^"@/A(<```"#^"IF -M9F:0#X1Z````Z6D;`0`` -M#[9'.8/@'\'@$`^V5SK!X@@)T`^V5SL)T(G"#[9//.D%`0``9F:09I`/ME(8#[9'.\'@$`G"#[9'/,'@"`G"#[9'/0G"B=(/MD\_P>$(#[9'0`G!Z(8#[9'.\'@$`G"#[9'/,'@"`G"#[9'/0G"B=(/MD\^P>$8#[9' -M/\'@$`G!#[9'0,'@"`G!#[9'00G!Z8@```!(#[97.DC!XCA(#[9'.TC!X#!( -M"<)(#[9'/$C!X"A("<)(#[9'/4C!X"!("<)(#[9'/DC!X!A("<)(#[9'/TC! -MX!!("<)(#[9'0$C!X`A("<)(#[9'04@)P@^V3T+!X1@/MD=#P>`0"<$/MD=$ -MP>`("<$/MD=%"<'K#KH`````N0````!F9F:02(F7B````(F/D````&:#3R(! -M\\-F9F:09F9FD&9F9I!32(/L8$B)^T0/MD\[1`^V1SH/MD\Y#[97.`^V1T>) -M1"18#[9'1HE$)%`/MD=%B40D2`^V1T2)1"1`#[9'0XE$)#@/MD="B40D,`^V -M1T&)1"0H#[9'0(E$)"`/MD<_B40D&`^V1SZ)1"00#[9'/8E$)`@/MD<\B00D -M2(G^2,?'`````+@`````Z``````/MW,@2,?'`````+@`````Z`````!(@\1@ -M6\-F9F:09F9FD+K_____N0````!F.?%S(4G'P``````/M\$/M@0X,=`/ML#! -MZ@A!,Q2`_\%F.?%RYHG0PY"0D)"0D)"0D)"0D)!(BP>+D`0!``")%0````") -MT8'A?O_^_TB+!XF(!`$``(G1@>%^__+_2(M'"(D(2(M'"(E(#$B+1PB)2!!( -MBT<(B4@42(M'"(E(&$B+1PB)2`1(BP>+@%0!``")!0````")P8'A_@#__TB+ -M!XF(5`$``,-F9F:09F9FD&9FD&9FD%532(/L"(GS2(LO@_X#=AB-!-W@____ -MBX0HH`$``(D%`````(G!ZQB-!-T`````B<"+A"B``0``B04`````B<&#X?Z# -M^P-V$(T$W>#___^)C"B@`0``ZQ"-!-T`````B<")C"B``0``A-(/A*````"# -M^P-V&(T$G?#___^+A"C@`0``B04`````B<'K&(T$G0````")P(N$*-`!``") -M!0````")P8/)`H/[`W80C02=\/___XF,*.`!``#K$(T$G0````")P(F,*-`! -M``"-!)T`````C7#PB<)F9F:09F:0@_L#=A&+A"[@`0``B04`````B<'K#XN$ -M*M`!``")!0````")P?;!`G76Z94```"0@_L#=A2-!-W@____QX0H4`(````` -M``#K%(T$W0````")P,>$*%`"````````OQ`G``#H`````(/[`W88C03=X/__ -M_XN$*%0"``")!0````")P>L8C03=`````(G`BX0H5`(``(D%`````(G!@\D! -M@_L#=A"-!-W@____B8PH5`(``.L0C03=`````(G`B8PH5`(``$B#Q`A;7<-F -M9I!FD$%6055!5%5328G\08GU08G62(LONP````"`?SX`#X1.`@``1(GJ#[;" -MB=E(T_BH`0^$*P(``(/[`W88C03=X/___XN$**0!``")!0````")PNL8C03= -M`````(G`BX0HA`$``(D%`````(G"@^+^@_L#=A"-!-W@____B90HI`$``.L0 -MC03=`````(G`B90HA`$``+\0)P``Z`````!%A/8/A)H```"#^P-V&(T$G?#_ -M__^+A"C@`0``B04`````B<+K&(T$G0````")P(N$*-`!``")!0````")PH/* -M`H/[`W80C02=\/___XF4*.`!``#K$(T$G0````")P(F4*-`!``"-!)T````` -MC7#PB<&0@_L#=A&+A"[@`0``B04`````B<+K#XN$*=`!``")!0````")PO;" -M`G76Z94```"0@_L#=A2-!-W@____QX0H4`(```````#K%(T$W0````")P,>$ -M*%`"````````OQ`G``#H`````(/[`W88C03=X/___XN$*%0"``")!0````") -MPNL8C03=`````(G`BX0H5`(``(D%`````(G"@\H!@_L#=A"-!-W@____B90H -M5`(``.L0C03=`````(G`B90H5`(``(/[`W87C03=X/___\>$**`!```!```` -MZQ=F9I"-!-T`````B<#'A"B``0```0```(/[`W88C03=X/___XN$**0!``") -M!0````")PNL8C03=`````(G`BX0HA`$``(D%`````(G"@\H!@_L#=A"-!-W@ -M____B90HI`$``.L0C03=`````(G`B90HA`$``/_#00^V1"0^.=@/A[+]__]; -M74%<05U!7L-F9I!F9I")\4B+!XN`!`$``(D%`````$&)P`^W1SQF/8!D#Y3" -M9CV`D0^4P`G0J`%U"&:!?SR`E'42#[;)@\$(N`$```#3X$$)P.L10`^VSH/! -M#+@!````T^!!"+@`0! -M``")!0````!!B<`/MT<\9CV`9`^4PF8]@)$/E,`)T*@!=0AF@7\\@)1U$@^V -MR8/!"+C^____T\!!(<#K$4`/MLZ#P0RX_O___]/`02'`2(L'1(F`!`$``,-F -M9F:09F9FD&9FD&9FD$B#[!A(B5PD"$R)9"0028G\0`^VWHG>Z`````"_$"<` -M`.@`````B=Y,B>?H`````$B+7"0(3(MD)!!(@\08PY")\4"`_O]T>$"`_A]W -M-HN7&`$``(D5`````+@!````T^")P??0(=")AQ@!``"+AU@!``")!0`````A -MR'1#B8=8`0``PXN7'`$``(D5`````$`/MLZ#Z2"X`0```-/@B<'WT"'0B8<< -M`0``BX=@`0``B04`````($(``"```,`0``ZQQF9I!( -MC03=`````"7X!P``0L>$(``"```,`0``OQ`G``#H`````(#[`W8X2(T,W0`` -M``"!X?@'```/ME4#P>(8#[9%`L'@$`G"#[9%`<'@"`G"#[9%``G"0HF4(00" -M``#K-I!(C0S=`````('A^`<```^V50/!XA@/MD4"P>`0"<(/MD4!P>`("<(/ -MMD4`"<)"B90A!`(``(#[`W8;2(T$W0`````E^`<``$+'A"```@``$`$``.L9 -M2(T$W0`````E^`<``$+'A"```@``$`$``+\0)P``Z`````"`^P-V-TB-#-T` -M````@>'X!P``#[95!\'B&`^V10;!X!`)P@^V107!X`@)P@^V100)PD*)E"$$ -M`@``ZS5(C0S=`````('A^`<```^V50?!XA@/MD4&P>`0"<(/MD4%P>`("<(/ -MMD4$"<)"B90A!`(``%M=05S#D)!32(/L8$B)^P^W?SQ(C40D7DB)1"0X2(U$ -M)%Q(B40D,$B-1"1:2(E$)"A(C40D6$B)1"0@2(U$)%9(B40D&$B-1"152(E$ -M)!!(C40D5$B)1"0(2(U$)%)(B00D3(U,)%%,C40D3DB-3"1-2(U4)$Q(C70D -M2^@`````#[94)$L/MG0D3$B-?"1$Z`````!(#[94)$M(:=*(`0``2(MS($B- -MN_@(``"Y`0```.@`````2`^V5"1-2&G2T````$B+(#2(MS($B-NW`)``"Y`0```.@`````2`^W5"1.2&G2J````$B+(%2(MS($B-NY@*``"Y`0`` -M`.@`````2`^V5"152(T4DDC!X@5(BW,@2(V[P`H``+D!````Z`````!(#[=4 -M)%)(C1222,'B`TB+("2(MS($B-NS`1 -M``!!N`$```"Y!````.@`````#[94)%3!X@M(BW,@2(V[8!$``$&X`0```+D( -M````Z`````!(#[=4)%)(:=*,`0``2(MS($B!PY`1``!!N`$```"Y"````$B) -MW^@`````N`````!(@\1@6\-F9I!FD$%6055!5%532(/L8$F)_$&^`````,9' -M40#&1U``QD=/`$C'A_@3````````QH?Q$P```+D`````NJ`!``!(C8=`$@`` -MB`A(_\!(_\IU]DF-A"3H````28F$).@```!)B80D\````$F-A"3X````28F$ -M)/@```!)B80D``$``$F-A"0(`0``28F$)`@!``!)B80D$`$``$F-A"08`0`` -M28F$)!@!``!)B80D(`$``$F-A"0H`0``28F$)"@!``!)B80D,`$``$F-A"1( -M`0``28F$)$@!``!)B80D4`$``$F-A"18`0``28F$)%@!``!)B80D8`$``$F- -MA"0X`0``28F$)#@!``!)B80D0`$``$$/MWPD/$B-1"1>2(E$)#A(C40D7$B) -M1"0P2(U$)%I(B40D*$B-1"182(E$)"!(C40D5DB)1"082(U$)%5(B40D$$B- -M1"142(E$)`A(C40D4DB)!"1,C4PD44R-1"1.2(U,)$U(C50D3$B-="1+Z``` -M```/MD0D2T&(1"1&#[9$)$Q!B$0D1P^V1"1-08B$).$````/MT0D5F9!B40D -M6(M$)%QF08F$)#P2```/MT0D7O_(9D&)A"0^$@``00^W1"0\/8"1``!T"SV` -ME```#X4C"0``0<9$)$T$0<9$)$,$0<9$)$Y`0<9$)$P`0<:$)-X````)0<9$ -M)$0`28V\)/@(``#H`````$F)A"08"0``N0````!(#[94)$M(:=*(`0``ZPB( -M"$C_RDC_P$B%TG7S28V\)"`)``#H`````$F)A"1`"0``N0````!(#[94)$U( -M:=+0````2(72=`J("$C_P$C_RG7V28V\)$@)``#H`````$F)A"1H"0``N0`` -M``!(#[94)$Q(:=+(#P``2(72=`J("$C_P$C_RG7V28V\)'`)``#H`````$F) -MA"20"0``N0````!(#[=4)%9(P>(#=`J("$C_P$C_RG7V28V\)``*``#H```` -M`$F)A"0@"@``28V\)-@)``#H`````$F)A"3X"0``2(G#28V\)$@*``#H```` -M`$F)A"1H"@``2(G"O0````!F.VPD3G-$28V,)`@!``!(B5I@#[9$)%&(0EA( -MBT$(2(E1"$B)"DB)0@A(B1!(#[9$)%%(C01`2(T<@TB!PJ@```#_Q68[;"1. -MAWW4F-O"3`"@``Z`````!)B80DX`H` -M`$B)PKT`````@'PD50!T+DF-C"1(`0``2(M!"$B)40A(B0I(B4((2(D02('" -MH````/_%9@^V1"159CGH=]I)C;PDZ`H``.@`````28F$)`@+``!(B<*]```` -M`&8[;"12!QF!7``"Y`````(GR2(72=`J("$C_P$C_RG7V28N$)&@0 -M``"),$F+E"1H$```#[9$)$R(0@0/ME0D3$F+O"1H$```Z`````"]`````$&` -M?"0^`'1]#[?%2&G`J````$P!X$R-L*`!``!!B&X(0<9&"0!,B:"@`0``0<9& -M#@!!QD98`$'&1B@`0<>&H`````````!(C9#0`0``28E6,$F)5CA(C9#H`0`` -M28E62$F)5E!(!0`"``!)B49@28E&:$'&1@H"_\5F00^V1"0^9CGH=X-!QD0D -M3`"]``````^WQ4+&A"#&"```___%9H/]`W;LO0````"`?"1+``^$D`````^W -MS4F+E"08"0``2&G!B`$``,9$$$,!28N4)!@)``#&1!!"`$F+E"08"0``QD00 -M>/])BY0D&`D``,9$$&K_28N4)!@)``!FQX00P```````2<>$S$`$```````` -M2(G!20.,)!@)``!(C5$@2(E1($D#A"08"0``2(/`($B)0`C_Q68/MD0D2V8Y -MZ`^'@/AS[___]!QH0DWP```("] -M`````(!\)$T`#X2'````#[?528N$)$`)``!(:=+0````9L=$`DX$`$F+A"1` -M"0``QD0"0@!)BX0D0`D``,9$`D3_28N$)$`)``#&1`)0_TB)T4D#C"1`"0`` -M2(U!*$B)02A(B=!)`X0D0`D``$B#P"A(B4`(28N$)$`)``!,B;0"B````/_% -M9@^V1"1-9CGH#X=Y____0<:$).````""28VT))@0``!)C;PD_H`````$B)PTB+10A( -MB5T(2(DK2(E#"$B)&$B#>S@`=!I(BU,X28NT)-`(``"_!0```.@`````@$M$ -M`DB)VKX"````3(GWZ`````"`>WL`=!A,B>?H`````+\!````Z`````"`>WL` -M=>A!_\5%.&\.=XO^1"0'@'PD!P,/AC[___],B>?H`````$B#Q`A;74%<05U! -M7D%?PY!(@^P(2#E^*'5F#[9..(#Y"`^5P(#Y*`^5P@^VP(7"=&B`^:AT8X#Y -MB'1>@/D*#Y7`@/DJ#Y7"#[;`A<)T2X#YJG1&@/F*=$%(C9?H````2(N'Z``` -M`$B)<`A(B09(B58(2(FWZ````.L?9F:09F:02(V'Z````$B+4`A(B7`(2(D& -M2(E6"$B),N@`````2(/$",-F9F:09F:09F:09F:02(/L".@`````2(/$",-F -MD$%455-(B?-(B=5!O`````!F@7XXX0%U"P^V1CJ#Z!$\`78R2(L72(NR&`D` -M`$R-IGB&`0!F@7L@A0!W&4@/MT,@2`^VA!!`"```2&G`B`$``$R-)`;&100% -M@&4%_H!E`-^Z`````&:!>SCA`742#[9#.O_(/`&X`0````]&T&:0B=#!X``&@^*_"<*(50!F@7LXX0%U$@^V0SJ# -MZ!$\`7<'9HE-".L'.!(`````2`^WCS@2``!(BY<@$0`` -MBP:)!(H/MX+___\?"<*)$0^V00.#R!"# -MX/>(00/V1PH!=!1$BR"!`'R"%``^'H0```$@/MT,@0H"\ -M($`(``#_#X2-````9H-[(']W)DH/MH0@0`@``$F+E"08"0``2&G`B`$``$B+ -M1!!(1`^V:`CK:&:09H%[(($`=RE(#[=#($H/MH0@0`@``$F+E"1H"0``2&G` -MR`\``$B+1!`(1`^V:`CK-4@/MT,@2@^VA"!`"```28N4)$`)``!(:<#0```` -M2(N$$(@```!$#[9H".L)9F:00;W_____NO\```!F@7L@A0!W#T@/MT,@9D(/ -MMI0@0`@``$2)Z0^VP4H/MJP@Q@@``$AI[:@```!*C:PEH`$```^WPDAIP(@! -M``!)B<9-`[0D&`D``&:!>SCA`74*#[9#.O_(/`%V*6:!^O\`=`=!]D9#!'4; -MQD,D!D''!P````"X`0```.G6`@``9F:09F:020^V1D"H`70GJ`1T(T$/MD0D -M1$$Z1"1.3(GWZ`````"$P'45QD,D!$''!P````"X`0`` -M`.E>`@``08!^>Q]V$4''!P$```"X`0```.E&`@``]H.6`````70&]D4,`70; -M]H.6`````74&]D4,`74,@'LD@70&]D4,"'0A00^V]4R)Y^@`````A,!T$4'' -M!P$```"X`0```.G[`0``]H.6`````0^$;@$``/9%#`$/A&0!``!,B??H```` -M`&:#^!\/AE(!``!!QPT$Z1GIR$4''!P$```"X`0```.F/`0``BT,X)?___P`]X0$0 -M``^$_````$D/MT9B2(G"2-'J@^(!N0$```"`>SCA#X7?````@'LY`0^%U0`` -M``^V0SJ#Z`:#^`D/AZT```")P/\DQ0`````/MLFZ`0```$B)WDR)Y^@````` -MA,`/A:$```!!QP<"````N`$```#I$`$```^VR;H`````2(G>3(GGZ`````"$ -MP'5Y0<<'`@```+@!````Z>@````/MM*Y`0```$B)WDR)Y^@`````A,!U44'' -M!P(```"X`0```.G`````#[;2N0````!(B=Y,B>?H`````(3`=2E!QP<"```` -MN`$```#IF````,9#)`1!QP<`````N`$```#I@P```&9FD$F-O"18#P``Z``` -M``"$P'0/0<<'`0```+@!````ZV&0@'LXX751@'LY`75+@'LZ#W5%@'L]`74_ -M9@^V$!$``/A1(!``"_B!,``.@`````9H%]((4`#X><````2`^W -M12!"@+PP0`@``/\/A(@```!F@WT@?W`B^`````+JP!```2(G(9F9FD$"(,$C_P$C_RG7U9H%]..$! -M=6H/MD4Z@^@1/`%W7TB-3"1`2(M$)#`/ME`(2(GN2(M\)!#H`````$$/M\=( -M:<"P!```2`-$)"!)*X;P$```2(G&20.V^!```$B!QB`$``!(BT0D,(EP$$B) -M\DC!ZB!(BT0D,(E0%.F8`0``2(M$)!CV0`H!=2V+13@E____`#WA`1``#X0% -M`0``2(M4)!!(#[9"0*@!#X3S````J`0/A.L```#VA98````@=`](C70D0$B) -M[^@`````ZQM(C4PD0$B+1"0P#[90"$B)[DB+?"00Z`````!!#[?'2&G`L`0` -M`$@#1"0@22N&\!```$B)QDD#MO@0``!(@<8@!```2(M$)#")H@ -M2(M$)#")4!1F@7TXX0%U#P^V13J#Z!$\`0^&UP```$B+3"002`^V04"H`@^$ -MQ0```*@$#X2]````J`$/A+4```!!#[?'2&G`L`0``$@#1"0@22N&\!```$B) -MQDD#MO@0``!(BT0D,(EP&$B)\DC!ZB!(BT0D,(E0'.M[9F:09F:02(M$)!CV -M0`H"=&I!#[?'2&G`L`0``$@#1"0@2(G"22N6\!```$B)UDD#MO@0``!(BU0D -M,(ER&$B)\4C!Z2!(BU0D,(E*'$DKAO`0``!(B<9)`[;X$```2('&(`0``$B+ -M1"0PB7`02(GR2,'J($B+1"0PB5`42(M$)#"`2`$"9@^V55E(BT0D,&:)4`*_ -M`````(!]60!T+8GX2(T$0$C!X`)(B<9(`W,02(M-8$B+%`A(B1:+1`@(B48( -M_\Y(BWPD -M&.@`````2(M4)!B`8@S^Z6,%``!(BTPD&/9!"@(/A-T$``!(BT0D,,9`!OY( -MBT0D,(!@!_Y(@WPD$``/A.T```!(BUPD$$@/MD-`J`(/A-L```"H!`^$TP`` -M`*@!#X3+````00^WSTB+5"0P2(GN2(M\)!CH`````/:%E@````%T$$B+1"0P -M#[=`",'@`XA$)$%(C4PD0$$/M]=(:=*P!```2`-4)"!(B>Y(BWPD&.@````` -M]H66`````70+2(M$)!B`2`P!ZPE(BU0D&(!B#/Y!#[?/2&G)L`0``$B+7"0@ -MQ@09H4B+1"00#[:0X@```(/B#P^V1!D!@^#P"="(1!D!2(M4)!`/MT(P_\`/ -MMM#!X@@/ML0)T&:)1!D"3(ML)!!)@<7,````Z:X#``!F@7TXX0$/A7@"```/ -MMD4Z@_@/=`Z#^!`/A.(```#IBP,``&8/ME4\P>((9@^V13L!PDB+1"0PQD`$ -M#4B+1"0P@&`%_H!,)"\(2(MT)#`/MD4E00^VCMX```#3X&8)1@A(BTPD,`^V -M00&#X!^#R""(00%!#[?/2&G)L`0``$B+7"0@2(TT&4B+13Y(B88X!```#[;" -MP>`(#[;6"<)FB9091`0```^V13V(A!E"!```Q@:12(M4)!`/MT(P_\`/MM#! -MX@@/ML0)T&:)1!D"2(M<)!`/MI/B````@^(/2(M<)"`/MD09`8/@\`G0B$09 -M`4R+;"0028'%S````.FN`@``2(M4)#`/MD4E00^VCMX```#3X&8)0@A!#[?7 -M2&G2L`0``$B+1"0@Q@0"@6;'1`("__]!#[:,)+L```"#X0](BUPD(`^V1!H! -M@^#P"[H`````(/@#TB+3"0@#[94"P&#XO`) -MPHA4"P'K`TV)Y;X$````2(M52`^V0@$]DP```'=VB<#_),4`````@\8$ZVB# -MQ@3K8X/&".M>@\8(9F:0ZU:#Q@CK48/&".M,@\8(D.M&@\8(ZT&#QACK/(/& -M&)#K-H/&#.LQ@\8(ZRP/MG($C32U"````.L?@<:(````D.L6@\8DZQ&#QB3K -M#(/&))#K!H'&B````(U6`\'J`DB+1"0PB%`$2(M,)#!FP>H(@^(!#[9!!8/@ -M_@G0B$$%00^W_TAI_[`$``!(BUPD($B-O!\@!```B?)(BW5(Z`````#I*@$` -M``^V13B#Z`0]JP```'<_B<#_),4`````#[9%0,'@"`^V54&-#!"#^0UW&+@! -M````2-/@J=@^``!T"4B+1"0P@$@!!$B+1"0P@$@!`>L)2(M$)#"`8`'[2(M$ -M)##&0`0-2(M$)#"`8`7^2(M4)#`/MD4E00^VCMX```#3X&8)0@A(BT0D,(!@ -M`1]!#[??2&G;L`0``$B+1"0@QH0#(`0```9,BVPD$$F!Q[H`````$F-O"0E!```3(GNZ`````!(BT4X28F$)$0$``!(BT5` -M28F$)$P$``!!Q@0DD4B+3"00#[:1X@```(/B#TB+3"0@#[9$"P&#X/`)T(A$ -M"P%(BU0D$`^W0C#_P`^VT,'B"`^VQ`G09HE$"P)-A>T/A)(```!!#[?'2&G` -ML`0``$F+50!(BTPD($B)5`@$ZW=(BUPD&/9#"@%T;$$/M\](BU0D,$B)[DB) -MW^@`````]H66`````7002(M$)#`/MT`(P>`#B$0D04B-3"1`00^WUTAITK`$ -M``!(`U0D($B)[DB+?"08Z`````#VA98````!=`M(BT0D&(!(#`'K"4B+5"08 -M@&(,_D$/M]=)BX:0"0``2(DLT$2)^F;!Z@4/M])$B?F#X1^X`0```$C3X$$) -MA):8"0``BT4X)?___P`]X0$0`'4O00^W]TB-3"0LN@````!(BWPD&.@````` -MBT0D+"7___\?#0```$")1"0LZ:$```!F@7TXX0%U-@^V13J#Z!$\`7N````2`^W1B"`O#A`"```_P^$FP```&:#?B!_=RE(#[:$.$`( -M``!(BY<8"0``2&G`B`$``$B+1!!(2`^V0`A(!<`(``#K<&:!?B"!`'$R) -MY^@`````9F:02(GN3(GGZ`````!,B>Y(B=]!_Y6@````2(M<)`A(BVPD$$R+ -M9"083(ML)"!(@\0HPV9F9I!F9F:09F9FD&9FD$B#[#A(B5PD"$B);"003(ED -M)!A,B6PD($R)="0H3(E\)#!)B?9)B?U,BS](C5](2(G?Z`````!)B<1)@^PX -M3(G_Z`````!(B<5)C40D.$B+4PA(B4,(28E<)#A(B5`(2(D"N`$```!(A>UT -M>4B-?5C&13CAQD4Y`<9%.A"`33L!28N&H````$B)16A(BT5P3(EP*$F-AI`` -M``!(B450QD4ES&9!#[9$)%MFB44@28M%`$B)12C'1320````3(EU2$C'A:`` -M````````O@````#H`````$B)[DR)_^@`````N`````!(BUPD"$B+;"003(MD -M)!A,BVPD($R+="0H3(M\)#!(@\0XPV9F9I!F9F:02(/L*$B)'"1(B6PD"$R) -M9"003(EL)!A,B70D($B)\TB)_4R+;TA-BV4`#[=.,HG.9L'N!0^WQD&+1(1< -M@^$?2-/XJ`$/A68#``!)BQ0D#[?&C02%``,``(F"<`$``$F+!"2+@'0!``") -M!0````")PL9#)"&+0S@E____`#WA`0\`=2*^`````$B)W^@`````N@````!( -MB=Y,B>?H`````.D+`P``B=`/MTLR@^$?2-/XJ`%T&[X!````2(G?Z`````!, -MB>?H`````&9FD&9FD`^VA>````"#^`0/A]`"``")P/\DQ0````#&A>`````! -MN@$```!(B=Y,B>_H`````.FK`@``QH7@`````KH(````2(G>3(GOZ`````#I -MCP(``,:%X`````-(B>J^(0```$R)[^@`````2(-]4`!T(`^V57E(BW500;@` -M````N0$```!,B>_H`````.E1`@``00^V=0VZ`````$R)Y^@`````Z3H"``#& -MA>`````$2(-]4`!T,$B)ZKXA````3(GOZ``````/ME5Y2(MU4$&X`````+D" -M````3(GOZ`````#I_`$``+H`````OB$```!,B>_H`````$$/MG4-N@$```!, -MB>?H`````.G3`0``2(GJO@8```!,B>_H`````$B#?3@`=!9(BT4XBT@$C5$! -MB5`$@_D%#X:F`0``QD5#`<9%0@"`?7L`=!A,B>?H`````+\!````Z`````"` -M?7L`=>A(@WU0`'082(M5&$B+11!(B5`(2(D"2(M%4/Y(6.L92(-]6`!T$DB+ -M55A(#[9%>4C'1,)8`````$B+50A(BT4`2(E0"$B)`D'^30Y(@[T8`0```'08 -M#[:U!0$``$B+O1@!``"Z`0```.@`````2(-]4`!T$@^V=7E(BWU0N@$```#H -M`````$B#?3@`#X2"````2(M%.$C'0&``````0?Z$).\3``!,B>?H`````$B+ -M13@/MG`!N@$```!,B>?H`````$B+13@/ME`"#[9P`4C'QP````"X`````.@` -M````2(M5.$F+M"30"```OP$```#H`````$B+53A)B[0DT`@``+\&````Z``` -M``!(QT4X`````$B)[DR)Y^@`````08!]"?]T6T&^`````$&`?0X`=CE)C5U@ -M2(G?Z`````!(B<5(BT,(2(EK"$B)70!(B44(2(DH@'U"_W4+0?_&13AU#G?3 -MZP9%.'4.=Q5!QD4)_TR)[DR)Y^@`````9F:09I!(BQPD2(ML)`A,BV0D$$R+ -M;"083(MT)"!(@\0HPV9FD$B#[#A(B5PD"$B);"003(ED)!A,B6PD($R)="0H -M3(E\)#!(B?-(B?U,BV=(38LL)$&_`````$'V1"0,$'0'QH?@````!@^VA>`` -M``"#^`$/A(L```"#^`%_"X7`=!YFD.G[`P``@_@$#X2B````@_@Y`0`` -MZ>0#``#&A>`````!2(GN3(GOZ`````#&0R2!08!,)`P(2(.[@`````!T#TB- -MLX````!,B>_H`````$F-E>@```!)BX7H````2(E8"$B)`TB)4PA)B9WH```` -M3(GOZ`````#I@@,``&:008!D)`SW_H7C````QH7@`````,9#)`)(B=Y,B>_H -M`````$R)[^@`````Z5$#``"0QH7C`````$B#?3@`#X1.`0``2(M%.(M(!(U1 -M`8E0!(/Y!0^'.`$``$&`9"0,]TB#NX``````=`](C;.`````3(GOZ`````!) -MC97H````28N%Z````$B)6`A(B0-(B5,(28F=Z````$&`3"0,$$B#?5``="`/ -MME5Y2(MU4$&X`````+D"````3(GGZ`````#IO`(``,9$)`<`08!\)`X`#X:G -M````38UT)&!F9I!F9I!,B??H`````$B)PTF+1@A)B5X(3(DS2(E#"$B)&$B# -M>S@`=!Q(BU,X28NUT`@``+\%````Z`````"`2T0"9F:02(G:O@8```!,B>?H -M`````(![>P!T,D2)^$'_QSU_EI@`=R5,B>_H`````+\!````Z`````"`>WL` -M=`U$B?A!_\<]?Y:8`';;_D0D!P^V1"0'03A$)`X/AV3____&14(#2(GN3(GO -MZ`````#I\`$``$F-E>@```!)BX7H````2(E8"$B)`TB)4PA)B9WH````2(-] -M.`!T%DB+13B+2`2-40&)4`2#^04/AI8!``!(Q\<`````N`````#H`````$B) -MZKX&````3(GGZ`````!!_DPD#DB+50A(BT4`2(E0"$B)`DB#?5``=!A(BT50 -M_DA82(M5&$B+11!(B5`(2(D"ZQ](@WU8`'082(M56$@/MD5Y2,=$PE@````` -M9F:09F:0@'U[`'0R1(GX0?_'/7^6F`!W)4R)[^@`````OP$```#H`````(!] -M>P!T#42)^$'_QSU_EI@`=MM(BU4(2(M%`$B)4`A(B0)(@[T8`0```'0?#[:U -M!0$``$B+O1@!``"Z`0```.@`````9F9FD&9FD$B#?5``=!D/MG5Y2(M]4+H! -M````Z`````!F9F:09F:02(-].`!T?TB+13A(QT!@`````$'^A>\3``!,B>_H -M`````$B+13@/MG`!N@$```!,B>_H`````$B+13@/ME`"#[9P`4C'QP````"X -M`````.@`````2(M5.$F+M=`(``"_`0```.@`````2(M5.$F+M=`(``"_!@`` -M`.@`````2,=%.`````!(B>Y,B>_H`````.L02(GJO@(```!,B>?H`````$R) -M[^@`````9F:09I!(BUPD"$B+;"003(MD)!A,BVPD($R+="0H3(M\)#!(@\0X -MPV9F9I!F9I!F9I!F9I!!5D%505154TB)\TF)_$R+KX@```!)BVT`0?9%#!!T -M!,9'409!#[9$)%&#^`$/A(D```"#^`%_#87`="!F9F:0Z7L#``"#^`0/A)H` -M``"#^`4/A)_H`````$B-E>@```!(BX7H````2(E8"$B)`TB) -M4PA(B9WH````2(GOZ`````#I!`,``$&`90SW0?Y$)%)!QD0D40#&0R0"2(G> -M2(GOZ`````!(B>_H`````.G8`@``08!E#/=(@[N``````'0/2(VS@````$B) -M[^@`````2(V%Z````$B+E>@```!(B5H(2(D32(E#"$B)G>@```"Z`````+X& -M````3(GOZ`````!!#[9U#;H!````2(GOZ`````!!O@````!!@'T.``^&?``` -M`$V-96"03(GGZ`````!(B<-)BT0D"$F)7"0(3(DC2(E#"$B)&$B#>S@`=!I( -MBU,X2(NUT`@``+\%````Z`````"`2T0"D$B)VKX&````3(GOZ`````"`>WL` -M=!A(B>_H`````+\!````Z`````"`>WL`=>A!_\9%.'4.=XE!QD4)`$&`30P0 -M3(GOZ`````#IT@$``$&`90SW2(.[@`````!T#TB-LX````!(B>_H`````$B- -MA>@```!(BY7H````2(E:"$B)$TB)0PA(B9WH````28U%8$B)PDDY16`/A.$` -M``!)B<9(B=?H`````$B)PTB#>#@`=!Y(BU`X2(NUT`@``+\%````Z`````"` -M2T0"9F:09I!(B=J^!@```$R)[^@`````@'M[`'082(GOZ`````"_`0```.@` -M````@'M[`'7H2(-[.`!T84B+0SA(QT!@`````/Z%[Q,``$B)[^@`````2(M# -M.`^V<`&Z`0```$B)[^@`````2(M3.$B+M=`(``"_`0```.@`````2(M3.$B+ -MM=`(``"_!@```.@`````2,=#.`````!(B=Y(B>_H`````$R)\DTY=6`/A2+_ -M__^Z`````+X&````3(GOZ`````!,B>9(B>_H`````$G'14``````2(M%`(N0 -M6`$``(D5`````(72=`I(BT4`B9!8`0``0?9%"@%T6$&^`````(!]0P!V&TD/ -MME4-2(G01(GQ2-/XJ`%U"4'_QD0X=4-WZD$/MO9(B>_H`````$R)[DB)[^@` -M````1(GR#[;"2&O`:$C'A"A($@```````&9F9I!;74%<05U!7L-F9F:09F:0 -M05=!5D%505154TB#[`A)B?Q,BW=(28L>2(G^2(G?Z`````!!@+PDXP````%V -M"4'&A"3@````!$F-;"0@23EL)"`/A#D"``!(B>_H`````$F)QTF+1"0@3(EX -M"$F)!TF);PA-B7PD($&]`````.G6`0``00^WU4B+@Y`)``!(BRS02(7M#X2[ -M`0``00^W1"0P9CM%(`^%JP$```^WBSH2``!(BX-0$0``.0AT5&9F9I#_P0^W -M@SX2```YR+@`````#T;(C5$!2(N#4!$``(L$D*D```@`=1XE_P\``&9!.<5U -M$TDY[W492(G?Z`````"0Z8L!``!(BX-0$0``.0AUL$&`?E@`#X4Z`0``9H%] -M((4`#X@%#[?` -M@^$?2-/B]](A5(-<3#G]=$E(BU4(2(M%`$B)4`A(B0)(@[V``````'0/2(VU -M@````$B)W^@`````2(V3Z````$B+@^@```!(B6@(2(E%`$B)50A(B:OH```` -M#[=U,DB-NU@/``#H`````$'^3"1[ZQ)!]D8*`G0+2(GN3(GGZ`````!!_\5F -M1#EK6`^''_[__TV%Y'0H20^V1"1`J`%T'J@$=!I)BU<(28L'2(E0"$B)`DR) -M_DR)Y^@`````D$B#Q`A;74%<05U!7D%?PY!!5D%505154TF)_$R+MX@```!) -MBQY(B?Y(B=_H`````$&`?"12`78&0<9$)%$$28UL)"A).6PD*`^$\@$``$B) -M[^@`````28G%28M$)"A,B6@(28E%`$F);0A-B6PD*+T`````Z9L!``!F9F:0 -M9F:0#[?52(N#D`D``$B+--!(A?8/A'L!``!!#[=$)$!F.T8@#X5K`0``#[>+ -M.A(``$B+@U`1```Y"'179F9FD&9FD/_!#[>#/A(``#G(N``````/1LB-40%( -MBX-0$0``BP20J0``"`!U'B7_#P``9CG%=11).?5U&DB)W^@`````9I#I.P$` -M`$B+@U`1```Y"'6P9H%^((4`#X?V````2`^W1B"`O!A`"```_P^$XP```$&` -M?E@`#X78````0?9&"@$/A,T```!(BQ,/MT8R9L'H!0^WP(T$A0`#``")@G`! -M``!(BP,/MTXR@^$?N@$```!(B==(T^>)N'0!``!(#[=.,DB+@Y`)``!(QP3( -M``````^W3C*)R&;!Z`4/M\"#X1](B==(T^=(B?GWT2&,@Y@)```/MTXRB@%#[?`@^$?2-/B]](A5(-<3#GN="Y(BU8(2(L&2(E0"$B)`DB-D^@```!( -MBX/H````2(EP"$B)!DB)5@A(B;/H````#[=V,DB-NU@/``#H`````$'^3"1% -M_\5F.6M8#X=B_O__0?9&"@%T&TF+50A)BT4`2(E0"$B)`DR)[DR)Y^@````` -MD%M=05Q!74%>PV9F9I!F9I!!5T%6055!5%532(/L"$B)_4&^`````$B-A^@` -M``!(B<)(.8?H````#X33`0``28G'28G%28G42(G7Z`````!(B<-(@WAP`'4O -M2(GOZ`````!(B4-P2(7`=1Y(BX7H````2(E8"$B)`TR)8PA(B9WH````Z8D! -M``"+0S@E____`#WA`1``#X3L````9H%[((``#X3@````9@^V0R!FB4,@9H/X -M?W8:9H%[..$!=2D/MD,Z@^@1/`%W'F9F9I!F9I!F@7L@A0!W#T@/MT,@@+PH -M0`@``/]U&<9#)`9(B=Y(B>_H`````.D&`0``9F:09I!F@7LXX0%U"P^V0SJ# -MZ!$\`78O2(N5&`D``$R-LGB&`0!F@7L@A0!W&4@/MT,@2`^VA"A`"```2&G` -MB`$``$R--`)F@7LXX0%U"@^V0SK_R#P!=C-F@7L@@`!T*V:!>SCA`74+#[9# -M.H/H$3P!=AA!]D9#!'41QD,D!DB)WDB)[^@`````ZWI(B=Y(B>_H`````(/X -M`G<+@_@!2(GOZ`````!F9I#K -M/TB#NX``````=`](C;.`````2(GOZ`````!(BX7H````2(E8"$B)`TR)>PA( -MB9WH````ZQM(B=Y(B>_H`````$R)ZDPYK>@````/A3/^__](@\0(6UU!7$%= -M05Y!7\-!5T%6055!5%532(/L2$F)_4"(="0P2`^V5"0P2&O2:$@!^DR+LD@2 -M``!(Q\#^____B?%(T\`B@FD2``"(1"0O3(L_QT0D*`````!`@/X#=@U!QX=P -M`0``Q`$``.L+0<>'<`$``*@!``!!BX=T`0``B04`````#[9,)#"#X0.[!P`` -M`-/CB<4)W4&)KW0!``"_Z`,``.@`````]],AW4&)KW0!``"`?"0P`W8@#[9$ -M)#!(P>`")?P#``!"BX0XT`$``(D%`````(G%ZQX/MD0D,$C!X`(E_`,``$*+ -MA#C0`0``B04`````B<6#S0B`?"0P`W88#[9$)#!(P>`")?P#``!"B:PXT`$` -M`.L6#[9$)#!(P>`")?P#``!"B:PXT`$``(!\)#`#=AP/MD0D,$C!X`,E^`<` -M`$+'A#@``@``.````.L:#[9$)#!(P>`#)?@'``!"QX0X``(``#@```"_$"<` -M`.@`````@'PD,`-V'`^V1"0P2,'@`R7X!P``0L>$.`0"````````ZQH/MD0D -M,$C!X`,E^`<``$+'A#@$`@```````$V%]@^$[@<``$&\`````$&`?4,`=BUF -M9F:020^V1@U!#[;,2-/XJ`%T$+H!````B_H`````)!!_\1%.&5#=]=! -M]D8*`71B3(GV3(GOZ``````/MG0D,$R)[^@`````2`^V1"0P2&O`:$J-E"A@ -M$@``BT(,J0``$`!T""7__^__B4(,3(GV3(GOZ`````!(#[9$)#!(:\!H2L>$ -M*$@2````````Z4L'``!!@'Y8`'0328N]:!```$R)]N@`````0?Y.6(!\)"\` -M#X2I`@``2,=$)"``````QD0D'P`/MG0D,$R)[^@`````2`^V1"0P2&O`:$J- -ME"A@$@``BT(,J0``$`!T""7__^__B4(,#[9$)"]!B$8-0;P`````08!]0P`/ -MAI,!``!(#[94)"](B50D$`^VR(E,)`Q!#[;,2(M$)!!(T_BH`0^$8`$``$2) -MX@^VPDAKP&@/ME0D+T*(E"AI$@``08#\`W87C03-`````$B80L>$.``"```X -M````ZQE*C03E`````"7X!P``0L>$.``"```X````OQ`G``#H`````$&`_`-V -M&TJ-!.4`````)?@'``"+3"0,0HF,.`0"``#K&4J-!.4`````)?@'``"+5"0, -M0HF4.`0"``!!@/P#=@U!QX=P`0``Q`$``.L+0<>'<`$``*@!``!!BX=T`0`` -MB04`````1(GA@^$#NP<```#3XXG%"=U!B:]T`0``O^@#``#H`````/?3(=U! -MB:]T`0``08#\`W8?2HT$I0`````E_`,``$*+A#C0`0``B04`````B<7K'4J- -M!*4`````)?P#``!"BX0XT`$``(D%`````(G%@\T(08#\`W872HT$I0`````E -M_`,``$*)K#C0`0``ZQ5*C02E`````"7\`P``0HFL.-`!``!!_\1%.&5##X=_ -M_O__28U&2$B)PDDY1DAT-DB)TTB)U^@`````2(U(R$B)3"0@2(M3"$B)0PA( -MB1A(B5`(2(D"2(-XV`!T"4B)VDDY7DAURDB#?"0@`'1%2(M$)"#&0%H`0;P` -M````08!]0P!V+TD/MD8-1(GA2-/XJ`%T%T@/MD0D'TB+5"0@1(AD$'#^0EK^ -M1"0?0?_$13AE0W?1N@````"^@0```$R)]^@`````2`^V1"0P2&O`:$K'A"A( -M$@```````.EH`P``N@````"^!@```$R)]^@`````#[9T)#!,B>_H`````$@/ -MMD0D,$AKP&A*C90H8!(``(M"#*D``!``=`@E___O_XE"#$F-1DA(B<)).49( -M#X3L`0``2(D$)$B)U^@`````3(U@R$B-4!!(.5`0#X2Q`0``28U\)$CH```` -M`$B-6/"`>T$-=1I(C;!(`0``2(M#2$B+`$B+>"CH`````&9FD$B+4PA(BP-( -MB5`(2(D"@'M[`'083(GOZ`````"_`0```.@`````@'M[`'7H2(-[.``/A"@! -M``!(BT,X2,=`8`````"`>WL`#X29````O0````!F08-]6``/A(@```!FD$AC -MU4F+A9`)``!(BS302(7V=&0/MT8@9CM#,'5:9CV%`'=4#[?`0H"\*$`(``#_ -M=$9)BU4`#[=&,F;!Z`4/M\"-!(4``P``B8)P`0``28M%``^W3C*#X1^Z`0`` -M`$C3XHF0=`$``,9&)"&Z`````$R)[^@`````_\5!#[=%6#GH#X]Z____]D-$ -M!'4D0?Z%[Q,``$R)[^@`````2(M#.`^V<`&Z`0```$R)[^@`````2(M#.`^V -M4`(/MG`!2,?'`````+@`````Z`````!(BU,X28NUT`@``+\!````Z`````!( -MBU,X28NUT`@``+\&````Z`````!(QT,X`````$'^3@Y!_DPD6$B)WDR)[^@` -M````28U$)$A).40D2`^%3_[__T'^3BA,B>9,B>_H`````$B+%"1).59(#X48 -M_O__28U&8$B)PDDY1F`/A/8```!(B<5(B=?H`````$B)PX!X>P!T-HM$)"C_ -M1"0H/7^6F`!W)TR)[^@`````OP$```#H`````(![>P!T#XM$)"C_1"0H/7^6 -MF`!VV4B#>S@`#X2%````2(M#.$C'0&``````]D-$!'4D0?Z%[Q,``$R)[^@` -M````2(M#.`^V<`&Z`0```$R)[^@`````2(M#.`^V4`(/MG`!2,?'`````+@` -M````Z`````!(BU,X28NUT`@``+\!````Z`````!(BU,X28NUT`@``+\&```` -MZ`````!(QT,X`````$'^3@Y(B=Y,B>_H`````$B)ZDDY;F`/A0W___],B?9, -MB>_H`````$@/MD0D,$AKP&A*QX0H2!(```````!!O`````!!@'U#``^&!`$` -M`$P/MG0D+Y!,B?)$B>%(T_I$.F0D,`^4P`G0J`$/A-4```!!@/P#=@U!QX=P -M`0``Q`$``.L+0<>'<`$``*@!``!!BX=T`0``B04`````1(GA@^$#C0Q)NP<` -M``#3XXG%"=U!B:]T`0``O^@#``#H`````/?3(=U!B:]T`0``08#\`W8?2HT$ -MI0`````E_`,``$*+A#C0`0``B04`````B<7K'4J-!*4`````)?P#``!"BX0X -MT`$``(D%`````(G%@\T(08#\`W872HT$I0`````E_`,``$*)K#C0`0``ZQA* -MC02E`````"7\`P``0HFL.-`!``!F9I!!_\1%.&5##X<#____2(/$2%M=05Q! -M74%>05_#9F9FD$B#[`A,BP>Z`````$&`>$,`=AP/ML)(:\!H2HV$`$`2``!( -M.?AT"/_"03A00W?D#[;"2&O`:$P!P$B+L$@2``!(A?9T:_9&"@)T94@%0!(` -M`$@Y1B!U68!^6`!T*/Y&6.M._D9800^VB;L```!)B[AH$```21``=,))BT$X3(U(R$@Y -MT'7L9F:02(/$",-F9F:09F9FD&9FD$%505154TB#[`A!B?1)B?V[`````(GR -M#[;"2&O`:$B-%#A(BZI($@``2(7M#X2!`0``2,?`_O___XGQ2-/`A$4-#X5L -M`0``2(U%2$@Y14AT$4B-ND`2``#H`````.G^`@``0;P`````@'T.``^&[@(` -M`$B-76!(B=_H`````$B)P4B+0PA(B4L(2(D92(E!"$B)"(!Y00`/A00!``!( -M#[=!,$F#O,5`!````'4+2(-Y.``/A-,```!(#[=!,$F+A,5`!```2(.X@``` -M```/A*$```#&@>``````2`^V04"H`G0MJ`1T*:@!="7&04(%QD%#!`^V47E( -MBW%02(MY2.@`````Z9@```!F9F:09F:02`^V04"H`G4GJ`1F9I!FD'0>J`%T -M&L9!0@/&04,$2(G.3(GOZ`````#K9F9FD&:02`^V04"H`G18J`1F9I!FD'1/ -MJ`%U2\9!0P;&04(%9L>!P```````2(G.3(GOZ`````#K+4B+43A)B[70"``` -MOP0```#H`````.L62`^W43!)B[70"```OP(```#H`````$'_Q$0X90X/A\C^ -M___IK0$``&:!^_,!=V=*C02E`````$B)Q8'E_`,``&9FD&:0OQ`G``#H```` -M`$&`_`-V($F+10"+A"C0`0``B04`````J0``$`!U*>L>9F:09F:028M%`(N$ -M*-`!``")!0````"I```0`'4)_\-F@?OS`7:O00^V]$R)[^@`````3(GOZ``` -M``!$B>(/ML)(:\!H2HNL*$@2``!(A>T/A!`!``"[`````$&`?4,`=BQF9F:0 -M2`^V10T/MLM(T_BH`701N@````")SDR)[^@`````9I#_PT$X74-WV$2)X0^V -MP4AKP&A*C80H0!(``$B)12!(C45(2#E%2'4.2(U%8$@Y16`/A(8```"^```` -M`$&\`````$B-14A(B<)(.45(=#-FD$B)TTB)U^@`````2(UPR$B+4PA(B4,( -M2(D82(E0"$B)`DB#>-@`=`E(B=I(.5U(=<](A?9T6L9&6@"Y`````$&`?4,` -M=DI(#[9%#4C3^*@!=!!$B>(/ML*(3#!P_D9:0?_$_\%!.$U#=]SK)/9%"@%T -M#4B)[DR)[^@`````ZQ&^`````$B)[^@`````9F9FD$B#Q`A;74%<05W#9F:0 -M9I!(@^P(2(GX2(L_9L=`3B``2(G&Z`````!(@\0(PV9FD%-(BP]$BT4,`=AL/ML-(:\!H2(V$"$`2``!(.?AT!__#.%E#=^6`^P-V+4B-!)T` -M````)?P#``!(BQ&+A`+0`0``B04`````J0``$`!U+>L[9F9FD&9FD$B-!)T` -M````)?P#``!(BQ&+A`+0`0``B04`````J0``$`!T$`^V\T2)PDB)S^@````` -MZPL/MO-(B<_H`````%O#9F9FD&9F9I!F9F:09F:02(N'P!```(L`B04````` -M2(N'P!```(M`!(D%`````$B+A\`0``"+0`B)!0````!(BX?`$```BT`,B04` -M````PT%7059!54%455-(@^P8B70D%$F)_$&^`````(!_0P`/ADD(``"+="04 -M00^VUHU*"$B)\$C3^*@!=1&-2A!(B?!(T_BH`0^$%0@``$&`_@-V)TJ-!/4` -M````)?@'``!)BQ0DBX0"@`$``(D%`````*D```@`=2?K0TJ-!/4`````)?@' -M``!)BQ0DBX0"@`$``(D%`````*D```@`=!Y,B>?H`````$2)\@^VPDAKP&A" -M@8P@_H`````$'_QT4X?0YWH[H@H0<` -MZR!!#[;VN@$```!,B>?H`````+^@A@$`Z`````"Z`"TQ`42)\0^VP4AKP&A, -M`>!(C;!X$@``B9!X$@``2,=&$`````!(!4`2``!(B48828M\)"CH`````$&` -M_@-V($J-!/4`````)?@'``!)BQ0DBX0"@`$``(D%`````.L>2HT$]0`````E -M^`<``$F+%"2+A`*``0``B04`````08#^`W8L2HT$]0`````E^`<``$F+%"2+ -MA`*``0``B04`````J8````!U,.G"````9I!*C03U`````"7X!P``28L4)(N$ -M`H`!``")!0````"I@`````^$EP```$&`_@-V(DJ-!/4`````)?@'``!)BQ0D -MBX0"A`$``(D%`````(G&ZR!*C03U`````"7X!P``28L4)(N$`H0!``")!0`` -M``")QD&`_@-V(DJ-!/4`````)?@'``!)BPPDB?*!R@```0")E`&$`0``ZR=* -MC03U`````"7X!P``28L,)(GR@X"``!$B?$/ML%(:\!H3HNL($@2``!)@WU```^$V0`` -M`$F+14!(#[=03O;&`0^%QP```$B)Q?;"`@^$M0```$B-L)````!)BWPD*.@` -M````0;X`````@'T[`'9I1(GR#[;"2(MS@`=!I(BU,X28NT -M)-`(``"_!0```.@`````@$M$`DB)VKX&````3(GOZ`````"`>WL`=!F03(GG -MZ`````"_`0```.@`````@'M[`'7H0?_&1#AU.W>7QX60````(*$'`$C'A:`` -M````````2(FMJ````$B-M9````!)BWPD*.@`````ZP9F@4A.@`!!@/X#=BA* -MC03U`````"7X!P``28L4)(N$`H`!``")!0````#VQ`%U+.D\`0``2HT$]0`` -M```E^`<``$F+%"2+A`*``0``B04`````]L0!#X05`0``08#^`W8G2HT$]0`` -M```E^`<``$F+%"2+A`*``0``B04`````J`%T*^GH````2HT$]0`````E^`<` -M`$F+%"2+A`*``0``B04`````J`$/A<(```!$B?%$#[;I36OM:$^-K"5`$@`` -M28-]"``/A*0```!)BT4(2(E$)`A)C74X28M\)"CH`````$&_`````$B+5"0( -M@'H.`'932(G52(/%8$B)[^@`````2(G#2(M%"$B)70A(B2M(B4,(2(D82(-[ -M.`!T&DB+4SA)B[0DT`@``+\%````Z`````"`2T0"0?_'2(M,)`A$.'D.=[1! -MQT4X@(0>`$G'14@`````38EM4$F-=3A)BWPD*.@`````9F9FD&9FD$&`_@-V -M(DJ-!/4`````)?@'``!)BQ0DBX0"@`$``(D%`````(G!ZR!*C03U`````"7X -M!P``28L4)(N$`H`!``")!0````")P4&`_@-V&DJ-!/4`````)?@'``!)BQ0D -MB8P"@`$``.L82HT$]0`````E^`<``$F+%"2)C`*``0``0?_&13AT)$,/A[?W -M__](@\086UU!7$%=05Y!7\-F9I!!5T%6055!5%532(/L&$B)_4F)]4B+EQ@) -M``!,C:)XA@$`9H%^((4`=QE(#[=&($@/MH0X0`@``$AIP(@!``!,C20"00^V -M1"1JP>`(2)A(BY7`$```BX0"0`@``(D%`````$&)QD'![A!!B<=!P>\800^V -M1"1JP>`(2)A(BY7`$```BX0"1`@``(D%`````(A$)!!(C70D$(G"P>H(B%8! -MP>@0B$8"00^V1"1JP>`(2)A(BY7`$```BX0"2`@``(D%`````(A&`XG"P>H( -MB%8$P>@0B$8%QD8&`,9&!P"+3"0000^VUT$/MMY$BT8$B=Y(Q\<`````N``` -M``#H`````$6$]@^5P(/S`878=!)!QD4D`+@`````Z;,"``!F9I!!@'TD@74I -M00^VUT$/MO9(C4PD$$R)[^@`````0<9%)`*X`````.F%`@``9F:09I!!BT4X -M)?___P`]X0$.`'400<9%)"&X`````.EA`@``D$'VA98````!=19!]L8!=!!! -M@'PD0O\/A2<"``!F9F:03(GF2(GOZ`````!,B>9(B>_H`````$B+50!!#[=% -M,F;!Z`4/M\"-!(4``P``B8)P`0``2(M%`$$/MTTR@^$?N@$```!(B=-(T^.) -MF'0!``!)#[=-,DB+A9`)``!(QP3(`````$$/MTTRB@%#[?`@^$?2(G3 -M2-/C2(G9]]$AC(68"0``00^W33*)R&;!Z`4/M\"#X1](T^+WTB%4A5Q)BU4( -M28M%`$B)4`A(B0)!#[=U,DB-O5@/``#H`````$'^3"1[0<9%)(%)@[V````` -M`'0/28VU@````$B)[^@`````28U$)"!(B<)).40D(`^$!@$``$&^`0```$B- -MA>@```!(B40D"$F)UV9F9I!(B=?H`````$B)PTB+50`/MT`R9L'H!0^WP(T$ -MA0`#``")@G`!``!(BT4`#[=+,H/A'TR)\DC3XHF0=`$``$@/MU,R2(N%D`D` -M`$C'!-``````#[=+,HG(9L'H!0^WP(/A'TR)\DC3XDB)T??1(8R%F`D```^W -M2S*)R&;!Z`4/M\"#X1],B?)(T^)(B='WT2%,A5P/MW,R2(V]6`\``.@````` -M0?Y,)'M(@[N``````'0/2(VS@````$B)[^@`````2(N%Z````$B)6`A(B0-( -MBT0D"$B)0PA(B9WH````3(GZ33E\)"`/A1/___]!@:64````___^_T'&A"3@ -M````!$R)[DR)Y^@`````N`$```#K'4$/MM=!#[;V2(U,)!!,B>_H`````+@` -M````9F:02(/$&%M=05Q!74%>05_#D$B#[$A(B5PD&$B);"0@3(ED)"A,B6PD -M,$R)="0X3(E\)$!(B50D$(GU2(L?3(NS\!```$&]`````$B%T@^$!0,```^W -MUDAIPK`$``!"]D0P(0)T$4B+@Y`)``!(BP30QD`D`NL2#[?&2(N3D`D``$B+ -M!,+&0"0A#[?%2(N3D`D``$B+%,*+0C@E____`#WA`1``#X2X`0``N/____]F -M@7H@A0!W#4@/MT(@#[:$&$`(```\_W4:#[?%2(N3D`D``$B+!,+&0"0&Z3,) -M``!F9I`/ML!(:<"(`0``28G%3`.K&`D``(!\)!,`>6])#[9%0*@"="RH!'0H -MJ`%T)$B+`XN`6`$``(D%`````(G"A$!#@`/A(`'``!!#[9%:L'@"$B82(N3 -MP!```(N$`D`(``")!0````")QL'N$$&)P$'!Z!A!#[9%:L'@"$B82(N3P!`` -M`(N$`D0(``")!0````"(1"0(2(U,)`B)PL'J"(A1`<'H$(A!`D$/MD5JP>`( -M2)A(BY/`$```BX0"2`@``(D%`````(A!`XG"P>H(B%$$P>@0B$$%QD$&`,9! -M!P#VAY8````!=1A`#[;V0/;&`70.00^VT.@`````Z2!@`` -MN`$```!(T^"IP#````^%\@```*D`@```=0VI```!`'5?D.EK!@``#[?62(N# -MD`D``$B+#-!,:<*P!```0P^V1#`SB$$D2(N#D`D``$B+!-#V0",$#X0X!@`` -M@'@D``^$+@8``$B#>%``#X0C!@``2(M04$,/MD0P,X@"Z1(&```/M]9(:=*P -M!```1`^WYDB+@Y`)``!*BPS@0@^V1#(JB$$D2(N#D`D``$J+!.!(@WA(``^$ -MV@4``$(/MKPR(00``.@`````B<)(BX.0"0``2HL$X#M0-'8#BU`T#[?U2(N# -MD`D``$B+!/!(BWA(B=)(:?:P!```2HUT-BCH`````.F-!0``#[?&2(N3D`D` -M`$B+!,+&0"0`Z78%``!F9I!F9I`/M]9(BX.0"0``3(LDT$V+?"1HN/____]F -M08%\)""%`'<.20^W1"0@#[:$&$`(```/ML!(:<"(`0``28G%3`.K&`D``$'& -MA>``````20^V14"H`@^$EP$``*@$#X2/`0``J`$/A(TF#?"1(`'1S0;X`````28._ -ML`````!T$T'VAZD````!=0E-B[>P````ZR%(B[,@"@``N@$```!,B?]!_Y>X -M````A`(2)A(BY/`$```BX0"0`@``(D%```` -M`(G"P>H008B7FP```,'H&&9!B8>0````00^V16K!X`A(F$B+D\`0``"+E`)$ -M"```B14`````9@^VPF9!B8>4````#[;&9D&)AY8```")T,'H$&8/ML!F08F' -MF````,'J&$&(EYH```!!#[9%:L'@"$B82(N3P!```(N$`DP(``")!0````!F -M#[;`9D&)AY(```#IA0,``&9FD&:0#[?52&G*L`0``$(/MD0Q,X3`#X6_```` -M2(N#D`D``$B+!-#&0"0`08N4))0```!(P>H4387_#Y7`#[;`A<(/A#P#``!" -M#[9$,3-!B(>2````00^VAZD```"H`@^$'P,``+T`````28._L`````!T#:@! -M=0E)BZ^P````ZR%(B[,@"@``N@$```!,B?]!_Y>X````AZ`````"+10!(`<-(C44$2(/% -M$(,X`'3>Z:D"```\`@^%6`(```^W_4AI_[`$``!*C7PW0+Y_````0"(WQD0D -M`P#&1"0"`,9$)`$`#[?%2&G`L`0``$*+1#`XB40D!$B-3"0$#[94)`3!XA@/ -MMD$!P>`0"<(/MD$"P>`("<(/MD$#08G500G%0(#^<78P08/]`78+#[9'`8/@ -M#XA$)`-!@_T"=@@/MD\"B$PD`D&#_0-V30^V?P-`B'PD`>M"08/]`G8+#[9' -M`H/@#XA$)`-!@_T'=BL/MD<'@\`(03G%1`]'Z$&#_0QV"`^V3PR(3"0"08/] -M#78)#[9_#4"(?"0!#[?U2(N#D`D``$B+#/"`>3``#Y7`187M#Y7"#[;`A<)T -M2<9!)"!(BX.0"0``2(L$\$0X:#!S!40/MF@P#[?-2(N#D`D``$B+!,A(@WA0 -M`'0L2(MX4$2)ZDAI\;`$``!*C70V0.@`````ZQ(/M\5(BY.0"0``2(L$PL9` -M)"*`?"0#!'42#[?%2(N3D`D``$B+!,+&0"0"23E<)"@/EI -M`````G0R1(GH13AL)#!S!D$/MD0D,(3`=!Y)B[^@````#[;0#[?U2&GVL`0` -M`$J-=#9`Z``````/MD0D`X/X"W==B<#_),4`````0<:'J@````'IF@```(!\ -M)`($#Y3`@'PD`0(/E,(/ML`AT(/X`1G`@^#Q@\`108B'J@```.MQ0<:'J@`` -M`!#K9T'&AZH````+ZUU!QH>J````!NM30<:'J@````WK23PH=1]!#[9%>__( -M08A%>@^WU4B+@Y`)``!(BP30QD`D@>LF/`AU"K\0)P``Z``````/M\5(BY.0 -M"0``2(L$PL9`)"%F9I!F9I!(BUPD&$B+;"0@3(MD)"A,BVPD,$R+="0X3(M\ -M)$!(@\1(PV9F9I!F9I!F9I!F9I!54TB#[`A(B?M(B?U(BP>+@%`!``")!0`` -M``")QDB+!XFP4`$``/?&`/__`'0(2(GOZ#KI__](BP.+@%`!``")!0````") -MQDB+`XFP4`$``/?&`/__`'7.N`````!(@\0(6UW#9F9FD&9F9I!F9F:005=! -M5D%505154TB#[$A(B?U(B7PD.$0/MZ_H`````&9!@7X@A0`/A\X```!)#[=&(("\*$`( -M``#_#X2[````9D&#?B!_=R=(#[:$*$`(``!(BY48"0``2&G`B`$``$B+1!!( -M@'@(_W5AZ8P```!F08%^(($`=RE)#[=&($@/MH0H0`@``$B+E6@)``!(:<#( -M#P``2(M$$`B`>`C_=2SK6DD/MT8@2`^VA"A`"```2(N50`D``$AIP-````!( -MBX00B````(!X"/]T,$R)]DB)[^@`````2(N%Z````$R)<`A)B09(BTPD&$F) -M3@A,B;7H````Z>@#``!FD$F-1A!(BTPD$$B+40A(B4$(28E.$$B)4`A(B0+I -MQ0,``$2)Z&;!Z`4/M\"+1(5<1(GI@^$?2-/XJ`$/A:8#``!!#[?52(N%D`D` -M`$B+!-!F@7@@A0`/A[,```!(#[=0(("\*D`(``#_#X2@````9H-X(']W(D@/ -MMH0J0`@``$B+E1@)``!(:<"(`0``2(M$$$@/ME`(ZWQ!#[?52(N%D`D``$B+ -M!-!F@7@@@0!W)T@/MT`@2`^VA"A`"```2(N5:`D``$AIP,@/``!(BT00"`^V -M4`CK/D$/M]5(BX60"0``2(L$T$@/MT`@2`^VA"A`"```2(N50`D``$AIP-`` -M``!(BX00B`````^V4`CK!;K_____@/K_=`T/ML*`O"C&"```_W5&1(GH9L'H -M!0^WP(M$A5Q$B>F#X1](T_BH`0^%H@(``$'&1B0&O@````!,B??H`````+H` -M````3(GV2(GOZ`````#I>P(```^VPD@/MIPHQ@@``$AIVZ@```!(C9PKH`$` -M`$B%_W0(]\8```(`=06_`````/9#"@(/A($!``!!#[?U2(GZ2(G?Z`````!$ -MB>AFP>@%#[?`BT2%7$2)Z8/A'TC3^*@!#X46`@``08!^)($/A9$```!)#[=6 -M,DB+A9`)``!(QP30`````$$/MTXRB@%#[?`@^$?N@$```!(T^)(B='W -MT2&,A9@)``!!#[=V,DB-O5@/``#H`````$R)]DB)[^@`````28.^@`````!T -M#TF-MH````!(B>_H`````$B+A>@```!,B7`(28D&2(M,)!A)B4X(3(FUZ``` -M`.EZ`0``0;\`````QD0D(`!(BX7X````2#E$)!!T$DB-E?@```!!_\=(BP!( -M.<)U]46$_W0\2(M<)`A(B=_H`````$B-2/!(BU,(2(E#"$B)&$B)4`A(B0), -M.?&X`0````^V5"0@#T30B%0D($'^SW7)@'PD(``/A0,!``!)C4802(M,)!!( -MBU$(2(E!"$F)3A!(B5`(2(D"1(GH9L'H!0^WP$2)Z8/A'[H!````2-/B"92% -MG````.G#````00^W]4B)^DB)W^@`````0;\`````QD0D(`!(BX7X````2#E$ -M)!!T$DB-E?@```!!_\=(BP!(.<)U]46$_W0[2(L<)$B)W^@`````2(U(\$B+ -M4PA(B4,(2(D82(E0"$B)`DPY\;@!````#[9,)"`/1,B(3"0@0?[/=AFP>@% -M#[?`1(GI@^$?N@$```!(T^()E(6<````9D0YI3H2```/A8SY__](C87X```` -M2(G"2#F%^````'130;P!````9F:02(G32(G7Z`````!(C7#P#[=.,HG(9L'H -M!0^WP(/A'TR)XDC3XDB)T??1(8R%G````+H`````2(GOZ`````!(B=I(.9WX -M````=;9(B>_H`````+@!````2(/$2%M=05Q!74%>05_#9F9FD&9FD&9FD$B# -M["A(B5PD"$B);"003(ED)!A,B6PD(&;'1"0&``!(BZ_0"```0;P`````3(UL -M)`9(BT4`BX!0`0``B04`````2(M5`(F"4`$``(7`="%(BT4`QX!0`0```0`` -M`$ECW$B)[^@`````08A$'0!F9I!(@<4`%```0?_$08/\`7ZQ@'PD!@!U#+@` -M````@'PD!P!T!;@!````2(M<)`A(BVPD$$R+9"083(ML)"!(@\0HPV9F9I!F -M9F:09F9FD&9FD$%7059!54%455-(@^P(2(G]28GUN0````!F#[9'0XG&9H/X -M`'8;20^V50UF9I!FD$B)T$C3^*@!=0?_P68YSG?O28-]0`!T($F+=4!(@<:0 -M````2(M]*.@`````28MU0$B)[^@`````28U%8$B)PDDY16`/A&P`/A*````!!O`````!F@WU8 -M``^$CP```$&_`0```$ECU$B+A9`)``!(BS302(7V=&8/MT8@9CM#,'5<9CV% -M`'=6#[?`@+PH0`@``/]T24B+50`/MT8R9L'H!0^WP(T$A0`#``")@G`!``!( -MBT4`#[=.,H/A'TR)^DC3XHF0=`$``,9&)"&Z`````$B)[^@`````9F:09I!! -M_\0/MT581#G@#X]W____2(M#.$C'0&``````]D-$!'4C_H7O$P``2(GOZ``` -M``!(BT,X#[9P`;H!````2(GOZ`````!(BT,X#[90`@^V<`%(Q\<`````N``` -M``#H`````$B+4SA(B[70"```OP$```#H`````$B+4SA(B[70"```OP8```#H -M`````$C'0S@`````0?Y-#DB)WDB)[^@`````3(GR33EU8`^%H/[__TG'14`` -M````2(M%`(N(6`$``(D-`````(7)=`I(BT4`B8A8`0``2(/$"%M=05Q!74%> -M05_#9F9FD&9F9I!F9I!!5%532(G]28GTNP````"`?T,`=AY(#[96#69FD&9F -MD$B)T(G92-/XJ`%U!__#.%U#=^U!]D0D#`)U#$F-1"1@23E$)&!U:4R)Y^@` -M````A,!T4$B)[^@`````2(G&2(7`=$U)C40D8$B+4`A(B7`(2(D&2(E6"$B) -M,D'^1"0.3(EF2,9&0`7&1D$`QD9Y#[D!````N@$```!,B>?H`````.L-#[;S -M2(GOZ`````!FD%M=05S#9F9FD&9F9I!F9I!(@^PH2(D<)$B);"0(3(ED)!!, -MB6PD&$R)="0@28G]28GT3(NVB`````^V5D=(B?Y,B??H`````$B)Q69!@TPD -M3A"[`````&9!#[9%0XG&9H/X`'8>20^V5@UF9I!F9I!(B=")V4C3^*@!=0?_ -MPV8YWG?M9H/[`W8G2(T$G0`````E_/\#`$F+50"+A`+0`0``B04`````J0`` -M$`!U-^LE2(T$G0`````E_/\#`$F+50"+A`+0`0``B04`````J0``$`!U$`^V -M\TR)[^@`````Z9L!``!)C49@23E&8`^$C0$``$B%[0^$A`$``$@/MD5Y2<=$ -MQ%@`````2(M5"$B+10!(B5`(2(D"2(GJO@8```!,B??H`````(!]>P!T&9!, -MB>_H`````+\!````Z`````"`?7L`=>A(@WTX`'132(M%.$C'0&``````]D5$ -M!'4/0?Z%[Q,``$R)[^@`````2(M5.$F+M=`(``"_`0```.@`````2(M5.$F+ -MM=`(``"_!@```.@`````2,=%.`````!!_DX.2(GN3(GOZ`````!)BT4`BY!8 -M`0``B14`````A=)T"DF+10")D%@!``!!QD0D0@!F08-D)$[ONP````!!@'PD -M.P!T(69!#[94)#L/M\-)BVS$6$B%[70&@'U"_W5]_\-F.=IWYD'V1"1.@'0- -M3(GF3(GOZ`````#K8;L`````08!\)#L`=$)F9F:0#[?#28MLQ%A(A>UT(_9% -M1`)T'4B+53A)B[70"```OP8```#H`````(!E1/UF9F:0_\-F00^V1"0[9CG8 -M=\)F0<=$)$X"`$&`9"1)_69F9I!(BQPD2(ML)`A,BV0D$$R+;"083(MT)"!( -M@\0HPV9FD$B#[`A(BX:(````N0````"`?T,`=AM(#[90#69FD&:02(G02-/X -MJ`%U!__!.$]#=^_&1D(,Z`````!(@\0(PY!!54%455-(@^P(28G\B?6[```` -M`$B-!*T`````28G%08'E_`,``+\0)P``Z`````!`@/T#=AM)BP0D0HN$*-`! -M``")!0````"I```0`'4DZQE)BP0D0HN$*-`!``")!0````"I```0`'4)_\-F -M@?OS`7:S0`^V]4R)Y^@`````3(GGZ`````")Z@^VPDAKP&A,`>#V@&@2```! -M=`](B[!($@``3(GGZ`````!(@\0(6UU!7$%=PV9F9I!F9I!F9I!(@^PH2(E< -M)`A(B6PD$$R)9"083(EL)"!(B10D3(LG#[?V28N$))`)``!(BQSP0;T````` -MO0````!F@7LXX0%U'P^V0SJ#Z!$\`7<42(MO0$B%TG5*QD51`.M$9F:09I!) -MBY0D&`D``$R-JGB&`0!F@7L@A0!W&4@/MT,@2@^VA"!`"```2&G`B`$``$R- -M+`)(@SPD`'4(0<:%X`````"`>R2!=0N`9PSW9F9FD&9FD$B#/"0`#X7[```` -MQD,D`/:#E@```"`/A!8"``!(BVMH2(7M#X0)`@``]H6I`````G0D2(.]H``` -M``!T&DB#>T@`=!-(B[V@````BU,T2(MS2.@`````00^V16K!X`A(F$F+E"3` -M$```BX0"0`@``(D%`````(G"P>H0B)6;````P>@89HF%D````$$/MD5JP>`( -M2)A)BY0DP!```(N4`D0(``")%0````!F#[;"9HF%E`````^VQF:)A98```") -MT,'H$&8/ML!FB868````P>H8B)6:````00^V16K!X`A(F$F+E"3`$```BX0" -M3`@``(D%`````&8/ML!FB862````Z2P!``"`>R2`=03&0R0A2(LT)$C'QP`` -M``"X`````.@`````9H%[..$!=1@/MD,Z@^@1/`%W#4B)[^@`````Z>T```#V -M1"0#`71YBT,X)?___P`]X0$.`'1J00^V16K!X`A(F$F+E"3`$```BX0"0`@` -M`(D%`````$$/MD5JP>`(2)A)BY0DP!```(N$`D0(``")!0````!!#[9%:L'@ -M"$B828N4),`0``"+A`)("```B04`````2(G>3(GGZ`````#K;8!\)`,`>21) -MBP0DBX!8`0``B04`````B<&%P'1028L$)(F(6`$``.M$9I"`/"0`>#R`?"0' -M`'DU28L4)`^W0S)FP>@%#[?`C02%``,``(F"<`$``$F+%"0/MTLR@^$?N`$` -M``!(T^")@G0!``!(BUPD"$B+;"003(MD)!A,BVPD($B#Q"C#D)"0D)!(@^PH -M2(E<)`A(B6PD$$R)9"083(EL)"!(B?-)B?Q$#[9N)$B+EQ@)``!(C:IXA@$` -M9H%^((4`=QE(#[=&($@/MH0X0`@``$AIP(@!``!(C2P"183M=2!FQX7````` -M``"`>S@<=1&`>SH"=0M(B=Y(B>_H`````$B#>W@`=!)(C7-X3(GGZ`````!F -M9I!F9I!(B=Y,B>?H`````$&`_09T/4B-G5@!``!)BWPD*$B)WN@`````QX58 -M`0``@(0>`$C'A6@!````````2(FM<`$``$F+?"0H2(G>Z`````!(BUPD"$B+ -M;"003(MD)!A,BVPD($B#Q"C#9F:09F:09F:02(/L*$B)'"1(B6PD"$R)9"00 -M3(EL)!A,B70D($B)_4B%_P^$PP```$B+1TA,BRA,B>_H`````$B)PTR-<%A( -MA<`/A*0```!,B>_H`````$F)Q$B%P'402(G>3(GOZ`````#IA````,9#):P/ -MMT4P9HE#($R):RC'@Y0````(````3(EC>$F+1"002(E#2,=#-``(``!(C87D -M````2(E#4,9#,"!(QX.@`````````,9#.!S&0SD!QD,Z`L9#.PC&0SP`O@`` -M``!,B??H`````(M3-$F+="083(GWZ`````!(B=Y,B>_H`````$B+'"1(BVPD -M"$R+9"003(ML)!A,BW0D($B#Q"C#9F9FD&9F9I!!5T%6055!5%532(/L"$F) -M_TF)]4&)UDB+1TA(BRA!O`````!$B>(/ML(/MH0H0`@``#S_=$L/ML!(:=B( -M`0``2(G?2`.]&`D``$B!Q\P```"Z"````$F-=0SH`````(3`=!Y(BX48"0`` -M1(BT`P8!``!(BX48"0``3(F\`Q@!``!!_L1YGDB#Q`A;74%<05U!7D%?PV9F -M9I!F9F:09F:02(/L2$B)7"082(EL)"!,B60D*$R);"0P3(ET)#A,B7PD0$B) -M?"003(MV2$$/MD8"08G%0<'E"&9!#[9&`T$!Q4$/M\6#P`0/MU8T.=`/C]L` -M``!)C5X(0;\`````00^WQ4J-1#`$2#G8#X:P````D`^V`X3`#XB%````@^`/ -M/`9U?O9#`\!T!O9#!Y( -MBWPD$.@`````2(/%'$'_Q$0X8P1WXNL]2(UK!$&\`````(![`@!V+4$/ML>) -M1"0,9F:09I"+5"0,2(GN2(M\)!#H`````$B#Q1Q!_\1$.&,"=^)FD$'_QT@/ -MMD,!2(U<&`)!#[?%2HU$,`1(.=@/AU'___^^`0```$B+?"00Z`````!(BUPD -M&$B+;"0@3(MD)"A,BVPD,$R+="0X3(M\)$!(@\1(PV9F9I!F9F:09F9FD&9F -MD$&)RTB+1TA,BPBY`````$2-%!8/ML%"#[:$"$`(```\_W0]#[;`28N1&`D` -M`$QIP(@!``!!.+00!@$``'4B23F\$!@!``!U&$6(E!`%`0``28N!&`D``$6( -MG``$`0``D/[!>:_SPV9F9I!F9I!F9I!(BW]0@+_`````3W`$B(PXR````/Z'P``` -M`//#9F9FD&9FD&9FD$%7059!54%455-(@^P(28G_2(M.2`^V00+!X`AF#[91 -M`P'0#[?`@\`$#[=6-#G0#X\%`0``2(U1",9$)`<`0;X`````#[9)`0^V0@(` -M1"0'2`^V0@-(C50"!$'_QD0X\7/F2(G50;T`````0;X`````1#IT)`),B?_H```` -M`/_#1#CK05_#9F9FD&9FD$B#["A)B?E!N/__ -M__](B>?\N0(```"X`````/-(J\<'`````&8Y\7-59F9FD&9FD&:#^0YW"P^W -MT4(/M@0*B`04#[?!0@^V!`B#Z#`\"7<$2(V\+]@````/MM))C74$Z`````"0_\.# -M^T]^F4B#Q`A;74%<05W#9F9FD&9F9I!F9I!F9I!!5T%6055!5%532(/L*$B) -M?"0@0;T`````2(M&2$B)1"08#[9``HG!P>$(2(M4)!AF#[9"`P'!#[?!@\`$ -M#[=6-#G0#X\7`0``3(MD)!A)@\0(QD0D%P`/M\%(BU0D&$B-1!`$3#G@#X;D -M````#[?!2(U$$`1(B40D"`^WR4B)#"1!#[9$)`+!X`AF00^V5"0#1(TT`D$/ -MM_9)C7PD!.@`````//]U:4&)Q4$/M\9*C5P@!$@Y7"0(=FU(BP0D2(M4)!A, -MC7P0!`^V0P+!X`AF#[93`XTL`@^W]4B->P3H`````#S_=0Y!@/W_=3I!O0`` -M``#K,D0XZ$0/0N@/M\5(C5P8!$DYWW>_ZQQF9I!FD(G"1"CJ#[;2#[9T)!=( -MBWPD(.@`````#[94)!=,B>9(BWPD(.@`````_D0D%T$/M\9.C60@!$PY9"0( -M#X05_#D%-(B?M(BTY( -M#[9!`L'@"&8/ME$#`=`/M\"-4`0/MT8T.<)_'TB+OR`!``!(8])(B<[H```` -M`+X`````2(G?Z`````!;PV9F9I!F9F:09F:02(/L.$B)7"0(2(EL)!!,B60D -M&$R);"0@3(ET)"A,B7PD,$F)]4F)_@^V1B2(1"0'9H%^((4`#X>K````2`^W -M1B"`O#A`"```_P^$F````&:#?B!_=RI(#[:$.$`(``!(BY<8"0``2&G`B`$` -M`$B+1!!(2`^V0`A(!<`(``#K;9!F@7X@@0!W+D@/MT8@2`^VA#A`"```2(N7 -M:`D``$AIP,@/``!(BT00"$@/MD`(2`7`"```ZS9(#[=&($@/MH0X0`@``$B+ -MET`)``!(:<#0````2(N$$(@```!(#[9`"$@%P`@``.L%N+\)``!-#[9\!@9- -M:?^H````3XV\-Z`!``!)BY88"0``2(VJ>(8!`&9!@7T@A0!W&4D/MT4@2@^V -MA#!`"```2&G`B`$``$B-+`*`?"0'``^%-`(``&;'A<```````$&`?3@<#X4@ -M`@``00^V13J#^`)T48/X`G\*@_@!="?I!P(``(/X!V9F9I!T*8/X"@^%]0$` -M`$R)[DB)[^@`````Z>4!``!,B>Y(B>_H`````.G5`0``3(GN2(GOZ`````#I -MQ0$``$R)[DB)[^@`````2(V=6`$``$B+14A(BP!(BW@H2(G>Z`````#'A5@! -M``"`A!X`2,>%:`$```````!(B:UP`0``2(M%2$B+`$B+>"A(B=[H`````)#& -M14+_0;P`````08!_#@`/AJ\```!)C5]@9F9FD&9FD$B)W^@`````2(G%2(M# -M"$B):PA(B5T`2(E%"$B)*(!]0O]T;(!]00!U;8"]X0`````/A!D!``!(#[9% -M0*@"=`RH!'0(J`$/A=(```!(#[9%0*@"=0RH!'0(J`$/A=(```!(#[9%0*@" -M#X3B````J`0/A-H```"H`0^%T@```$B)[DR)]^@`````Z<(```!FD,:%X0`` -M``!!_\1%.&<.#X=<____13AG#G570;P`````08!_#@!V2DF-7V!F9I!FD$B) -MW^@`````2(G%2(M#"$B):PA(B5T`2(E%"$B)*(!]0O]T%`^V14$\(@^4PCP- -M#Y3`"="H`75*0?_$13AG#G>_0<9'"?],B?Y,B??H`````(!\)`<`#X6%```` -MZS(/ME5Y2(MU4$B)Z4R)_^@`````ZQU(B>Y,B??H`````&:0ZPZ^"@```$B) -M[^@`````D$F#?7@`=`Q)C75X3(GWZ`````!,B>Y,B??H`````(!\)`<`="QF -M_X7`````9H.]P`````IV#F;'A<```````.E,_O__O@H```!(B>_H`````$B+ -M7"0(2(ML)!!,BV0D&$R+;"0@3(MT)"A,BWPD,$B#Q#C#9F9FD&9F9I!F9F:0 -M2(/L.$B)7"0(2(EL)!!,B60D&$R);"0@3(ET)"A,B7PD,$B)_4&)]TB+1TA, -MBRA,B>_H`````$B)PTR-<%A(A<`/A*0```!,B>_H`````$F)Q$B%P'402(G> -M3(GOZ`````#IA````,9#):P/MT4P9HE#($R):RC'@Y0````(````3(EC>$F+ -M1"002(E#2,=#-``(``!(C87D````2(E#4,9#,"!(QX.@`````````,9#.!S& -M0SD!1(A[.L9#.PC&0SP`O@````!,B??H`````(M3-$F+="083(GWZ`````!( -MB=Y,B>_H`````$B+7"0(2(ML)!!,BV0D&$R+;"0@3(MT)"A,BWPD,$B#Q#C# -M9I!(@^PX2(E<)`A(B6PD$$R)9"083(EL)"!,B70D*$R)?"0P28G]2(M'2$R+ -M,$B+ER`!```/MD("BY,B??H`````.F: -M````3(UE6$B+>!`/M]N#PP1(8]-)B[4@`0``Z`````#&126L00^W13!FB44@ -M3(EU*(E=-(.-E````!))BT<02(E%2$R)?7A)C87D````2(E%4,9%,"!(QX6@ -M`````````,9%.!W&13D0QD4Z`@^VQXA%.XA=/+X`````3(GGZ`````"+531) -MBW<83(GGZ`````!(B>Y,B??H`````$B+7"0(2(ML)!!,BV0D&$R+;"0@3(MT -M)"A,BWPD,$B#Q#C#9F9FD&9F9I!F9I!328G208G+2(M'2$R+`$R+3U"[```` -M``^VPT(/MI0`0`@``(#Z_W18#[;"28N(&`D``$AIP(@!``!(.;P(&`$``'4] -M0#BT"`4!``!U,T6$VW0-2(N$"!`!``!)B0+K)0^VPDF+B!@)``!(:<"(`0`` -M28L22(F4"!`!``#K!V9FD/[#>9.[`````&9F9I!F9I`/ML-(C01`2,'@!$J- -M/`A(C8_`````#[91"(#Z`0^7P(#Z%P^5P@^VP(7"=#-`.'$)=2U%A-MT#$B+ -MA]````!)B0+K(P^VPTB-!$!(P>`$28L22HF4"-````#K"V9F9I#_PX#[3W:9 -M6\-F9F:09F:02(/L*$B)7"0(2(EL)!!,B60D&$R);"0@28G\B?%(BY<@`0`` -M#[9"`HG'P><(9@^V0@,!QP^WQX/`!#T`"```?V1`A/9T#D$/MH0D"`$``(A" -M`>L,#[9"`4&(A"0(`0``2(U""$B)!"2[``````^WQTB-1!`$2#L$)'8J1`^V -MZ0^WQTB-;!`$#[;S1(GI2(GB3(GGZ`````#_PTB#!"0$2#LL)'?B2(M<)`A( -MBVPD$$R+9"083(ML)"!(@\0HPV:02(/L&$B)7"0(2(EL)!!(B?N)U4C'!"0` -M````@']#`70_0`^V]KD!````2(GBZ`````!(@SPD`'0G2(L$)(`(@$"$[70+ -M2(L$)(!(`R#K"9!(BP0D@&`#WTB)W^@`````2(M<)`A(BVPD$$B#Q!C#D$B# -M[!A(B1PD2(EL)`A,B60D$$B)\TF)_$B+;FAF@7X@A0`/AY@```!(#[=&(("\ -M.$`(``#_#X2%````9H-^(']W(D@/MH0X0`@``$B+EQ@)``!(:<"(`0``2(M$ -M$$@/ME`(ZV%F@7X@@0!W)T@/MT8@2`^VA#A`"```2(N7:`D``$AIP,@/``!( -MBT00"`^V4`CK,D@/MT8@2`^VA#A`"```2(N70`D``$AIP-````!(BX00B``` -M``^V4`CK"&9FD+K_____N?____]F@7L@A0!W#D@/MT,@0@^VC"!`"```@/K_ -M="$/ML)"@+P@Q@@``/\/E,*`^?\/E,`)T*@!=0:`>R0&=3I(@WMX`'032(US -M>$R)Y^@`````9F9FD&9FD$B)WDR)Y^@`````QT50_____TB)[_]52.MV9F:0 -M9F:0@'LD`'4[]H.4````"&9FD'002(M],(M3-$B+$R)Y^@`````2(G>3(GGZ`````!FD$B+'"1(BVPD"$R+9"002(/$&,-F -M9F:09F:09F:09F:02(/L2$B)7"082(EL)"!,B60D*$R);"0P3(ET)#A,B7PD -M0$B)_4&)UT&)SDR)1"0(0(AT)!=(BT=(3(LH3(GOZ`````!(B<-(C4!82(D$ -M)$B%VP^$V````$R)[^@`````28G$2(7`=1!(B=Y,B>_H`````.FX````QD,E -MK`^W13!FB4,@2(M4)`A(B5-H3(EK*,>#E`````@```!,B6-X28M$)!!(B4-( -M1(ES-$B-A>0```!(B4-0QD,P($C'@Z``````````QD,X/,9#.0(/MD0D%XA# -M.D2)^,'H$(A#.TR)^@^VQHA#/$2(>SU$B?#!Z!"(0SY,B?(/ML:(0S]$B'-` -MQD-!`+X`````2(L\).@`````BU,T28MT)!A(BSPDZ`````!(B=Y,B>_H```` -M`$B+7"082(ML)"!,BV0D*$R+;"0P3(MT)#A,BWPD0$B#Q$C#9F9FD&9FD&9F -MD&9FD$B#[$A(B5PD&$B);"0@3(ED)"A,B6PD,$R)="0X3(E\)$!)B?R)TT&) -MSDR)1"0(0(AT)!=(BT=(3(LX3(G_Z`````!(B<5(A<`/A.X```!,B?_H```` -M`$F)Q4B%P'412(GN3(G_Z`````#IS@```)!(C4582(D$)$F+?1!$B?))B[0D -M(`$``.@`````QD4EK$$/MT0D,&:)12!(BU0D"$B)56A,B7TH1(EU-(.-E``` -M`!))BT402(E%2$R);7A)C80DY````$B)15#&13`@2,>%H`````````#&13@[ -MQD4Y`@^V1"07B$4ZB=C!Z!"(13L/ML>(13R(73U$B?#!Z!"(13Y,B?(/ML:( -M13]$B'5`QD5!`+X`````2(L\).@`````BU4T28MU&$B+/"3H`````$B)[DR) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-10@freebsd.org Fri Jun 26 21:35:38 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D89398DC0F; Fri, 26 Jun 2015 21:35:38 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F2F531072; Fri, 26 Jun 2015 21:35:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5QLZb94086320; Fri, 26 Jun 2015 21:35:37 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5QLZbXn086318; Fri, 26 Jun 2015 21:35:37 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201506262135.t5QLZbXn086318@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 26 Jun 2015 21:35:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284880 - stable/10/sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jun 2015 21:35:38 -0000 Author: hselasky Date: Fri Jun 26 21:35:36 2015 New Revision: 284880 URL: https://svnweb.freebsd.org/changeset/base/284880 Log: MFC r284743: Rename __weak to __weak_symbol to avoid language conflict with objective-C. PR: 200972 (exp-run) Suggested by: theraven@ Modified: stable/10/sys/sys/cdefs.h stable/10/sys/sys/linker_set.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/sys/cdefs.h ============================================================================== --- stable/10/sys/sys/cdefs.h Fri Jun 26 19:55:01 2015 (r284879) +++ stable/10/sys/sys/cdefs.h Fri Jun 26 21:35:36 2015 (r284880) @@ -213,9 +213,9 @@ #define __packed #define __aligned(x) #define __section(x) -#define __weak +#define __weak_symbol #else -#define __weak __attribute__((__weak__)) +#define __weak_symbol __attribute__((__weak__)) #if !__GNUC_PREREQ__(2, 5) && !defined(__INTEL_COMPILER) #define __dead2 #define __pure2 Modified: stable/10/sys/sys/linker_set.h ============================================================================== --- stable/10/sys/sys/linker_set.h Fri Jun 26 19:55:01 2015 (r284879) +++ stable/10/sys/sys/linker_set.h Fri Jun 26 21:35:36 2015 (r284880) @@ -69,8 +69,8 @@ * Initialize before referring to a given linker set. */ #define SET_DECLARE(set, ptype) \ - extern ptype __weak *__CONCAT(__start_set_,set); \ - extern ptype __weak *__CONCAT(__stop_set_,set) + extern ptype __weak_symbol *__CONCAT(__start_set_,set); \ + extern ptype __weak_symbol *__CONCAT(__stop_set_,set) #define SET_BEGIN(set) \ (&__CONCAT(__start_set_,set)) From owner-svn-src-stable-10@freebsd.org Sat Jun 27 09:47:29 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0265C98DAB0; Sat, 27 Jun 2015 09:47:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E746C27D9; Sat, 27 Jun 2015 09:47:28 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5R9lSag053868; Sat, 27 Jun 2015 09:47:28 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5R9lS16053867; Sat, 27 Jun 2015 09:47:28 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201506270947.t5R9lS16053867@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 27 Jun 2015 09:47:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284888 - stable/10/share/man/man9 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Jun 2015 09:47:29 -0000 Author: kib Date: Sat Jun 27 09:47:28 2015 New Revision: 284888 URL: https://svnweb.freebsd.org/changeset/base/284888 Log: MFC r284646: The barriers, provided by _acq and _rel atomics, are acquire and release barriers, not read and write barriers. Modified: stable/10/share/man/man9/atomic.9 Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man9/atomic.9 ============================================================================== --- stable/10/share/man/man9/atomic.9 Sat Jun 27 09:44:14 2015 (r284887) +++ stable/10/share/man/man9/atomic.9 Sat Jun 27 09:47:28 2015 (r284888) @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 20, 2013 +.Dd June 20, 2015 .Dt ATOMIC 9 .Os .Sh NAME @@ -123,7 +123,9 @@ The first form just performs the operati The second form uses a read memory barrier, and the third variant uses a write memory barrier. .Pp -The second variant of each operation includes a read memory barrier. +The second variant of each operation includes an +.Em acquire +memory barrier. This barrier ensures that the effects of this operation are completed before the effects of any later data accesses. As a result, the operation is said to have acquire semantics as it acquires a @@ -137,7 +139,9 @@ For example, to subtract two integers en happen after the subtraction is performed, use .Fn atomic_subtract_acq_int . .Pp -The third variant of each operation includes a write memory barrier. +The third variant of each operation includes a +.Em release +memory barrier. This ensures that all effects of all previous data accesses are completed before this operation takes place. As a result, the operation is said to have release semantics as it releases From owner-svn-src-stable-10@freebsd.org Sat Jun 27 22:48:26 2015 Return-Path: Delivered-To: svn-src-stable-10@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8242798E4F8; Sat, 27 Jun 2015 22:48:26 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 64A8C1634; Sat, 27 Jun 2015 22:48:26 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5RMmQ4u043288; Sat, 27 Jun 2015 22:48:26 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5RMmM6h043264; Sat, 27 Jun 2015 22:48:22 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201506272248.t5RMmM6h043264@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Sat, 27 Jun 2015 22:48:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r284894 - in stable/10: lib/libvmmapi share/examples/bhyve sys/amd64/include sys/amd64/vmm sys/amd64/vmm/amd sys/amd64/vmm/intel sys/amd64/vmm/io sys/modules/vmm usr.sbin/bhyve usr.sbin... X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Jun 2015 22:48:26 -0000 Author: neel Date: Sat Jun 27 22:48:22 2015 New Revision: 284894 URL: https://svnweb.freebsd.org/changeset/base/284894 Log: MFC r276428: Replace bhyve's minimal RTC emulation with a fully featured one in vmm.ko. MFC r276432: Initialize all fields of 'struct vm_exception exception' before passing it to vm_inject_exception(). MFC r276763: Clear blocking due to STI or MOV SS in the hypervisor when an instruction is emulated or when the vcpu incurs an exception. MFC r277149: Clean up usage of 'struct vm_exception' to only to communicate information from userspace to vmm.ko when injecting an exception. MFC r277168: Fix typo (missing comma). MFC r277309: Make the error message explicit instead of just printing the usage if the virtual machine name is not specified. MFC r277310: Simplify instruction restart logic in bhyve. MFC r277359: Fix a bug in libvmmapi 'vm_copy_setup()' where it would return success even if the 'gpa' was in the guest MMIO region. MFC r277360: MOVS instruction emulation. MFC r277626: Add macro to identify AVIC capability (advanced virtual interrupt controller) in AMD processors. MFC r279220: Don't close a block context if it couldn't be opened avoiding a null deref. MFC r279225: Add "-u" option to bhyve(8) to indicate that the RTC should maintain UTC time. MFC r279227: Emulate MSR 0xC0011024 when running on AMD processors. MFC r279228: Always emulate MSR_PAT on Intel processors and don't rely on PAT save/restore capability of VT-x. This lets bhyve run nested in older VMware versions that don't support the PAT save/restore capability. MFC r279540: Fix warnings/errors when building vmm.ko with gcc. Added: stable/10/sys/amd64/vmm/io/vrtc.c - copied unchanged from r276428, head/sys/amd64/vmm/io/vrtc.c stable/10/sys/amd64/vmm/io/vrtc.h - copied unchanged from r276428, head/sys/amd64/vmm/io/vrtc.h Modified: stable/10/lib/libvmmapi/vmmapi.c stable/10/lib/libvmmapi/vmmapi.h stable/10/share/examples/bhyve/vmrun.sh stable/10/sys/amd64/include/vmm.h stable/10/sys/amd64/include/vmm_dev.h stable/10/sys/amd64/vmm/amd/svm.c stable/10/sys/amd64/vmm/amd/svm_softc.h stable/10/sys/amd64/vmm/amd/svm_support.S stable/10/sys/amd64/vmm/intel/vmcs.c stable/10/sys/amd64/vmm/intel/vmx.c stable/10/sys/amd64/vmm/intel/vmx.h stable/10/sys/amd64/vmm/intel/vmx_msr.c stable/10/sys/amd64/vmm/io/vhpet.c stable/10/sys/amd64/vmm/vmm.c stable/10/sys/amd64/vmm/vmm_dev.c stable/10/sys/amd64/vmm/vmm_instruction_emul.c stable/10/sys/amd64/vmm/vmm_ioport.c stable/10/sys/modules/vmm/Makefile stable/10/usr.sbin/bhyve/bhyve.8 stable/10/usr.sbin/bhyve/bhyverun.c stable/10/usr.sbin/bhyve/bhyverun.h stable/10/usr.sbin/bhyve/inout.c stable/10/usr.sbin/bhyve/pci_ahci.c stable/10/usr.sbin/bhyve/rtc.c stable/10/usr.sbin/bhyve/rtc.h stable/10/usr.sbin/bhyve/task_switch.c stable/10/usr.sbin/bhyve/xmsr.c stable/10/usr.sbin/bhyvectl/bhyvectl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libvmmapi/vmmapi.c ============================================================================== --- stable/10/lib/libvmmapi/vmmapi.c Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/lib/libvmmapi/vmmapi.c Sat Jun 27 22:48:22 2015 (r284894) @@ -368,14 +368,13 @@ vm_get_register(struct vmctx *ctx, int v } int -vm_run(struct vmctx *ctx, int vcpu, uint64_t rip, struct vm_exit *vmexit) +vm_run(struct vmctx *ctx, int vcpu, struct vm_exit *vmexit) { int error; struct vm_run vmrun; bzero(&vmrun, sizeof(vmrun)); vmrun.cpuid = vcpu; - vmrun.rip = rip; error = ioctl(ctx->fd, VM_RUN, &vmrun); bcopy(&vmrun.vm_exit, vmexit, sizeof(struct vm_exit)); @@ -399,36 +398,22 @@ vm_reinit(struct vmctx *ctx) return (ioctl(ctx->fd, VM_REINIT, 0)); } -static int -vm_inject_exception_real(struct vmctx *ctx, int vcpu, int vector, - int error_code, int error_code_valid) +int +vm_inject_exception(struct vmctx *ctx, int vcpu, int vector, int errcode_valid, + uint32_t errcode, int restart_instruction) { struct vm_exception exc; - bzero(&exc, sizeof(exc)); exc.cpuid = vcpu; exc.vector = vector; - exc.error_code = error_code; - exc.error_code_valid = error_code_valid; + exc.error_code = errcode; + exc.error_code_valid = errcode_valid; + exc.restart_instruction = restart_instruction; return (ioctl(ctx->fd, VM_INJECT_EXCEPTION, &exc)); } int -vm_inject_exception(struct vmctx *ctx, int vcpu, int vector) -{ - - return (vm_inject_exception_real(ctx, vcpu, vector, 0, 0)); -} - -int -vm_inject_exception2(struct vmctx *ctx, int vcpu, int vector, int errcode) -{ - - return (vm_inject_exception_real(ctx, vcpu, vector, errcode, 1)); -} - -int vm_apicid2vcpu(struct vmctx *ctx, int apicid) { /* @@ -1002,6 +987,7 @@ int vm_copy_setup(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, uint64_t gla, size_t len, int prot, struct iovec *iov, int iovcnt) { + void *va; uint64_t gpa; int error, fault, i, n, off; @@ -1021,7 +1007,11 @@ vm_copy_setup(struct vmctx *ctx, int vcp off = gpa & PAGE_MASK; n = min(len, PAGE_SIZE - off); - iov->iov_base = (void *)gpa; + va = vm_map_gpa(ctx, gpa, n); + if (va == NULL) + return (-1); + + iov->iov_base = va; iov->iov_len = n; iov++; iovcnt--; @@ -1033,19 +1023,24 @@ vm_copy_setup(struct vmctx *ctx, int vcp } void +vm_copy_teardown(struct vmctx *ctx, int vcpu, struct iovec *iov, int iovcnt) +{ + + return; +} + +void vm_copyin(struct vmctx *ctx, int vcpu, struct iovec *iov, void *vp, size_t len) { const char *src; char *dst; - uint64_t gpa; size_t n; dst = vp; while (len) { assert(iov->iov_len); - gpa = (uint64_t)iov->iov_base; n = min(len, iov->iov_len); - src = vm_map_gpa(ctx, gpa, n); + src = iov->iov_base; bcopy(src, dst, n); iov++; @@ -1060,15 +1055,13 @@ vm_copyout(struct vmctx *ctx, int vcpu, { const char *src; char *dst; - uint64_t gpa; size_t n; src = vp; while (len) { assert(iov->iov_len); - gpa = (uint64_t)iov->iov_base; n = min(len, iov->iov_len); - dst = vm_map_gpa(ctx, gpa, n); + dst = iov->iov_base; bcopy(src, dst, n); iov++; @@ -1146,3 +1139,63 @@ vm_set_intinfo(struct vmctx *ctx, int vc error = ioctl(ctx->fd, VM_SET_INTINFO, &vmii); return (error); } + +int +vm_rtc_write(struct vmctx *ctx, int offset, uint8_t value) +{ + struct vm_rtc_data rtcdata; + int error; + + bzero(&rtcdata, sizeof(struct vm_rtc_data)); + rtcdata.offset = offset; + rtcdata.value = value; + error = ioctl(ctx->fd, VM_RTC_WRITE, &rtcdata); + return (error); +} + +int +vm_rtc_read(struct vmctx *ctx, int offset, uint8_t *retval) +{ + struct vm_rtc_data rtcdata; + int error; + + bzero(&rtcdata, sizeof(struct vm_rtc_data)); + rtcdata.offset = offset; + error = ioctl(ctx->fd, VM_RTC_READ, &rtcdata); + if (error == 0) + *retval = rtcdata.value; + return (error); +} + +int +vm_rtc_settime(struct vmctx *ctx, time_t secs) +{ + struct vm_rtc_time rtctime; + int error; + + bzero(&rtctime, sizeof(struct vm_rtc_time)); + rtctime.secs = secs; + error = ioctl(ctx->fd, VM_RTC_SETTIME, &rtctime); + return (error); +} + +int +vm_rtc_gettime(struct vmctx *ctx, time_t *secs) +{ + struct vm_rtc_time rtctime; + int error; + + bzero(&rtctime, sizeof(struct vm_rtc_time)); + error = ioctl(ctx->fd, VM_RTC_GETTIME, &rtctime); + if (error == 0) + *secs = rtctime.secs; + return (error); +} + +int +vm_restart_instruction(void *arg, int vcpu) +{ + struct vmctx *ctx = arg; + + return (ioctl(ctx->fd, VM_RESTART_INSTRUCTION, &vcpu)); +} Modified: stable/10/lib/libvmmapi/vmmapi.h ============================================================================== --- stable/10/lib/libvmmapi/vmmapi.h Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/lib/libvmmapi/vmmapi.h Sat Jun 27 22:48:22 2015 (r284894) @@ -32,6 +32,12 @@ #include #include +/* + * API version for out-of-tree consumers like grub-bhyve for making compile + * time decisions. + */ +#define VMMAPI_VERSION 0101 /* 2 digit major followed by 2 digit minor */ + struct iovec; struct vmctx; enum x2apic_state; @@ -70,13 +76,12 @@ int vm_get_seg_desc(struct vmctx *ctx, i struct seg_desc *seg_desc); int vm_set_register(struct vmctx *ctx, int vcpu, int reg, uint64_t val); int vm_get_register(struct vmctx *ctx, int vcpu, int reg, uint64_t *retval); -int vm_run(struct vmctx *ctx, int vcpu, uint64_t rip, - struct vm_exit *ret_vmexit); +int vm_run(struct vmctx *ctx, int vcpu, struct vm_exit *ret_vmexit); int vm_suspend(struct vmctx *ctx, enum vm_suspend_how how); int vm_reinit(struct vmctx *ctx); int vm_apicid2vcpu(struct vmctx *ctx, int apicid); -int vm_inject_exception(struct vmctx *ctx, int vcpu, int vec); -int vm_inject_exception2(struct vmctx *ctx, int vcpu, int vec, int errcode); +int vm_inject_exception(struct vmctx *ctx, int vcpu, int vector, + int errcode_valid, uint32_t errcode, int restart_instruction); int vm_lapic_irq(struct vmctx *ctx, int vcpu, int vector); int vm_lapic_local_irq(struct vmctx *ctx, int vcpu, int vector); int vm_lapic_msi(struct vmctx *ctx, uint64_t addr, uint64_t msg); @@ -132,6 +137,14 @@ void vm_copyin(struct vmctx *ctx, int vc void *host_dst, size_t len); void vm_copyout(struct vmctx *ctx, int vcpu, const void *host_src, struct iovec *guest_iov, size_t len); +void vm_copy_teardown(struct vmctx *ctx, int vcpu, struct iovec *iov, + int iovcnt); + +/* RTC */ +int vm_rtc_write(struct vmctx *ctx, int offset, uint8_t value); +int vm_rtc_read(struct vmctx *ctx, int offset, uint8_t *retval); +int vm_rtc_settime(struct vmctx *ctx, time_t secs); +int vm_rtc_gettime(struct vmctx *ctx, time_t *secs); /* Reset vcpu register state */ int vcpu_reset(struct vmctx *ctx, int vcpu); Modified: stable/10/share/examples/bhyve/vmrun.sh ============================================================================== --- stable/10/share/examples/bhyve/vmrun.sh Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/share/examples/bhyve/vmrun.sh Sat Jun 27 22:48:22 2015 (r284894) @@ -39,7 +39,13 @@ DEFAULT_CONSOLE=stdio DEFAULT_VIRTIO_DISK="./diskdev" DEFAULT_ISOFILE="./release.iso" +errmsg() { + echo "*** $1" +} + usage() { + local msg=$1 + echo "Usage: vmrun.sh [-ahi] [-c ] [-C ] [-d ]" echo " [-e ] [-g ] [-H ]" echo " [-I ] [-m ]" @@ -58,18 +64,18 @@ usage() { echo " -m: memory size (default is ${DEFAULT_MEMSIZE})" echo " -t: tap device for virtio-net (default is $DEFAULT_TAPDEV)" echo "" - echo " This script needs to be executed with superuser privileges" - echo "" + [ -n "$msg" ] && errmsg "$msg" exit 1 } if [ `id -u` -ne 0 ]; then - usage + errmsg "This script must be executed with superuser privileges" + exit 1 fi kldstat -n vmm > /dev/null 2>&1 if [ $? -ne 0 ]; then - echo "vmm.ko is not loaded!" + errmsg "vmm.ko is not loaded" exit 1 fi @@ -143,7 +149,7 @@ fi shift $((${OPTIND} - 1)) if [ $# -ne 1 ]; then - usage + usage "virtual machine name not specified" fi vmname="$1" Modified: stable/10/sys/amd64/include/vmm.h ============================================================================== --- stable/10/sys/amd64/include/vmm.h Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/include/vmm.h Sat Jun 27 22:48:22 2015 (r284894) @@ -286,9 +286,10 @@ int vm_unassign_pptdev(struct vm *vm, in struct vatpic *vm_atpic(struct vm *vm); struct vatpit *vm_atpit(struct vm *vm); struct vpmtmr *vm_pmtmr(struct vm *vm); +struct vrtc *vm_rtc(struct vm *vm); /* - * Inject exception 'vme' into the guest vcpu. This function returns 0 on + * Inject exception 'vector' into the guest vcpu. This function returns 0 on * success and non-zero on failure. * * Wrapper functions like 'vm_inject_gp()' should be preferred to calling @@ -298,7 +299,8 @@ struct vpmtmr *vm_pmtmr(struct vm *vm); * This function should only be called in the context of the thread that is * executing this vcpu. */ -int vm_inject_exception(struct vm *vm, int vcpuid, struct vm_exception *vme); +int vm_inject_exception(struct vm *vm, int vcpuid, int vector, int err_valid, + uint32_t errcode, int restart_instruction); /* * This function is called after a VM-exit that occurred during exception or @@ -444,8 +446,11 @@ struct vie { rex_x:1, rex_b:1, rex_present:1, + repz_present:1, /* REP/REPE/REPZ prefix */ + repnz_present:1, /* REPNE/REPNZ prefix */ opsize_override:1, /* Operand size override */ - addrsize_override:1; /* Address size override */ + addrsize_override:1, /* Address size override */ + segment_override:1; /* Segment override */ uint8_t mod:2, /* ModRM byte */ reg:4, @@ -461,6 +466,7 @@ struct vie { uint8_t scale; int base_register; /* VM_REG_GUEST_xyz */ int index_register; /* VM_REG_GUEST_xyz */ + int segment_register; /* VM_REG_GUEST_xyz */ int64_t displacement; /* optional addr displacement */ int64_t immediate; /* optional immediate operand */ @@ -627,4 +633,6 @@ vm_inject_ss(void *vm, int vcpuid, int e void vm_inject_pf(void *vm, int vcpuid, int error_code, uint64_t cr2); +int vm_restart_instruction(void *vm, int vcpuid); + #endif /* _VMM_H_ */ Modified: stable/10/sys/amd64/include/vmm_dev.h ============================================================================== --- stable/10/sys/amd64/include/vmm_dev.h Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/include/vmm_dev.h Sat Jun 27 22:48:22 2015 (r284894) @@ -54,7 +54,6 @@ struct vm_seg_desc { /* data or code s struct vm_run { int cpuid; - uint64_t rip; /* start running here */ struct vm_exit vm_exit; }; @@ -63,6 +62,7 @@ struct vm_exception { int vector; uint32_t error_code; int error_code_valid; + int restart_instruction; }; struct vm_lapic_msi { @@ -195,6 +195,15 @@ struct vm_intinfo { uint64_t info2; }; +struct vm_rtc_time { + time_t secs; +}; + +struct vm_rtc_data { + int offset; + uint8_t value; +}; + enum { /* general routines */ IOCNUM_ABIVERS = 0, @@ -228,6 +237,7 @@ enum { IOCNUM_LAPIC_MSI = 36, IOCNUM_LAPIC_LOCAL_IRQ = 37, IOCNUM_IOAPIC_PINCOUNT = 38, + IOCNUM_RESTART_INSTRUCTION = 39, /* PCI pass-thru */ IOCNUM_BIND_PPTDEV = 40, @@ -254,6 +264,12 @@ enum { /* vm_cpuset */ IOCNUM_ACTIVATE_CPU = 90, IOCNUM_GET_CPUSET = 91, + + /* RTC */ + IOCNUM_RTC_READ = 100, + IOCNUM_RTC_WRITE = 101, + IOCNUM_RTC_SETTIME = 102, + IOCNUM_RTC_GETTIME = 103, }; #define VM_RUN \ @@ -336,4 +352,14 @@ enum { _IOW('v', IOCNUM_SET_INTINFO, struct vm_intinfo) #define VM_GET_INTINFO \ _IOWR('v', IOCNUM_GET_INTINFO, struct vm_intinfo) +#define VM_RTC_WRITE \ + _IOW('v', IOCNUM_RTC_WRITE, struct vm_rtc_data) +#define VM_RTC_READ \ + _IOWR('v', IOCNUM_RTC_READ, struct vm_rtc_data) +#define VM_RTC_SETTIME \ + _IOW('v', IOCNUM_RTC_SETTIME, struct vm_rtc_time) +#define VM_RTC_GETTIME \ + _IOR('v', IOCNUM_RTC_GETTIME, struct vm_rtc_time) +#define VM_RESTART_INSTRUCTION \ + _IOW('v', IOCNUM_RESTART_INSTRUCTION, int) #endif Modified: stable/10/sys/amd64/vmm/amd/svm.c ============================================================================== --- stable/10/sys/amd64/vmm/amd/svm.c Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/vmm/amd/svm.c Sat Jun 27 22:48:22 2015 (r284894) @@ -80,6 +80,7 @@ SYSCTL_NODE(_hw_vmm, OID_AUTO, svm, CTLF #define AMD_CPUID_SVM_DECODE_ASSIST BIT(7) /* Decode assist */ #define AMD_CPUID_SVM_PAUSE_INC BIT(10) /* Pause intercept filter. */ #define AMD_CPUID_SVM_PAUSE_FTH BIT(12) /* Pause filter threshold */ +#define AMD_CPUID_SVM_AVIC BIT(13) /* AVIC present */ #define VMCB_CACHE_DEFAULT (VMCB_CACHE_ASID | \ VMCB_CACHE_IOPM | \ @@ -554,6 +555,7 @@ svm_vminit(struct vm *vm, pmap_t pmap) pml4_pa = svm_sc->nptp; for (i = 0; i < VM_MAXCPU; i++) { vcpu = svm_get_vcpu(svm_sc, i); + vcpu->nextrip = ~0; vcpu->lastcpu = NOCPU; vcpu->vmcb_pa = vtophys(&vcpu->vmcb); vmcb_init(svm_sc, i, iopm_pa, msrpm_pa, pml4_pa); @@ -1200,7 +1202,6 @@ svm_vmexit(struct svm_softc *svm_sc, int struct vmcb_state *state; struct vmcb_ctrl *ctrl; struct svm_regctx *ctx; - struct vm_exception exception; uint64_t code, info1, info2, val; uint32_t eax, ecx, edx; int error, errcode_valid, handled, idtvec, reflect; @@ -1314,6 +1315,7 @@ svm_vmexit(struct svm_softc *svm_sc, int /* fallthru */ default: errcode_valid = 0; + info1 = 0; break; } KASSERT(vmexit->inst_length == 0, ("invalid inst_length (%d) " @@ -1322,14 +1324,10 @@ svm_vmexit(struct svm_softc *svm_sc, int if (reflect) { /* Reflect the exception back into the guest */ - exception.vector = idtvec; - exception.error_code_valid = errcode_valid; - exception.error_code = errcode_valid ? info1 : 0; VCPU_CTR2(svm_sc->vm, vcpu, "Reflecting exception " - "%d/%#x into the guest", exception.vector, - exception.error_code); - error = vm_inject_exception(svm_sc->vm, vcpu, - &exception); + "%d/%#x into the guest", idtvec, (int)info1); + error = vm_inject_exception(svm_sc->vm, vcpu, idtvec, + errcode_valid, info1, 0); KASSERT(error == 0, ("%s: vm_inject_exception error %d", __func__, error)); } @@ -1476,15 +1474,24 @@ svm_inj_interrupts(struct svm_softc *sc, { struct vmcb_ctrl *ctrl; struct vmcb_state *state; + struct svm_vcpu *vcpustate; uint8_t v_tpr; int vector, need_intr_window, pending_apic_vector; state = svm_get_vmcb_state(sc, vcpu); ctrl = svm_get_vmcb_ctrl(sc, vcpu); + vcpustate = svm_get_vcpu(sc, vcpu); need_intr_window = 0; pending_apic_vector = 0; + if (vcpustate->nextrip != state->rip) { + ctrl->intr_shadow = 0; + VCPU_CTR2(sc->vm, vcpu, "Guest interrupt blocking " + "cleared due to rip change: %#lx/%#lx", + vcpustate->nextrip, state->rip); + } + /* * Inject pending events or exceptions for this vcpu. * @@ -1634,7 +1641,7 @@ done: * VMRUN. */ v_tpr = vlapic_get_cr8(vlapic); - KASSERT(v_tpr >= 0 && v_tpr <= 15, ("invalid v_tpr %#x", v_tpr)); + KASSERT(v_tpr <= 15, ("invalid v_tpr %#x", v_tpr)); if (ctrl->v_tpr != v_tpr) { VCPU_CTR2(sc->vm, vcpu, "VMCB V_TPR changed from %#x to %#x", ctrl->v_tpr, v_tpr); @@ -1801,14 +1808,14 @@ static __inline void disable_gintr(void) { - __asm __volatile("clgi" : : :); + __asm __volatile("clgi"); } static __inline void enable_gintr(void) { - __asm __volatile("stgi" : : :); + __asm __volatile("stgi"); } /* @@ -1955,6 +1962,9 @@ svm_vmrun(void *arg, int vcpu, register_ /* #VMEXIT disables interrupts so re-enable them here. */ enable_gintr(); + /* Update 'nextrip' */ + vcpustate->nextrip = state->rip; + /* Handle #VMEXIT and if required return to user space. */ handled = svm_vmexit(svm_sc, vcpu, vmexit); } while (handled); Modified: stable/10/sys/amd64/vmm/amd/svm_softc.h ============================================================================== --- stable/10/sys/amd64/vmm/amd/svm_softc.h Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/vmm/amd/svm_softc.h Sat Jun 27 22:48:22 2015 (r284894) @@ -45,6 +45,7 @@ struct svm_vcpu { struct vmcb vmcb; /* hardware saved vcpu context */ struct svm_regctx swctx; /* software saved vcpu context */ uint64_t vmcb_pa; /* VMCB physical address */ + uint64_t nextrip; /* next instruction to be executed by guest */ int lastcpu; /* host cpu that the vcpu last ran on */ uint32_t dirty; /* state cache bits that must be cleared */ long eptgen; /* pmap->pm_eptgen when the vcpu last ran */ Modified: stable/10/sys/amd64/vmm/amd/svm_support.S ============================================================================== --- stable/10/sys/amd64/vmm/amd/svm_support.S Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/vmm/amd/svm_support.S Sat Jun 27 22:48:22 2015 (r284894) @@ -22,6 +22,8 @@ * 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$ */ #include @@ -35,6 +37,10 @@ #define VENTER push %rbp ; mov %rsp,%rbp #define VLEAVE pop %rbp +#define VMLOAD .byte 0x0f, 0x01, 0xda +#define VMRUN .byte 0x0f, 0x01, 0xd8 +#define VMSAVE .byte 0x0f, 0x01, 0xdb + /* * svm_launch(uint64_t vmcb, struct svm_regctx *gctx) * %rdi: physical address of VMCB @@ -79,9 +85,9 @@ ENTRY(svm_launch) movq SCTX_RDI(%rsi), %rdi movq SCTX_RSI(%rsi), %rsi /* %rsi must be restored last */ - vmload %rax - vmrun %rax - vmsave %rax + VMLOAD + VMRUN + VMSAVE pop %rax /* pop guest context pointer from the stack */ Modified: stable/10/sys/amd64/vmm/intel/vmcs.c ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmcs.c Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/vmm/intel/vmcs.c Sat Jun 27 22:48:22 2015 (r284894) @@ -342,18 +342,6 @@ vmcs_init(struct vmcs *vmcs) */ VMPTRLD(vmcs); - /* Initialize guest IA32_PAT MSR with the default value */ - pat = PAT_VALUE(0, PAT_WRITE_BACK) | - PAT_VALUE(1, PAT_WRITE_THROUGH) | - PAT_VALUE(2, PAT_UNCACHED) | - PAT_VALUE(3, PAT_UNCACHEABLE) | - PAT_VALUE(4, PAT_WRITE_BACK) | - PAT_VALUE(5, PAT_WRITE_THROUGH) | - PAT_VALUE(6, PAT_UNCACHED) | - PAT_VALUE(7, PAT_UNCACHEABLE); - if ((error = vmwrite(VMCS_GUEST_IA32_PAT, pat)) != 0) - goto done; - /* Host state */ /* Initialize host IA32_PAT MSR */ Modified: stable/10/sys/amd64/vmm/intel/vmx.c ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmx.c Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/vmm/intel/vmx.c Sat Jun 27 22:48:22 2015 (r284894) @@ -100,13 +100,11 @@ __FBSDID("$FreeBSD$"); (VM_EXIT_HOST_LMA | \ VM_EXIT_SAVE_EFER | \ VM_EXIT_LOAD_EFER | \ - VM_EXIT_ACKNOWLEDGE_INTERRUPT | \ - VM_EXIT_SAVE_PAT | \ - VM_EXIT_LOAD_PAT) + VM_EXIT_ACKNOWLEDGE_INTERRUPT) #define VM_EXIT_CTLS_ZERO_SETTING VM_EXIT_SAVE_DEBUG_CONTROLS -#define VM_ENTRY_CTLS_ONE_SETTING (VM_ENTRY_LOAD_EFER | VM_ENTRY_LOAD_PAT) +#define VM_ENTRY_CTLS_ONE_SETTING (VM_ENTRY_LOAD_EFER) #define VM_ENTRY_CTLS_ZERO_SETTING \ (VM_ENTRY_LOAD_DEBUG_CONTROLS | \ @@ -859,10 +857,6 @@ vmx_vminit(struct vm *vm, pmap_t pmap) * VM exit and entry respectively. It is also restored from the * host VMCS area on a VM exit. * - * MSR_PAT is saved and restored in the guest VMCS are on a VM exit - * and entry respectively. It is also restored from the host VMCS - * area on a VM exit. - * * The TSC MSR is exposed read-only. Writes are disallowed as that * will impact the host TSC. * XXX Writes would be implemented with a wrmsr trap, and @@ -874,7 +868,6 @@ vmx_vminit(struct vm *vm, pmap_t pmap) guest_msr_rw(vmx, MSR_SYSENTER_ESP_MSR) || guest_msr_rw(vmx, MSR_SYSENTER_EIP_MSR) || guest_msr_rw(vmx, MSR_EFER) || - guest_msr_rw(vmx, MSR_PAT) || guest_msr_ro(vmx, MSR_TSC)) panic("vmx_vminit: error setting guest msr access"); @@ -941,6 +934,7 @@ vmx_vminit(struct vm *vm, pmap_t pmap) vmx->cap[i].proc_ctls = procbased_ctls; vmx->cap[i].proc_ctls2 = procbased_ctls2; + vmx->state[i].nextrip = ~0; vmx->state[i].lastcpu = NOCPU; vmx->state[i].vpid = vpid[i]; @@ -1169,12 +1163,24 @@ vmx_inject_nmi(struct vmx *vmx, int vcpu } static void -vmx_inject_interrupts(struct vmx *vmx, int vcpu, struct vlapic *vlapic) +vmx_inject_interrupts(struct vmx *vmx, int vcpu, struct vlapic *vlapic, + uint64_t guestrip) { int vector, need_nmi_exiting, extint_pending; uint64_t rflags, entryinfo; uint32_t gi, info; + if (vmx->state[vcpu].nextrip != guestrip) { + gi = vmcs_read(VMCS_GUEST_INTERRUPTIBILITY); + if (gi & HWINTR_BLOCKING) { + VCPU_CTR2(vmx->vm, vcpu, "Guest interrupt blocking " + "cleared due to rip change: %#lx/%#lx", + vmx->state[vcpu].nextrip, guestrip); + gi &= ~HWINTR_BLOCKING; + vmcs_write(VMCS_GUEST_INTERRUPTIBILITY, gi); + } + } + if (vm_entry_intinfo(vmx->vm, vcpu, &entryinfo)) { KASSERT((entryinfo & VMCS_INTR_VALID) != 0, ("%s: entry " "intinfo is not valid: %#lx", __func__, entryinfo)); @@ -1771,7 +1777,7 @@ vmexit_inst_emul(struct vm_exit *vmexit, { struct vm_guest_paging *paging; uint32_t csar; - + paging = &vmexit->u.inst_emul.paging; vmexit->exitcode = VM_EXITCODE_INST_EMUL; @@ -2060,12 +2066,11 @@ emulate_rdmsr(struct vmx *vmx, int vcpui static int vmx_exit_process(struct vmx *vmx, int vcpu, struct vm_exit *vmexit) { - int error, handled, in; + int error, errcode, errcode_valid, handled, in; struct vmxctx *vmxctx; struct vlapic *vlapic; struct vm_inout_str *vis; struct vm_task_switch *ts; - struct vm_exception vmexc; uint32_t eax, ecx, edx, idtvec_info, idtvec_err, intr_info, inst_info; uint32_t intr_type, intr_vec, reason; uint64_t exitintinfo, qual, gpa; @@ -2250,6 +2255,7 @@ vmx_exit_process(struct vmx *vmx, int vc case EXIT_REASON_MTF: vmm_stat_incr(vmx->vm, vcpu, VMEXIT_MTRAP, 1); vmexit->exitcode = VM_EXITCODE_MTRAP; + vmexit->inst_length = 0; break; case EXIT_REASON_PAUSE: vmm_stat_incr(vmx->vm, vcpu, VMEXIT_PAUSE, 1); @@ -2376,15 +2382,15 @@ vmx_exit_process(struct vmx *vmx, int vc vmcs_write(VMCS_ENTRY_INST_LENGTH, vmexit->inst_length); /* Reflect all other exceptions back into the guest */ - bzero(&vmexc, sizeof(struct vm_exception)); - vmexc.vector = intr_vec; + errcode_valid = errcode = 0; if (intr_info & VMCS_INTR_DEL_ERRCODE) { - vmexc.error_code_valid = 1; - vmexc.error_code = vmcs_read(VMCS_EXIT_INTR_ERRCODE); + errcode_valid = 1; + errcode = vmcs_read(VMCS_EXIT_INTR_ERRCODE); } VCPU_CTR2(vmx->vm, vcpu, "Reflecting exception %d/%#x into " - "the guest", vmexc.vector, vmexc.error_code); - error = vm_inject_exception(vmx->vm, vcpu, &vmexc); + "the guest", intr_vec, errcode); + error = vm_inject_exception(vmx->vm, vcpu, intr_vec, + errcode_valid, errcode, 0); KASSERT(error == 0, ("%s: vm_inject_exception error %d", __func__, error)); return (1); @@ -2399,6 +2405,7 @@ vmx_exit_process(struct vmx *vmx, int vc if (vm_mem_allocated(vmx->vm, gpa) || apic_access_fault(vmx, vcpu, gpa)) { vmexit->exitcode = VM_EXITCODE_PAGING; + vmexit->inst_length = 0; vmexit->u.paging.gpa = gpa; vmexit->u.paging.fault_type = ept_fault_type(qual); vmm_stat_incr(vmx->vm, vcpu, VMEXIT_NESTED_FAULT, 1); @@ -2540,7 +2547,7 @@ vmx_exit_handle_nmi(struct vmx *vmx, int } static int -vmx_run(void *arg, int vcpu, register_t startrip, pmap_t pmap, +vmx_run(void *arg, int vcpu, register_t rip, pmap_t pmap, void *rendezvous_cookie, void *suspend_cookie) { int rc, handled, launched; @@ -2550,7 +2557,6 @@ vmx_run(void *arg, int vcpu, register_t struct vmcs *vmcs; struct vm_exit *vmexit; struct vlapic *vlapic; - uint64_t rip; uint32_t exit_reason; vmx = arg; @@ -2578,11 +2584,13 @@ vmx_run(void *arg, int vcpu, register_t */ vmcs_write(VMCS_HOST_CR3, rcr3()); - vmcs_write(VMCS_GUEST_RIP, startrip); + vmcs_write(VMCS_GUEST_RIP, rip); vmx_set_pcpu_defaults(vmx, vcpu, pmap); do { - handled = UNHANDLED; + KASSERT(vmcs_guest_rip() == rip, ("%s: vmcs guest rip mismatch " + "%#lx/%#lx", __func__, vmcs_guest_rip(), rip)); + handled = UNHANDLED; /* * Interrupts are disabled from this point on until the * guest starts executing. This is done for the following @@ -2602,7 +2610,7 @@ vmx_run(void *arg, int vcpu, register_t * pmap_invalidate_ept(). */ disable_intr(); - vmx_inject_interrupts(vmx, vcpu, vlapic); + vmx_inject_interrupts(vmx, vcpu, vlapic, rip); /* * Check for vcpu suspension after injecting events because @@ -2611,20 +2619,20 @@ vmx_run(void *arg, int vcpu, register_t */ if (vcpu_suspended(suspend_cookie)) { enable_intr(); - vm_exit_suspended(vmx->vm, vcpu, vmcs_guest_rip()); + vm_exit_suspended(vmx->vm, vcpu, rip); break; } if (vcpu_rendezvous_pending(rendezvous_cookie)) { enable_intr(); - vm_exit_rendezvous(vmx->vm, vcpu, vmcs_guest_rip()); + vm_exit_rendezvous(vmx->vm, vcpu, rip); break; } if (vcpu_should_yield(vm, vcpu)) { enable_intr(); - vm_exit_astpending(vmx->vm, vcpu, vmcs_guest_rip()); - vmx_astpending_trace(vmx, vcpu, vmexit->rip); + vm_exit_astpending(vmx->vm, vcpu, rip); + vmx_astpending_trace(vmx, vcpu, rip); handled = HANDLED; break; } @@ -2638,6 +2646,9 @@ vmx_run(void *arg, int vcpu, register_t vmexit->u.vmx.exit_reason = exit_reason = vmcs_exit_reason(); vmexit->u.vmx.exit_qualification = vmcs_exit_qualification(); + /* Update 'nextrip' */ + vmx->state[vcpu].nextrip = rip; + if (rc == VMX_GUEST_VMEXIT) { vmx_exit_handle_nmi(vmx, vcpu, vmexit); enable_intr(); @@ -2648,6 +2659,7 @@ vmx_run(void *arg, int vcpu, register_t } launched = 1; vmx_exit_trace(vmx, vcpu, rip, exit_reason, handled); + rip = vmexit->rip; } while (handled); /* Modified: stable/10/sys/amd64/vmm/intel/vmx.h ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmx.h Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/vmm/intel/vmx.h Sat Jun 27 22:48:22 2015 (r284894) @@ -78,6 +78,7 @@ struct vmxcap { }; struct vmxstate { + uint64_t nextrip; /* next instruction to be executed by guest */ int lastcpu; /* host cpu that this 'vcpu' last ran on */ uint16_t vpid; }; @@ -102,6 +103,7 @@ enum { IDX_MSR_STAR, IDX_MSR_SF_MASK, IDX_MSR_KGSBASE, + IDX_MSR_PAT, GUEST_MSR_NUM /* must be the last enumeration */ }; Modified: stable/10/sys/amd64/vmm/intel/vmx_msr.c ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmx_msr.c Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/vmm/intel/vmx_msr.c Sat Jun 27 22:48:22 2015 (r284894) @@ -230,6 +230,25 @@ westmere_cpu(void) return (false); } +static bool +pat_valid(uint64_t val) +{ + int i, pa; + + /* + * From Intel SDM: Table "Memory Types That Can Be Encoded With PAT" + * + * Extract PA0 through PA7 and validate that each one encodes a + * valid memory type. + */ + for (i = 0; i < 8; i++) { + pa = (val >> (i * 8)) & 0xff; + if (pa == 2 || pa == 3 || pa >= 8) + return (false); + } + return (true); +} + void vmx_msr_init(void) { @@ -302,6 +321,10 @@ vmx_msr_init(void) void vmx_msr_guest_init(struct vmx *vmx, int vcpuid) { + uint64_t *guest_msrs; + + guest_msrs = vmx->guest_msrs[vcpuid]; + /* * The permissions bitmap is shared between all vcpus so initialize it * once when initializing the vBSP. @@ -313,6 +336,19 @@ vmx_msr_guest_init(struct vmx *vmx, int guest_msr_rw(vmx, MSR_SF_MASK); guest_msr_rw(vmx, MSR_KGSBASE); } + + /* + * Initialize guest IA32_PAT MSR with default value after reset. + */ + guest_msrs[IDX_MSR_PAT] = PAT_VALUE(0, PAT_WRITE_BACK) | + PAT_VALUE(1, PAT_WRITE_THROUGH) | + PAT_VALUE(2, PAT_UNCACHED) | + PAT_VALUE(3, PAT_UNCACHEABLE) | + PAT_VALUE(4, PAT_WRITE_BACK) | + PAT_VALUE(5, PAT_WRITE_THROUGH) | + PAT_VALUE(6, PAT_UNCACHED) | + PAT_VALUE(7, PAT_UNCACHEABLE); + return; } @@ -353,7 +389,11 @@ vmx_msr_guest_exit(struct vmx *vmx, int int vmx_rdmsr(struct vmx *vmx, int vcpuid, u_int num, uint64_t *val, bool *retu) { - int error = 0; + const uint64_t *guest_msrs; + int error; + + guest_msrs = vmx->guest_msrs[vcpuid]; + error = 0; switch (num) { case MSR_IA32_MISC_ENABLE: @@ -366,6 +406,9 @@ vmx_rdmsr(struct vmx *vmx, int vcpuid, u case MSR_TURBO_RATIO_LIMIT1: *val = turbo_ratio_limit; break; + case MSR_PAT: + *val = guest_msrs[IDX_MSR_PAT]; + break; default: error = EINVAL; break; @@ -376,10 +419,13 @@ vmx_rdmsr(struct vmx *vmx, int vcpuid, u int vmx_wrmsr(struct vmx *vmx, int vcpuid, u_int num, uint64_t val, bool *retu) { + uint64_t *guest_msrs; uint64_t changed; int error; + guest_msrs = vmx->guest_msrs[vcpuid]; error = 0; + switch (num) { case MSR_IA32_MISC_ENABLE: changed = val ^ misc_enable; @@ -401,6 +447,12 @@ vmx_wrmsr(struct vmx *vmx, int vcpuid, u error = EINVAL; break; + case MSR_PAT: + if (pat_valid(val)) + guest_msrs[IDX_MSR_PAT] = val; + else + vm_inject_gp(vmx->vm, vcpuid); + break; default: error = EINVAL; break; Modified: stable/10/sys/amd64/vmm/io/vhpet.c ============================================================================== --- stable/10/sys/amd64/vmm/io/vhpet.c Sat Jun 27 20:39:13 2015 (r284893) +++ stable/10/sys/amd64/vmm/io/vhpet.c Sat Jun 27 22:48:22 2015 (r284894) @@ -104,7 +104,6 @@ vhpet_capabilities(void) uint64_t cap = 0; cap |= 0x8086 << 16; /* vendor id */ - cap |= HPET_CAP_LEG_RT; /* legacy routing capable */ cap |= (VHPET_NUM_TIMERS - 1) << 8; /* number of timers */ cap |= 1; /* revision */ cap &= ~HPET_CAP_COUNT_SIZE; /* 32-bit timer */ @@ -127,15 +126,6 @@ vhpet_timer_msi_enabled(struct vhpet *vh { const uint64_t msi_enable = HPET_TCAP_FSB_INT_DEL | HPET_TCNF_FSB_EN; - /* - * LegacyReplacement Route configuration takes precedence over MSI - * for timers 0 and 1. - */ - if (n == 0 || n == 1) { - if (vhpet->config & HPET_CNF_LEG_RT) - return (false); - } - if ((vhpet->timer[n].cap_config & msi_enable) == msi_enable) return (true); else @@ -152,41 +142,9 @@ vhpet_timer_ioapic_pin(struct vhpet *vhp if (vhpet_timer_msi_enabled(vhpet, n)) return (0); - if (vhpet->config & HPET_CNF_LEG_RT) { - /* - * In "legacy routing" timers 0 and 1 are connected to - * ioapic pins 2 and 8 respectively. - */ - switch (n) { - case 0: - return (2); - case 1: - return (8); - } - } - return ((vhpet->timer[n].cap_config & HPET_TCNF_INT_ROUTE) >> 9); } -static __inline int -vhpet_timer_atpic_pin(struct vhpet *vhpet, int n) -{ - if (vhpet->config & HPET_CNF_LEG_RT) { - /* - * In "legacy routing" timers 0 and 1 are connected to - * 8259 master pin 0 and slave pin 0 respectively. - */ - switch (n) { - case 0: - return (0); - case 1: - return (8); - } - } - - return (-1); -} - static uint32_t vhpet_counter(struct vhpet *vhpet, sbintime_t *nowptr) { @@ -216,17 +174,12 @@ vhpet_counter(struct vhpet *vhpet, sbint *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***