From owner-svn-src-stable@FreeBSD.ORG Tue Jul 23 22:53:02 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 652AB538; Tue, 23 Jul 2013 22:53:02 +0000 (UTC) (envelope-from jimharris@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 563692ADE; Tue, 23 Jul 2013 22:53:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6NMr2vl096734; Tue, 23 Jul 2013 22:53:02 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6NMr2dh096733; Tue, 23 Jul 2013 22:53:02 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201307232253.r6NMr2dh096733@svn.freebsd.org> From: Jim Harris Date: Tue, 23 Jul 2013 22:53:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253584 - stable/9/share/man/man9 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jul 2013 22:53:02 -0000 Author: jimharris Date: Tue Jul 23 22:53:01 2013 New Revision: 253584 URL: http://svnweb.freebsd.org/changeset/base/253584 Log: MFC r253434: Add bus_dmamap_load_bio and bus_dmamap_load_ccb to bus_dma(9). Approved by: re (marius) Modified: stable/9/share/man/man9/bus_dma.9 Directory Properties: stable/9/share/man/man9/ (props changed) Modified: stable/9/share/man/man9/bus_dma.9 ============================================================================== --- stable/9/share/man/man9/bus_dma.9 Tue Jul 23 22:52:38 2013 (r253583) +++ stable/9/share/man/man9/bus_dma.9 Tue Jul 23 22:53:01 2013 (r253584) @@ -60,7 +60,7 @@ .\" $FreeBSD$ .\" $NetBSD: bus_dma.9,v 1.25 2002/10/14 13:43:16 wiz Exp $ .\" -.Dd May 12, 2009 +.Dd July 17, 2013 .Dt BUS_DMA 9 .Os .Sh NAME @@ -70,6 +70,8 @@ .Nm bus_dmamap_create , .Nm bus_dmamap_destroy , .Nm bus_dmamap_load , +.Nm bus_dmamap_load_bio , +.Nm bus_dmamap_load_ccb , .Nm bus_dmamap_load_mbuf , .Nm bus_dmamap_load_mbuf_sg , .Nm bus_dmamap_load_uio , @@ -97,6 +99,14 @@ "bus_size_t buflen" "bus_dmamap_callback_t *callback" "void *callback_arg" \ "int flags" .Ft int +.Fn bus_dmamap_load_bio "bus_dma_tag_t dmat" "bus_dmamap_t map" \ +"struct bio *bio" "bus_dmamap_callback_t *callback" "void *callback_arg" \ +"int flags" +.Ft int +.Fn bus_dmamap_load_ccb "bus_dma_tag_t dmat" "bus_dmamap_t map" \ +"union ccb *ccb" "bus_dmamap_callback_t *callback" "void *callback_arg" \ +"int flags" +.Ft int .Fn bus_dmamap_load_mbuf "bus_dma_tag_t dmat" "bus_dmamap_t map" \ "struct mbuf *mbuf" "bus_dmamap_callback2_t *callback" "void *callback_arg" \ "int flags" @@ -199,7 +209,10 @@ Client specified callback for receiving the load of a .Vt bus_dmamap_t via -.Fn bus_dmamap_load . +.Fn bus_dmamap_load , +.Fn bus_dmamap_load_bio +or +.Fn bus_dmamap_load_ccb . Callbacks are of the format: .Bl -tag -width indent .It Ft void @@ -624,6 +637,49 @@ This array is only valid during the scop A mapping could not be achieved within the segment constraints provided in the tag even though the requested allocation size was less than maxsize. .El +.It Fn bus_dmamap_load_bio "dmat" "map" "bio" "callback" "callback_arg" "flags" +This is a variation of +.Fn bus_dmamap_load +which maps buffers pointed to by +.Fa bio +for DMA transfers. +.Fa bio +may point to either a mapped or unmapped buffer. +.It Fn bus_dmamap_load_ccb "dmat" "map" "ccb" "callback" "callback_arg" "flags" +This is a variation of +.Fn bus_dmamap_load +which maps data pointed to by +.Fa ccb +for DMA transfers. +The data for +.Fa ccb +may be any of the following types: +.Bl -tag -width ".Er CAM_DATA_SG_PADDR" +.It CAM_DATA_VADDR +The data is a single KVA buffer. +.It CAM_DATA_PADDR +The data is a single bus address range. +.It CAM_DATA_SG +The data is a scatter/gather list of KVA buffers. +.It CAM_DATA_SG_PADDR +The data is a scatter/gather list of bus address ranges. +.It CAM_DATA_BIO +The data is contained in a +.Vt struct bio +attached to the CCB. +.El +.Pp +.Fn bus_dmamap_load_ccb +supports the following CCB XPT function codes: +.Pp +.Bl -item -offset indent -compact +.It +XPT_ATA_IO +.It +XPT_CONT_TARGET_IO +.It +XPT_SCSI_IO +.El .It Fn bus_dmamap_load_mbuf "dmat" "map" "mbuf" "callback2" "callback_arg" \ "flags" This is a variation of @@ -898,12 +954,16 @@ These functions include: .It .Fn bus_dmamap_load .It -.Fn bus_dmamap_load_uio +.Fn bus_dmamap_load_bio +.It +.Fn bus_dmamap_load_ccb .It .Fn bus_dmamap_load_mbuf .It .Fn bus_dmamap_load_mbuf_sg .It +.Fn bus_dmamap_load_uio +.It .Fn bus_dmamap_unload .It .Fn bus_dmamap_sync From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 01:08:46 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id DDD75B80; Wed, 24 Jul 2013 01:08:45 +0000 (UTC) (envelope-from rodrigc@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CD431206A; Wed, 24 Jul 2013 01:08:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6O18jIR037909; Wed, 24 Jul 2013 01:08:45 GMT (envelope-from rodrigc@svn.freebsd.org) Received: (from rodrigc@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6O18jMr037901; Wed, 24 Jul 2013 01:08:45 GMT (envelope-from rodrigc@svn.freebsd.org) Message-Id: <201307240108.r6O18jMr037901@svn.freebsd.org> From: Craig Rodrigues Date: Wed, 24 Jul 2013 01:08:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253586 - stable/9/sbin/mount X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 01:08:46 -0000 Author: rodrigc Date: Wed Jul 24 01:08:45 2013 New Revision: 253586 URL: http://svnweb.freebsd.org/changeset/base/253586 Log: MFC 253433: In this GRN, Marcel Moolenaar overhauled the logic for mounting the root file system on bootup: |------------------------------------------------------------------------ |r214006 | marcel | 2010-10-17 22:01:53 -0700 (Sun, 17 Oct 2010) | 20 lines | | Re-implement the root mount logic using a recursive approach, whereby each |root file system (starting with devfs and a synthesized configuration) can |contain directives for mounting another file system as root. |------------------------------------------------------------------------ This commit adds a mount.conf(8) man page which documents the root mount logic. mount.conf(8) also provides some examples for the /.mount.conf file, which can be used to change the root mount behavior. Reviewed by: marcel bjk MFC: 253445: Minor mdoc fixes Approved by: re (gjb) Added: stable/9/sbin/mount/mount.conf.8 - copied, changed from r253433, head/sbin/mount/mount.conf.8 Modified: stable/9/sbin/mount/Makefile (contents, props changed) Directory Properties: stable/9/sbin/mount/ (props changed) Modified: stable/9/sbin/mount/Makefile ============================================================================== --- stable/9/sbin/mount/Makefile Tue Jul 23 23:43:00 2013 (r253585) +++ stable/9/sbin/mount/Makefile Wed Jul 24 01:08:45 2013 (r253586) @@ -3,7 +3,7 @@ PROG= mount SRCS= mount.c mount_fs.c getmntopts.c vfslist.c -MAN= mount.8 +MAN= mount.8 mount.conf.8 # We do NOT install the getmntopts.3 man page. DPADD= ${LIBUTIL} Copied and modified: stable/9/sbin/mount/mount.conf.8 (from r253433, head/sbin/mount/mount.conf.8) ============================================================================== --- head/sbin/mount/mount.conf.8 Wed Jul 17 19:32:07 2013 (r253433, copy source) +++ stable/9/sbin/mount/mount.conf.8 Wed Jul 24 01:08:45 2013 (r253586) @@ -43,7 +43,7 @@ using the logic in the function in .Pa src/sys/kern/vfs_mountroot.c . The root mount logic can be described as follows: -.Bl -enum +.Bl -enum .It The kernel will synthesize in memory a config file with default directives for mounting @@ -58,7 +58,7 @@ as the root file system. Next, the kernel will parse the in-memory config file created in step 1 and try to mount the actual root file system. See -.Sx FILE FORMAT +.Sx FILE FORMAT for the format of the config file. .It When the actual root file system is mounted, @@ -67,7 +67,7 @@ will be re-mounted on the .Pa /dev directory. .It -If a +If a .Pa /.mount.conf file does not exist in the root file system which was just mounted, the root mount logic stops here. @@ -110,7 +110,7 @@ mount -t {FS} -o {OPTIONS} {MOUNTPOINT} .Ed .Pp If this is successfully mounted, -further lines in +further lines in .Pa .mount.conf are ignored. If all lines in @@ -164,7 +164,7 @@ can manually enter the root file system Finally if that does not work, the kernel will panic. .Bd -literal -offset indent .Li .onfail panic -.LI .timeout 3 +.Li .timeout 3 cd9660:/dev/cd0 ro .Li .timeout 0 cd9660:/dev/acd0 ro @@ -211,7 +211,7 @@ The following example will direct the kernel to do a unionfs mount on a directory .Pa /jail/freebsd-8-stable -which has a +which has a .Xr chroot 2 environment. .Bd -literal -offset indent @@ -228,13 +228,13 @@ exist so that the root mount logic can p If this directory does not exist, the system may hang during the bootup process. .Sh SEE ALSO -.Xr boot 8 , +.Xr nmount 2 , +.Xr md 4 , .Xr boot.config 5 , .Xr fstab 5 , +.Xr boot 8 , .Xr loader 8 , -.Xr mount 8 , -.Xr md 4 , -.Xr nmount 2 +.Xr mount 8 .Sh HISTORY The .Nm From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 08:57:00 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 2F647FC1; Wed, 24 Jul 2013 08:57:00 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 203D32335; Wed, 24 Jul 2013 08:57:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6O8ux5k086070; Wed, 24 Jul 2013 08:56:59 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6O8uxpq086069; Wed, 24 Jul 2013 08:56:59 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201307240856.r6O8uxpq086069@svn.freebsd.org> From: Andriy Gapon Date: Wed, 24 Jul 2013 08:56:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r253600 - stable/8/lib/libc/stdlib X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 08:57:00 -0000 Author: avg Date: Wed Jul 24 08:56:59 2013 New Revision: 253600 URL: http://svnweb.freebsd.org/changeset/base/253600 Log: MFC r253380,253413: name passed into __setenv is not necessarily NUL-terminated Modified: stable/8/lib/libc/stdlib/getenv.c Directory Properties: stable/8/lib/libc/ (props changed) Modified: stable/8/lib/libc/stdlib/getenv.c ============================================================================== --- stable/8/lib/libc/stdlib/getenv.c Wed Jul 24 08:39:09 2013 (r253599) +++ stable/8/lib/libc/stdlib/getenv.c Wed Jul 24 08:56:59 2013 (r253600) @@ -504,9 +504,8 @@ __setenv(const char *name, size_t nameLe envVars[envNdx].valueSize = valueLen; /* Save name of name/value pair. */ - env = stpcpy(envVars[envNdx].name, name); - if ((envVars[envNdx].name)[nameLen] != '=') - env = stpcpy(env, "="); + env = stpncpy(envVars[envNdx].name, name, nameLen); + *env++ = '='; } else env = envVars[envNdx].value; From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 10:12:51 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 43F2578E; Wed, 24 Jul 2013 10:12:51 +0000 (UTC) (envelope-from ache@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 267442787; Wed, 24 Jul 2013 10:12:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OACpsD011296; Wed, 24 Jul 2013 10:12:51 GMT (envelope-from ache@svn.freebsd.org) Received: (from ache@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OACoqb011294; Wed, 24 Jul 2013 10:12:50 GMT (envelope-from ache@svn.freebsd.org) Message-Id: <201307241012.r6OACoqb011294@svn.freebsd.org> From: "Andrey A. Chernov" Date: Wed, 24 Jul 2013 10:12:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253607 - in stable/9: include lib/libc/stdlib X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 10:12:51 -0000 Author: ache Date: Wed Jul 24 10:12:50 2013 New Revision: 253607 URL: http://svnweb.freebsd.org/changeset/base/253607 Log: 1) POSIX requires rand(3) return values to be in the [0, RAND_MAX] range, but ACM formula we use have internal state (and return value) in the [1, 0x7ffffffe] range, so our RAND_MAX (0x7fffffff) is never reached because it is off by one, zero is not reached too. Correct both RAND_MAX and rand(3) return value, shifting last one to the 0 by 1 subtracted, resulting POSIXed [0, 0x7ffffffd(=new RAND_MAX)] range. 2) Add a checks for not overflowing on too big seeds. It may happens on the machines, where sizeof(unsigned int) > 32 bits. This change is binary compatible because range is reduced, not expanded, so no bump is needed. Reviewed by: bde Approved by: re (glebius) Modified: stable/9/include/stdlib.h stable/9/lib/libc/stdlib/rand.c Directory Properties: stable/9/include/ (props changed) stable/9/lib/libc/ (props changed) Modified: stable/9/include/stdlib.h ============================================================================== --- stable/9/include/stdlib.h Wed Jul 24 09:59:16 2013 (r253606) +++ stable/9/include/stdlib.h Wed Jul 24 10:12:50 2013 (r253607) @@ -69,7 +69,7 @@ typedef struct { #define EXIT_FAILURE 1 #define EXIT_SUCCESS 0 -#define RAND_MAX 0x7fffffff +#define RAND_MAX 0x7ffffffd __BEGIN_DECLS #ifdef _XLOCALE_H_ Modified: stable/9/lib/libc/stdlib/rand.c ============================================================================== --- stable/9/lib/libc/stdlib/rand.c Wed Jul 24 09:59:16 2013 (r253606) +++ stable/9/lib/libc/stdlib/rand.c Wed Jul 24 10:12:50 2013 (r253607) @@ -67,15 +67,15 @@ do_rand(unsigned long *ctx) */ long hi, lo, x; - /* Can't be initialized with 0, so use another value. */ - if (*ctx == 0) - *ctx = 123459876; + /* Must be in [1, 0x7ffffffe] range at this point. */ hi = *ctx / 127773; lo = *ctx % 127773; x = 16807 * lo - 2836 * hi; if (x < 0) x += 0x7fffffff; - return ((*ctx = x) % ((u_long)RAND_MAX + 1)); + *ctx = x; + /* Transform to [0, 0x7ffffffd] range. */ + return (x - 1); #endif /* !USE_WEAK_SEEDING */ } @@ -83,15 +83,32 @@ do_rand(unsigned long *ctx) int rand_r(unsigned int *ctx) { - u_long val = (u_long) *ctx; - int r = do_rand(&val); + u_long val; + int r; - *ctx = (unsigned int) val; +#ifdef USE_WEAK_SEEDING + val = *ctx; +#else + /* Transform to [1, 0x7ffffffe] range. */ + val = (*ctx % 0x7ffffffe) + 1; +#endif + r = do_rand(&val); + +#ifdef USE_WEAK_SEEDING + *ctx = (unsigned int)val; +#else + *ctx = (unsigned int)(val - 1); +#endif return (r); } -static u_long next = 1; +static u_long next = +#ifdef USE_WEAK_SEEDING + 1; +#else + 2; +#endif int rand() @@ -104,6 +121,10 @@ srand(seed) u_int seed; { next = seed; +#ifndef USE_WEAK_SEEDING + /* Transform to [1, 0x7ffffffe] range. */ + next = (next % 0x7ffffffe) + 1; +#endif } @@ -125,6 +146,10 @@ sranddev() mib[0] = CTL_KERN; mib[1] = KERN_ARND; sysctl(mib, 2, (void *)&next, &len, NULL, 0); +#ifndef USE_WEAK_SEEDING + /* Transform to [1, 0x7ffffffe] range. */ + next = (next % 0x7ffffffe) + 1; +#endif } From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 10:14:36 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 8CD21903 for ; Wed, 24 Jul 2013 10:14:36 +0000 (UTC) (envelope-from mailer-daemon@vniz.net) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1464527AA for ; Wed, 24 Jul 2013 10:14:35 +0000 (UTC) Received: by mail-lb0-f182.google.com with SMTP id r11so320944lbv.41 for ; Wed, 24 Jul 2013 03:14:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:openpgp:content-type :content-transfer-encoding:x-gm-message-state; bh=qnS64NrvnZ1HvoMD1Aab7XO0JZD3iph4zP/IMSe33Iw=; b=BvVM0bfxcWhK4Rv8mpETn9Wk8wPK5tntL1v+qYagPpOWD/FTH19gXHfXJI/RcaQ4V1 RhcmqnIA9Tx7xWBysJF2Tu3EbiIvWkXFfgCYcbRQbF+z5INoar3shWQfQCBUCLeZJ0kZ z18FkOWgJAvjzfbIm78mitX8KCMMHzeI/YLLGHJ6KEcwgDUjQUElOwevyrfVYD4Kv3pc rdS9wXhCXAXgqWtNAPdwPOgdcZVnCxsMkIt+lPpFoUqfc3SPebt+rZUCVneCcQINoPlq XYy7AlmYyZEqPfnB9v6MoqxYV1utPJNFGFW9/eMKWDji5243evMhLlk6CvbPcivtlwy1 sX8g== X-Received: by 10.112.58.135 with SMTP id r7mr16396038lbq.89.1374660867557; Wed, 24 Jul 2013 03:14:27 -0700 (PDT) Received: from [192.168.1.2] ([89.169.173.68]) by mx.google.com with ESMTPSA id p10sm14696269lap.8.2013.07.24.03.14.26 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 24 Jul 2013 03:14:26 -0700 (PDT) Message-ID: <51EFA902.10408@freebsd.org> Date: Wed, 24 Jul 2013 14:14:26 +0400 From: Andrey Chernov User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 MIME-Version: 1.0 To: "Andrey A. Chernov" Subject: Re: svn commit: r253607 - in stable/9: include lib/libc/stdlib References: <201307241012.r6OACoqb011294@svn.freebsd.org> In-Reply-To: <201307241012.r6OACoqb011294@svn.freebsd.org> OpenPGP: id=964474DD Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Gm-Message-State: ALoCoQlho68Uc+3vF2RlwFfzxC73gVwbi+nwZhkCMCiicIkKXFOoyt6ogs5mpl3KABReOIhIh8f0 Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-9@freebsd.org X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 10:14:36 -0000 Forget to mention, it was MFC r252608,252648,252668,252698 On 24.07.2013 14:12, Andrey A. Chernov wrote: > Author: ache > Date: Wed Jul 24 10:12:50 2013 > New Revision: 253607 > URL: http://svnweb.freebsd.org/changeset/base/253607 > > Log: > 1) POSIX requires rand(3) return values to be in the [0, RAND_MAX] > range, but ACM formula we use have internal state (and return value) in > the [1, 0x7ffffffe] range, so our RAND_MAX (0x7fffffff) is never reached > because it is off by one, zero is not reached too. > > Correct both RAND_MAX and rand(3) return value, shifting last one > to the 0 by 1 subtracted, resulting POSIXed [0, 0x7ffffffd(=new > RAND_MAX)] range. > > 2) Add a checks for not overflowing on too big seeds. It may happens on > the machines, where sizeof(unsigned int) > 32 bits. > > This change is binary compatible because range is reduced, not expanded, > so no bump is needed. > > Reviewed by: bde > Approved by: re (glebius) > > Modified: > stable/9/include/stdlib.h > stable/9/lib/libc/stdlib/rand.c > Directory Properties: > stable/9/include/ (props changed) > stable/9/lib/libc/ (props changed) -- http://ache.vniz.net/ bitcoin:1G6ugdNY6e5jx1GVnAU2ntj2NEfmjKG85r From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 10:29:49 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 000FB1CC for ; Wed, 24 Jul 2013 10:29:48 +0000 (UTC) (envelope-from mailer-daemon@vniz.net) Received: from mail-lb0-f181.google.com (mail-lb0-f181.google.com [209.85.217.181]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7B5E5284B for ; Wed, 24 Jul 2013 10:29:48 +0000 (UTC) Received: by mail-lb0-f181.google.com with SMTP id w10so334348lbi.26 for ; Wed, 24 Jul 2013 03:29:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:openpgp:content-type :content-transfer-encoding:x-gm-message-state; bh=H1t1q+M92MInEIToJqe/6NVfZ5kR4OPzAo4LeBbZ7fU=; b=O3MJHUAzxllh4xOPhQY1j8gZQKYusBJsTB+cARH6nNTCKW7fZULUNcOICfFweIkLeD azsK0noIx83p5EZuhKzuVCsLMjgjjtv8gOxxZliIbgcwgf7b4+uBfyofGyGRopRvFdh8 lUlrbZtyyxSKTcgiW18HyOsUGQWM2y5zPE4uXVmZFVGjYhTbY/7eOkPEyQ6bRGcG36ex Q59ec8smhOGgXpXfWamR0UygQ5e3TyyJ+58crsRtBNhDwHOIFzsBoK501qFuhNSPQGQ3 TOOFZSJuZDgo37V9cXtVbPklok+MrjuG+LyT0y4aRaQfKSR50rdzTWtqoghS9Y6TFgv6 fENA== X-Received: by 10.112.11.50 with SMTP id n18mr15931184lbb.57.1374661786305; Wed, 24 Jul 2013 03:29:46 -0700 (PDT) Received: from [192.168.1.2] ([89.169.173.68]) by mx.google.com with ESMTPSA id k10sm14323524lbl.10.2013.07.24.03.29.45 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 24 Jul 2013 03:29:45 -0700 (PDT) Message-ID: <51EFAC99.8040501@freebsd.org> Date: Wed, 24 Jul 2013 14:29:45 +0400 From: Andrey Chernov User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 MIME-Version: 1.0 To: Andriy Gapon Subject: Re: svn commit: r253600 - stable/8/lib/libc/stdlib References: <201307240856.r6O8uxpq086069@svn.freebsd.org> In-Reply-To: <201307240856.r6O8uxpq086069@svn.freebsd.org> OpenPGP: id=964474DD Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Gm-Message-State: ALoCoQkRit1JG2OXdKYmARyj9JoAXYohd6nCTR11r3yYyP1eCGGFuvnXf7XM7R6PnaKmOpyYEtN0 Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-8@freebsd.org X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 10:29:49 -0000 On 24.07.2013 12:56, Andriy Gapon wrote: > Author: avg > Date: Wed Jul 24 08:56:59 2013 > New Revision: 253600 > URL: http://svnweb.freebsd.org/changeset/base/253600 > > Log: > MFC r253380,253413: name passed into __setenv is not necessarily NUL-terminated > Why MFC to stable/9 is pending? I consider this fix as essential. -- http://ache.vniz.net/ bitcoin:1G6ugdNY6e5jx1GVnAU2ntj2NEfmjKG85r From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 10:34:32 2013 Return-Path: Delivered-To: svn-src-stable@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id F15253ED; Wed, 24 Jul 2013 10:34:31 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 71D64288E; Wed, 24 Jul 2013 10:34:30 +0000 (UTC) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id NAA18863; Wed, 24 Jul 2013 13:34:28 +0300 (EEST) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1V1wOq-00086n-Jg; Wed, 24 Jul 2013 13:34:28 +0300 Message-ID: <51EFAD7C.8070308@FreeBSD.org> Date: Wed, 24 Jul 2013 13:33:32 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130708 Thunderbird/17.0.7 MIME-Version: 1.0 To: Andrey Chernov Subject: Re: svn commit: r253600 - stable/8/lib/libc/stdlib References: <201307240856.r6O8uxpq086069@svn.freebsd.org> <51EFAC99.8040501@freebsd.org> In-Reply-To: <51EFAC99.8040501@freebsd.org> X-Enigmail-Version: 1.5.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: svn-src-stable@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, svn-src-stable-8@FreeBSD.org X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 10:34:32 -0000 on 24/07/2013 13:29 Andrey Chernov said the following: > On 24.07.2013 12:56, Andriy Gapon wrote: >> Author: avg >> Date: Wed Jul 24 08:56:59 2013 >> New Revision: 253600 >> URL: http://svnweb.freebsd.org/changeset/base/253600 >> >> Log: >> MFC r253380,253413: name passed into __setenv is not necessarily NUL-terminated >> > > Why MFC to stable/9 is pending? I consider this fix as essential. > It's pending RE approval. -- Andriy Gapon From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 10:46:32 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id BE11C816; Wed, 24 Jul 2013 10:46:32 +0000 (UTC) (envelope-from rmacklem@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ADB5828FF; Wed, 24 Jul 2013 10:46:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OAkWeh020866; Wed, 24 Jul 2013 10:46:32 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OAkWej020865; Wed, 24 Jul 2013 10:46:32 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201307241046.r6OAkWej020865@svn.freebsd.org> From: Rick Macklem Date: Wed, 24 Jul 2013 10:46:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253608 - stable/9/sys/fs/nfs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 10:46:32 -0000 Author: rmacklem Date: Wed Jul 24 10:46:32 2013 New Revision: 253608 URL: http://svnweb.freebsd.org/changeset/base/253608 Log: MFC: r253506 The NFSv4 server incorrectly assumed that the high order words of the attribute bitmap argument would be non-zero. This caused an interoperability problem for a recent patch to the Linux NFSv4 client. The Linux folks have changed their patch to avoid this, but this patch fixes the problem on the server. Reported and tested by: a.heider@gmail.com (Andre Heider) Approved by: re (Xin Li) Modified: stable/9/sys/fs/nfs/nfs_commonsubs.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/fs/ (props changed) Modified: stable/9/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- stable/9/sys/fs/nfs/nfs_commonsubs.c Wed Jul 24 10:12:50 2013 (r253607) +++ stable/9/sys/fs/nfs/nfs_commonsubs.c Wed Jul 24 10:46:32 2013 (r253608) @@ -742,21 +742,21 @@ nfsrv_getattrbits(struct nfsrv_descript error = NFSERR_BADXDR; goto nfsmout; } - if (cnt > NFSATTRBIT_MAXWORDS) { + if (cnt > NFSATTRBIT_MAXWORDS) outcnt = NFSATTRBIT_MAXWORDS; - if (retnotsupp) - *retnotsupp = NFSERR_ATTRNOTSUPP; - } else { + else outcnt = cnt; - } NFSZERO_ATTRBIT(attrbitp); if (outcnt > 0) { NFSM_DISSECT(tl, u_int32_t *, outcnt * NFSX_UNSIGNED); for (i = 0; i < outcnt; i++) attrbitp->bits[i] = fxdr_unsigned(u_int32_t, *tl++); } - if (cnt > outcnt) - error = nfsm_advance(nd, (cnt - outcnt) * NFSX_UNSIGNED, -1); + for (i = 0; i < (cnt - outcnt); i++) { + NFSM_DISSECT(tl, u_int32_t *, NFSX_UNSIGNED); + if (retnotsupp != NULL && *tl != 0) + *retnotsupp = NFSERR_ATTRNOTSUPP; + } if (cntp) *cntp = NFSX_UNSIGNED + (cnt * NFSX_UNSIGNED); nfsmout: From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 13:07:30 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 5E6B1E9; Wed, 24 Jul 2013 13:07:30 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4FCBF2ED5; Wed, 24 Jul 2013 13:07:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OD7Ugt064227; Wed, 24 Jul 2013 13:07:30 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OD7UbM064226; Wed, 24 Jul 2013 13:07:30 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201307241307.r6OD7UbM064226@svn.freebsd.org> From: Andriy Gapon Date: Wed, 24 Jul 2013 13:07:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253610 - stable/9/lib/libc/stdlib X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 13:07:30 -0000 Author: avg Date: Wed Jul 24 13:07:29 2013 New Revision: 253610 URL: http://svnweb.freebsd.org/changeset/base/253610 Log: MFC r253380,253413: name passed into __setenv is not necessarily NUL-terminated Approved by: re (kib) Modified: stable/9/lib/libc/stdlib/getenv.c Directory Properties: stable/9/lib/libc/ (props changed) Modified: stable/9/lib/libc/stdlib/getenv.c ============================================================================== --- stable/9/lib/libc/stdlib/getenv.c Wed Jul 24 11:32:58 2013 (r253609) +++ stable/9/lib/libc/stdlib/getenv.c Wed Jul 24 13:07:29 2013 (r253610) @@ -505,9 +505,8 @@ __setenv(const char *name, size_t nameLe envVars[envNdx].valueSize = valueLen; /* Save name of name/value pair. */ - env = stpcpy(envVars[envNdx].name, name); - if ((envVars[envNdx].name)[nameLen] != '=') - env = stpcpy(env, "="); + env = stpncpy(envVars[envNdx].name, name, nameLen); + *env++ = '='; } else env = envVars[envNdx].value; From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 13:43:09 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id AB596C0D; Wed, 24 Jul 2013 13:43:09 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9C3ED204C; Wed, 24 Jul 2013 13:43:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6ODh9W2075849; Wed, 24 Jul 2013 13:43:09 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6ODh9B9075848; Wed, 24 Jul 2013 13:43:09 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201307241343.r6ODh9B9075848@svn.freebsd.org> From: Glen Barber Date: Wed, 24 Jul 2013 13:43:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253613 - stable/9/release/scripts X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 13:43:09 -0000 Author: gjb Date: Wed Jul 24 13:43:09 2013 New Revision: 253613 URL: http://svnweb.freebsd.org/changeset/base/253613 Log: Modernize the package list for 9.2-RELEASE cycle: o Update the perl package version to 5.14. o Add devel/subversion and devel/subversion-static so we provide a package for source-based users to check out the various trees, both with and without extra dependencies. This is a direct commit to stable/9. Approved by: kib (mentor) Approved by: re (glebius) Modified: stable/9/release/scripts/package-split.py Modified: stable/9/release/scripts/package-split.py ============================================================================== --- stable/9/release/scripts/package-split.py Wed Jul 24 13:31:31 2013 (r253612) +++ stable/9/release/scripts/package-split.py Wed Jul 24 13:43:09 2013 (r253613) @@ -26,8 +26,10 @@ else: # List of packages for dvd1. def dvd1_packages(): pkgs = ['archivers/unzip', + 'devel/subversion', + 'devel/subversion-static', 'emulators/linux_base-f10', - 'lang/perl5.12', + 'lang/perl5.14', 'misc/freebsd-doc-all', 'net/mpd5', 'net/rsync', From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 21:53:34 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 059DE79E; Wed, 24 Jul 2013 21:53:34 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E72322E40; Wed, 24 Jul 2013 21:53:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OLrXX9035517; Wed, 24 Jul 2013 21:53:33 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OLrXdw035516; Wed, 24 Jul 2013 21:53:33 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201307242153.r6OLrXdw035516@svn.freebsd.org> From: Jung-uk Kim Date: Wed, 24 Jul 2013 21:53:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253621 - stable/9/sys/dev/syscons X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 21:53:34 -0000 Author: jkim Date: Wed Jul 24 21:53:33 2013 New Revision: 253621 URL: http://svnweb.freebsd.org/changeset/base/253621 Log: MFC: r253439 Reload font when syscons(4) is resuming without switching mode. Approved by: re (delphij) Modified: stable/9/sys/dev/syscons/syscons.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/syscons/syscons.c ============================================================================== --- stable/9/sys/dev/syscons/syscons.c Wed Jul 24 20:34:25 2013 (r253620) +++ stable/9/sys/dev/syscons/syscons.c Wed Jul 24 21:53:33 2013 (r253621) @@ -218,6 +218,7 @@ static int finish_vt_acq(scr_stat *scp); static void exchange_scr(sc_softc_t *sc); static void update_cursor_image(scr_stat *scp); static void change_cursor_shape(scr_stat *scp, int flags, int base, int height); +static void update_font(scr_stat *); static int save_kbd_state(scr_stat *scp); static int update_kbd_state(scr_stat *scp, int state, int mask); static int update_kbd_leds(scr_stat *scp, int which); @@ -3136,7 +3137,7 @@ scresume(__unused void *arg) suspend_in_progress = FALSE; if (sc_susp_scr < 0) { - mark_all(sc_console->sc->cur_scp); + update_font(sc_console->sc->cur_scp); return; } sc_switch_scr(sc_console->sc, sc_susp_scr); @@ -3641,6 +3642,37 @@ sctty_mmap(struct tty *tp, vm_ooffset_t return vidd_mmap(scp->sc->adp, offset, paddr, nprot, memattr); } +static void +update_font(scr_stat *scp) +{ +#ifndef SC_NO_FONT_LOADING + /* load appropriate font */ + if (!(scp->status & GRAPHICS_MODE)) { + if (!(scp->status & PIXEL_MODE) && ISFONTAVAIL(scp->sc->adp->va_flags)) { + if (scp->font_size < 14) { + if (scp->sc->fonts_loaded & FONT_8) + sc_load_font(scp, 0, 8, 8, scp->sc->font_8, 0, 256); + } else if (scp->font_size >= 16) { + if (scp->sc->fonts_loaded & FONT_16) + sc_load_font(scp, 0, 16, 8, scp->sc->font_16, 0, 256); + } else { + if (scp->sc->fonts_loaded & FONT_14) + sc_load_font(scp, 0, 14, 8, scp->sc->font_14, 0, 256); + } + /* + * FONT KLUDGE: + * This is an interim kludge to display correct font. + * Always use the font page #0 on the video plane 2. + * Somehow we cannot show the font in other font pages on + * some video cards... XXX + */ + sc_show_font(scp, 0); + } + mark_all(scp); + } +#endif /* !SC_NO_FONT_LOADING */ +} + static int save_kbd_state(scr_stat *scp) { @@ -3713,32 +3745,7 @@ set_mode(scr_stat *scp) (void *)scp->sc->adp->va_window, FALSE); #endif -#ifndef SC_NO_FONT_LOADING - /* load appropriate font */ - if (!(scp->status & GRAPHICS_MODE)) { - if (!(scp->status & PIXEL_MODE) && ISFONTAVAIL(scp->sc->adp->va_flags)) { - if (scp->font_size < 14) { - if (scp->sc->fonts_loaded & FONT_8) - sc_load_font(scp, 0, 8, 8, scp->sc->font_8, 0, 256); - } else if (scp->font_size >= 16) { - if (scp->sc->fonts_loaded & FONT_16) - sc_load_font(scp, 0, 16, 8, scp->sc->font_16, 0, 256); - } else { - if (scp->sc->fonts_loaded & FONT_14) - sc_load_font(scp, 0, 14, 8, scp->sc->font_14, 0, 256); - } - /* - * FONT KLUDGE: - * This is an interim kludge to display correct font. - * Always use the font page #0 on the video plane 2. - * Somehow we cannot show the font in other font pages on - * some video cards... XXX - */ - sc_show_font(scp, 0); - } - mark_all(scp); - } -#endif /* !SC_NO_FONT_LOADING */ + update_font(scp); sc_set_border(scp, scp->border); sc_set_cursor_image(scp); From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:26:11 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C6A64E48; Wed, 24 Jul 2013 22:26:11 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A4A182F60; Wed, 24 Jul 2013 22:26:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMQBF0045330; Wed, 24 Jul 2013 22:26:11 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMQBgv045329; Wed, 24 Jul 2013 22:26:11 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201307242226.r6OMQBgv045329@svn.freebsd.org> From: Jung-uk Kim Date: Wed, 24 Jul 2013 22:26:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253622 - stable/9/usr.sbin/pciconf X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:26:12 -0000 Author: jkim Date: Wed Jul 24 22:26:11 2013 New Revision: 253622 URL: http://svnweb.freebsd.org/changeset/base/253622 Log: MFC: r253455 Decode PCIe ASPM capability and status. Approved by: re (delphij) Modified: stable/9/usr.sbin/pciconf/cap.c Directory Properties: stable/9/usr.sbin/pciconf/ (props changed) Modified: stable/9/usr.sbin/pciconf/cap.c ============================================================================== --- stable/9/usr.sbin/pciconf/cap.c Wed Jul 24 21:53:33 2013 (r253621) +++ stable/9/usr.sbin/pciconf/cap.c Wed Jul 24 22:26:11 2013 (r253622) @@ -391,11 +391,27 @@ link_speed_string(uint8_t speed) } } +static const char * +aspm_string(uint8_t aspm) +{ + + switch (aspm) { + case 1: + return ("L0s"); + case 2: + return ("L1"); + case 3: + return ("L0s/L1"); + default: + return ("disabled"); + } +} + static void cap_express(int fd, struct pci_conf *p, uint8_t ptr) { - uint32_t val; - uint16_t flags; + uint32_t cap; + uint16_t ctl, flags, sta; flags = read_config(fd, &p->pc_sel, ptr + PCIER_FLAGS, 2); printf("PCI-Express %d ", flags & PCIEM_FLAGS_VERSION); @@ -435,26 +451,28 @@ cap_express(int fd, struct pci_conf *p, printf(" slot"); if (flags & PCIEM_FLAGS_IRQ) printf(" IRQ %d", (flags & PCIEM_FLAGS_IRQ) >> 9); - val = read_config(fd, &p->pc_sel, ptr + PCIER_DEVICE_CAP, 4); - flags = read_config(fd, &p->pc_sel, ptr + PCIER_DEVICE_CTL, 2); + cap = read_config(fd, &p->pc_sel, ptr + PCIER_DEVICE_CAP, 4); + ctl = read_config(fd, &p->pc_sel, ptr + PCIER_DEVICE_CTL, 2); printf(" max data %d(%d)", - MAX_PAYLOAD((flags & PCIEM_CTL_MAX_PAYLOAD) >> 5), - MAX_PAYLOAD(val & PCIEM_CAP_MAX_PAYLOAD)); - if (val & PCIEM_CAP_FLR) + MAX_PAYLOAD((ctl & PCIEM_CTL_MAX_PAYLOAD) >> 5), + MAX_PAYLOAD(cap & PCIEM_CAP_MAX_PAYLOAD)); + if ((cap & PCIEM_CAP_FLR) != 0) printf(" FLR"); - val = read_config(fd, &p->pc_sel, ptr + PCIER_LINK_CAP, 4); - flags = read_config(fd, &p->pc_sel, ptr+ PCIER_LINK_STA, 2); - printf(" link x%d(x%d)", (flags & PCIEM_LINK_STA_WIDTH) >> 4, - (val & PCIEM_LINK_CAP_MAX_WIDTH) >> 4); - /* - * Only print link speed info if the link's max width is - * greater than 0. - */ - if ((val & PCIEM_LINK_CAP_MAX_WIDTH) != 0) { - printf("\n speed"); - printf(" %s(%s)", (flags & PCIEM_LINK_STA_WIDTH) == 0 ? - "0.0" : link_speed_string(flags & PCIEM_LINK_STA_SPEED), - link_speed_string(val & PCIEM_LINK_CAP_MAX_SPEED)); + cap = read_config(fd, &p->pc_sel, ptr + PCIER_LINK_CAP, 4); + sta = read_config(fd, &p->pc_sel, ptr + PCIER_LINK_STA, 2); + printf(" link x%d(x%d)", (sta & PCIEM_LINK_STA_WIDTH) >> 4, + (cap & PCIEM_LINK_CAP_MAX_WIDTH) >> 4); + if ((cap & (PCIEM_LINK_CAP_MAX_WIDTH | PCIEM_LINK_CAP_ASPM)) != 0) + printf("\n "); + if ((cap & PCIEM_LINK_CAP_MAX_WIDTH) != 0) { + printf(" speed %s(%s)", (sta & PCIEM_LINK_STA_WIDTH) == 0 ? + "0.0" : link_speed_string(sta & PCIEM_LINK_STA_SPEED), + link_speed_string(cap & PCIEM_LINK_CAP_MAX_SPEED)); + } + if ((cap & PCIEM_LINK_CAP_ASPM) != 0) { + ctl = read_config(fd, &p->pc_sel, ptr + PCIER_LINK_CTL, 2); + printf(" ASPM %s(%s)", aspm_string(ctl & PCIEM_LINK_CTL_ASPMC), + aspm_string((cap & PCIEM_LINK_CAP_ASPM) >> 10)); } } From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:26:59 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1849DF7B; Wed, 24 Jul 2013 22:26:59 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EA0392F66; Wed, 24 Jul 2013 22:26:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMQwNI045455; Wed, 24 Jul 2013 22:26:58 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMQwLY045454; Wed, 24 Jul 2013 22:26:58 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201307242226.r6OMQwLY045454@svn.freebsd.org> From: Jung-uk Kim Date: Wed, 24 Jul 2013 22:26:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r253623 - stable/8/usr.sbin/pciconf X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:26:59 -0000 Author: jkim Date: Wed Jul 24 22:26:58 2013 New Revision: 253623 URL: http://svnweb.freebsd.org/changeset/base/253623 Log: MFC: r253455 Decode PCIe ASPM capability and status. Modified: stable/8/usr.sbin/pciconf/cap.c Directory Properties: stable/8/usr.sbin/pciconf/ (props changed) Modified: stable/8/usr.sbin/pciconf/cap.c ============================================================================== --- stable/8/usr.sbin/pciconf/cap.c Wed Jul 24 22:26:11 2013 (r253622) +++ stable/8/usr.sbin/pciconf/cap.c Wed Jul 24 22:26:58 2013 (r253623) @@ -391,11 +391,27 @@ link_speed_string(uint8_t speed) } } +static const char * +aspm_string(uint8_t aspm) +{ + + switch (aspm) { + case 1: + return ("L0s"); + case 2: + return ("L1"); + case 3: + return ("L0s/L1"); + default: + return ("disabled"); + } +} + static void cap_express(int fd, struct pci_conf *p, uint8_t ptr) { - uint32_t val; - uint16_t flags; + uint32_t cap; + uint16_t ctl, flags, sta; flags = read_config(fd, &p->pc_sel, ptr + PCIER_FLAGS, 2); printf("PCI-Express %d ", flags & PCIEM_FLAGS_VERSION); @@ -435,26 +451,28 @@ cap_express(int fd, struct pci_conf *p, printf(" slot"); if (flags & PCIEM_FLAGS_IRQ) printf(" IRQ %d", (flags & PCIEM_FLAGS_IRQ) >> 9); - val = read_config(fd, &p->pc_sel, ptr + PCIER_DEVICE_CAP, 4); - flags = read_config(fd, &p->pc_sel, ptr + PCIER_DEVICE_CTL, 2); + cap = read_config(fd, &p->pc_sel, ptr + PCIER_DEVICE_CAP, 4); + ctl = read_config(fd, &p->pc_sel, ptr + PCIER_DEVICE_CTL, 2); printf(" max data %d(%d)", - MAX_PAYLOAD((flags & PCIEM_CTL_MAX_PAYLOAD) >> 5), - MAX_PAYLOAD(val & PCIEM_CAP_MAX_PAYLOAD)); - if (val & PCIEM_CAP_FLR) + MAX_PAYLOAD((ctl & PCIEM_CTL_MAX_PAYLOAD) >> 5), + MAX_PAYLOAD(cap & PCIEM_CAP_MAX_PAYLOAD)); + if ((cap & PCIEM_CAP_FLR) != 0) printf(" FLR"); - val = read_config(fd, &p->pc_sel, ptr + PCIER_LINK_CAP, 4); - flags = read_config(fd, &p->pc_sel, ptr+ PCIER_LINK_STA, 2); - printf(" link x%d(x%d)", (flags & PCIEM_LINK_STA_WIDTH) >> 4, - (val & PCIEM_LINK_CAP_MAX_WIDTH) >> 4); - /* - * Only print link speed info if the link's max width is - * greater than 0. - */ - if ((val & PCIEM_LINK_CAP_MAX_WIDTH) != 0) { - printf("\n speed"); - printf(" %s(%s)", (flags & PCIEM_LINK_STA_WIDTH) == 0 ? - "0.0" : link_speed_string(flags & PCIEM_LINK_STA_SPEED), - link_speed_string(val & PCIEM_LINK_CAP_MAX_SPEED)); + cap = read_config(fd, &p->pc_sel, ptr + PCIER_LINK_CAP, 4); + sta = read_config(fd, &p->pc_sel, ptr + PCIER_LINK_STA, 2); + printf(" link x%d(x%d)", (sta & PCIEM_LINK_STA_WIDTH) >> 4, + (cap & PCIEM_LINK_CAP_MAX_WIDTH) >> 4); + if ((cap & (PCIEM_LINK_CAP_MAX_WIDTH | PCIEM_LINK_CAP_ASPM)) != 0) + printf("\n "); + if ((cap & PCIEM_LINK_CAP_MAX_WIDTH) != 0) { + printf(" speed %s(%s)", (sta & PCIEM_LINK_STA_WIDTH) == 0 ? + "0.0" : link_speed_string(sta & PCIEM_LINK_STA_SPEED), + link_speed_string(cap & PCIEM_LINK_CAP_MAX_SPEED)); + } + if ((cap & PCIEM_LINK_CAP_ASPM) != 0) { + ctl = read_config(fd, &p->pc_sel, ptr + PCIER_LINK_CTL, 2); + printf(" ASPM %s(%s)", aspm_string(ctl & PCIEM_LINK_CTL_ASPMC), + aspm_string((cap & PCIEM_LINK_CAP_ASPM) >> 10)); } } From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:34:07 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 391652C4; Wed, 24 Jul 2013 22:34:07 +0000 (UTC) (envelope-from jimharris@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 25CD62FAA; Wed, 24 Jul 2013 22:34:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMY74Z048211; Wed, 24 Jul 2013 22:34:07 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMY7BO048210; Wed, 24 Jul 2013 22:34:07 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201307242234.r6OMY7BO048210@svn.freebsd.org> From: Jim Harris Date: Wed, 24 Jul 2013 22:34:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253624 - stable/9/sbin/nvmecontrol X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:34:07 -0000 Author: jimharris Date: Wed Jul 24 22:34:06 2013 New Revision: 253624 URL: http://svnweb.freebsd.org/changeset/base/253624 Log: MFC r253393: Do not throw an error if the user requests to activate the image from an empty firmware slot, as long as the user has specified a firmware image to download into the empty firmware slot. Approved by: re (kib) Sponsored by: Intel Modified: stable/9/sbin/nvmecontrol/firmware.c Directory Properties: stable/9/sbin/nvmecontrol/ (props changed) Modified: stable/9/sbin/nvmecontrol/firmware.c ============================================================================== --- stable/9/sbin/nvmecontrol/firmware.c Wed Jul 24 22:26:58 2013 (r253623) +++ stable/9/sbin/nvmecontrol/firmware.c Wed Jul 24 22:34:06 2013 (r253624) @@ -246,7 +246,7 @@ firmware(int argc, char *argv[]) "slot %d specified but controller only supports %d slots", slot, cdata.frmw.num_slots); - if (!slot_has_valid_firmware(fd, slot)) + if (a_flag && !f_flag && !slot_has_valid_firmware(fd, slot)) errx(1, "slot %d does not contain valid firmware,\n" "try 'nvmecontrol logpage -p 3 %s' to get a list " From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:38:38 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 093196F3; Wed, 24 Jul 2013 22:38:38 +0000 (UTC) (envelope-from jimharris@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CFEEA2FEE; Wed, 24 Jul 2013 22:38:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMcbEu071794; Wed, 24 Jul 2013 22:38:37 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMcb0S071789; Wed, 24 Jul 2013 22:38:37 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201307242238.r6OMcb0S071789@svn.freebsd.org> From: Jim Harris Date: Wed, 24 Jul 2013 22:38:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253625 - stable/9/sbin/nvmecontrol X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:38:38 -0000 Author: jimharris Date: Wed Jul 24 22:38:37 2013 New Revision: 253625 URL: http://svnweb.freebsd.org/changeset/base/253625 Log: MFC r253436, r253458: Simplify open_dev() by returning errno values rather than just 0 or 1. Also remove stat() call and just rely on errno from open() call to discern whether dev node exists or not. Approved by: re (kib) Sponsored by: Intel Modified: stable/9/sbin/nvmecontrol/devlist.c stable/9/sbin/nvmecontrol/nvmecontrol.c Directory Properties: stable/9/sbin/nvmecontrol/ (props changed) Modified: stable/9/sbin/nvmecontrol/devlist.c ============================================================================== --- stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:34:06 2013 (r253624) +++ stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:38:37 2013 (r253625) @@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -80,7 +81,7 @@ devlist(int argc, char *argv[]) ret = open_dev(name, &fd, 0, 0); if (ret != 0) { - if (fd < 0) { + if (ret == EACCES) { warnx("could not open /dev/%s\n", name); continue; } else Modified: stable/9/sbin/nvmecontrol/nvmecontrol.c ============================================================================== --- stable/9/sbin/nvmecontrol/nvmecontrol.c Wed Jul 24 22:34:06 2013 (r253624) +++ stable/9/sbin/nvmecontrol/nvmecontrol.c Wed Jul 24 22:38:37 2013 (r253625) @@ -163,7 +163,6 @@ read_namespace_data(int fd, int nsid, st int open_dev(const char *str, int *fd, int show_error, int exit_on_error) { - struct stat devstat; char full_path[64]; if (!strnstr(str, NVME_CTRLR_PREFIX, strlen(NVME_CTRLR_PREFIX))) { @@ -173,19 +172,10 @@ open_dev(const char *str, int *fd, int s if (exit_on_error) exit(1); else - return (1); + return (EINVAL); } snprintf(full_path, sizeof(full_path), "/dev/%s", str); - if (stat(full_path, &devstat) != 0) { - if (show_error) - warn("could not stat %s", full_path); - if (exit_on_error) - exit(1); - else - return (1); - } - *fd = open(full_path, O_RDWR); if (*fd < 0) { if (show_error) @@ -193,7 +183,7 @@ open_dev(const char *str, int *fd, int s if (exit_on_error) exit(1); else - return (1); + return (errno); } return (0); From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:40:35 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8A5BF82E; Wed, 24 Jul 2013 22:40:35 +0000 (UTC) (envelope-from jimharris@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 76DE82FF8; Wed, 24 Jul 2013 22:40:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMeZvT028294; Wed, 24 Jul 2013 22:40:35 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMeYDR028287; Wed, 24 Jul 2013 22:40:34 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201307242240.r6OMeYDR028287@svn.freebsd.org> From: Jim Harris Date: Wed, 24 Jul 2013 22:40:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253626 - in stable/9: sbin/nvmecontrol sys/dev/nvd sys/dev/nvme X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:40:35 -0000 Author: jimharris Date: Wed Jul 24 22:40:34 2013 New Revision: 253626 URL: http://svnweb.freebsd.org/changeset/base/253626 Log: MFC r253437: Define constants for the lengths of the serial number, model number and firmware revision in the controller's identify structure. Also modify consumers of these fields to ensure they only use the specified number of bytes for their respective fields. Approved by: re (kib) Sponsored by: Intel Modified: stable/9/sbin/nvmecontrol/devlist.c stable/9/sbin/nvmecontrol/identify.c stable/9/sys/dev/nvd/nvd.c stable/9/sys/dev/nvme/nvme.h Directory Properties: stable/9/sbin/nvmecontrol/ (props changed) stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sbin/nvmecontrol/devlist.c ============================================================================== --- stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:38:37 2013 (r253625) +++ stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:40:34 2013 (r253626) @@ -90,7 +90,7 @@ devlist(int argc, char *argv[]) found++; read_controller_data(fd, &cdata); - printf("%6s: %s\n", name, cdata.mn); + printf("%6s: %.*s\n", name, NVME_MODEL_NUMBER_LENGTH, cdata.mn); for (i = 0; i < cdata.nn; i++) { sprintf(name, "%s%d%s%d", NVME_CTRLR_PREFIX, ctrlr, Modified: stable/9/sbin/nvmecontrol/identify.c ============================================================================== --- stable/9/sbin/nvmecontrol/identify.c Wed Jul 24 22:38:37 2013 (r253625) +++ stable/9/sbin/nvmecontrol/identify.c Wed Jul 24 22:40:34 2013 (r253626) @@ -47,9 +47,12 @@ print_controller(struct nvme_controller_ printf("================================\n"); printf("Vendor ID: %04x\n", cdata->vid); printf("Subsystem Vendor ID: %04x\n", cdata->ssvid); - printf("Serial Number: %s\n", cdata->sn); - printf("Model Number: %s\n", cdata->mn); - printf("Firmware Version: %s\n", cdata->fr); + printf("Serial Number: %.*s\n", + NVME_SERIAL_NUMBER_LENGTH, cdata->sn); + printf("Model Number: %.*s\n", + NVME_MODEL_NUMBER_LENGTH, cdata->mn); + printf("Firmware Version: %.*s\n", + NVME_FIRMWARE_REVISION_LENGTH, cdata->fr); printf("Recommended Arb Burst: %d\n", cdata->rab); printf("IEEE OUI Identifier: %02x %02x %02x\n", cdata->ieee[0], cdata->ieee[1], cdata->ieee[2]); Modified: stable/9/sys/dev/nvd/nvd.c ============================================================================== --- stable/9/sys/dev/nvd/nvd.c Wed Jul 24 22:38:37 2013 (r253625) +++ stable/9/sys/dev/nvd/nvd.c Wed Jul 24 22:40:34 2013 (r253626) @@ -306,12 +306,16 @@ nvd_new_disk(struct nvme_namespace *ns, disk->d_flags |= DISKFLAG_UNMAPPED_BIO; #endif + /* + * d_ident and d_descr are both far bigger than the length of either + * the serial or model number strings. + */ strlcpy(disk->d_ident, nvme_ns_get_serial_number(ns), - sizeof(disk->d_ident)); + min(sizeof(disk->d_ident), NVME_SERIAL_NUMBER_LENGTH)); #if __FreeBSD_version >= 900034 strlcpy(disk->d_descr, nvme_ns_get_model_number(ns), - sizeof(disk->d_descr)); + min(sizeof(disk->d_descr), NVME_MODEL_NUMBER_LENGTH)); #endif disk_create(disk, DISK_VERSION); Modified: stable/9/sys/dev/nvme/nvme.h ============================================================================== --- stable/9/sys/dev/nvme/nvme.h Wed Jul 24 22:38:37 2013 (r253625) +++ stable/9/sys/dev/nvme/nvme.h Wed Jul 24 22:40:34 2013 (r253626) @@ -389,6 +389,10 @@ enum nvme_activate_action { NVME_AA_ACTIVATE = 0x2, }; +#define NVME_SERIAL_NUMBER_LENGTH 20 +#define NVME_MODEL_NUMBER_LENGTH 40 +#define NVME_FIRMWARE_REVISION_LENGTH 8 + struct nvme_controller_data { /* bytes 0-255: controller capabilities and features */ @@ -400,13 +404,13 @@ struct nvme_controller_data { uint16_t ssvid; /** serial number */ - int8_t sn[20]; + int8_t sn[NVME_SERIAL_NUMBER_LENGTH]; /** model number */ - int8_t mn[40]; + int8_t mn[NVME_MODEL_NUMBER_LENGTH]; /** firmware revision */ - uint8_t fr[8]; + uint8_t fr[NVME_FIRMWARE_REVISION_LENGTH]; /** recommended arbitration burst */ uint8_t rab; From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:42:01 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0743B964; Wed, 24 Jul 2013 22:42:01 +0000 (UTC) (envelope-from jimharris@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CF03E2FFF; Wed, 24 Jul 2013 22:42:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMg0iV036843; Wed, 24 Jul 2013 22:42:00 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMg0pO036842; Wed, 24 Jul 2013 22:42:00 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201307242242.r6OMg0pO036842@svn.freebsd.org> From: Jim Harris Date: Wed, 24 Jul 2013 22:42:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253627 - stable/9/sys/dev/nvme X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:42:01 -0000 Author: jimharris Date: Wed Jul 24 22:42:00 2013 New Revision: 253627 URL: http://svnweb.freebsd.org/changeset/base/253627 Log: MFC r253438: Use pause() instead of DELAY() when polling for completion of admin commands during controller initialization. DELAY() does not work here during config_intrhook context - we need to explicitly relinquish the CPU for the admin command completion to get processed. Approved by: re (kib) Sponsored by: Intel Modified: stable/9/sys/dev/nvme/nvme_ctrlr.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- stable/9/sys/dev/nvme/nvme_ctrlr.c Wed Jul 24 22:40:34 2013 (r253626) +++ stable/9/sys/dev/nvme/nvme_ctrlr.c Wed Jul 24 22:42:00 2013 (r253627) @@ -455,7 +455,7 @@ nvme_ctrlr_identify(struct nvme_controll nvme_ctrlr_cmd_identify_controller(ctrlr, &ctrlr->cdata, nvme_completion_poll_cb, &status); while (status.done == FALSE) - DELAY(5); + pause("nvme", 1); if (nvme_completion_is_error(&status.cpl)) { nvme_printf(ctrlr, "nvme_identify_controller failed!\n"); return (ENXIO); @@ -487,7 +487,7 @@ nvme_ctrlr_set_num_qpairs(struct nvme_co nvme_ctrlr_cmd_set_num_queues(ctrlr, ctrlr->num_io_queues, nvme_completion_poll_cb, &status); while (status.done == FALSE) - DELAY(5); + pause("nvme", 1); if (nvme_completion_is_error(&status.cpl)) { nvme_printf(ctrlr, "nvme_set_num_queues failed!\n"); return (ENXIO); @@ -540,7 +540,7 @@ nvme_ctrlr_create_qpairs(struct nvme_con nvme_ctrlr_cmd_create_io_cq(ctrlr, qpair, qpair->vector, nvme_completion_poll_cb, &status); while (status.done == FALSE) - DELAY(5); + pause("nvme", 1); if (nvme_completion_is_error(&status.cpl)) { nvme_printf(ctrlr, "nvme_create_io_cq failed!\n"); return (ENXIO); @@ -550,7 +550,7 @@ nvme_ctrlr_create_qpairs(struct nvme_con nvme_ctrlr_cmd_create_io_sq(qpair->ctrlr, qpair, nvme_completion_poll_cb, &status); while (status.done == FALSE) - DELAY(5); + pause("nvme", 1); if (nvme_completion_is_error(&status.cpl)) { nvme_printf(ctrlr, "nvme_create_io_sq failed!\n"); return (ENXIO); From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:43:41 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3375BAAD; Wed, 24 Jul 2013 22:43:41 +0000 (UTC) (envelope-from jimharris@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 205AA200C; Wed, 24 Jul 2013 22:43:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMhe6r037297; Wed, 24 Jul 2013 22:43:40 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMheBd037294; Wed, 24 Jul 2013 22:43:40 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201307242243.r6OMheBd037294@svn.freebsd.org> From: Jim Harris Date: Wed, 24 Jul 2013 22:43:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253628 - stable/9/sbin/nvmecontrol X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:43:41 -0000 Author: jimharris Date: Wed Jul 24 22:43:40 2013 New Revision: 253628 URL: http://svnweb.freebsd.org/changeset/base/253628 Log: MFC r253459: Use _PATH_DEV (from paths.h) for the "/dev/" string, rather than hard-coding it. Approved by: re (kib) Sponsored by: Intel Modified: stable/9/sbin/nvmecontrol/devlist.c stable/9/sbin/nvmecontrol/nvmecontrol.c Directory Properties: stable/9/sbin/nvmecontrol/ (props changed) Modified: stable/9/sbin/nvmecontrol/devlist.c ============================================================================== --- stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:42:00 2013 (r253627) +++ stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:43:40 2013 (r253628) @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -82,7 +83,7 @@ devlist(int argc, char *argv[]) if (ret != 0) { if (ret == EACCES) { - warnx("could not open /dev/%s\n", name); + warnx("could not open "_PATH_DEV"%s\n", name); continue; } else break; Modified: stable/9/sbin/nvmecontrol/nvmecontrol.c ============================================================================== --- stable/9/sbin/nvmecontrol/nvmecontrol.c Wed Jul 24 22:42:00 2013 (r253627) +++ stable/9/sbin/nvmecontrol/nvmecontrol.c Wed Jul 24 22:43:40 2013 (r253628) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -175,7 +176,7 @@ open_dev(const char *str, int *fd, int s return (EINVAL); } - snprintf(full_path, sizeof(full_path), "/dev/%s", str); + snprintf(full_path, sizeof(full_path), _PATH_DEV"%s", str); *fd = open(full_path, O_RDWR); if (*fd < 0) { if (show_error) From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:44:47 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8F57CBDF; Wed, 24 Jul 2013 22:44:47 +0000 (UTC) (envelope-from jimharris@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7A59D2015; Wed, 24 Jul 2013 22:44:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMilPg037660; Wed, 24 Jul 2013 22:44:47 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMilED037659; Wed, 24 Jul 2013 22:44:47 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201307242244.r6OMilED037659@svn.freebsd.org> From: Jim Harris Date: Wed, 24 Jul 2013 22:44:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253629 - stable/9/sys/dev/nvd X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:44:47 -0000 Author: jimharris Date: Wed Jul 24 22:44:46 2013 New Revision: 253629 URL: http://svnweb.freebsd.org/changeset/base/253629 Log: MFC r253473: Do not call disk_create() until we have completed all initialization of our internal disk structure. Approved by: re (kib) Sponsored by: Intel Modified: stable/9/sys/dev/nvd/nvd.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/nvd/nvd.c ============================================================================== --- stable/9/sys/dev/nvd/nvd.c Wed Jul 24 22:43:40 2013 (r253628) +++ stable/9/sys/dev/nvd/nvd.c Wed Jul 24 22:44:46 2013 (r253629) @@ -318,8 +318,6 @@ nvd_new_disk(struct nvme_namespace *ns, min(sizeof(disk->d_descr), NVME_MODEL_NUMBER_LENGTH)); #endif - disk_create(disk, DISK_VERSION); - ndisk->ns = ns; ndisk->disk = disk; ndisk->cur_depth = 0; @@ -335,6 +333,8 @@ nvd_new_disk(struct nvme_namespace *ns, TAILQ_INSERT_TAIL(&disk_head, ndisk, global_tailq); TAILQ_INSERT_TAIL(&ctrlr->disk_head, ndisk, ctrlr_tailq); + disk_create(disk, DISK_VERSION); + return (NULL); } From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:46:28 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 52071D42; Wed, 24 Jul 2013 22:46:28 +0000 (UTC) (envelope-from jimharris@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2E819202A; Wed, 24 Jul 2013 22:46:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMkSYD038123; Wed, 24 Jul 2013 22:46:28 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMkRLt038120; Wed, 24 Jul 2013 22:46:27 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201307242246.r6OMkRLt038120@svn.freebsd.org> From: Jim Harris Date: Wed, 24 Jul 2013 22:46:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253630 - in stable/9: sbin/nvmecontrol sys/dev/nvme X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:46:28 -0000 Author: jimharris Date: Wed Jul 24 22:46:27 2013 New Revision: 253630 URL: http://svnweb.freebsd.org/changeset/base/253630 Log: MFC r253474: Fix nvme(4) and nvd(4) to support non 512-byte sector sizes. Recent testing with QEMU that has variable sector size support for NVMe uncovered some of these issues. Chatham prototype boards supported only 512 byte sectors. Approved by: re (kib) Sponsored by: Intel Modified: stable/9/sbin/nvmecontrol/devlist.c stable/9/sys/dev/nvme/nvme_ns.c stable/9/sys/dev/nvme/nvme_ns_cmd.c Directory Properties: stable/9/sbin/nvmecontrol/ (props changed) stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sbin/nvmecontrol/devlist.c ============================================================================== --- stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:44:46 2013 (r253629) +++ stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:46:27 2013 (r253630) @@ -53,7 +53,7 @@ static inline uint32_t ns_get_sector_size(struct nvme_namespace_data *nsdata) { - return (1 << nsdata->lbaf[0].lbads); + return (1 << nsdata->lbaf[nsdata->flbas.format].lbads); } void Modified: stable/9/sys/dev/nvme/nvme_ns.c ============================================================================== --- stable/9/sys/dev/nvme/nvme_ns.c Wed Jul 24 22:44:46 2013 (r253629) +++ stable/9/sys/dev/nvme/nvme_ns.c Wed Jul 24 22:46:27 2013 (r253630) @@ -155,7 +155,7 @@ nvme_ns_get_max_io_xfer_size(struct nvme uint32_t nvme_ns_get_sector_size(struct nvme_namespace *ns) { - return (1 << ns->data.lbaf[0].lbads); + return (1 << ns->data.lbaf[ns->data.flbas.format].lbads); } uint64_t @@ -310,6 +310,16 @@ nvme_ns_construct(struct nvme_namespace } #endif + /* + * Note: format is a 0-based value, so > is appropriate here, + * not >=. + */ + if (ns->data.flbas.format > ns->data.nlbaf) { + printf("lba format %d exceeds number supported (%d)\n", + ns->data.flbas.format, ns->data.nlbaf+1); + return (1); + } + if (ctrlr->cdata.oncs.dsm) ns->flags |= NVME_NS_DEALLOCATE_SUPPORTED; Modified: stable/9/sys/dev/nvme/nvme_ns_cmd.c ============================================================================== --- stable/9/sys/dev/nvme/nvme_ns_cmd.c Wed Jul 24 22:44:46 2013 (r253629) +++ stable/9/sys/dev/nvme/nvme_ns_cmd.c Wed Jul 24 22:46:27 2013 (r253630) @@ -36,7 +36,8 @@ nvme_ns_cmd_read(struct nvme_namespace * struct nvme_request *req; struct nvme_command *cmd; - req = nvme_allocate_request_vaddr(payload, lba_count*512, cb_fn, cb_arg); + req = nvme_allocate_request_vaddr(payload, + lba_count*nvme_ns_get_sector_size(ns), cb_fn, cb_arg); if (req == NULL) return (ENOMEM); @@ -89,8 +90,8 @@ nvme_ns_cmd_write(struct nvme_namespace struct nvme_request *req; struct nvme_command *cmd; - req = nvme_allocate_request_vaddr(payload, lba_count*512, cb_fn, - cb_arg); + req = nvme_allocate_request_vaddr(payload, + lba_count*nvme_ns_get_sector_size(ns), cb_fn, cb_arg); if (req == NULL) return (ENOMEM); From owner-svn-src-stable@FreeBSD.ORG Wed Jul 24 22:48:32 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6DE19E92; Wed, 24 Jul 2013 22:48:32 +0000 (UTC) (envelope-from jimharris@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 57600203E; Wed, 24 Jul 2013 22:48:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6OMmWPQ038433; Wed, 24 Jul 2013 22:48:32 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6OMmUnh038422; Wed, 24 Jul 2013 22:48:30 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201307242248.r6OMmUnh038422@svn.freebsd.org> From: Jim Harris Date: Wed, 24 Jul 2013 22:48:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253631 - in stable/9: sbin/nvmecontrol sys/conf sys/dev/nvd sys/dev/nvme sys/modules/nvme X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 22:48:32 -0000 Author: jimharris Date: Wed Jul 24 22:48:29 2013 New Revision: 253631 URL: http://svnweb.freebsd.org/changeset/base/253631 Log: MFC r253476: Add message when nvd disks are attached and detached. As part of this commit, add an nvme_strvis() function which borrows heavily from cam_strvis(). This will allow stripping of leading/trailing whitespace and also handle unprintable characters in model/serial numbers. This function goes into a new nvme_util.c file which is used by both the driver and nvmecontrol. Approved by: re (kib) Sponsored by: Intel Added: stable/9/sys/dev/nvme/nvme_util.c - copied unchanged from r253476, head/sys/dev/nvme/nvme_util.c Modified: stable/9/sbin/nvmecontrol/Makefile stable/9/sbin/nvmecontrol/devlist.c stable/9/sbin/nvmecontrol/identify.c stable/9/sys/conf/files.amd64 stable/9/sys/conf/files.i386 stable/9/sys/dev/nvd/nvd.c stable/9/sys/dev/nvme/nvme.c stable/9/sys/dev/nvme/nvme.h stable/9/sys/modules/nvme/Makefile Directory Properties: stable/9/sbin/nvmecontrol/ (props changed) stable/9/sys/ (props changed) stable/9/sys/conf/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/modules/ (props changed) Modified: stable/9/sbin/nvmecontrol/Makefile ============================================================================== --- stable/9/sbin/nvmecontrol/Makefile Wed Jul 24 22:46:27 2013 (r253630) +++ stable/9/sbin/nvmecontrol/Makefile Wed Jul 24 22:48:29 2013 (r253631) @@ -2,7 +2,9 @@ PROG= nvmecontrol SRCS= nvmecontrol.c devlist.c firmware.c identify.c logpage.c \ - perftest.c reset.c + perftest.c reset.c nvme_util.c MAN= nvmecontrol.8 +.PATH: ${.CURDIR}/../../sys/dev/nvme + .include Modified: stable/9/sbin/nvmecontrol/devlist.c ============================================================================== --- stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:46:27 2013 (r253630) +++ stable/9/sbin/nvmecontrol/devlist.c Wed Jul 24 22:48:29 2013 (r253631) @@ -62,6 +62,7 @@ devlist(int argc, char *argv[]) struct nvme_controller_data cdata; struct nvme_namespace_data nsdata; char name[64]; + uint8_t mn[64]; uint32_t i; int ch, ctrlr, fd, found, ret; @@ -91,7 +92,8 @@ devlist(int argc, char *argv[]) found++; read_controller_data(fd, &cdata); - printf("%6s: %.*s\n", name, NVME_MODEL_NUMBER_LENGTH, cdata.mn); + nvme_strvis(mn, cdata.mn, sizeof(mn), NVME_MODEL_NUMBER_LENGTH); + printf("%6s: %s\n", name, mn); for (i = 0; i < cdata.nn; i++) { sprintf(name, "%s%d%s%d", NVME_CTRLR_PREFIX, ctrlr, Modified: stable/9/sbin/nvmecontrol/identify.c ============================================================================== --- stable/9/sbin/nvmecontrol/identify.c Wed Jul 24 22:46:27 2013 (r253630) +++ stable/9/sbin/nvmecontrol/identify.c Wed Jul 24 22:48:29 2013 (r253631) @@ -43,16 +43,18 @@ __FBSDID("$FreeBSD$"); static void print_controller(struct nvme_controller_data *cdata) { + uint8_t str[128]; + printf("Controller Capabilities/Features\n"); printf("================================\n"); printf("Vendor ID: %04x\n", cdata->vid); printf("Subsystem Vendor ID: %04x\n", cdata->ssvid); - printf("Serial Number: %.*s\n", - NVME_SERIAL_NUMBER_LENGTH, cdata->sn); - printf("Model Number: %.*s\n", - NVME_MODEL_NUMBER_LENGTH, cdata->mn); - printf("Firmware Version: %.*s\n", - NVME_FIRMWARE_REVISION_LENGTH, cdata->fr); + nvme_strvis(str, cdata->sn, sizeof(str), NVME_SERIAL_NUMBER_LENGTH); + printf("Serial Number: %s\n", str); + nvme_strvis(str, cdata->mn, sizeof(str), NVME_MODEL_NUMBER_LENGTH); + printf("Model Number: %s\n", str); + nvme_strvis(str, cdata->fr, sizeof(str), NVME_FIRMWARE_REVISION_LENGTH); + printf("Firmware Version: %s\n", str); printf("Recommended Arb Burst: %d\n", cdata->rab); printf("IEEE OUI Identifier: %02x %02x %02x\n", cdata->ieee[0], cdata->ieee[1], cdata->ieee[2]); Modified: stable/9/sys/conf/files.amd64 ============================================================================== --- stable/9/sys/conf/files.amd64 Wed Jul 24 22:46:27 2013 (r253630) +++ stable/9/sys/conf/files.amd64 Wed Jul 24 22:48:29 2013 (r253631) @@ -233,6 +233,7 @@ dev/nvme/nvme_ns_cmd.c optional nvme dev/nvme/nvme_qpair.c optional nvme dev/nvme/nvme_sysctl.c optional nvme dev/nvme/nvme_test.c optional nvme +dev/nvme/nvme_util.c optional nvme dev/nvram/nvram.c optional nvram isa dev/random/ivy.c optional random rdrand_rng dev/random/nehemiah.c optional random padlock_rng Modified: stable/9/sys/conf/files.i386 ============================================================================== --- stable/9/sys/conf/files.i386 Wed Jul 24 22:46:27 2013 (r253630) +++ stable/9/sys/conf/files.i386 Wed Jul 24 22:48:29 2013 (r253631) @@ -241,6 +241,7 @@ dev/nvme/nvme_ns_cmd.c optional nvme dev/nvme/nvme_qpair.c optional nvme dev/nvme/nvme_sysctl.c optional nvme dev/nvme/nvme_test.c optional nvme +dev/nvme/nvme_util.c optional nvme dev/nvram/nvram.c optional nvram isa dev/pcf/pcf_isa.c optional pcf dev/random/ivy.c optional random rdrand_rng Modified: stable/9/sys/dev/nvd/nvd.c ============================================================================== --- stable/9/sys/dev/nvd/nvd.c Wed Jul 24 22:46:27 2013 (r253630) +++ stable/9/sys/dev/nvd/nvd.c Wed Jul 24 22:48:29 2013 (r253631) @@ -40,6 +40,8 @@ __FBSDID("$FreeBSD$"); #include +#define NVD_STR "nvd" + struct nvd_disk; static disk_ioctl_t nvd_ioctl; @@ -102,7 +104,7 @@ static int nvd_modevent(module_t mod, in } moduledata_t nvd_mod = { - "nvd", + NVD_STR, (modeventhand_t)nvd_modevent, 0 }; @@ -271,6 +273,7 @@ nvd_new_controller(struct nvme_controlle static void * nvd_new_disk(struct nvme_namespace *ns, void *ctrlr_arg) { + uint8_t descr[NVME_MODEL_NUMBER_LENGTH+1]; struct nvd_disk *ndisk; struct disk *disk; struct nvd_controller *ctrlr = ctrlr_arg; @@ -280,7 +283,7 @@ nvd_new_disk(struct nvme_namespace *ns, disk = disk_alloc(); disk->d_strategy = nvd_strategy; disk->d_ioctl = nvd_ioctl; - disk->d_name = "nvd"; + disk->d_name = NVD_STR; disk->d_drv1 = ndisk; disk->d_maxsize = nvme_ns_get_max_io_xfer_size(ns); @@ -310,12 +313,14 @@ nvd_new_disk(struct nvme_namespace *ns, * d_ident and d_descr are both far bigger than the length of either * the serial or model number strings. */ - strlcpy(disk->d_ident, nvme_ns_get_serial_number(ns), - min(sizeof(disk->d_ident), NVME_SERIAL_NUMBER_LENGTH)); + nvme_strvis(disk->d_ident, nvme_ns_get_serial_number(ns), + sizeof(disk->d_ident), NVME_SERIAL_NUMBER_LENGTH); + + nvme_strvis(descr, nvme_ns_get_model_number(ns), sizeof(descr), + NVME_MODEL_NUMBER_LENGTH); #if __FreeBSD_version >= 900034 - strlcpy(disk->d_descr, nvme_ns_get_model_number(ns), - min(sizeof(disk->d_descr), NVME_MODEL_NUMBER_LENGTH)); + strlcpy(disk->d_descr, descr, sizeof(descr)); #endif ndisk->ns = ns; @@ -335,15 +340,27 @@ nvd_new_disk(struct nvme_namespace *ns, disk_create(disk, DISK_VERSION); + printf(NVD_STR"%u: <%s> NVMe namespace\n", disk->d_unit, descr); + printf(NVD_STR"%u: %juMB (%ju %u byte sectors)\n", disk->d_unit, + (uintmax_t)disk->d_mediasize / (1024*1024), + (uintmax_t)disk->d_mediasize / disk->d_sectorsize, + disk->d_sectorsize); + return (NULL); } static void destroy_geom_disk(struct nvd_disk *ndisk) { - struct bio *bp; + struct bio *bp; + struct disk *disk; + uint32_t unit; + int cnt = 0; + disk = ndisk->disk; + unit = disk->d_unit; taskqueue_free(ndisk->tq); + disk_destroy(ndisk->disk); mtx_lock(&ndisk->bioqlock); @@ -354,9 +371,13 @@ destroy_geom_disk(struct nvd_disk *ndisk bp->bio_error = EIO; bp->bio_flags |= BIO_ERROR; bp->bio_resid = bp->bio_bcount; - + cnt++; biodone(bp); } + + printf(NVD_STR"%u: lost device - %d outstanding\n", unit, cnt); + printf(NVD_STR"%u: removing device entry\n", unit); + mtx_unlock(&ndisk->bioqlock); mtx_destroy(&ndisk->bioqlock); Modified: stable/9/sys/dev/nvme/nvme.c ============================================================================== --- stable/9/sys/dev/nvme/nvme.c Wed Jul 24 22:46:27 2013 (r253630) +++ stable/9/sys/dev/nvme/nvme.c Wed Jul 24 22:48:29 2013 (r253631) @@ -383,4 +383,3 @@ nvme_completion_poll_cb(void *arg, const wmb(); status->done = TRUE; } - Modified: stable/9/sys/dev/nvme/nvme.h ============================================================================== --- stable/9/sys/dev/nvme/nvme.h Wed Jul 24 22:46:27 2013 (r253630) +++ stable/9/sys/dev/nvme/nvme.h Wed Jul 24 22:48:29 2013 (r253631) @@ -404,10 +404,10 @@ struct nvme_controller_data { uint16_t ssvid; /** serial number */ - int8_t sn[NVME_SERIAL_NUMBER_LENGTH]; + uint8_t sn[NVME_SERIAL_NUMBER_LENGTH]; /** model number */ - int8_t mn[NVME_MODEL_NUMBER_LENGTH]; + uint8_t mn[NVME_MODEL_NUMBER_LENGTH]; /** firmware revision */ uint8_t fr[NVME_FIRMWARE_REVISION_LENGTH]; @@ -786,6 +786,8 @@ struct nvme_pt_command { #define nvme_completion_is_error(cpl) \ ((cpl)->status.sc != 0 || (cpl)->status.sct != 0) +void nvme_strvis(uint8_t *dst, const uint8_t *src, int dstlen, int srclen); + #ifdef _KERNEL struct bio; Copied: stable/9/sys/dev/nvme/nvme_util.c (from r253476, head/sys/dev/nvme/nvme_util.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/sys/dev/nvme/nvme_util.c Wed Jul 24 22:48:29 2013 (r253631, copy of r253476, head/sys/dev/nvme/nvme_util.c) @@ -0,0 +1,61 @@ +/*- + * Copyright (C) 2013 Intel Corporation + * Copyright (C) 1997 Justin T. Gibbs + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +void +nvme_strvis(uint8_t *dst, const uint8_t *src, int dstlen, int srclen) +{ + uint8_t *cur_pos; + + /* Trim leading/trailing spaces, nulls. */ + while (srclen > 0 && src[0] == ' ') + src++, srclen--; + while (srclen > 0 + && (src[srclen - 1] == ' ' || src[srclen - 1] == '\0')) + srclen--; + + while (srclen > 0 && dstlen > 1) { + cur_pos = dst; + + /* Show '?' for non-printable characters. */ + if (*src < 0x20 || *src >= 0x7F) + *cur_pos++ = '?'; + else + *cur_pos++ = *src; + src++; + srclen--; + dstlen -= cur_pos - dst; + dst = cur_pos; + } + *dst = '\0'; +} + Modified: stable/9/sys/modules/nvme/Makefile ============================================================================== --- stable/9/sys/modules/nvme/Makefile Wed Jul 24 22:46:27 2013 (r253630) +++ stable/9/sys/modules/nvme/Makefile Wed Jul 24 22:48:29 2013 (r253631) @@ -12,6 +12,7 @@ SRCS = nvme.c \ nvme_qpair.c \ nvme_sysctl.c \ nvme_test.c \ + nvme_util.c \ \ bus_if.h \ device_if.h \ From owner-svn-src-stable@FreeBSD.ORG Thu Jul 25 02:43:06 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 24650FC5; Thu, 25 Jul 2013 02:43:06 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EC26B26EC; Thu, 25 Jul 2013 02:43:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6P2h56c029681; Thu, 25 Jul 2013 02:43:05 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6P2h5ua029680; Thu, 25 Jul 2013 02:43:05 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201307250243.r6P2h5ua029680@svn.freebsd.org> From: Glen Barber Date: Thu, 25 Jul 2013 02:43:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253632 - stable/9/release X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jul 2013 02:43:06 -0000 Author: gjb Date: Thu Jul 25 02:43:05 2013 New Revision: 253632 URL: http://svnweb.freebsd.org/changeset/base/253632 Log: MFC r253513, r253542: r253513: Create memstick images with the '.img' filename extension. r253542: For consistency with previous releases, name the cdrom install cd 'disc1.iso'. Approved by: kib (mentor) Approved by: re (marius) Modified: stable/9/release/Makefile Directory Properties: stable/9/release/ (props changed) Modified: stable/9/release/Makefile ============================================================================== --- stable/9/release/Makefile Wed Jul 24 22:48:29 2013 (r253631) +++ stable/9/release/Makefile Thu Jul 25 02:43:05 2013 (r253632) @@ -3,8 +3,8 @@ # Makefile for building releases and release media. # # User-driven targets: -# cdrom: Builds release CD-ROM media (release.iso) -# memstick: Builds memory stick image (memstick) +# cdrom: Builds release CD-ROM media (disc1.iso) +# memstick: Builds memory stick image (memstick.img) # ftp: Sets up FTP distribution area (ftp) # release: Build all media and FTP distribution area # install: Copies all release media into ${DESTDIR} @@ -70,11 +70,11 @@ RELEASE_TARGETS= ftp IMAGES= .if exists(${.CURDIR}/${TARGET}/mkisoimages.sh) RELEASE_TARGETS+= cdrom -IMAGES+= release.iso bootonly.iso +IMAGES+= disc1.iso bootonly.iso .endif .if exists(${.CURDIR}/${TARGET}/make-memstick.sh) -RELEASE_TARGETS+= memstick -IMAGES+= memstick +RELEASE_TARGETS+= memstick.img +IMAGES+= memstick.img .endif .include @@ -165,7 +165,8 @@ release/cdrom.inf: system echo "CD_VERSION = ${REVISION}-${BRANCH}" > ${.TARGET} echo "CD_VOLUME = 1" >> ${.TARGET} -release.iso: system release/cdrom.inf +release.iso: disc1.iso +disc1.iso: system release/cdrom.inf sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${.TARGET} release bootonly/cdrom.inf: bootonly @@ -175,14 +176,15 @@ bootonly/cdrom.inf: bootonly bootonly.iso: bootonly bootonly/cdrom.inf sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${.TARGET} bootonly -memstick: system +memstick: memstick.img +memstick.img: system sh ${.CURDIR}/${TARGET}/make-memstick.sh release ${.TARGET} packagesystem: base.txz kernel.txz ${EXTRA_PACKAGES} sh ${.CURDIR}/scripts/make-manifest.sh *.txz > MANIFEST touch ${.TARGET} -cdrom: release.iso bootonly.iso +cdrom: disc1.iso bootonly.iso ftp: packagesystem rm -rf ftp mkdir -p ftp @@ -199,7 +201,7 @@ clean: rm -f *.txz MANIFEST rm -f system rm -rf release bootonly - rm -f release.iso bootonly.iso memstick + rm -f disc1.iso bootonly.iso memstick.img install: .if defined(DESTDIR) && !empty(DESTDIR) From owner-svn-src-stable@FreeBSD.ORG Thu Jul 25 02:48:02 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0A7FE220; Thu, 25 Jul 2013 02:48:02 +0000 (UTC) (envelope-from cperciva@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D253E2727; Thu, 25 Jul 2013 02:48:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6P2m1js030330; Thu, 25 Jul 2013 02:48:01 GMT (envelope-from cperciva@svn.freebsd.org) Received: (from cperciva@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6P2m1lf030329; Thu, 25 Jul 2013 02:48:01 GMT (envelope-from cperciva@svn.freebsd.org) Message-Id: <201307250248.r6P2m1lf030329@svn.freebsd.org> From: Colin Percival Date: Thu, 25 Jul 2013 02:48:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253633 - stable/9/contrib/openbsm/m4 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jul 2013 02:48:02 -0000 Author: cperciva Date: Thu Jul 25 02:48:01 2013 New Revision: 253633 URL: http://svnweb.freebsd.org/changeset/base/253633 Log: MFC r253541: Remove weirdly-named autofoo file. This is not needed for the (FreeBSD) build, and freebsd-update chokes on it. Approved by: re (delphij) Deleted: stable/9/contrib/openbsm/m4/lt~obsolete.m4 Modified: Directory Properties: stable/9/contrib/openbsm/ (props changed) From owner-svn-src-stable@FreeBSD.ORG Thu Jul 25 08:05:26 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0EAE7687; Thu, 25 Jul 2013 08:05:26 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D581B23E9; Thu, 25 Jul 2013 08:05:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6P85P0G031086; Thu, 25 Jul 2013 08:05:25 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6P85PZn031085; Thu, 25 Jul 2013 08:05:25 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201307250805.r6P85PZn031085@svn.freebsd.org> From: Andriy Gapon Date: Thu, 25 Jul 2013 08:05:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253642 - stable/9/sys/dev/acpica X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jul 2013 08:05:26 -0000 Author: avg Date: Thu Jul 25 08:05:25 2013 New Revision: 253642 URL: http://svnweb.freebsd.org/changeset/base/253642 Log: protect acpi_battery_ioctl with Giant This is a direct commit to stable/9. There is a bug in the ACPICA version 20110527 that is used in stable/9. The bug can lead to unprotected reference counting on ACPI objects and eventually to a crash or a memory corruption. The bug has been fixed upstream and imported to head as of ACPICA version 20130328. Unfortunately, ACPICA version in stable has not been updated, so merging all past ACPICA versions or cherry-picking parts of 20130328 would be a big change with a risk of potential regressions. During debugging it was determined that the most probable vector for the bug was through concurrent calls to ACPI battery sysctls and ioctls. The sysctls are already guarded by Giant (not MPSAFE), but ioctls could execute in parallel to a sysctl call and to each other. All the calls go through acpi_battery_ioctl function, which makes the actual calls into ACPICA and those are the calls that lack necessary protection. Thus preventing concurrency in acpi_battery_ioctl should prevent the conditions that triggered the ACPICA bug. Some additional details can be found in this thread: http://thread.gmane.org/gmane.os.freebsd.devel.acpi/7707/focus=7774 Tested by: kron24@gmail.com, David Demelier Approved by: re (kib) Modified: stable/9/sys/dev/acpica/acpi_battery.c Modified: stable/9/sys/dev/acpica/acpi_battery.c ============================================================================== --- stable/9/sys/dev/acpica/acpi_battery.c Thu Jul 25 08:03:03 2013 (r253641) +++ stable/9/sys/dev/acpica/acpi_battery.c Thu Jul 25 08:05:25 2013 (r253642) @@ -360,6 +360,18 @@ acpi_battery_ioctl(u_long cmd, caddr_t a int error, unit; device_t dev; + + /* + * Giant is acquired to work around a reference counting bug in ACPICA + * versions prior to 20130328. If not for that bug this function could + * be executed concurrently without any problems. + * The bug is in acpi_BatteryIsPresent -> AcpiGetObjectInfo call tree, + * where AcpiUtExecute_HID, AcpiUtExecute_UID, etc are executed without + * protection of any ACPICA lock and may concurrently call + * AcpiUtRemoveReference on a battery object. + */ + mtx_lock(&Giant); + /* For commands that use the ioctl_arg struct, validate it first. */ error = ENXIO; unit = 0; @@ -417,6 +429,7 @@ acpi_battery_ioctl(u_long cmd, caddr_t a error = EINVAL; } + mtx_unlock(&Giant); return (error); } From owner-svn-src-stable@FreeBSD.ORG Fri Jul 26 06:23:07 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F1B90217; Fri, 26 Jul 2013 06:23:06 +0000 (UTC) (envelope-from yongari@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DE41A2705; Fri, 26 Jul 2013 06:23:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6Q6N6Vj009473; Fri, 26 Jul 2013 06:23:06 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6Q6N6d2009472; Fri, 26 Jul 2013 06:23:06 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201307260623.r6Q6N6d2009472@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 26 Jul 2013 06:23:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253663 - stable/9/sys/dev/ae X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jul 2013 06:23:07 -0000 Author: yongari Date: Fri Jul 26 06:23:06 2013 New Revision: 253663 URL: http://svnweb.freebsd.org/changeset/base/253663 Log: MFC r253404: o TxD ring requires 8 bytes alignment to work so change alignment constraint to 8. Previously it may have triggered watchdog timeouts. o Check whether interrupt is ours or not. o Enable interrupts before attemping to transmit queued packets. This will slightly improve TX performance. o No need to clear IFF_DRV_OACTIVE in a loop. AE_FLAG_TXAVAIL is used to know whether there are enough available TxD ring space. o Added missing bus_dmamap_sync(9) in ae_rx_intr() and rearranged code to avoid unncessary register access. o Make sure to clear TxD, TxS, RxD rings in driver initialization. Otherwise some data in these rings could be interpreted as 'updated' which in turn will advance internally maintained pointers and can trigger watchdog timeouts. PR: kern/180382 Approved by: re (hrs) Modified: stable/9/sys/dev/ae/if_ae.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/ae/if_ae.c ============================================================================== --- stable/9/sys/dev/ae/if_ae.c Fri Jul 26 02:00:06 2013 (r253662) +++ stable/9/sys/dev/ae/if_ae.c Fri Jul 26 06:23:06 2013 (r253663) @@ -585,6 +585,9 @@ ae_init_locked(ae_softc_t *sc) val = eaddr[0] << 8 | eaddr[1]; AE_WRITE_4(sc, AE_EADDR1_REG, val); + bzero(sc->rxd_base_dma, AE_RXD_COUNT_DEFAULT * 1536 + 120); + bzero(sc->txd_base, AE_TXD_BUFSIZE_DEFAULT); + bzero(sc->txs_base, AE_TXS_COUNT_DEFAULT * 4); /* * Set ring buffers base addresses. */ @@ -1115,7 +1118,7 @@ ae_alloc_rings(ae_softc_t *sc) * Create DMA tag for TxD. */ error = bus_dma_tag_create(sc->dma_parent_tag, - 4, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, + 8, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, AE_TXD_BUFSIZE_DEFAULT, 1, AE_TXD_BUFSIZE_DEFAULT, 0, NULL, NULL, &sc->dma_txd_tag); @@ -1128,7 +1131,7 @@ ae_alloc_rings(ae_softc_t *sc) * Create DMA tag for TxS. */ error = bus_dma_tag_create(sc->dma_parent_tag, - 4, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, + 8, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, AE_TXS_COUNT_DEFAULT * 4, 1, AE_TXS_COUNT_DEFAULT * 4, 0, NULL, NULL, &sc->dma_txs_tag); @@ -1761,6 +1764,10 @@ ae_int_task(void *arg, int pending) ifp = sc->ifp; val = AE_READ_4(sc, AE_ISR_REG); /* Read interrupt status. */ + if (val == 0) { + AE_UNLOCK(sc); + return; + } /* * Clear interrupts and disable them. @@ -1783,12 +1790,16 @@ ae_int_task(void *arg, int pending) ae_tx_intr(sc); if ((val & AE_ISR_RX_EVENT) != 0) ae_rx_intr(sc); - } + /* + * Re-enable interrupts. + */ + AE_WRITE_4(sc, AE_ISR_REG, 0); - /* - * Re-enable interrupts. - */ - AE_WRITE_4(sc, AE_ISR_REG, 0); + if ((sc->flags & AE_FLAG_TXAVAIL) != 0) { + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + ae_start_locked(ifp); + } + } AE_UNLOCK(sc); } @@ -1849,10 +1860,10 @@ ae_tx_intr(ae_softc_t *sc) ifp->if_oerrors++; sc->tx_inproc--; - - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; } + if ((sc->flags & AE_FLAG_TXAVAIL) != 0) + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; if (sc->tx_inproc < 0) { if_printf(ifp, "Received stray Tx interrupt(s).\n"); sc->tx_inproc = 0; @@ -1860,11 +1871,6 @@ ae_tx_intr(ae_softc_t *sc) if (sc->tx_inproc == 0) sc->wd_timer = 0; /* Unarm watchdog. */ - - if ((sc->flags & AE_FLAG_TXAVAIL) != 0) { - if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) - ae_start_locked(ifp); - } /* * Syncronize DMA buffers. @@ -1923,7 +1929,7 @@ ae_rx_intr(ae_softc_t *sc) ae_rxd_t *rxd; struct ifnet *ifp; uint16_t flags; - int error; + int count, error; KASSERT(sc != NULL, ("[ae, %d]: sc is NULL!", __LINE__)); @@ -1937,7 +1943,7 @@ ae_rx_intr(ae_softc_t *sc) bus_dmamap_sync(sc->dma_rxd_tag, sc->dma_rxd_map, BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); - for (;;) { + for (count = 0;; count++) { rxd = (ae_rxd_t *)(sc->rxd_base + sc->rxd_cur); flags = le16toh(rxd->flags); if ((flags & AE_RXD_UPDATE) == 0) @@ -1964,10 +1970,14 @@ ae_rx_intr(ae_softc_t *sc) } } - /* - * Update Rx index. - */ - AE_WRITE_2(sc, AE_MB_RXD_IDX_REG, sc->rxd_cur); + if (count > 0) { + bus_dmamap_sync(sc->dma_rxd_tag, sc->dma_rxd_map, + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); + /* + * Update Rx index. + */ + AE_WRITE_2(sc, AE_MB_RXD_IDX_REG, sc->rxd_cur); + } } static void From owner-svn-src-stable@FreeBSD.ORG Fri Jul 26 06:23:58 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 357F434C; Fri, 26 Jul 2013 06:23:58 +0000 (UTC) (envelope-from yongari@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 217942710; Fri, 26 Jul 2013 06:23:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6Q6NvgN009600; Fri, 26 Jul 2013 06:23:57 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6Q6NvTU009599; Fri, 26 Jul 2013 06:23:57 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201307260623.r6Q6NvTU009599@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 26 Jul 2013 06:23:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r253664 - stable/8/sys/dev/ae X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jul 2013 06:23:58 -0000 Author: yongari Date: Fri Jul 26 06:23:57 2013 New Revision: 253664 URL: http://svnweb.freebsd.org/changeset/base/253664 Log: MFC r253404: o TxD ring requires 8 bytes alignment to work so change alignment constraint to 8. Previously it may have triggered watchdog timeouts. o Check whether interrupt is ours or not. o Enable interrupts before attemping to transmit queued packets. This will slightly improve TX performance. o No need to clear IFF_DRV_OACTIVE in a loop. AE_FLAG_TXAVAIL is used to know whether there are enough available TxD ring space. o Added missing bus_dmamap_sync(9) in ae_rx_intr() and rearranged code to avoid unncessary register access. o Make sure to clear TxD, TxS, RxD rings in driver initialization. Otherwise some data in these rings could be interpreted as 'updated' which in turn will advance internally maintained pointers and can trigger watchdog timeouts. PR: kern/180382 Modified: stable/8/sys/dev/ae/if_ae.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/dev/ (props changed) stable/8/sys/dev/ae/ (props changed) Modified: stable/8/sys/dev/ae/if_ae.c ============================================================================== --- stable/8/sys/dev/ae/if_ae.c Fri Jul 26 06:23:06 2013 (r253663) +++ stable/8/sys/dev/ae/if_ae.c Fri Jul 26 06:23:57 2013 (r253664) @@ -586,6 +586,9 @@ ae_init_locked(ae_softc_t *sc) val = eaddr[0] << 8 | eaddr[1]; AE_WRITE_4(sc, AE_EADDR1_REG, val); + bzero(sc->rxd_base_dma, AE_RXD_COUNT_DEFAULT * 1536 + 120); + bzero(sc->txd_base, AE_TXD_BUFSIZE_DEFAULT); + bzero(sc->txs_base, AE_TXS_COUNT_DEFAULT * 4); /* * Set ring buffers base addresses. */ @@ -1116,7 +1119,7 @@ ae_alloc_rings(ae_softc_t *sc) * Create DMA tag for TxD. */ error = bus_dma_tag_create(sc->dma_parent_tag, - 4, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, + 8, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, AE_TXD_BUFSIZE_DEFAULT, 1, AE_TXD_BUFSIZE_DEFAULT, 0, NULL, NULL, &sc->dma_txd_tag); @@ -1129,7 +1132,7 @@ ae_alloc_rings(ae_softc_t *sc) * Create DMA tag for TxS. */ error = bus_dma_tag_create(sc->dma_parent_tag, - 4, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, + 8, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, AE_TXS_COUNT_DEFAULT * 4, 1, AE_TXS_COUNT_DEFAULT * 4, 0, NULL, NULL, &sc->dma_txs_tag); @@ -1762,6 +1765,10 @@ ae_int_task(void *arg, int pending) ifp = sc->ifp; val = AE_READ_4(sc, AE_ISR_REG); /* Read interrupt status. */ + if (val == 0) { + AE_UNLOCK(sc); + return; + } /* * Clear interrupts and disable them. @@ -1784,12 +1791,16 @@ ae_int_task(void *arg, int pending) ae_tx_intr(sc); if ((val & AE_ISR_RX_EVENT) != 0) ae_rx_intr(sc); - } + /* + * Re-enable interrupts. + */ + AE_WRITE_4(sc, AE_ISR_REG, 0); - /* - * Re-enable interrupts. - */ - AE_WRITE_4(sc, AE_ISR_REG, 0); + if ((sc->flags & AE_FLAG_TXAVAIL) != 0) { + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + ae_start_locked(ifp); + } + } AE_UNLOCK(sc); } @@ -1850,10 +1861,10 @@ ae_tx_intr(ae_softc_t *sc) ifp->if_oerrors++; sc->tx_inproc--; - - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; } + if ((sc->flags & AE_FLAG_TXAVAIL) != 0) + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; if (sc->tx_inproc < 0) { if_printf(ifp, "Received stray Tx interrupt(s).\n"); sc->tx_inproc = 0; @@ -1861,11 +1872,6 @@ ae_tx_intr(ae_softc_t *sc) if (sc->tx_inproc == 0) sc->wd_timer = 0; /* Unarm watchdog. */ - - if ((sc->flags & AE_FLAG_TXAVAIL) != 0) { - if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) - ae_start_locked(ifp); - } /* * Syncronize DMA buffers. @@ -1924,7 +1930,7 @@ ae_rx_intr(ae_softc_t *sc) ae_rxd_t *rxd; struct ifnet *ifp; uint16_t flags; - int error; + int count, error; KASSERT(sc != NULL, ("[ae, %d]: sc is NULL!", __LINE__)); @@ -1938,7 +1944,7 @@ ae_rx_intr(ae_softc_t *sc) bus_dmamap_sync(sc->dma_rxd_tag, sc->dma_rxd_map, BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); - for (;;) { + for (count = 0;; count++) { rxd = (ae_rxd_t *)(sc->rxd_base + sc->rxd_cur); flags = le16toh(rxd->flags); if ((flags & AE_RXD_UPDATE) == 0) @@ -1965,10 +1971,14 @@ ae_rx_intr(ae_softc_t *sc) } } - /* - * Update Rx index. - */ - AE_WRITE_2(sc, AE_MB_RXD_IDX_REG, sc->rxd_cur); + if (count > 0) { + bus_dmamap_sync(sc->dma_rxd_tag, sc->dma_rxd_map, + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); + /* + * Update Rx index. + */ + AE_WRITE_2(sc, AE_MB_RXD_IDX_REG, sc->rxd_cur); + } } static void From owner-svn-src-stable@FreeBSD.ORG Fri Jul 26 06:24:34 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1B5C1557; Fri, 26 Jul 2013 06:24:34 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E21092717; Fri, 26 Jul 2013 06:24:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6Q6OXLU009832; Fri, 26 Jul 2013 06:24:33 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6Q6OX6Z009831; Fri, 26 Jul 2013 06:24:33 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201307260624.r6Q6OX6Z009831@svn.freebsd.org> From: Hans Petter Selasky Date: Fri, 26 Jul 2013 06:24:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253665 - stable/9/sys/dev/usb/controller X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jul 2013 06:24:34 -0000 Author: hselasky Date: Fri Jul 26 06:24:33 2013 New Revision: 253665 URL: http://svnweb.freebsd.org/changeset/base/253665 Log: MFC r253532: Fix an XHCI regression: The Block Event Interrupts, BEI, feature does not work like expected with the Renesas XHCI chipsets. Revert feature. While at it correct the TD SIZE computation in case of Zero Length Packet, ZLP, in the end of a multi frame USB transfer. PR: usb/180726 Approved by: re, hrs Modified: stable/9/sys/dev/usb/controller/xhci.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/9/sys/dev/usb/controller/xhci.c Fri Jul 26 06:23:57 2013 (r253664) +++ stable/9/sys/dev/usb/controller/xhci.c Fri Jul 26 06:24:33 2013 (r253665) @@ -1654,7 +1654,6 @@ restart: /* fill out buffer pointers */ if (average == 0) { - npkt = 0; memset(&buf_res, 0, sizeof(buf_res)); } else { usbd_get_page(temp->pc, temp->offset + @@ -1669,15 +1668,17 @@ restart: buf_res.length = XHCI_TD_PAGE_SIZE; npkt_off += buf_res.length; - - /* setup npkt */ - npkt = (len_old - npkt_off + temp->max_packet_size - 1) / - temp->max_packet_size; - - if (npkt > 31) - npkt = 31; } + /* setup npkt */ + npkt = (len_old - npkt_off + temp->max_packet_size - 1) / + temp->max_packet_size; + + if (npkt == 0) + npkt = 1; + else if (npkt > 31) + npkt = 31; + /* fill out TRB's */ td->td_trb[x].qwTrb0 = htole64((uint64_t)buf_res.physaddr); @@ -1691,9 +1692,7 @@ restart: switch (temp->trb_type) { case XHCI_TRB_TYPE_ISOCH: - /* BEI: Interrupts are inhibited until EOT */ dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT | - XHCI_TRB_3_BEI_BIT | XHCI_TRB_3_TBC_SET(temp->tbc) | XHCI_TRB_3_TLBPC_SET(temp->tlbpc); if (td != td_first) { @@ -1728,10 +1727,8 @@ restart: dword |= XHCI_TRB_3_DIR_IN; break; default: /* XHCI_TRB_TYPE_NORMAL */ - /* BEI: Interrupts are inhibited until EOT */ dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT | XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_NORMAL) | - XHCI_TRB_3_BEI_BIT | XHCI_TRB_3_TBC_SET(temp->tbc) | XHCI_TRB_3_TLBPC_SET(temp->tlbpc); if (temp->direction == UE_DIR_IN) @@ -1810,6 +1807,7 @@ restart: usb_pc_cpu_flush(td_first->page_cache); } + /* clear TD SIZE to zero, hence this is the last TRB */ /* remove chain bit because this is the last TRB in the chain */ td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(15)); td->td_trb[td->ntrb - 1].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); From owner-svn-src-stable@FreeBSD.ORG Fri Jul 26 06:28:42 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 947957B4; Fri, 26 Jul 2013 06:28:42 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 676702742; Fri, 26 Jul 2013 06:28:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6Q6SgnD010421; Fri, 26 Jul 2013 06:28:42 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6Q6SgkY010420; Fri, 26 Jul 2013 06:28:42 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201307260628.r6Q6SgkY010420@svn.freebsd.org> From: Hans Petter Selasky Date: Fri, 26 Jul 2013 06:28:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r253666 - stable/8/sys/dev/usb/controller X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jul 2013 06:28:42 -0000 Author: hselasky Date: Fri Jul 26 06:28:41 2013 New Revision: 253666 URL: http://svnweb.freebsd.org/changeset/base/253666 Log: MFC r253532: Fix an XHCI regression: The Block Event Interrupts, BEI, feature does not work like expected with the Renesas XHCI chipsets. Revert feature. While at it correct the TD SIZE computation in case of Zero Length Packet, ZLP, in the end of a multi frame USB transfer. PR: usb/180726 Modified: stable/8/sys/dev/usb/controller/xhci.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/dev/ (props changed) stable/8/sys/dev/usb/ (props changed) Modified: stable/8/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/8/sys/dev/usb/controller/xhci.c Fri Jul 26 06:24:33 2013 (r253665) +++ stable/8/sys/dev/usb/controller/xhci.c Fri Jul 26 06:28:41 2013 (r253666) @@ -1654,7 +1654,6 @@ restart: /* fill out buffer pointers */ if (average == 0) { - npkt = 0; memset(&buf_res, 0, sizeof(buf_res)); } else { usbd_get_page(temp->pc, temp->offset + @@ -1669,15 +1668,17 @@ restart: buf_res.length = XHCI_TD_PAGE_SIZE; npkt_off += buf_res.length; - - /* setup npkt */ - npkt = (len_old - npkt_off + temp->max_packet_size - 1) / - temp->max_packet_size; - - if (npkt > 31) - npkt = 31; } + /* setup npkt */ + npkt = (len_old - npkt_off + temp->max_packet_size - 1) / + temp->max_packet_size; + + if (npkt == 0) + npkt = 1; + else if (npkt > 31) + npkt = 31; + /* fill out TRB's */ td->td_trb[x].qwTrb0 = htole64((uint64_t)buf_res.physaddr); @@ -1691,9 +1692,7 @@ restart: switch (temp->trb_type) { case XHCI_TRB_TYPE_ISOCH: - /* BEI: Interrupts are inhibited until EOT */ dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT | - XHCI_TRB_3_BEI_BIT | XHCI_TRB_3_TBC_SET(temp->tbc) | XHCI_TRB_3_TLBPC_SET(temp->tlbpc); if (td != td_first) { @@ -1728,10 +1727,8 @@ restart: dword |= XHCI_TRB_3_DIR_IN; break; default: /* XHCI_TRB_TYPE_NORMAL */ - /* BEI: Interrupts are inhibited until EOT */ dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT | XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_NORMAL) | - XHCI_TRB_3_BEI_BIT | XHCI_TRB_3_TBC_SET(temp->tbc) | XHCI_TRB_3_TLBPC_SET(temp->tlbpc); if (temp->direction == UE_DIR_IN) @@ -1810,6 +1807,7 @@ restart: usb_pc_cpu_flush(td_first->page_cache); } + /* clear TD SIZE to zero, hence this is the last TRB */ /* remove chain bit because this is the last TRB in the chain */ td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(15)); td->td_trb[td->ntrb - 1].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); From owner-svn-src-stable@FreeBSD.ORG Fri Jul 26 18:27:14 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5501C353; Fri, 26 Jul 2013 18:27:14 +0000 (UTC) (envelope-from hrs@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 32EA42A39; Fri, 26 Jul 2013 18:27:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6QIREIF050331; Fri, 26 Jul 2013 18:27:14 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6QIRDaQ050324; Fri, 26 Jul 2013 18:27:13 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201307261827.r6QIRDaQ050324@svn.freebsd.org> From: Hiroki Sato Date: Fri, 26 Jul 2013 18:27:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253683 - in stable/9: etc lib/libc/gen sys/net X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jul 2013 18:27:14 -0000 Author: hrs Date: Fri Jul 26 18:27:13 2013 New Revision: 253683 URL: http://svnweb.freebsd.org/changeset/base/253683 Log: MFC 253262, 253318, 243184, 253444, 253505, 253520: - Add a leaf node CTL_NET.PF_ROUTE.0.AF.NET_RT_DUMP.0.FIB. This returns routing table with the specified FIB number, not td->td_proc->p_fibnum. - Add check_namevarlist() to check if ${name}_var is reserved in rc.subr or not. - Fix a bug in ipv6_prefix_IF. It did not work with the 64-bit prefix notation like 2001:db8:1:1. - Use eui64 flag in ifconfig(8) instead of network6_getladdr()[*] for interface indentifier part. - Fix address range specification with ifconfig(8) options such as: * inet 192.0.2.1-10 netmask 255.255.255.0 (inet range spec + ifconfig options) * inet6 2001:db8:1::1-f prefixlen 60 (inet6 range spec + ifconfig options) If prefixlen or netmask option is specified with CIDR notation at the same time, the option is used. - Do not set ND6_IFF_ACCEPT_RTADV on if_bridge(4) interfaces when ipv6_enable=yes. Approved by: re (marius) Modified: stable/9/etc/network.subr stable/9/etc/rc.subr stable/9/lib/libc/gen/sysctl.3 stable/9/sys/net/rtsock.c Directory Properties: stable/9/etc/ (props changed) stable/9/lib/libc/ (props changed) stable/9/sys/ (props changed) Modified: stable/9/etc/network.subr ============================================================================== --- stable/9/etc/network.subr Fri Jul 26 18:20:52 2013 (r253682) +++ stable/9/etc/network.subr Fri Jul 26 18:27:13 2013 (r253683) @@ -113,9 +113,18 @@ ifconfig_up() # backward compatibility: $ipv6_enable case $ipv6_enable in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) - if ! checkyesno ipv6_gateway_enable; then - _ipv6_opts="${_ipv6_opts} accept_rtadv" - fi + case $1 in + bridge[0-9]*) + # No accept_rtadv by default on if_bridge(4) + # to avoid a conflict with the member + # interfaces. + ;; + *) + if ! checkyesno ipv6_gateway_enable; then + _ipv6_opts="${_ipv6_opts} accept_rtadv" + fi + ;; + esac ;; esac @@ -550,9 +559,18 @@ ipv6_autoconfif() [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) if checkyesno ipv6_gateway_enable; then return 1 - else - return 0 fi + case $1 in + bridge[0-9]*) + # No accept_rtadv by default on if_bridge(4) + # to avoid a conflict with the member + # interfaces. + return 1 + ;; + *) + return 0 + ;; + esac ;; esac @@ -721,9 +739,14 @@ ifalias() # ifalias_expand_addr() { + local _af _action + + _af=$1 + _action=$2 + shift 2 - afexists $1 || return - ifalias_expand_addr_$1 $2 $3 + afexists $_af || return + ifalias_expand_addr_$_af $_action $* } # ifalias_expand_addr_inet action addr @@ -731,19 +754,34 @@ ifalias_expand_addr() # ifalias_expand_addr_inet() { - local _action _arg _cidr _cidr_addr + local _action _arg _cidr _cidr_addr _exargs local _ipaddr _plen _range _iphead _iptail _iplow _iphigh _ipcount local _retstr _c _action=$1 _arg=$2 + shift 2 + _exargs=$* _retstr= - case $_action:$_arg in - *:*--*) return ;; # invalid - tmp:*) echo $_arg && return ;; # already expanded - tmp:*-*) _action="alias" ;; # to be expanded - *:*-*) ;; # to be expanded - *:*) echo inet $_arg && return ;; # already expanded + case $_action:$_arg:$_exargs in + *:*--*) return ;; # invalid + tmp:*[0-9]-[0-9]*:*) # to be expanded + _action="alias" + ;; + *:*[0-9]-[0-9]*:*) # to be expanded + ;; + tmp:*:*netmask*) # already expanded w/ netmask option + echo ${_arg%/[0-9]*} $_exargs && return + ;; + tmp:*:*) # already expanded w/o netmask option + echo $_arg $_exargs && return + ;; + *:*:*netmask*) # already expanded w/ netmask option + echo inet ${_arg%/[0-9]*} $_exargs && return + ;; + *:*:*) # already expanded w/o netmask option + echo inet $_arg $_exargs && return + ;; esac for _cidr in $_arg; do @@ -796,7 +834,7 @@ ifalias_expand_addr_inet() done for _c in $_retstr; do - ifalias_expand_addr_inet $_action $_c + ifalias_expand_addr_inet $_action $_c $_exargs done } @@ -805,20 +843,35 @@ ifalias_expand_addr_inet() # ifalias_expand_addr_inet6() { - local _action _arg _cidr _cidr_addr + local _action _arg _cidr _cidr_addr _exargs local _ipaddr _plen _ipleft _ipright _iplow _iphigh _ipcount local _ipv4part local _retstr _c _action=$1 _arg=$2 + shift 2 + _exargs=$* _retstr= - case $_action:$_arg in - *:*--*) return ;; # invalid - tmp:*) echo $_arg && return ;; - tmp:*-*) _action="alias" ;; - *:*-*) ;; - *:*) echo inet6 $_arg && return ;; + case $_action:$_arg:$_exargs in + *:*--*:*) return ;; # invalid + tmp:*[0-9a-zA-Z]-[0-9a-zA-Z]*:*)# to be expanded + _action="alias" + ;; + *:*[0-9a-zA-Z]-[0-9a-zA-Z]*:*) # to be expanded + ;; + tmp:*:*prefixlen*) # already expanded w/ prefixlen option + echo ${_arg%/[0-9]*} $_exargs && return + ;; + tmp:*:*) # already expanded w/o prefixlen option + echo $_arg $_exargs && return + ;; + *:*:*prefixlen*) # already expanded w/ prefixlen option + echo inet6 ${_arg%/[0-9]*} $_exargs && return + ;; + *:*:*) # already expanded w/o prefixlen option + echo inet6 $_arg $_exargs && return + ;; esac for _cidr in $_arg; do @@ -872,7 +925,7 @@ ifalias_expand_addr_inet6() fi for _c in $_retstr; do - ifalias_expand_addr_inet6 $_action $_c + ifalias_expand_addr_inet6 $_action $_c $_exargs done else # v4mapped/v4compat should handle as an IPv4 alias @@ -888,7 +941,7 @@ ifalias_expand_addr_inet6() _retstr=`ifalias_expand_addr_inet \ tmp ${_ipv4part}${_plen:+/}${_plen}` for _c in $_retstr; do - ifalias_expand_addr_inet $_action $_c + ifalias_expand_addr_inet $_action $_c $_exargs done fi done @@ -1052,16 +1105,12 @@ ifalias_af_common() # ipv6_prefix_hostid_addr_common() { - local _if _action prefix laddr hostid j address + local _if _action prefix j _if=$1 _action=$2 prefix=`get_if_var ${_if} ipv6_prefix_IF` if [ -n "${prefix}" ]; then - laddr=`network6_getladdr ${_if}` - hostid=${laddr#fe80::} - hostid=${hostid%\%*} - for j in ${prefix}; do # The default prefixlen is 64. plen=${j#*/} @@ -1071,18 +1120,10 @@ ipv6_prefix_hostid_addr_common() esac # Normalize the last part by removing ":" - j=${j%:*} + j=${j%::*} j=${j%:} - OIFS=$IFS; IFS=":"; set -- $j; nj=$#; IFS=$OIFS - OIFS=$IFS; IFS=":"; set -- $hostid; nh=$#; IFS=$OIFS - if [ $(($nj + $nh)) -eq 8 ]; then - address=$j\:$hostid - else - address=$j\::$hostid - fi - - ${IFCONFIG_CMD} ${_if} inet6 ${address} \ - prefixlen $plen ${_action} + ${IFCONFIG_CMD} ${_if} inet6 $j:: \ + prefixlen $plen eui64 ${_action} # if I am a router, add subnet router # anycast address (RFC 2373). Modified: stable/9/etc/rc.subr ============================================================================== --- stable/9/etc/rc.subr Fri Jul 26 18:20:52 2013 (r253682) +++ stable/9/etc/rc.subr Fri Jul 26 18:27:13 2013 (r253683) @@ -1774,6 +1774,23 @@ check_kern_features() fi } +# check_namevarlist var +# Return "0" if ${name}_var is reserved in rc.subr. + +_rc_namevarlist="program chroot chdir flags fib nice user group groups" +check_namevarlist() +{ + local _v + + for _v in $_rc_namevarlist; do + case $1 in + $_v) return 0 ;; + esac + done + + return 1 +} + # _echoonce var msg mode # mode=0: Echo $msg if ${$var} is empty. # After doing echo, a string is set to ${$var}. Modified: stable/9/lib/libc/gen/sysctl.3 ============================================================================== --- stable/9/lib/libc/gen/sysctl.3 Fri Jul 26 18:20:52 2013 (r253682) +++ stable/9/lib/libc/gen/sysctl.3 Fri Jul 26 18:27:13 2013 (r253683) @@ -28,7 +28,7 @@ .\" @(#)sysctl.3 8.4 (Berkeley) 5/9/95 .\" $FreeBSD$ .\" -.Dd February 11, 2012 +.Dd May 17, 2013 .Dt SYSCTL 3 .Os .Sh NAME @@ -547,14 +547,14 @@ The length of each message is contained The third level name is a protocol number, which is currently always 0. The fourth level name is an address family, which may be set to 0 to select all address families. -The fifth and sixth level names are as follows: -.Bl -column "Fifth level nameXXXXXX" "Sixth level is:XXX" -offset indent -.It Sy "Fifth level name Sixth level is:" -.It "NET_RT_FLAGS rtflags" -.It "NET_RT_DUMP None" -.It "NET_RT_IFLIST 0 or if_index" -.It "NET_RT_IFMALIST 0 or if_index" -.It "NET_RT_IFLISTL 0 or if_index" +The fifth, sixth, and seventh level names are as follows: +.Bl -column -offset indent "Fifth level Sixth level" "Seventh level" +.It Sy "Fifth level Sixth level" Ta Sy "Seventh level" +.It "NET_RT_FLAGS rtflags" Ta "None" +.It "NET_RT_DUMP None" Ta "None or fib number" +.It "NET_RT_IFLIST 0 or if_index" Ta None +.It "NET_RT_IFMALIST 0 or if_index" Ta None +.It "NET_RT_IFLISTL 0 or if_index" Ta None .El .Pp The Modified: stable/9/sys/net/rtsock.c ============================================================================== --- stable/9/sys/net/rtsock.c Fri Jul 26 18:20:52 2013 (r253682) +++ stable/9/sys/net/rtsock.c Fri Jul 26 18:27:13 2013 (r253683) @@ -1811,6 +1811,7 @@ sysctl_rtsock(SYSCTL_HANDLER_ARGS) u_int namelen = arg2; struct radix_node_head *rnh = NULL; /* silence compiler. */ int i, lim, error = EINVAL; + int fib = 0; u_char af; struct walkarg w; @@ -1818,7 +1819,17 @@ sysctl_rtsock(SYSCTL_HANDLER_ARGS) namelen--; if (req->newptr) return (EPERM); - if (namelen != 3) + if (name[1] == NET_RT_DUMP) { + if (namelen == 3) + fib = req->td->td_proc->p_fibnum; + else if (namelen == 4) + fib = (name[3] == -1) ? + req->td->td_proc->p_fibnum : name[3]; + else + return ((namelen < 3) ? EISDIR : ENOTDIR); + if (fib < 0 || fib >= rt_numfibs) + return (EINVAL); + } else if (namelen != 3) return ((namelen < 3) ? EISDIR : ENOTDIR); af = name[0]; if (af > AF_MAX) @@ -1857,7 +1868,7 @@ sysctl_rtsock(SYSCTL_HANDLER_ARGS) * take care of routing entries */ for (error = 0; error == 0 && i <= lim; i++) { - rnh = rt_tables_get_rnh(req->td->td_proc->p_fibnum, i); + rnh = rt_tables_get_rnh(fib, i); if (rnh != NULL) { RADIX_NODE_HEAD_RLOCK(rnh); error = rnh->rnh_walktree(rnh, From owner-svn-src-stable@FreeBSD.ORG Fri Jul 26 22:43:09 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B590C76C; Fri, 26 Jul 2013 22:43:09 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A22C8248C; Fri, 26 Jul 2013 22:43:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6QMh9fP064534; Fri, 26 Jul 2013 22:43:09 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6QMh91C064533; Fri, 26 Jul 2013 22:43:09 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201307262243.r6QMh91C064533@svn.freebsd.org> From: Xin LI Date: Fri, 26 Jul 2013 22:43:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253695 - stable/9/contrib/bind9/lib/dns/rdata/generic X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jul 2013 22:43:09 -0000 Author: delphij Date: Fri Jul 26 22:43:09 2013 New Revision: 253695 URL: http://svnweb.freebsd.org/changeset/base/253695 Log: Fix Denial of Service vulnerability in named(8). [13:07] Security: CVE-2013-4854 Security: FreeBSD-SA-13:07.bind Approved by: re (rodrigc) Modified: stable/9/contrib/bind9/lib/dns/rdata/generic/keydata_65533.c Modified: stable/9/contrib/bind9/lib/dns/rdata/generic/keydata_65533.c ============================================================================== --- stable/9/contrib/bind9/lib/dns/rdata/generic/keydata_65533.c Fri Jul 26 22:40:29 2013 (r253694) +++ stable/9/contrib/bind9/lib/dns/rdata/generic/keydata_65533.c Fri Jul 26 22:43:09 2013 (r253695) @@ -176,7 +176,7 @@ fromwire_keydata(ARGS_FROMWIRE) { UNUSED(options); isc_buffer_activeregion(source, &sr); - if (sr.length < 4) + if (sr.length < 16) return (ISC_R_UNEXPECTEDEND); isc_buffer_forward(source, sr.length); From owner-svn-src-stable@FreeBSD.ORG Fri Jul 26 22:53:18 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 82A4793B; Fri, 26 Jul 2013 22:53:18 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6EBE424CD; Fri, 26 Jul 2013 22:53:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6QMrICV071297; Fri, 26 Jul 2013 22:53:18 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6QMrIZw071296; Fri, 26 Jul 2013 22:53:18 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201307262253.r6QMrIZw071296@svn.freebsd.org> From: Xin LI Date: Fri, 26 Jul 2013 22:53:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r253696 - stable/8/contrib/bind9/lib/dns/rdata/generic X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jul 2013 22:53:18 -0000 Author: delphij Date: Fri Jul 26 22:53:17 2013 New Revision: 253696 URL: http://svnweb.freebsd.org/changeset/base/253696 Log: Fix Denial of Service vulnerability in named(8). [13:07] Security: CVE-2013-4854 Security: FreeBSD-SA-13:07.bind Approved by: so Modified: stable/8/contrib/bind9/lib/dns/rdata/generic/keydata_65533.c Modified: stable/8/contrib/bind9/lib/dns/rdata/generic/keydata_65533.c ============================================================================== --- stable/8/contrib/bind9/lib/dns/rdata/generic/keydata_65533.c Fri Jul 26 22:43:09 2013 (r253695) +++ stable/8/contrib/bind9/lib/dns/rdata/generic/keydata_65533.c Fri Jul 26 22:53:17 2013 (r253696) @@ -176,7 +176,7 @@ fromwire_keydata(ARGS_FROMWIRE) { UNUSED(options); isc_buffer_activeregion(source, &sr); - if (sr.length < 4) + if (sr.length < 16) return (ISC_R_UNEXPECTEDEND); isc_buffer_forward(source, sr.length); From owner-svn-src-stable@FreeBSD.ORG Fri Jul 26 23:41:23 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A0F2FCFD; Fri, 26 Jul 2013 23:41: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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8DD162678; Fri, 26 Jul 2013 23:41:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6QNfNdp003489; Fri, 26 Jul 2013 23:41:23 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6QNfNx8003487; Fri, 26 Jul 2013 23:41:23 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201307262341.r6QNfNx8003487@svn.freebsd.org> From: Glen Barber Date: Fri, 26 Jul 2013 23:41:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253698 - in stable/9: release sys/conf X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jul 2013 23:41:23 -0000 Author: gjb Date: Fri Jul 26 23:41:22 2013 New Revision: 253698 URL: http://svnweb.freebsd.org/changeset/base/253698 Log: Update stable/9 branch to -BETA2 status. Approved by: re (implicit) Approved by: kib (mentor, implicit) Modified: stable/9/release/Makefile.sysinstall stable/9/sys/conf/newvers.sh Modified: stable/9/release/Makefile.sysinstall ============================================================================== --- stable/9/release/Makefile.sysinstall Fri Jul 26 23:22:05 2013 (r253697) +++ stable/9/release/Makefile.sysinstall Fri Jul 26 23:41:22 2013 (r253698) @@ -24,7 +24,7 @@ # Set these, release builder! # # Fixed version: -#BUILDNAME=9.2-BETA1 +#BUILDNAME=9.2-BETA2 # # Automatic SNAP versioning: DATE != date +%Y%m%d Modified: stable/9/sys/conf/newvers.sh ============================================================================== --- stable/9/sys/conf/newvers.sh Fri Jul 26 23:22:05 2013 (r253697) +++ stable/9/sys/conf/newvers.sh Fri Jul 26 23:41:22 2013 (r253698) @@ -32,7 +32,7 @@ TYPE="FreeBSD" REVISION="9.2" -BRANCH="BETA1" +BRANCH="BETA2" if [ "X${BRANCH_OVERRIDE}" != "X" ]; then BRANCH=${BRANCH_OVERRIDE} fi From owner-svn-src-stable@FreeBSD.ORG Sat Jul 27 05:19:47 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3EDB3165; Sat, 27 Jul 2013 05:19:47 +0000 (UTC) (envelope-from trtrmitya@gmail.com) Received: from mail-la0-x233.google.com (mail-la0-x233.google.com [IPv6:2a00:1450:4010:c03::233]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EB6C1282B; Sat, 27 Jul 2013 05:19:45 +0000 (UTC) Received: by mail-la0-f51.google.com with SMTP id fp13so2803423lab.10 for ; Fri, 26 Jul 2013 22:19:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=VObeR1MO99SCDJncqt3/dNHwhKoxV0gx2rKZo3B15KE=; b=qSgq2YbBSSPgJpj0C0bP656p5ivoVeWGDGq8nrG1fREU8bIyQo37AzhzPIIVbdJTz9 OTSWj3PEBgp/uBvMSTQ/kwOlwq9C+jkRfgopPrgJ17PY80/hZOCQ8qKuQtcQNIKq0q6o U2iUihq5+HCKZ4lZ9n+KPm9ptoBU6u/TUUZwxFIog8UbMC/wyB07TL1zzbqYh7DPgb+j I1hka/u6MoPJLtj9/GkBcV1nMS0/Fevm3IJQUP47+0ridGkBtHcXz/lcKbvD/6dqZ9wx 1bZLulWubiKlOXCVvbMNRwuUmTnE8roDcdIe+qj37OE9HN+vl2IkmEr86Dj+l1hOe4uc 7gCA== X-Received: by 10.152.27.169 with SMTP id u9mr21950078lag.8.1374902383840; Fri, 26 Jul 2013 22:19:43 -0700 (PDT) Received: from [10.0.1.20] (ip-95-221-84-138.bb.netbynet.ru. [95.221.84.138]) by mx.google.com with ESMTPSA id et10sm2064309lbc.6.2013.07.26.22.19.42 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 26 Jul 2013 22:19:43 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: svn commit: r252788 - stable/9/sys/netinet From: Dmitry Sivachenko In-Reply-To: <201307051450.r65Eo79t063625@svn.freebsd.org> Date: Sat, 27 Jul 2013 09:19:41 +0400 Content-Transfer-Encoding: 7bit Message-Id: <7AED9DDF-FA10-44FD-ADD6-22DFD8B211F4@gmail.com> References: <201307051450.r65Eo79t063625@svn.freebsd.org> To: Andre Oppermann X-Mailer: Apple Mail (2.1508) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-9@freebsd.org X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Jul 2013 05:19:47 -0000 On 05.07.2013, at 18:50, Andre Oppermann wrote: > Author: andre > Date: Fri Jul 5 14:50:06 2013 > New Revision: 252788 > URL: http://svnweb.freebsd.org/changeset/base/252788 > > Log: > MFC r226447: > > Remove the ss_fltsz and ss_fltsz_local sysctl's which have > long been superseded by the RFC3390 initial CWND sizing. > Hello, please consider to remove them from tuning(7) too. From owner-svn-src-stable@FreeBSD.ORG Sat Jul 27 05:32:28 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2D9F3314; Sat, 27 Jul 2013 05:32:28 +0000 (UTC) (envelope-from rodrigc@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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 19A2C2868; Sat, 27 Jul 2013 05:32:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6R5WRBp045119; Sat, 27 Jul 2013 05:32:27 GMT (envelope-from rodrigc@svn.freebsd.org) Received: (from rodrigc@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6R5WRnu045112; Sat, 27 Jul 2013 05:32:27 GMT (envelope-from rodrigc@svn.freebsd.org) Message-Id: <201307270532.r6R5WRnu045112@svn.freebsd.org> From: Craig Rodrigues Date: Sat, 27 Jul 2013 05:32:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253700 - in stable/9/sys: kern net netgraph netgraph/bluetooth/socket X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Jul 2013 05:32:28 -0000 Author: rodrigc Date: Sat Jul 27 05:32:26 2013 New Revision: 253700 URL: http://svnweb.freebsd.org/changeset/base/253700 Log: Approved by: re (hrs, marius) MFC 253346: PR: 168520 170096 Submitted by: adrian, zec Fix multiple kernel panics when VIMAGE is enabled in the kernel. These fixes are based on patches submitted by Adrian Chadd and Marko Zec. (1) Set curthread->td_vnet to vnet0 in device_probe_and_attach() just before calling device_attach(). This fixes multiple VIMAGE related kernel panics when trying to attach Bluetooth or USB Ethernet devices because curthread->td_vnet is NULL. (2) Set curthread->td_vnet in if_detach(). This fixes kernel panics when detaching networking interfaces, especially USB Ethernet devices. (3) Use VNET_DOMAIN_SET() in ng_btsocket.c (4) In ng_unref_node() set curthread->td_vnet. This fixes kernel panics when detaching Netgraph nodes. Modified: stable/9/sys/kern/subr_bus.c stable/9/sys/net/if.c stable/9/sys/netgraph/bluetooth/socket/ng_btsocket.c stable/9/sys/netgraph/ng_base.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/net/ (props changed) Modified: stable/9/sys/kern/subr_bus.c ============================================================================== --- stable/9/sys/kern/subr_bus.c Sat Jul 27 00:53:07 2013 (r253699) +++ stable/9/sys/kern/subr_bus.c Sat Jul 27 05:32:26 2013 (r253700) @@ -53,6 +53,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #include #include @@ -2727,7 +2729,11 @@ device_probe_and_attach(device_t dev) return (0); else if (error != 0) return (error); - return (device_attach(dev)); + + CURVNET_SET_QUIET(vnet0); + error = device_attach(dev); + CURVNET_RESTORE(); + return error; } /** Modified: stable/9/sys/net/if.c ============================================================================== --- stable/9/sys/net/if.c Sat Jul 27 00:53:07 2013 (r253699) +++ stable/9/sys/net/if.c Sat Jul 27 05:32:26 2013 (r253700) @@ -509,6 +509,7 @@ if_free_type(struct ifnet *ifp, u_char t ifp->if_flags |= IFF_DYING; /* XXX: Locking */ + CURVNET_SET_QUIET(ifp->if_vnet); IFNET_WLOCK(); KASSERT(ifp == ifnet_byindex_locked(ifp->if_index), ("%s: freeing unallocated ifnet", ifp->if_xname)); @@ -516,9 +517,9 @@ if_free_type(struct ifnet *ifp, u_char t ifindex_free_locked(ifp->if_index); IFNET_WUNLOCK(); - if (!refcount_release(&ifp->if_refcount)) - return; - if_free_internal(ifp); + if (refcount_release(&ifp->if_refcount)) + if_free_internal(ifp); + CURVNET_RESTORE(); } /* @@ -830,7 +831,9 @@ void if_detach(struct ifnet *ifp) { + CURVNET_SET_QUIET(ifp->if_vnet); if_detach_internal(ifp, 0); + CURVNET_RESTORE(); } static void Modified: stable/9/sys/netgraph/bluetooth/socket/ng_btsocket.c ============================================================================== --- stable/9/sys/netgraph/bluetooth/socket/ng_btsocket.c Sat Jul 27 00:53:07 2013 (r253699) +++ stable/9/sys/netgraph/bluetooth/socket/ng_btsocket.c Sat Jul 27 05:32:26 2013 (r253700) @@ -46,6 +46,8 @@ #include #include +#include + #include #include #include @@ -285,4 +287,4 @@ ng_btsocket_modevent(module_t mod, int e return (error); } /* ng_btsocket_modevent */ -DOMAIN_SET(ng_btsocket_); +VNET_DOMAIN_SET(ng_btsocket_); Modified: stable/9/sys/netgraph/ng_base.c ============================================================================== --- stable/9/sys/netgraph/ng_base.c Sat Jul 27 00:53:07 2013 (r253699) +++ stable/9/sys/netgraph/ng_base.c Sat Jul 27 05:32:26 2013 (r253700) @@ -789,6 +789,8 @@ ng_unref_node(node_p node) if (node == &ng_deadnode) return; + CURVNET_SET(node->nd_vnet); + if (refcount_release(&node->nd_refs)) { /* we were the last */ node->nd_type->refs--; /* XXX maybe should get types lock? */ @@ -807,6 +809,7 @@ ng_unref_node(node_p node) mtx_destroy(&node->nd_input_queue.q_mtx); NG_FREE_NODE(node); } + CURVNET_RESTORE(); } /************************************************************************