From owner-svn-src-all@freebsd.org Sun Jan 24 02:10:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C658BA8FCE1; Sun, 24 Jan 2016 02:10:06 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 96FE61278; Sun, 24 Jan 2016 02:10:06 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0O2A5JW046396; Sun, 24 Jan 2016 02:10:05 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0O2A5U6046395; Sun, 24 Jan 2016 02:10:05 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <201601240210.u0O2A5U6046395@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Sun, 24 Jan 2016 02:10:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294651 - stable/10/usr.sbin/bsdinstall/scripts X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 02:10:06 -0000 Author: vangyzen Date: Sun Jan 24 02:10:05 2016 New Revision: 294651 URL: https://svnweb.freebsd.org/changeset/base/294651 Log: MFC r293860 bsdinstall: Suggest the GPT+Active workaround on Dell T5810 The Dell Precision Tower 5810 fails to boot from GPT in Legacy/BIOS mode without the Active flag in the Protective MBR. Suggest the workaround during installation. Since an increasing number of Dell systems exhibit this behavior, I imagine all Dells past a certain date will do so. I would like to suggest the workaround for all Dells with a BIOS date of, say, 2014 or later, but I would need to test a variety of systems before committing such a change. Relnotes: We should probably suggest using GPT+Active on "recent" Dells. Sponsored by: Dell Inc. Modified: stable/10/usr.sbin/bsdinstall/scripts/auto Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/bsdinstall/scripts/auto ============================================================================== --- stable/10/usr.sbin/bsdinstall/scripts/auto Sun Jan 24 00:26:45 2016 (r294650) +++ stable/10/usr.sbin/bsdinstall/scripts/auto Sun Jan 24 02:10:05 2016 (r294651) @@ -190,7 +190,7 @@ if f_interactive; then ;; "Dell Inc.") case "$sys_model" in - "Latitude E7440"|"Latitude E7240") + "Latitude E7440"|"Latitude E7240"|"Precision Tower 5810") dialog_workaround "$msg_gpt_active_fix" retval=$? f_dprintf "gpt_active_fix_prompt=[%s]" "$retval" From owner-svn-src-all@freebsd.org Sun Jan 24 02:11:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA976A8FD66; Sun, 24 Jan 2016 02:11:21 +0000 (UTC) (envelope-from crodr001@gmail.com) Received: from mail-ig0-x22a.google.com (mail-ig0-x22a.google.com [IPv6:2607:f8b0:4001:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A23B3147F; Sun, 24 Jan 2016 02:11:21 +0000 (UTC) (envelope-from crodr001@gmail.com) Received: by mail-ig0-x22a.google.com with SMTP id t15so15036974igr.0; Sat, 23 Jan 2016 18:11:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=IwvZcuUZ9md9QU5kC8ZH9O65Y9b89T1iGheSRr2mQ34=; b=FwbgA5gFezwzGfTXyq8di40q6I6QHQmy8vmz9QaFLfR4gfWU6bbtsXSHQDeWVZsGux mn6YmjoN6Fr7ttEetMh32+Bf+2gE4kqCAl574HOqptgSxBNWx2kLTuTs6HEc7VMgp12B 2OY7OAL6IKajGzS3kxLhTvQEziRDI+4sCcuWk+rOR336LRMlaKor3HvItxaLogY7N29S +cclNRXyZwd4Xw+fzc9vfgpz2RU7DmAY4giEQBa9MguxvsGsVfTQcijQNm3YB5nLJtNi XXXnZN/RwoF61p0969qfVA/wddsuEjCS0a2ipHvi6t/f9Dm51E0p+OhA9f78MCIjB7Qt QWOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=IwvZcuUZ9md9QU5kC8ZH9O65Y9b89T1iGheSRr2mQ34=; b=JwoQlB5yA6Unyw2PzVS/Rjm9OLI1c+lsWL0jU6iU4q5EoLtc3SpG6d9Tho/Vpca8ky QjvkSRw/JQx5BE+dctSByEOaqtZVOSzyq+Rnj1nWJRO+6qF0oNBouo+pwtui/0jmeDfq zyHOJOP2RknHEtNo7i3HtwRkzERDSWNoB5XlZpiBnNcWD66XcjFekeGf6h7riW4hhNnb /7ayZokGb6Sq6EocDmRoSBJZZQ8XWvaPdTh83gi0K9scS9qQyKx+VMnfB0Pf4/Ps2NVE gNtSfpRokfw5rYn8yX8+URx0+q1repsjbpsNhMMBS2f5/kJY7BHZxfxWi2F3hMqFcPHD 0BBQ== X-Gm-Message-State: AG10YOSmvrw44ciOjNq3lP1MIZY3RVb/LRuizkvlU5Qs8IPkk7jX4v94fKig3Fw30JCxhR8OSvkWbmJsUJO1iA== MIME-Version: 1.0 X-Received: by 10.50.61.243 with SMTP id t19mr9959862igr.86.1453601481166; Sat, 23 Jan 2016 18:11:21 -0800 (PST) Sender: crodr001@gmail.com Received: by 10.50.152.69 with HTTP; Sat, 23 Jan 2016 18:11:21 -0800 (PST) In-Reply-To: <201601202257.u0KMvA89056089@repo.freebsd.org> References: <201601202257.u0KMvA89056089@repo.freebsd.org> Date: Sat, 23 Jan 2016 18:11:21 -0800 X-Google-Sender-Auth: lG2DeAos9gczL8NeZDj2t40Esl0 Message-ID: Subject: Re: svn commit: r294464 - in head: crypto/openssh crypto/openssh/contrib/redhat crypto/openssh/contrib/suse crypto/openssh/openbsd-compat crypto/openssh/regress crypto/openssh/regress/unittests crypto/... From: Craig Rodrigues To: =?UTF-8?Q?Dag=2DErling_Sm=C3=B8rgrav?= Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 02:11:22 -0000 On Wed, Jan 20, 2016 at 2:57 PM, Dag-Erling Sm=C3=B8rgrav wrote: > Author: des > Date: Wed Jan 20 22:57:10 2016 > New Revision: 294464 > URL: https://svnweb.freebsd.org/changeset/base/294464 > > Log: > Upgrade to OpenSSH 7.0p1. > > Modified: > head/crypto/openssh/openbsd-compat/realpath.c > clang is emitting a new warning on this file: https://jenkins.freebsd.org/job/FreeBSD_HEAD/62/warnings7Result/new/ Is it a legitimate problem which needs to be fixed upstream, or is it a non-issue? -- Craig From owner-svn-src-all@freebsd.org Sun Jan 24 02:25:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C0D2A84351; Sun, 24 Jan 2016 02:25:43 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E37921CB7; Sun, 24 Jan 2016 02:25:42 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0O2PfRI051929; Sun, 24 Jan 2016 02:25:41 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0O2PfRG051928; Sun, 24 Jan 2016 02:25:41 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201601240225.u0O2PfRG051928@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 24 Jan 2016 02:25:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294652 - head/sys/fs/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 02:25:43 -0000 Author: pfg Date: Sun Jan 24 02:25:41 2016 New Revision: 294652 URL: https://svnweb.freebsd.org/changeset/base/294652 Log: ext2: Initialize i_flag after allocation. We use i_flag to carry some flags like IN_E4INDEX which newer ext2fs variants uses internally. fsck.ext3 rightfully complains after our implementation tags non-directory inodes with INDEX_FL. Initializing i_flag during allocation removes the noise factor and quiets down fsck. Patch from: Damjan Jovanovic PR: 206530 Modified: head/sys/fs/ext2fs/ext2_alloc.c Modified: head/sys/fs/ext2fs/ext2_alloc.c ============================================================================== --- head/sys/fs/ext2fs/ext2_alloc.c Sun Jan 24 02:10:05 2016 (r294651) +++ head/sys/fs/ext2fs/ext2_alloc.c Sun Jan 24 02:25:41 2016 (r294652) @@ -393,6 +393,7 @@ ext2_valloc(struct vnode *pvp, int mode, * Linux doesn't read the old inode in when it is allocating a * new one. I will set at least i_size and i_blocks to zero. */ + ip->i_flag = 0; ip->i_size = 0; ip->i_blocks = 0; ip->i_mode = 0; From owner-svn-src-all@freebsd.org Sun Jan 24 02:41:51 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 63374A84906; Sun, 24 Jan 2016 02:41:51 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3B703131F; Sun, 24 Jan 2016 02:41:51 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0O2foh5055659; Sun, 24 Jan 2016 02:41:50 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0O2fnPW055654; Sun, 24 Jan 2016 02:41:49 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201601240241.u0O2fnPW055654@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 24 Jan 2016 02:41:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294653 - head/sys/fs/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 02:41:51 -0000 Author: pfg Date: Sun Jan 24 02:41:49 2016 New Revision: 294653 URL: https://svnweb.freebsd.org/changeset/base/294653 Log: Rename some directory index constants. Directory index was introduced in ext3. We don't always use the prefix to denote the ext2 variant they belong to but when we do we should try to be accurate. Modified: head/sys/fs/ext2fs/ext2_dinode.h head/sys/fs/ext2fs/ext2_htree.c head/sys/fs/ext2fs/ext2_inode_cnv.c head/sys/fs/ext2fs/ext2_lookup.c Modified: head/sys/fs/ext2fs/ext2_dinode.h ============================================================================== --- head/sys/fs/ext2fs/ext2_dinode.h Sun Jan 24 02:25:41 2016 (r294652) +++ head/sys/fs/ext2fs/ext2_dinode.h Sun Jan 24 02:41:49 2016 (r294653) @@ -51,7 +51,7 @@ /* * Inode flags * The system supports EXT2_IMMUTABLE, EXT2_APPEND and EXT2_NODUMP flags. - * The current implementation also uses EXT4_INDEX, EXT4_EXTENTS and + * The current implementation also uses EXT3_INDEX, EXT4_EXTENTS and * EXT4_HUGE_FILE with some restrictions, imposed the lack of write * support. */ @@ -63,7 +63,7 @@ #define EXT2_APPEND 0x00000020 /* Writes to file may only append */ #define EXT2_NODUMP 0x00000040 /* Do not dump file */ #define EXT2_NOATIME 0x00000080 /* Do not update atime */ -#define EXT4_INDEX 0x00001000 /* Hash-indexed directory */ +#define EXT3_INDEX 0x00001000 /* Hash-indexed directory */ #define EXT4_IMAGIC 0x00002000 /* AFS directory */ #define EXT4_JOURNAL_DATA 0x00004000 /* File data should be journaled */ #define EXT4_NOTAIL 0x00008000 /* File tail should not be merged */ Modified: head/sys/fs/ext2fs/ext2_htree.c ============================================================================== --- head/sys/fs/ext2fs/ext2_htree.c Sun Jan 24 02:25:41 2016 (r294652) +++ head/sys/fs/ext2fs/ext2_htree.c Sun Jan 24 02:41:49 2016 (r294653) @@ -90,7 +90,7 @@ int ext2_htree_has_idx(struct inode *ip) { if (EXT2_HAS_COMPAT_FEATURE(ip->i_e2fs, EXT2F_COMPAT_DIRHASHINDEX) && - ip->i_flag & IN_E4INDEX) + ip->i_flag & IN_E3INDEX) return (1); else return (0); @@ -653,7 +653,7 @@ ext2_htree_create_index(struct vnode *vp ((char *)ep + ep->e2d_reclen); ep->e2d_reclen = buf1 + blksize - (char *)ep; - dp->i_flag |= IN_E4INDEX; + dp->i_flag |= IN_E3INDEX; /* * Initialize index root. Modified: head/sys/fs/ext2fs/ext2_inode_cnv.c ============================================================================== --- head/sys/fs/ext2fs/ext2_inode_cnv.c Sun Jan 24 02:25:41 2016 (r294652) +++ head/sys/fs/ext2fs/ext2_inode_cnv.c Sun Jan 24 02:41:49 2016 (r294653) @@ -110,7 +110,7 @@ ext2_ei2i(struct ext2fs_dinode *ei, stru ip->i_flags |= (ei->e2di_flags & EXT2_APPEND) ? SF_APPEND : 0; ip->i_flags |= (ei->e2di_flags & EXT2_IMMUTABLE) ? SF_IMMUTABLE : 0; ip->i_flags |= (ei->e2di_flags & EXT2_NODUMP) ? UF_NODUMP : 0; - ip->i_flag |= (ei->e2di_flags & EXT4_INDEX) ? IN_E4INDEX : 0; + ip->i_flag |= (ei->e2di_flags & EXT3_INDEX) ? IN_E3INDEX : 0; ip->i_flag |= (ei->e2di_flags & EXT4_EXTENTS) ? IN_E4EXTENTS : 0; ip->i_blocks = ei->e2di_nblock; if (E2DI_HAS_HUGE_FILE(ip)) { @@ -160,7 +160,7 @@ ext2_i2ei(struct inode *ip, struct ext2f ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND: 0; ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE: 0; ei->e2di_flags |= (ip->i_flags & UF_NODUMP) ? EXT2_NODUMP: 0; - ei->e2di_flags |= (ip->i_flag & IN_E4INDEX) ? EXT4_INDEX: 0; + ei->e2di_flags |= (ip->i_flag & IN_E3INDEX) ? EXT3_INDEX: 0; ei->e2di_flags |= (ip->i_flag & IN_E4EXTENTS) ? EXT4_EXTENTS: 0; ei->e2di_nblock = ip->i_blocks & 0xffffffff; ei->e2di_nblock_high = ip->i_blocks >> 32 & 0xffff; Modified: head/sys/fs/ext2fs/ext2_lookup.c ============================================================================== --- head/sys/fs/ext2fs/ext2_lookup.c Sun Jan 24 02:25:41 2016 (r294652) +++ head/sys/fs/ext2fs/ext2_lookup.c Sun Jan 24 02:41:49 2016 (r294653) @@ -888,7 +888,7 @@ ext2_direnter(struct inode *ip, struct v if (ext2_htree_has_idx(dp)) { error = ext2_htree_add_entry(dvp, &newdir, cnp); if (error) { - dp->i_flag &= ~IN_E4INDEX; + dp->i_flag &= ~IN_E3INDEX; dp->i_flag |= IN_CHANGE | IN_UPDATE; } return (error); From owner-svn-src-all@freebsd.org Sun Jan 24 02:44:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CFCF2A849C6; Sun, 24 Jan 2016 02:44:01 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A1EA41558; Sun, 24 Jan 2016 02:44:01 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0O2i0VT057720; Sun, 24 Jan 2016 02:44:00 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0O2i0ps057719; Sun, 24 Jan 2016 02:44:00 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201601240244.u0O2i0ps057719@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 24 Jan 2016 02:44:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294654 - head/sys/fs/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 02:44:01 -0000 Author: pfg Date: Sun Jan 24 02:44:00 2016 New Revision: 294654 URL: https://svnweb.freebsd.org/changeset/base/294654 Log: Fix comment. Modified: head/sys/fs/ext2fs/ext2_dinode.h Modified: head/sys/fs/ext2fs/ext2_dinode.h ============================================================================== --- head/sys/fs/ext2fs/ext2_dinode.h Sun Jan 24 02:41:49 2016 (r294653) +++ head/sys/fs/ext2fs/ext2_dinode.h Sun Jan 24 02:44:00 2016 (r294654) @@ -52,7 +52,7 @@ * Inode flags * The system supports EXT2_IMMUTABLE, EXT2_APPEND and EXT2_NODUMP flags. * The current implementation also uses EXT3_INDEX, EXT4_EXTENTS and - * EXT4_HUGE_FILE with some restrictions, imposed the lack of write + * EXT4_HUGE_FILE with some restrictions imposed by the lack of write * support. */ #define EXT2_SECRM 0x00000001 /* Secure deletion */ From owner-svn-src-all@freebsd.org Sun Jan 24 03:26:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0CD39A8E8B3; Sun, 24 Jan 2016 03:26:04 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id C963E1BCB; Sun, 24 Jan 2016 03:26:03 +0000 (UTC) (envelope-from des@des.no) Received: from desk.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 6294D5AFE; Sun, 24 Jan 2016 03:26:01 +0000 (UTC) Received: by desk.des.no (Postfix, from userid 1001) id 25B88482D1; Sun, 24 Jan 2016 04:26:02 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Craig Rodrigues Cc: "src-committers\@freebsd.org" , "svn-src-all\@freebsd.org" , "svn-src-head\@freebsd.org" Subject: Re: svn commit: r294464 - in head: crypto/openssh crypto/openssh/contrib/redhat crypto/openssh/contrib/suse crypto/openssh/openbsd-compat crypto/openssh/regress crypto/openssh/regress/unittests crypto/... References: <201601202257.u0KMvA89056089@repo.freebsd.org> Date: Sun, 24 Jan 2016 04:26:02 +0100 In-Reply-To: (Craig Rodrigues's message of "Sat, 23 Jan 2016 18:11:21 -0800") Message-ID: <86si1nd5f9.fsf@desk.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 03:26:04 -0000 Craig Rodrigues writes: > clang is emitting a new warning on this file: > > https://jenkins.freebsd.org/job/FreeBSD_HEAD/62/warnings7Result/new/ > > Is it a legitimate problem which needs to be fixed upstream, or is it > a non-issue? The warning is technically correct, but the error is harmless since the source and destination are fixed buffers of identical size. The code was fixed upstream in October, after 7.1 was released. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@freebsd.org Sun Jan 24 04:30:31 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4EEFA8E0D8; Sun, 24 Jan 2016 04:30:31 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B693F17D2; Sun, 24 Jan 2016 04:30:31 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0O4UUk6087991; Sun, 24 Jan 2016 04:30:30 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0O4UURZ087990; Sun, 24 Jan 2016 04:30:30 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201601240430.u0O4UURZ087990@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 24 Jan 2016 04:30:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294655 - head/sys/fs/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 04:30:32 -0000 Author: pfg Date: Sun Jan 24 04:30:30 2016 New Revision: 294655 URL: https://svnweb.freebsd.org/changeset/base/294655 Log: ext2: rename some directory index constants. Missed from r294653. Pointyhat: me Modified: head/sys/fs/ext2fs/inode.h Modified: head/sys/fs/ext2fs/inode.h ============================================================================== --- head/sys/fs/ext2fs/inode.h Sun Jan 24 02:44:00 2016 (r294654) +++ head/sys/fs/ext2fs/inode.h Sun Jan 24 04:30:30 2016 (r294655) @@ -157,7 +157,7 @@ struct inode { * These are translation flags for some attributes that Ext4 * passes as inode flags but that we cannot pass directly. */ -#define IN_E4INDEX 0x010000 +#define IN_E3INDEX 0x010000 #define IN_E4EXTENTS 0x020000 #define i_devvp i_ump->um_devvp From owner-svn-src-all@freebsd.org Sun Jan 24 06:19:51 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE992A8FF35; Sun, 24 Jan 2016 06:19:51 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 97E5C1F47; Sun, 24 Jan 2016 06:19:51 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0O6JoBC019861; Sun, 24 Jan 2016 06:19:50 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0O6JoLA019853; Sun, 24 Jan 2016 06:19:50 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601240619.u0O6JoLA019853@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 24 Jan 2016 06:19:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294657 - stable/10/tools/regression/geom_mirror X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 06:19:51 -0000 Author: ngie Date: Sun Jan 24 06:19:49 2016 New Revision: 294657 URL: https://svnweb.freebsd.org/changeset/base/294657 Log: MFC r293073: - Use attach_md instead of hardcoding md(4) provider unit numbers - Implement a gmirror_test_cleanup function, which in turn calls geom_test_cleanup to clean up all md(4) providers allocated in the test run. - Remove duplicate logic in test scripts for removing md(4) providers. - Don't create files in /tmp (outside the kyua sandbox); use the current directory instead Modified: stable/10/tools/regression/geom_mirror/conf.sh stable/10/tools/regression/geom_mirror/test-1.t stable/10/tools/regression/geom_mirror/test-2.t stable/10/tools/regression/geom_mirror/test-3.t stable/10/tools/regression/geom_mirror/test-4.t stable/10/tools/regression/geom_mirror/test-5.t stable/10/tools/regression/geom_mirror/test-6.t stable/10/tools/regression/geom_mirror/test-7.t Directory Properties: stable/10/ (props changed) Modified: stable/10/tools/regression/geom_mirror/conf.sh ============================================================================== --- stable/10/tools/regression/geom_mirror/conf.sh Sun Jan 24 06:04:38 2016 (r294656) +++ stable/10/tools/regression/geom_mirror/conf.sh Sun Jan 24 06:19:49 2016 (r294657) @@ -5,4 +5,11 @@ name="$(mktemp -u mirror.XXXXXX)" class="mirror" base=`basename $0` +gmirror_test_cleanup() +{ + [ -c /dev/$class/$name ] && gmirror destroy $name + geom_test_cleanup +} +trap gmirror_test_cleanup ABRT EXIT INT TERM + . `dirname $0`/../geom_subr.sh Modified: stable/10/tools/regression/geom_mirror/test-1.t ============================================================================== --- stable/10/tools/regression/geom_mirror/test-1.t Sun Jan 24 06:04:38 2016 (r294656) +++ stable/10/tools/regression/geom_mirror/test-1.t Sun Jan 24 06:19:49 2016 (r294657) @@ -5,15 +5,11 @@ echo "1..1" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` - -mdconfig -a -t malloc -s 1M -u $us0 || exit 1 -mdconfig -a -t malloc -s 2M -u $us1 || exit 1 -mdconfig -a -t malloc -s 3M -u $us2 || exit 1 +us0=$(attach_md -t malloc -s 1M) || exit 1 +us1=$(attach_md -t malloc -s 2M) || exit 1 +us2=$(attach_md -t malloc -s 3M) || exit 1 -gmirror label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label $name /dev/$us0 /dev/$us1 /dev/$us2 || exit 1 devwait # Size of created device should be 1MB - 512b. @@ -25,10 +21,3 @@ if [ $size -eq 1048064 ]; then else echo "not ok 1" fi - -gmirror remove $name md${us0} -gmirror remove $name md${us1} -gmirror remove $name md${us2} -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 Modified: stable/10/tools/regression/geom_mirror/test-2.t ============================================================================== --- stable/10/tools/regression/geom_mirror/test-2.t Sun Jan 24 06:04:38 2016 (r294656) +++ stable/10/tools/regression/geom_mirror/test-2.t Sun Jan 24 06:19:49 2016 (r294657) @@ -6,22 +6,19 @@ echo "1..4" balance="round-robin" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=2048 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -32,28 +29,24 @@ if [ `md5 -q ${src}` != `md5 -q ${dst}` else echo "ok 1" fi -dd if=/dev/md${us0} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/${us0} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" else echo "ok 2" fi -dd if=/dev/md${us1} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/${us1} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" else echo "ok 3" fi -dd if=/dev/md${us2} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/${us2} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" else echo "ok 4" fi -gmirror remove $name md${us0} md${us1} md${us2} -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/10/tools/regression/geom_mirror/test-3.t ============================================================================== --- stable/10/tools/regression/geom_mirror/test-3.t Sun Jan 24 06:04:38 2016 (r294656) +++ stable/10/tools/regression/geom_mirror/test-3.t Sun Jan 24 06:19:49 2016 (r294657) @@ -6,22 +6,19 @@ echo "1..5" balance="round-robin" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=2048 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -33,7 +30,7 @@ else echo "ok 1" fi -gmirror remove $name md${us0} +gmirror remove $name ${us0} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" @@ -41,7 +38,7 @@ else echo "ok 2" fi -gmirror remove $name md${us1} +gmirror remove $name ${us1} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" @@ -49,7 +46,7 @@ else echo "ok 3" fi -gmirror remove $name md${us2} +gmirror remove $name ${us2} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" @@ -64,7 +61,4 @@ else echo "ok 5" fi -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/10/tools/regression/geom_mirror/test-4.t ============================================================================== --- stable/10/tools/regression/geom_mirror/test-4.t Sun Jan 24 06:04:38 2016 (r294656) +++ stable/10/tools/regression/geom_mirror/test-4.t Sun Jan 24 06:19:49 2016 (r294657) @@ -6,22 +6,19 @@ echo "1..5" balance="load" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=2048 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -33,7 +30,7 @@ else echo "ok 1" fi -gmirror remove $name md${us0} +gmirror remove $name ${us0} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" @@ -41,7 +38,7 @@ else echo "ok 2" fi -gmirror remove $name md${us1} +gmirror remove $name ${us1} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" @@ -49,7 +46,7 @@ else echo "ok 3" fi -gmirror remove $name md${us2} +gmirror remove $name ${us2} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" @@ -57,6 +54,8 @@ else echo "ok 4" fi +gmirror destroy $name + # mirror/${name} should be removed. if [ -c /dev/${name} ]; then echo "not ok 5" @@ -64,7 +63,4 @@ else echo "ok 5" fi -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/10/tools/regression/geom_mirror/test-5.t ============================================================================== --- stable/10/tools/regression/geom_mirror/test-5.t Sun Jan 24 06:04:38 2016 (r294656) +++ stable/10/tools/regression/geom_mirror/test-5.t Sun Jan 24 06:19:49 2016 (r294657) @@ -6,22 +6,19 @@ echo "1..5" balance="split" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=8192 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance -s `expr $ddbs / 2` $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance -s `expr $ddbs / 2` $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -33,7 +30,7 @@ else echo "ok 1" fi -gmirror remove $name md${us0} +gmirror remove $name ${us0} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" @@ -41,7 +38,7 @@ else echo "ok 2" fi -gmirror remove $name md${us1} +gmirror remove $name ${us1} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" @@ -49,7 +46,7 @@ else echo "ok 3" fi -gmirror remove $name md${us2} +gmirror remove $name ${us2} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" @@ -64,7 +61,4 @@ else echo "ok 5" fi -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/10/tools/regression/geom_mirror/test-6.t ============================================================================== --- stable/10/tools/regression/geom_mirror/test-6.t Sun Jan 24 06:04:38 2016 (r294656) +++ stable/10/tools/regression/geom_mirror/test-6.t Sun Jan 24 06:19:49 2016 (r294657) @@ -6,26 +6,23 @@ echo "1..2" balance="split" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=8192 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance -s `expr $ddbs / 2` $name /dev/md${us0} /dev/md${us1} || exit 1 +gmirror label -b $balance -s `expr $ddbs / 2` $name /dev/${us0} /dev/${us1} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -dd if=/dev/zero of=/dev/md${us2} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/zero of=/dev/${us2} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then @@ -35,18 +32,14 @@ else fi # Connect disk to the mirror. -gmirror insert ${name} md${us2} +gmirror insert ${name} ${us2} # Wait for synchronization. sleep 1 -dd if=/dev/md${us2} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/${us2} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" else echo "ok 2" fi -gmirror remove $name md${us0} md${us1} md${us2} -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/10/tools/regression/geom_mirror/test-7.t ============================================================================== --- stable/10/tools/regression/geom_mirror/test-7.t Sun Jan 24 06:04:38 2016 (r294656) +++ stable/10/tools/regression/geom_mirror/test-7.t Sun Jan 24 06:19:49 2016 (r294657) @@ -6,22 +6,19 @@ echo "1..5" balance="prefer" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=2048 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -33,7 +30,7 @@ else echo "ok 1" fi -gmirror remove $name md${us0} +gmirror remove $name ${us0} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" @@ -41,7 +38,7 @@ else echo "ok 2" fi -gmirror remove $name md${us1} +gmirror remove $name ${us1} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" @@ -49,7 +46,7 @@ else echo "ok 3" fi -gmirror remove $name md${us2} +gmirror remove $name ${us2} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" @@ -64,7 +61,4 @@ else echo "ok 5" fi -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} From owner-svn-src-all@freebsd.org Sun Jan 24 06:20:59 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DEC9BA8FFC9; Sun, 24 Jan 2016 06:20:59 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9F9151108; Sun, 24 Jan 2016 06:20:59 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0O6Kwbf019982; Sun, 24 Jan 2016 06:20:58 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0O6KvbO019974; Sun, 24 Jan 2016 06:20:57 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601240620.u0O6KvbO019974@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 24 Jan 2016 06:20:57 +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: r294658 - stable/9/tools/regression/geom_mirror X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 06:21:00 -0000 Author: ngie Date: Sun Jan 24 06:20:57 2016 New Revision: 294658 URL: https://svnweb.freebsd.org/changeset/base/294658 Log: MFstable/10 r294657: MFC r293073: - Use attach_md instead of hardcoding md(4) provider unit numbers - Implement a gmirror_test_cleanup function, which in turn calls geom_test_cleanup to clean up all md(4) providers allocated in the test run. - Remove duplicate logic in test scripts for removing md(4) providers. - Don't create files in /tmp (outside the kyua sandbox); use the current directory instead Modified: stable/9/tools/regression/geom_mirror/conf.sh stable/9/tools/regression/geom_mirror/test-1.t stable/9/tools/regression/geom_mirror/test-2.t stable/9/tools/regression/geom_mirror/test-3.t stable/9/tools/regression/geom_mirror/test-4.t stable/9/tools/regression/geom_mirror/test-5.t stable/9/tools/regression/geom_mirror/test-6.t stable/9/tools/regression/geom_mirror/test-7.t Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/regression/ (props changed) Modified: stable/9/tools/regression/geom_mirror/conf.sh ============================================================================== --- stable/9/tools/regression/geom_mirror/conf.sh Sun Jan 24 06:19:49 2016 (r294657) +++ stable/9/tools/regression/geom_mirror/conf.sh Sun Jan 24 06:20:57 2016 (r294658) @@ -5,4 +5,11 @@ name="$(mktemp -u mirror.XXXXXX)" class="mirror" base=`basename $0` +gmirror_test_cleanup() +{ + [ -c /dev/$class/$name ] && gmirror destroy $name + geom_test_cleanup +} +trap gmirror_test_cleanup ABRT EXIT INT TERM + . `dirname $0`/../geom_subr.sh Modified: stable/9/tools/regression/geom_mirror/test-1.t ============================================================================== --- stable/9/tools/regression/geom_mirror/test-1.t Sun Jan 24 06:19:49 2016 (r294657) +++ stable/9/tools/regression/geom_mirror/test-1.t Sun Jan 24 06:20:57 2016 (r294658) @@ -5,15 +5,11 @@ echo "1..1" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` - -mdconfig -a -t malloc -s 1M -u $us0 || exit 1 -mdconfig -a -t malloc -s 2M -u $us1 || exit 1 -mdconfig -a -t malloc -s 3M -u $us2 || exit 1 +us0=$(attach_md -t malloc -s 1M) || exit 1 +us1=$(attach_md -t malloc -s 2M) || exit 1 +us2=$(attach_md -t malloc -s 3M) || exit 1 -gmirror label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label $name /dev/$us0 /dev/$us1 /dev/$us2 || exit 1 devwait # Size of created device should be 1MB - 512b. @@ -25,10 +21,3 @@ if [ $size -eq 1048064 ]; then else echo "not ok 1" fi - -gmirror remove $name md${us0} -gmirror remove $name md${us1} -gmirror remove $name md${us2} -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 Modified: stable/9/tools/regression/geom_mirror/test-2.t ============================================================================== --- stable/9/tools/regression/geom_mirror/test-2.t Sun Jan 24 06:19:49 2016 (r294657) +++ stable/9/tools/regression/geom_mirror/test-2.t Sun Jan 24 06:20:57 2016 (r294658) @@ -6,22 +6,19 @@ echo "1..4" balance="round-robin" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=2048 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -32,28 +29,24 @@ if [ `md5 -q ${src}` != `md5 -q ${dst}` else echo "ok 1" fi -dd if=/dev/md${us0} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/${us0} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" else echo "ok 2" fi -dd if=/dev/md${us1} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/${us1} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" else echo "ok 3" fi -dd if=/dev/md${us2} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/${us2} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" else echo "ok 4" fi -gmirror remove $name md${us0} md${us1} md${us2} -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/9/tools/regression/geom_mirror/test-3.t ============================================================================== --- stable/9/tools/regression/geom_mirror/test-3.t Sun Jan 24 06:19:49 2016 (r294657) +++ stable/9/tools/regression/geom_mirror/test-3.t Sun Jan 24 06:20:57 2016 (r294658) @@ -6,22 +6,19 @@ echo "1..5" balance="round-robin" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=2048 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -33,7 +30,7 @@ else echo "ok 1" fi -gmirror remove $name md${us0} +gmirror remove $name ${us0} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" @@ -41,7 +38,7 @@ else echo "ok 2" fi -gmirror remove $name md${us1} +gmirror remove $name ${us1} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" @@ -49,7 +46,7 @@ else echo "ok 3" fi -gmirror remove $name md${us2} +gmirror remove $name ${us2} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" @@ -64,7 +61,4 @@ else echo "ok 5" fi -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/9/tools/regression/geom_mirror/test-4.t ============================================================================== --- stable/9/tools/regression/geom_mirror/test-4.t Sun Jan 24 06:19:49 2016 (r294657) +++ stable/9/tools/regression/geom_mirror/test-4.t Sun Jan 24 06:20:57 2016 (r294658) @@ -6,22 +6,19 @@ echo "1..5" balance="load" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=2048 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -33,7 +30,7 @@ else echo "ok 1" fi -gmirror remove $name md${us0} +gmirror remove $name ${us0} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" @@ -41,7 +38,7 @@ else echo "ok 2" fi -gmirror remove $name md${us1} +gmirror remove $name ${us1} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" @@ -49,7 +46,7 @@ else echo "ok 3" fi -gmirror remove $name md${us2} +gmirror remove $name ${us2} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" @@ -57,6 +54,8 @@ else echo "ok 4" fi +gmirror destroy $name + # mirror/${name} should be removed. if [ -c /dev/${name} ]; then echo "not ok 5" @@ -64,7 +63,4 @@ else echo "ok 5" fi -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/9/tools/regression/geom_mirror/test-5.t ============================================================================== --- stable/9/tools/regression/geom_mirror/test-5.t Sun Jan 24 06:19:49 2016 (r294657) +++ stable/9/tools/regression/geom_mirror/test-5.t Sun Jan 24 06:20:57 2016 (r294658) @@ -6,22 +6,19 @@ echo "1..5" balance="split" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=8192 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance -s `expr $ddbs / 2` $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance -s `expr $ddbs / 2` $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -33,7 +30,7 @@ else echo "ok 1" fi -gmirror remove $name md${us0} +gmirror remove $name ${us0} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" @@ -41,7 +38,7 @@ else echo "ok 2" fi -gmirror remove $name md${us1} +gmirror remove $name ${us1} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" @@ -49,7 +46,7 @@ else echo "ok 3" fi -gmirror remove $name md${us2} +gmirror remove $name ${us2} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" @@ -64,7 +61,4 @@ else echo "ok 5" fi -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/9/tools/regression/geom_mirror/test-6.t ============================================================================== --- stable/9/tools/regression/geom_mirror/test-6.t Sun Jan 24 06:19:49 2016 (r294657) +++ stable/9/tools/regression/geom_mirror/test-6.t Sun Jan 24 06:20:57 2016 (r294658) @@ -6,26 +6,23 @@ echo "1..2" balance="split" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=8192 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance -s `expr $ddbs / 2` $name /dev/md${us0} /dev/md${us1} || exit 1 +gmirror label -b $balance -s `expr $ddbs / 2` $name /dev/${us0} /dev/${us1} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -dd if=/dev/zero of=/dev/md${us2} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/zero of=/dev/${us2} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then @@ -35,18 +32,14 @@ else fi # Connect disk to the mirror. -gmirror insert ${name} md${us2} +gmirror insert ${name} ${us2} # Wait for synchronization. sleep 1 -dd if=/dev/md${us2} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 +dd if=/dev/${us2} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" else echo "ok 2" fi -gmirror remove $name md${us0} md${us1} md${us2} -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} Modified: stable/9/tools/regression/geom_mirror/test-7.t ============================================================================== --- stable/9/tools/regression/geom_mirror/test-7.t Sun Jan 24 06:19:49 2016 (r294657) +++ stable/9/tools/regression/geom_mirror/test-7.t Sun Jan 24 06:20:57 2016 (r294658) @@ -6,22 +6,19 @@ echo "1..5" balance="prefer" -us0=45 -us1=`expr $us0 + 1` -us2=`expr $us0 + 2` ddbs=2048 nblocks1=1024 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` -src=`mktemp /tmp/$base.XXXXXX` || exit 1 -dst=`mktemp /tmp/$base.XXXXXX` || exit 1 +src=`mktemp $base.XXXXXX` || exit 1 +dst=`mktemp $base.XXXXXX` || exit 1 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 -mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 +us0=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us1=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 +us2=$(attach_md -t malloc -s `expr $nblocks1 + 1`) || exit 1 -gmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 +gmirror label -b $balance $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 devwait dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 @@ -33,7 +30,7 @@ else echo "ok 1" fi -gmirror remove $name md${us0} +gmirror remove $name ${us0} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 2" @@ -41,7 +38,7 @@ else echo "ok 2" fi -gmirror remove $name md${us1} +gmirror remove $name ${us1} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 3" @@ -49,7 +46,7 @@ else echo "ok 3" fi -gmirror remove $name md${us2} +gmirror remove $name ${us2} dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then echo "not ok 4" @@ -64,7 +61,4 @@ else echo "ok 5" fi -mdconfig -d -u $us0 -mdconfig -d -u $us1 -mdconfig -d -u $us2 rm -f ${src} ${dst} From owner-svn-src-all@freebsd.org Sun Jan 24 07:56:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7EBDBA8FE1D; Sun, 24 Jan 2016 07:56:47 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 699AF1B1D; Sun, 24 Jan 2016 07:56:47 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id u0O7ufpm008889 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 23 Jan 2016 23:56:41 -0800 (PST) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id u0O7uf8K008888; Sat, 23 Jan 2016 23:56:41 -0800 (PST) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Sat, 23 Jan 2016 23:56:40 -0800 From: Gleb Smirnoff To: Lawrence Stewart Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294536 - head/sys/netinet Message-ID: <20160124075640.GD1004@FreeBSD.org> References: <201601212253.u0LMrC7B016136@repo.freebsd.org> <56A1C9F6.2010708@freebsd.org> <20160122180411.GA1004@FreeBSD.org> <56A3271F.6010904@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="UlVJffcvxoiEqYs2" Content-Disposition: inline In-Reply-To: <56A3271F.6010904@freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 07:56:47 -0000 --UlVJffcvxoiEqYs2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Lawrence, On Sat, Jan 23, 2016 at 06:09:19PM +1100, Lawrence Stewart wrote: L> > Is that the race you refer to? L> L> No, the TCP_CONGESTION refactoring i.e. this commit, introduced races in L> the get and set cases. I guess I didn't provide enough context in L> Crucible, so here goes... L> L> The post refactoring get code is now: L> L> case TCP_CONGESTION: L> INP_WUNLOCK(inp); L> error = sooptcopyout(sopt, CC_ALGO(tp)->name, TCP_CA_NAME_MAX); L> break; L> L> Consider that tp is using cc_blah and that the cc_blah module is L> unloaded as the copy out is happening. By not holding the INP lock, the L> CC module unload code is able to walk the list of active connections, L> find this connection is using cc_blah, acquire the INP lock, switch this L> connection to cc_newreno, release the lock and finally unload the L> cc_blah module, rendering the pointer passed in to sooptcopyout garbage. L> See cc_deregister_algo() in cc.c and tcp_ccalgounload() in tcp_subr.c L> for details related to CC module unload. Understood. Can you please review this patch? It basicly shifts INP_WLOCK earlier in the SOPT_SET case, and reverts to old code the SOPT_GET case. It returns back the stack based string buffer. -- Totus tuus, Glebius. --UlVJffcvxoiEqYs2 Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="tcp_usrreq.c.diff" Index: tcp_usrreq.c =================================================================== --- tcp_usrreq.c (revision 294658) +++ tcp_usrreq.c (working copy) @@ -1479,7 +1479,7 @@ tcp_default_ctloutput(struct socket *so, struct so u_int ui; struct tcp_info ti; struct cc_algo *algo; - char *buf; + char *pbuf, buf[TCP_CA_NAME_MAX]; /* * For TCP_CCALGOOPT forward the control to CC module, for both @@ -1488,22 +1488,22 @@ tcp_default_ctloutput(struct socket *so, struct so switch (sopt->sopt_name) { case TCP_CCALGOOPT: INP_WUNLOCK(inp); - buf = malloc(sopt->sopt_valsize, M_TEMP, M_WAITOK | M_ZERO); - error = sooptcopyin(sopt, buf, sopt->sopt_valsize, + pbuf = malloc(sopt->sopt_valsize, M_TEMP, M_WAITOK | M_ZERO); + error = sooptcopyin(sopt, pbuf, sopt->sopt_valsize, sopt->sopt_valsize); if (error) { - free(buf, M_TEMP); + free(pbuf, M_TEMP); return (error); } INP_WLOCK_RECHECK(inp); if (CC_ALGO(tp)->ctl_output != NULL) - error = CC_ALGO(tp)->ctl_output(tp->ccv, sopt, buf); + error = CC_ALGO(tp)->ctl_output(tp->ccv, sopt, pbuf); else error = ENOENT; INP_WUNLOCK(inp); if (error == 0 && sopt->sopt_dir == SOPT_GET) - error = sooptcopyout(sopt, buf, sopt->sopt_valsize); - free(buf, M_TEMP); + error = sooptcopyout(sopt, pbuf, sopt->sopt_valsize); + free(pbuf, M_TEMP); return (error); } @@ -1600,12 +1600,10 @@ unlock_and_done: case TCP_CONGESTION: INP_WUNLOCK(inp); - buf = malloc(TCP_CA_NAME_MAX, M_TEMP, M_WAITOK|M_ZERO); error = sooptcopyin(sopt, buf, TCP_CA_NAME_MAX, 1); - if (error) { - free(buf, M_TEMP); + if (error) break; - } + INP_WLOCK_RECHECK(inp); CC_LIST_RLOCK(); STAILQ_FOREACH(algo, &cc_list, entries) if (strncmp(buf, algo->name, @@ -1612,12 +1610,11 @@ unlock_and_done: TCP_CA_NAME_MAX) == 0) break; CC_LIST_RUNLOCK(); - free(buf, M_TEMP); if (algo == NULL) { + INP_WUNLOCK(inp); error = EINVAL; break; } - INP_WLOCK_RECHECK(inp); /* * We hold a write lock over the tcb so it's safe to * do these things without ordering concerns. @@ -1786,9 +1783,10 @@ unlock_and_done: error = sooptcopyout(sopt, &ti, sizeof ti); break; case TCP_CONGESTION: + bzero(buf, sizeof(buf)); + strlcpy(buf, CC_ALGO(tp)->name, TCP_CA_NAME_MAX); INP_WUNLOCK(inp); - error = sooptcopyout(sopt, CC_ALGO(tp)->name, - TCP_CA_NAME_MAX); + error = sooptcopyout(sopt, buf, TCP_CA_NAME_MAX); break; case TCP_KEEPIDLE: case TCP_KEEPINTVL: --UlVJffcvxoiEqYs2-- From owner-svn-src-all@freebsd.org Sun Jan 24 08:07:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0190A8E31B; Sun, 24 Jan 2016 08:07:21 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 9A1351F79; Sun, 24 Jan 2016 08:07:21 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id u0O87KlZ008931 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sun, 24 Jan 2016 00:07:20 -0800 (PST) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id u0O87Kb3008930; Sun, 24 Jan 2016 00:07:20 -0800 (PST) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Sun, 24 Jan 2016 00:07:20 -0800 From: Gleb Smirnoff To: Lawrence Stewart Cc: src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Subject: Re: svn commit: r294535 - in head/sys/netinet: . cc tcp_stacks Message-ID: <20160124080720.GE1004@FreeBSD.org> References: <201601212234.u0LMYpKT009948@repo.freebsd.org> <56A1D6B2.1010406@freebsd.org> <20160122181816.GB1004@FreeBSD.org> <56A31B78.2090100@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56A31B78.2090100@freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 08:07:21 -0000 Lawrence, On Sat, Jan 23, 2016 at 05:19:36PM +1100, Lawrence Stewart wrote: L> > The problem is that cc.h (or tcp_cc.h) is already depening on many L> > TCP types. So, the structures defined inside are not agnostic, including L> > tcp headers before cc.h is required. L> L> Not in any significant way that tightly couples the API to TCP from L> consumers' perspective. L> L> > The old cc.h used to include tcp.h implicitly, which is a bad style. L> > L> > Since many developers sorted netinet/* includes in a .c file using L> > sort(1), that lead to cc.h always come before actual tcp includes, L> > hiding the real requirement for tcp.h in a .c file. L> L> To provide some more context, I considered that choice to be a lesser L> evil at the time. Linux had set the defacto standard macro naming and L> location so even though I would have put the CC related defines in cc.h L> given the choice, I wanted third-party software which checked for L> modular CC the Linux way to work on FreeBSD. The alphabetical ordering L> of includes is what prompted me to include tcp.h in cc.h so that cc.h L> could happily sit at the top of the list. I probably could have just L> moved cc.h to the cc subdir, in which case it would always come L> logically after the TCP includes as - perhaps that's L> the right solution. Well, if the intent was to provide some sort of compatibility with Linux, then my rename is even more valid! Look what left in the cc.h in the Netflix source (which is kinda forward of FreeBSD): almost the whole file is under _KERNEL. Only the tcp.h pollution left for userland. If Linux has cc.h and we want to put same definitions in cc.h, then we should start new cc.h and keep this one renamed. Because if we provided that one, we won't provide any compatibility, but would just pollute with tcp.h. I am fine with netinet/cc/cc.h. If you agree I can run the rename. -- Totus tuus, Glebius. From owner-svn-src-all@freebsd.org Sun Jan 24 11:00:40 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 43A817E45; Sun, 24 Jan 2016 11:00:40 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1035A339; Sun, 24 Jan 2016 11:00:39 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OB0dxx018614; Sun, 24 Jan 2016 11:00:39 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OB0caq018610; Sun, 24 Jan 2016 11:00:38 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601241100.u0OB0caq018610@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 24 Jan 2016 11:00:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294660 - in head/sys: conf dev/extres dev/extres/clk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 11:00:40 -0000 Author: mmel Date: Sun Jan 24 11:00:38 2016 New Revision: 294660 URL: https://svnweb.freebsd.org/changeset/base/294660 Log: Add clock framework, a first part of new 'extended resources' family of support frameworks(i.e. reset/regulators/phy/tsensors/fuses...). The clock framework significantly simplifies handling of complex clock structures found in modern SoCs. It provides the unified consumers interface, holds and manages actual clock topology, frequency and gating. It's tested on three different ARM boards (Nvidia Tegra TK1, Inforce 6410 and Odroid XU2) and on one MIPS board (Creator Ci20) by kan@. The framework is still far from perfect and probably doesn't have stable interface yet, but we want to start testing it on more real boards and different architectures. Reviewed by: ian, kan (earlier version) Added: head/sys/dev/extres/ head/sys/dev/extres/clk/ head/sys/dev/extres/clk/clk.c (contents, props changed) head/sys/dev/extres/clk/clk.h (contents, props changed) head/sys/dev/extres/clk/clk_div.c (contents, props changed) head/sys/dev/extres/clk/clk_div.h (contents, props changed) head/sys/dev/extres/clk/clk_fixed.c (contents, props changed) head/sys/dev/extres/clk/clk_fixed.h (contents, props changed) head/sys/dev/extres/clk/clk_gate.c (contents, props changed) head/sys/dev/extres/clk/clk_gate.h (contents, props changed) head/sys/dev/extres/clk/clk_mux.c (contents, props changed) head/sys/dev/extres/clk/clk_mux.h (contents, props changed) head/sys/dev/extres/clk/clkdev_if.m (contents, props changed) head/sys/dev/extres/clk/clknode_if.m (contents, props changed) Modified: head/sys/conf/files head/sys/conf/options Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sun Jan 24 09:24:23 2016 (r294659) +++ head/sys/conf/files Sun Jan 24 11:00:38 2016 (r294660) @@ -1410,6 +1410,13 @@ dev/ex/if_ex.c optional ex dev/ex/if_ex_isa.c optional ex isa dev/ex/if_ex_pccard.c optional ex pccard dev/exca/exca.c optional cbb +dev/extres/clk/clk.c optional ext_resources clk +dev/extres/clk/clkdev_if.m optional ext_resources clk +dev/extres/clk/clknode_if.m optional ext_resources clk +dev/extres/clk/clk_div.c optional ext_resources clk +dev/extres/clk/clk_fixed.c optional ext_resources clk +dev/extres/clk/clk_gate.c optional ext_resources clk +dev/extres/clk/clk_mux.c optional ext_resources clk dev/fatm/if_fatm.c optional fatm pci dev/fb/fbd.c optional fbd | vt dev/fb/fb_if.m standard Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Sun Jan 24 09:24:23 2016 (r294659) +++ head/sys/conf/options Sun Jan 24 11:00:38 2016 (r294660) @@ -90,6 +90,7 @@ COMPAT_LINUXKPI opt_compat.h COMPILING_LINT opt_global.h CY_PCI_FASTINTR DEADLKRES opt_watchdog.h +EXT_RESOURCES opt_global.h DIRECTIO FILEMON opt_dontuse.h FFCLOCK Added: head/sys/dev/extres/clk/clk.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/extres/clk/clk.c Sun Jan 24 11:00:38 2016 (r294660) @@ -0,0 +1,1261 @@ +/*- + * Copyright 2016 Michal Meloun + * 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 "opt_platform.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef FDT +#include +#include +#include +#endif +#include + +MALLOC_DEFINE(M_CLOCK, "clocks", "Clock framework"); + +/* Forward declarations. */ +struct clk; +struct clknodenode; +struct clkdom; + +typedef TAILQ_HEAD(clknode_list, clknode) clknode_list_t; +typedef TAILQ_HEAD(clkdom_list, clkdom) clkdom_list_t; + +/* Default clock methods. */ +static int clknode_method_init(struct clknode *clk, device_t dev); +static int clknode_method_recalc_freq(struct clknode *clk, uint64_t *freq); +static int clknode_method_set_freq(struct clknode *clk, uint64_t fin, + uint64_t *fout, int flags, int *stop); +static int clknode_method_set_gate(struct clknode *clk, bool enable); +static int clknode_method_set_mux(struct clknode *clk, int idx); + +/* + * Clock controller methods. + */ +static clknode_method_t clknode_methods[] = { + CLKNODEMETHOD(clknode_init, clknode_method_init), + CLKNODEMETHOD(clknode_recalc_freq, clknode_method_recalc_freq), + CLKNODEMETHOD(clknode_set_freq, clknode_method_set_freq), + CLKNODEMETHOD(clknode_set_gate, clknode_method_set_gate), + CLKNODEMETHOD(clknode_set_mux, clknode_method_set_mux), + + CLKNODEMETHOD_END +}; +DEFINE_CLASS_0(clknode, clknode_class, clknode_methods, 0); + +/* + * Clock node - basic element for modeling SOC clock graph. It holds the clock + * provider's data about the clock, and the links for the clock's membership in + * various lists. + */ +struct clknode { + KOBJ_FIELDS; + + /* Clock nodes topology. */ + struct clkdom *clkdom; /* Owning clock domain */ + TAILQ_ENTRY(clknode) clkdom_link; /* Domain list entry */ + TAILQ_ENTRY(clknode) clklist_link; /* Global list entry */ + + /* String based parent list. */ + const char **parent_names; /* Array of parent names */ + int parent_cnt; /* Number of parents */ + int parent_idx; /* Parent index or -1 */ + + /* Cache for already resolved names. */ + struct clknode **parents; /* Array of potential parents */ + struct clknode *parent; /* Current parent */ + + /* Parent/child relationship links. */ + clknode_list_t children; /* List of our children */ + TAILQ_ENTRY(clknode) sibling_link; /* Our entry in parent's list */ + + /* Details of this device. */ + void *softc; /* Instance softc */ + const char *name; /* Globally unique name */ + intptr_t id; /* Per domain unique id */ + int flags; /* CLK_FLAG_* */ + struct sx lock; /* Lock for this clock */ + int ref_cnt; /* Reference counter */ + int enable_cnt; /* Enabled counter */ + + /* Cached values. */ + uint64_t freq; /* Actual frequency */ +}; + +/* + * Per consumer data, information about how a consumer is using a clock node. + * A pointer to this structure is used as a handle in the consumer interface. + */ +struct clk { + device_t dev; + struct clknode *clknode; + int enable_cnt; +}; + +/* + * Clock domain - a group of clocks provided by one clock device. + */ +struct clkdom { + device_t dev; /* Link to provider device */ + TAILQ_ENTRY(clkdom) link; /* Global domain list entry */ + clknode_list_t clknode_list; /* All clocks in the domain */ + +#ifdef FDT + clknode_ofw_mapper_func *ofw_mapper; /* Find clock using FDT xref */ +#endif +}; + +/* + * The system-wide list of clock domains. + */ +static clkdom_list_t clkdom_list = TAILQ_HEAD_INITIALIZER(clkdom_list); + +/* + * Each clock node is linked on a system-wide list and can be searched by name. + */ +static clknode_list_t clknode_list = TAILQ_HEAD_INITIALIZER(clknode_list); + +/* + * Locking - we use three levels of locking: + * - First, topology lock is taken. This one protect all lists. + * - Second level is per clknode lock. It protects clknode data. + * - Third level is outside of this file, it protect clock device registers. + * First two levels use sleepable locks; clock device can use mutex or sx lock. + */ +static struct sx clk_topo_lock; +SX_SYSINIT(clock_topology, &clk_topo_lock, "Clock topology lock"); + +#define CLK_TOPO_SLOCK() sx_slock(&clk_topo_lock) +#define CLK_TOPO_XLOCK() sx_xlock(&clk_topo_lock) +#define CLK_TOPO_UNLOCK() sx_unlock(&clk_topo_lock) +#define CLK_TOPO_ASSERT() sx_assert(&clk_topo_lock, SA_LOCKED) +#define CLK_TOPO_XASSERT() sx_assert(&clk_topo_lock, SA_XLOCKED) + +#define CLKNODE_SLOCK(_sc) sx_slock(&((_sc)->lock)) +#define CLKNODE_XLOCK(_sc) sx_xlock(&((_sc)->lock)) +#define CLKNODE_UNLOCK(_sc) sx_unlock(&((_sc)->lock)) + +static void clknode_adjust_parent(struct clknode *clknode, int idx); + +/* + * Default clock methods for base class. + */ +static int +clknode_method_init(struct clknode *clknode, device_t dev) +{ + + return (0); +} + +static int +clknode_method_recalc_freq(struct clknode *clknode, uint64_t *freq) +{ + + return (0); +} + +static int +clknode_method_set_freq(struct clknode *clknode, uint64_t fin, uint64_t *fout, + int flags, int *stop) +{ + + *stop = 0; + return (0); +} + +static int +clknode_method_set_gate(struct clknode *clk, bool enable) +{ + + return (0); +} + +static int +clknode_method_set_mux(struct clknode *clk, int idx) +{ + + return (0); +} + +/* + * Internal functions. + */ + +/* + * Duplicate an array of parent names. + * + * Compute total size and allocate a single block which holds both the array of + * pointers to strings and the copied strings themselves. Returns a pointer to + * the start of the block where the array of copied string pointers lives. + * + * XXX Revisit this, no need for the DECONST stuff. + */ +static const char ** +strdup_list(const char **names, int num) +{ + size_t len, slen; + const char **outptr, *ptr; + int i; + + len = sizeof(char *) * num; + for (i = 0; i < num; i++) { + if (names[i] == NULL) + continue; + slen = strlen(names[i]); + if (slen == 0) + panic("Clock parent names array have empty string"); + len += slen + 1; + } + outptr = malloc(len, M_CLOCK, M_WAITOK | M_ZERO); + ptr = (char *)(outptr + num); + for (i = 0; i < num; i++) { + if (names[i] == NULL) + continue; + outptr[i] = ptr; + slen = strlen(names[i]) + 1; + bcopy(names[i], __DECONST(void *, outptr[i]), slen); + ptr += slen; + } + return (outptr); +} + +/* + * Recompute the cached frequency for this node and all its children. + */ +static int +clknode_refresh_cache(struct clknode *clknode, uint64_t freq) +{ + int rv; + struct clknode *entry; + + CLK_TOPO_XASSERT(); + + /* Compute generated frequency. */ + rv = CLKNODE_RECALC_FREQ(clknode, &freq); + if (rv != 0) { + /* XXX If an error happens while refreshing children + * this leaves the world in a partially-updated state. + * Panic for now. + */ + panic("clknode_refresh_cache failed for '%s'\n", + clknode->name); + return (rv); + } + /* Refresh cache for this node. */ + clknode->freq = freq; + + /* Refresh cache for all children. */ + TAILQ_FOREACH(entry, &(clknode->children), sibling_link) { + rv = clknode_refresh_cache(entry, freq); + if (rv != 0) + return (rv); + } + return (0); +} + +/* + * Public interface. + */ + +struct clknode * +clknode_find_by_name(const char *name) +{ + struct clknode *entry; + + CLK_TOPO_ASSERT(); + + TAILQ_FOREACH(entry, &clknode_list, clklist_link) { + if (strcmp(entry->name, name) == 0) + return (entry); + } + return (NULL); +} + +struct clknode * +clknode_find_by_id(struct clkdom *clkdom, intptr_t id) +{ + struct clknode *entry; + + CLK_TOPO_ASSERT(); + + TAILQ_FOREACH(entry, &clkdom->clknode_list, clkdom_link) { + if (entry->id == id) + return (entry); + } + + return (NULL); +} + +/* -------------------------------------------------------------------------- */ +/* + * Clock domain functions + */ + +/* Find clock domain associated to device in global list. */ +struct clkdom * +clkdom_get_by_dev(const device_t dev) +{ + struct clkdom *entry; + + CLK_TOPO_ASSERT(); + + TAILQ_FOREACH(entry, &clkdom_list, link) { + if (entry->dev == dev) + return (entry); + } + return (NULL); +} + + +#ifdef FDT +/* Default DT mapper. */ +static int +clknode_default_ofw_map(struct clkdom *clkdom, uint32_t ncells, + phandle_t *cells, struct clknode **clk) +{ + + CLK_TOPO_ASSERT(); + + if (ncells == 0) + *clk = clknode_find_by_id(clkdom, 1); + else if (ncells == 1) + *clk = clknode_find_by_id(clkdom, cells[0]); + else + return (ERANGE); + + if (*clk == NULL) + return (ENXIO); + return (0); +} +#endif + +/* + * Create a clock domain. Returns with the topo lock held. + */ +struct clkdom * +clkdom_create(device_t dev) +{ + struct clkdom *clkdom; + + clkdom = malloc(sizeof(struct clkdom), M_CLOCK, M_WAITOK | M_ZERO); + clkdom->dev = dev; + TAILQ_INIT(&clkdom->clknode_list); +#ifdef FDT + clkdom->ofw_mapper = clknode_default_ofw_map; +#endif + + return (clkdom); +} + +void +clkdom_unlock(struct clkdom *clkdom) +{ + + CLK_TOPO_UNLOCK(); +} + +void +clkdom_xlock(struct clkdom *clkdom) +{ + + CLK_TOPO_XLOCK(); +} + +/* + * Finalize initialization of clock domain. Releases topo lock. + * + * XXX Revisit failure handling. + */ +int +clkdom_finit(struct clkdom *clkdom) +{ + struct clknode *clknode; + int i, rv; +#ifdef FDT + phandle_t node; + + + if ((node = ofw_bus_get_node(clkdom->dev)) == -1) { + device_printf(clkdom->dev, + "%s called on not ofw based device\n", __func__); + return (ENXIO); + } +#endif + rv = 0; + + /* Make clock domain globally visible. */ + CLK_TOPO_XLOCK(); + TAILQ_INSERT_TAIL(&clkdom_list, clkdom, link); +#ifdef FDT + OF_device_register_xref(OF_xref_from_node(node), clkdom->dev); +#endif + + /* Register all clock names into global list. */ + TAILQ_FOREACH(clknode, &clkdom->clknode_list, clkdom_link) { + TAILQ_INSERT_TAIL(&clknode_list, clknode, clklist_link); + } + /* + * At this point all domain nodes must be registered and all + * parents must be valid. + */ + TAILQ_FOREACH(clknode, &clkdom->clknode_list, clkdom_link) { + if (clknode->parent_cnt == 0) + continue; + for (i = 0; i < clknode->parent_cnt; i++) { + if (clknode->parents[i] != NULL) + continue; + if (clknode->parent_names[i] == NULL) + continue; + clknode->parents[i] = clknode_find_by_name( + clknode->parent_names[i]); + if (clknode->parents[i] == NULL) { + device_printf(clkdom->dev, + "Clock %s have unknown parent: %s\n", + clknode->name, clknode->parent_names[i]); + rv = ENODEV; + } + } + + /* If parent index is not set yet... */ + if (clknode->parent_idx == CLKNODE_IDX_NONE) { + device_printf(clkdom->dev, + "Clock %s have not set parent idx\n", + clknode->name); + rv = ENXIO; + continue; + } + if (clknode->parents[clknode->parent_idx] == NULL) { + device_printf(clkdom->dev, + "Clock %s have unknown parent(idx %d): %s\n", + clknode->name, clknode->parent_idx, + clknode->parent_names[clknode->parent_idx]); + rv = ENXIO; + continue; + } + clknode_adjust_parent(clknode, clknode->parent_idx); + } + CLK_TOPO_UNLOCK(); + return (rv); +} + +/* Dump clock domain. */ +void +clkdom_dump(struct clkdom * clkdom) +{ + struct clknode *clknode; + int rv; + uint64_t freq; + + CLK_TOPO_SLOCK(); + TAILQ_FOREACH(clknode, &clkdom->clknode_list, clkdom_link) { + rv = clknode_get_freq(clknode, &freq); + printf("Clock: %s, parent: %s(%d), freq: %llu\n", clknode->name, + clknode->parent == NULL ? "(NULL)" : clknode->parent->name, + clknode->parent_idx, + ((rv == 0) ? freq: rv)); + } + CLK_TOPO_UNLOCK(); +} + +/* + * Create and initialize clock object, but do not register it. + */ +struct clknode * +clknode_create(struct clkdom * clkdom, clknode_class_t clknode_class, + const struct clknode_init_def *def) +{ + struct clknode *clknode; + + KASSERT(def->name != NULL, ("clock name is NULL")); + KASSERT(def->name[0] != '\0', ("clock name is empty")); +#ifdef INVARIANTS + CLK_TOPO_SLOCK(); + if (clknode_find_by_name(def->name) != NULL) + panic("Duplicated clock registration: %s\n", def->name); + CLK_TOPO_UNLOCK(); +#endif + + /* Create object and initialize it. */ + clknode = malloc(sizeof(struct clknode), M_CLOCK, M_WAITOK | M_ZERO); + kobj_init((kobj_t)clknode, (kobj_class_t)clknode_class); + sx_init(&clknode->lock, "Clocknode lock"); + + /* Allocate softc if required. */ + if (clknode_class->size > 0) { + clknode->softc = malloc(clknode_class->size, + M_CLOCK, M_WAITOK | M_ZERO); + } + + /* Prepare array for ptrs to parent clocks. */ + clknode->parents = malloc(sizeof(struct clknode *) * def->parent_cnt, + M_CLOCK, M_WAITOK | M_ZERO); + + /* Copy all strings unless they're flagged as static. */ + if (def->flags & CLK_NODE_STATIC_STRINGS) { + clknode->name = def->name; + clknode->parent_names = def->parent_names; + } else { + clknode->name = strdup(def->name, M_CLOCK); + clknode->parent_names = + strdup_list(def->parent_names, def->parent_cnt); + } + + /* Rest of init. */ + clknode->id = def->id; + clknode->clkdom = clkdom; + clknode->flags = def->flags; + clknode->parent_cnt = def->parent_cnt; + clknode->parent = NULL; + clknode->parent_idx = CLKNODE_IDX_NONE; + TAILQ_INIT(&clknode->children); + + return (clknode); +} + +/* + * Register clock object into clock domain hierarchy. + */ +struct clknode * +clknode_register(struct clkdom * clkdom, struct clknode *clknode) +{ + int rv; + + rv = CLKNODE_INIT(clknode, clknode_get_device(clknode)); + if (rv != 0) { + printf(" CLKNODE_INIT failed: %d\n", rv); + return (NULL); + } + + TAILQ_INSERT_TAIL(&clkdom->clknode_list, clknode, clkdom_link); + + return (clknode); +} + +/* + * Clock providers interface. + */ + +/* + * Reparent clock node. + */ +static void +clknode_adjust_parent(struct clknode *clknode, int idx) +{ + + CLK_TOPO_XASSERT(); + + if (clknode->parent_cnt == 0) + return; + if ((idx == CLKNODE_IDX_NONE) || (idx >= clknode->parent_cnt)) + panic("Invalid clock parent index\n"); + + if (clknode->parents[idx] == NULL) + panic("%s: Attempt to set invalid parent %d for clock %s", + __func__, idx, clknode->name); + + /* Remove me from old children list. */ + if (clknode->parent != NULL) { + TAILQ_REMOVE(&clknode->parent->children, clknode, sibling_link); + } + + /* Insert into children list of new parent. */ + clknode->parent_idx = idx; + clknode->parent = clknode->parents[idx]; + TAILQ_INSERT_TAIL(&clknode->parent->children, clknode, sibling_link); +} + +/* + * Set parent index - init function. + */ +void +clknode_init_parent_idx(struct clknode *clknode, int idx) +{ + + if (clknode->parent_cnt == 0) { + clknode->parent_idx = CLKNODE_IDX_NONE; + clknode->parent = NULL; + return; + } + if ((idx == CLKNODE_IDX_NONE) || + (idx >= clknode->parent_cnt) || + (clknode->parent_names[idx] == NULL)) + panic("%s: Invalid clock parent index: %d\n", __func__, idx); + + clknode->parent_idx = idx; +} + +int +clknode_set_parent_by_idx(struct clknode *clknode, int idx) +{ + int rv; + uint64_t freq; + int oldidx; + + /* We have exclusive topology lock, node lock is not needed. */ + CLK_TOPO_XASSERT(); + + if (clknode->parent_cnt == 0) + return (0); + + if (clknode->parent_idx == idx) + return (0); + + oldidx = clknode->parent_idx; + clknode_adjust_parent(clknode, idx); + rv = CLKNODE_SET_MUX(clknode, idx); + if (rv != 0) { + clknode_adjust_parent(clknode, oldidx); + return (rv); + } + rv = clknode_get_freq(clknode->parent, &freq); + if (rv != 0) + return (rv); + rv = clknode_refresh_cache(clknode, freq); + return (rv); +} + +int +clknode_set_parent_by_name(struct clknode *clknode, const char *name) +{ + int rv; + uint64_t freq; + int oldidx, idx; + + /* We have exclusive topology lock, node lock is not needed. */ + CLK_TOPO_XASSERT(); + + if (clknode->parent_cnt == 0) + return (0); + + /* + * If this node doesnt have mux, then passthrough request to parent. + * This feature is used in clock domain initialization and allows us to + * set clock source and target frequency on the tail node of the clock + * chain. + */ + if (clknode->parent_cnt == 1) { + rv = clknode_set_parent_by_name(clknode->parent, name); + return (rv); + } + + for (idx = 0; idx < clknode->parent_cnt; idx++) { + if (clknode->parent_names[idx] == NULL) + continue; + if (strcmp(clknode->parent_names[idx], name) == 0) + break; + } + if (idx >= clknode->parent_cnt) { + return (ENXIO); + } + if (clknode->parent_idx == idx) + return (0); + + oldidx = clknode->parent_idx; + clknode_adjust_parent(clknode, idx); + rv = CLKNODE_SET_MUX(clknode, idx); + if (rv != 0) { + clknode_adjust_parent(clknode, oldidx); + CLKNODE_UNLOCK(clknode); + return (rv); + } + rv = clknode_get_freq(clknode->parent, &freq); + if (rv != 0) + return (rv); + rv = clknode_refresh_cache(clknode, freq); + return (rv); +} + +struct clknode * +clknode_get_parent(struct clknode *clknode) +{ + + return (clknode->parent); +} + +const char * +clknode_get_name(struct clknode *clknode) +{ + + return (clknode->name); +} + +const char ** +clknode_get_parent_names(struct clknode *clknode) +{ + + return (clknode->parent_names); +} + +int +clknode_get_parents_num(struct clknode *clknode) +{ + + return (clknode->parent_cnt); +} + +int +clknode_get_parent_idx(struct clknode *clknode) +{ + + return (clknode->parent_idx); +} + +int +clknode_get_flags(struct clknode *clknode) +{ + + return (clknode->flags); +} + + +void * +clknode_get_softc(struct clknode *clknode) +{ + + return (clknode->softc); +} + +device_t +clknode_get_device(struct clknode *clknode) +{ + + return (clknode->clkdom->dev); +} + +#ifdef FDT +void +clkdom_set_ofw_mapper(struct clkdom * clkdom, clknode_ofw_mapper_func *map) +{ + + clkdom->ofw_mapper = map; +} +#endif + +/* + * Real consumers executive + */ +int +clknode_get_freq(struct clknode *clknode, uint64_t *freq) +{ + int rv; + + CLK_TOPO_ASSERT(); + + /* Use cached value, if it exists. */ + *freq = clknode->freq; + if (*freq != 0) + return (0); + + /* Get frequency from parent, if the clock has a parent. */ + if (clknode->parent_cnt > 0) { + rv = clknode_get_freq(clknode->parent, freq); + if (rv != 0) { + return (rv); + } + } + + /* And recalculate my output frequency. */ + CLKNODE_XLOCK(clknode); + rv = CLKNODE_RECALC_FREQ(clknode, freq); + if (rv != 0) { + CLKNODE_UNLOCK(clknode); + printf("Cannot get frequency for clk: %s, error: %d\n", + clknode->name, rv); + return (rv); + } + + /* Save new frequency to cache. */ + clknode->freq = *freq; + CLKNODE_UNLOCK(clknode); + return (0); +} + +int +clknode_set_freq(struct clknode *clknode, uint64_t freq, int flags, + int enablecnt) +{ + int rv, done; + uint64_t parent_freq; + + /* We have exclusive topology lock, node lock is not needed. */ + CLK_TOPO_XASSERT(); + + parent_freq = 0; + + /* + * We can set frequency only if + * clock is disabled + * OR + * clock is glitch free and is enabled by calling consumer only + */ + if ((clknode->enable_cnt > 1) && + ((clknode->enable_cnt > enablecnt) || + !(clknode->flags & CLK_NODE_GLITCH_FREE))) { + return (EBUSY); + } + + /* Get frequency from parent, if the clock has a parent. */ + if (clknode->parent_cnt > 0) { + rv = clknode_get_freq(clknode->parent, &parent_freq); + if (rv != 0) { + return (rv); + } + } + + /* Set frequency for this clock. */ + rv = CLKNODE_SET_FREQ(clknode, parent_freq, &freq, flags, &done); + if (rv != 0) { + printf("Cannot set frequency for clk: %s, error: %d\n", + clknode->name, rv); + if ((flags & CLK_SET_DRYRUN) == 0) + clknode_refresh_cache(clknode, parent_freq); + return (rv); + } + + if (done) { + /* Success - invalidate frequency cache for all children. */ + clknode->freq = freq; + if ((flags & CLK_SET_DRYRUN) == 0) + clknode_refresh_cache(clknode, parent_freq); + } else if (clknode->parent != NULL) { + /* Nothing changed, pass request to parent. */ + rv = clknode_set_freq(clknode->parent, freq, flags, enablecnt); + } else { + /* End of chain without action. */ + printf("Cannot set frequency for clk: %s, end of chain\n", + clknode->name); + rv = ENXIO; + } + + return (rv); +} + +int +clknode_enable(struct clknode *clknode) +{ + int rv; + + CLK_TOPO_ASSERT(); + + /* Enable clock for each node in chain, starting from source. */ + if (clknode->parent_cnt > 0) { + rv = clknode_enable(clknode->parent); + if (rv != 0) { + return (rv); + } + } + + /* Handle this node */ + CLKNODE_XLOCK(clknode); + if (clknode->enable_cnt == 0) { + rv = CLKNODE_SET_GATE(clknode, 1); + if (rv != 0) { + CLKNODE_UNLOCK(clknode); + return (rv); + } + } + clknode->enable_cnt++; + CLKNODE_UNLOCK(clknode); + return (0); +} + +int +clknode_disable(struct clknode *clknode) +{ + int rv; + + CLK_TOPO_ASSERT(); + rv = 0; + + CLKNODE_XLOCK(clknode); + /* Disable clock for each node in chain, starting from consumer. */ + if ((clknode->enable_cnt == 1) && + ((clknode->flags & CLK_NODE_CANNOT_STOP) == 0)) { + rv = CLKNODE_SET_GATE(clknode, 0); + if (rv != 0) { + CLKNODE_UNLOCK(clknode); + return (rv); + } + } + clknode->enable_cnt--; + CLKNODE_UNLOCK(clknode); + + if (clknode->parent_cnt > 0) { + rv = clknode_disable(clknode->parent); + } + return (rv); +} + +int +clknode_stop(struct clknode *clknode, int depth) +{ + int rv; + + CLK_TOPO_ASSERT(); + rv = 0; + + CLKNODE_XLOCK(clknode); + /* The first node cannot be enabled. */ + if ((clknode->enable_cnt != 0) && (depth == 0)) { + CLKNODE_UNLOCK(clknode); + return (EBUSY); + } + /* Stop clock for each node in chain, starting from consumer. */ + if ((clknode->enable_cnt == 0) && + ((clknode->flags & CLK_NODE_CANNOT_STOP) == 0)) { + rv = CLKNODE_SET_GATE(clknode, 0); + if (rv != 0) { + CLKNODE_UNLOCK(clknode); + return (rv); + } + } + CLKNODE_UNLOCK(clknode); + + if (clknode->parent_cnt > 0) + rv = clknode_stop(clknode->parent, depth + 1); + return (rv); +} + +/* -------------------------------------------------------------------------- + * + * Clock consumers interface. + * + */ +/* Helper function for clk_get*() */ +static clk_t +clk_create(struct clknode *clknode, device_t dev) +{ + struct clk *clk; + + CLK_TOPO_ASSERT(); + + clk = malloc(sizeof(struct clk), M_CLOCK, M_WAITOK); + clk->dev = dev; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Jan 24 11:03:36 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B67D07F1F; Sun, 24 Jan 2016 11:03:36 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 91CB28D9; Sun, 24 Jan 2016 11:03:36 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OB3ZGw021312; Sun, 24 Jan 2016 11:03:35 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OB3Zqo021307; Sun, 24 Jan 2016 11:03:35 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601241103.u0OB3Zqo021307@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 24 Jan 2016 11:03:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294661 - in head/sys: conf dev/extres/hwreset X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 11:03:36 -0000 Author: mmel Date: Sun Jan 24 11:03:35 2016 New Revision: 294661 URL: https://svnweb.freebsd.org/changeset/base/294661 Log: Add reset framework, a second part of new 'extended resources' family of support frameworks (i.e. regulators/phy/tsensors/fuses...). It provides simple unified consumers interface for manipulations with on-chip resets. Reviewed by: ian, imp (paritaly) Added: head/sys/dev/extres/hwreset/ head/sys/dev/extres/hwreset/hwreset.c (contents, props changed) head/sys/dev/extres/hwreset/hwreset.h (contents, props changed) head/sys/dev/extres/hwreset/hwreset_if.m (contents, props changed) Modified: head/sys/conf/files Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sun Jan 24 11:00:38 2016 (r294660) +++ head/sys/conf/files Sun Jan 24 11:03:35 2016 (r294661) @@ -1417,6 +1417,8 @@ dev/extres/clk/clk_div.c optional ext_re dev/extres/clk/clk_fixed.c optional ext_resources clk dev/extres/clk/clk_gate.c optional ext_resources clk dev/extres/clk/clk_mux.c optional ext_resources clk +dev/extres/hwreset/hwreset.c optional ext_resources hwreset +dev/extres/hwreset/hwreset_if.m optional ext_resources hwreset dev/fatm/if_fatm.c optional fatm pci dev/fb/fbd.c optional fbd | vt dev/fb/fb_if.m standard Added: head/sys/dev/extres/hwreset/hwreset.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/extres/hwreset/hwreset.c Sun Jan 24 11:03:35 2016 (r294661) @@ -0,0 +1,186 @@ +/*- + * Copyright 2016 Michal Meloun + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ +#include "opt_platform.h" +#include +#include +#include +#include +#include +#include + +#ifdef FDT +#include +#include +#endif + +#include + +#include "hwreset_if.h" + +struct hwreset { + device_t consumer_dev; /* consumer device*/ + device_t provider_dev; /* provider device*/ + int rst_id; /* reset id */ +}; + +MALLOC_DEFINE(M_HWRESET, "hwreset", "Reset framework"); + +int +hwreset_assert(hwreset_t rst) +{ + + return (HWRESET_ASSERT(rst->provider_dev, rst->rst_id, true)); +} + +int +hwreset_deassert(hwreset_t rst) +{ + + return (HWRESET_ASSERT(rst->provider_dev, rst->rst_id, false)); +} + +int +hwreset_is_asserted(hwreset_t rst, bool *value) +{ + + return (HWRESET_IS_ASSERTED(rst->provider_dev, rst->rst_id, value)); +} + +void +hwreset_release(hwreset_t rst) +{ + free(rst, M_HWRESET); +} + +int +hwreset_get_by_id(device_t consumer_dev, device_t provider_dev, intptr_t id, + hwreset_t *rst_out) +{ + hwreset_t rst; + + /* Create handle */ + rst = malloc(sizeof(struct hwreset), M_HWRESET, + M_WAITOK | M_ZERO); + rst->consumer_dev = consumer_dev; + rst->provider_dev = provider_dev; + rst->rst_id = id; + *rst_out = rst; + return (0); +} + +#ifdef FDT +int +hwreset_default_ofw_map(device_t provider_dev, phandle_t xref, int ncells, + pcell_t *cells, intptr_t *id) +{ + if (ncells == 0) + *id = 1; + else if (ncells == 1) + *id = cells[0]; + else + return (ERANGE); + + return (0); +} + +int +hwreset_get_by_ofw_idx(device_t consumer_dev, int idx, hwreset_t *rst) +{ + phandle_t cnode, xnode; + pcell_t *cells; + device_t rstdev; + int ncells, rv; + intptr_t id; + + cnode = ofw_bus_get_node(consumer_dev); + if (cnode <= 0) { + device_printf(consumer_dev, + "%s called on not ofw based device\n", __func__); + return (ENXIO); + } + + rv = ofw_bus_parse_xref_list_alloc(cnode, "resets", "#reset-cells", + idx, &xnode, &ncells, &cells); + if (rv != 0) + return (rv); + + /* Tranlate provider to device */ + rstdev = OF_device_from_xref(xnode); + if (rstdev == NULL) { + free(cells, M_OFWPROP); + return (ENODEV); + } + /* Map reset to number */ + rv = HWRESET_MAP(rstdev, xnode, ncells, cells, &id); + free(cells, M_OFWPROP); + if (rv != 0) + return (rv); + + return (hwreset_get_by_id(consumer_dev, rstdev, id, rst)); +} + +int +hwreset_get_by_ofw_name(device_t consumer_dev, char *name, hwreset_t *rst) +{ + int rv, idx; + phandle_t cnode; + + cnode = ofw_bus_get_node(consumer_dev); + if (cnode <= 0) { + device_printf(consumer_dev, + "%s called on not ofw based device\n", __func__); + return (ENXIO); + } + rv = ofw_bus_find_string_index(cnode, "reset-names", name, &idx); + if (rv != 0) + return (rv); + return (hwreset_get_by_ofw_idx(consumer_dev, idx, rst)); +} + +void +hwreset_register_ofw_provider(device_t provider_dev) +{ + phandle_t xref, node; + + node = ofw_bus_get_node(provider_dev); + if (node <= 0) + panic("%s called on not ofw based device.\n", __func__); + + xref = OF_xref_from_node(node); + OF_device_register_xref(xref, provider_dev); +} + +void +hwreset_unregister_ofw_provider(device_t provider_dev) +{ + phandle_t xref; + + xref = OF_xref_from_device(provider_dev); + OF_device_register_xref(xref, NULL); +} +#endif Added: head/sys/dev/extres/hwreset/hwreset.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/extres/hwreset/hwreset.h Sun Jan 24 11:03:35 2016 (r294661) @@ -0,0 +1,67 @@ +/*- + * Copyright 2016 Michal Meloun + * 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 ``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 BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef DEV_EXTRES_HWRESET_HWRESET_H +#define DEV_EXTRES_HWRESET_HWRESET_H + +#include "opt_platform.h" +#include +#ifdef FDT +#include +#endif + +typedef struct hwreset *hwreset_t; + +/* + * Provider interface + */ +#ifdef FDT +int hwreset_default_ofw_map(device_t provider_dev, phandle_t xref, int ncells, + pcell_t *cells, intptr_t *id); +void hwreset_register_ofw_provider(device_t provider_dev); +void hwreset_unregister_ofw_provider(device_t provider_dev); +#endif + +/* + * Consumer interface + */ +int hwreset_get_by_id(device_t consumer_dev, device_t provider_dev, intptr_t id, + hwreset_t *rst); +void hwreset_release(hwreset_t rst); + +int hwreset_assert(hwreset_t rst); +int hwreset_deassert(hwreset_t rst); +int hwreset_is_asserted(hwreset_t rst, bool *value); + +#ifdef FDT +int hwreset_get_by_ofw_name(device_t consumer_dev, char *name, hwreset_t *rst); +int hwreset_get_by_ofw_idx(device_t consumer_dev, int idx, hwreset_t *rst); +#endif + + + +#endif /* DEV_EXTRES_HWRESET_HWRESET_H */ Added: head/sys/dev/extres/hwreset/hwreset_if.m ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/extres/hwreset/hwreset_if.m Sun Jan 24 11:03:35 2016 (r294661) @@ -0,0 +1,72 @@ +#- +# Copyright 2016 Michal Meloun +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +#ifdef FDT +#include +#include +#endif + +INTERFACE hwreset; + +#ifdef FDT +HEADER { +int hwreset_default_ofw_map(device_t , phandle_t, int, pcell_t *, intptr_t *); +} + +# +# map fdt property cells to reset id +# Returns 0 on success or a standard errno value. +# +METHOD int map { + device_t provider_dev; + phandle_t xref; + int ncells; + pcell_t *cells; + intptr_t *id; +} DEFAULT hwreset_default_ofw_map; +#endif + +# +# Assert/deassert given reset. +# Returns 0 on success or a standard errno value. +# +METHOD int assert { + device_t provider_dev; + intptr_t id; + bool value; +}; + +# +# Get actual status of given reset. +# Returns 0 on success or a standard errno value. +# +METHOD int is_asserted { + device_t provider_dev; + intptr_t id; + bool *value; +}; From owner-svn-src-all@freebsd.org Sun Jan 24 12:10:31 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 489F97CED; Sun, 24 Jan 2016 12:10:31 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F0D2E65C; Sun, 24 Jan 2016 12:10:30 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OCAUGq040879; Sun, 24 Jan 2016 12:10:30 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OCATgB040877; Sun, 24 Jan 2016 12:10:29 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601241210.u0OCATgB040877@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Sun, 24 Jan 2016 12:10:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294662 - head/lib/libproc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 12:10:31 -0000 Author: br Date: Sun Jan 24 12:10:29 2016 New Revision: 294662 URL: https://svnweb.freebsd.org/changeset/base/294662 Log: Add support for RISC-V ISA. Reviewed by: andrew Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D5040 Modified: head/lib/libproc/proc_bkpt.c head/lib/libproc/proc_regs.c Modified: head/lib/libproc/proc_bkpt.c ============================================================================== --- head/lib/libproc/proc_bkpt.c Sun Jan 24 11:03:35 2016 (r294661) +++ head/lib/libproc/proc_bkpt.c Sun Jan 24 12:10:29 2016 (r294662) @@ -61,6 +61,9 @@ __FBSDID("$FreeBSD$"); #elif defined(__powerpc__) #define BREAKPOINT_INSTR 0x7fe00008 /* trap */ #define BREAKPOINT_INSTR_SZ 4 +#elif defined(__riscv__) +#define BREAKPOINT_INSTR 0x00100073 /* sbreak */ +#define BREAKPOINT_INSTR_SZ 4 #else #error "Add support for your architecture" #endif Modified: head/lib/libproc/proc_regs.c ============================================================================== --- head/lib/libproc/proc_regs.c Sun Jan 24 11:03:35 2016 (r294661) +++ head/lib/libproc/proc_regs.c Sun Jan 24 12:10:29 2016 (r294662) @@ -66,6 +66,8 @@ proc_regget(struct proc_handle *phdl, pr *regvalue = regs.r_regs[PC]; #elif defined(__powerpc__) *regvalue = regs.pc; +#elif defined(__riscv__) + *regvalue = regs.sepc; #endif break; case REG_SP: @@ -81,6 +83,8 @@ proc_regget(struct proc_handle *phdl, pr *regvalue = regs.r_regs[SP]; #elif defined(__powerpc__) *regvalue = regs.fixreg[1]; +#elif defined(__riscv__) + *regvalue = regs.sp; #endif break; default: @@ -117,6 +121,8 @@ proc_regset(struct proc_handle *phdl, pr regs.r_regs[PC] = regvalue; #elif defined(__powerpc__) regs.pc = regvalue; +#elif defined(__riscv__) + regs.sepc = regvalue; #endif break; case REG_SP: @@ -132,6 +138,8 @@ proc_regset(struct proc_handle *phdl, pr regs.r_regs[PC] = regvalue; #elif defined(__powerpc__) regs.fixreg[1] = regvalue; +#elif defined(__riscv__) + regs.sp = regvalue; #endif break; default: From owner-svn-src-all@freebsd.org Sun Jan 24 13:38:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE82C7D88; Sun, 24 Jan 2016 13:38:42 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BBB157C0; Sun, 24 Jan 2016 13:38:42 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0ODcfc5067762; Sun, 24 Jan 2016 13:38:41 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0ODcfYr067761; Sun, 24 Jan 2016 13:38:41 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601241338.u0ODcfYr067761@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sun, 24 Jan 2016 13:38:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294663 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 13:38:43 -0000 Author: kib Date: Sun Jan 24 13:38:41 2016 New Revision: 294663 URL: https://svnweb.freebsd.org/changeset/base/294663 Log: Typo in comment. Modified: head/sys/vm/vm_map.c Modified: head/sys/vm/vm_map.c ============================================================================== --- head/sys/vm/vm_map.c Sun Jan 24 12:10:29 2016 (r294662) +++ head/sys/vm/vm_map.c Sun Jan 24 13:38:41 2016 (r294663) @@ -1553,7 +1553,7 @@ again: * * The map must be locked. * - * This routine guarentees that the passed entry remains valid (though + * This routine guarantees that the passed entry remains valid (though * possibly extended). When merging, this routine may delete one or * both neighbors. */ From owner-svn-src-all@freebsd.org Sun Jan 24 13:58:09 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 452709C261F; Sun, 24 Jan 2016 13:58:09 +0000 (UTC) (envelope-from antoine.brodin.freebsd@gmail.com) Received: from mail-ig0-x22d.google.com (mail-ig0-x22d.google.com [IPv6:2607:f8b0:4001:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0DC7D7CD; Sun, 24 Jan 2016 13:58:09 +0000 (UTC) (envelope-from antoine.brodin.freebsd@gmail.com) Received: by mail-ig0-x22d.google.com with SMTP id t15so19736632igr.0; Sun, 24 Jan 2016 05:58:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=y+w1guYgXH1n5HB4U7JpKvYsmQ8gkzZOHb4smrwGEmE=; b=HpEf6kPqGUMVcepJG4JkMsFUNEcma7yvUON7u329SY5nXflMDkQWukNdY1NEwiBDYC Wf73ovdSVr17IU0TOQSCErKV951LUeshGJ7wkPi46yDqpK4gd/at5l5ydySuAiRLjcw1 nX8OCaf26p5lLdF4e9hk/lZLcIYnCxEo09csNgtW2YPEfO1vpJlK4d0+aDrcdgNLpN6E VBR9Bh/bxu9TFJ1HXLNO3gwORcqOGRxIhHYUFbN1H+temiXhnC5ko49abh9/vF+g2fHV WUrs4jYMRu+a/QyxSJg/v0fYSUAaiTXVetBhMv8xSFggxmqUCApO+xvh55xNfqyYhA6t B6WA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=y+w1guYgXH1n5HB4U7JpKvYsmQ8gkzZOHb4smrwGEmE=; b=d4z3zcBfusMnO78c2eZhcgx2rKhmiVU/KRZ2e4vDHS+ltb/zyIFEh84QJ8HxredrGT DJN9bnlq6I++xcKZpsUS5QBQboA07DskQ4dTNRUCTCUOwZXqQTKAtEZX1kiCXYali3Eu xdAwKyGWMn9c6lr05YxhYfB5Qz6FiXl457vfnC8FS0l+yPJdtQQm9zN9nwAG2jsl0r9o tlYtZDFczvFYKiVkjwigt5Y8XTCeTLquiJ/ol371f6aTeeo2sYQOLN9gzn/Drgujdcgz VZFLkWOrgQbk+FnSXP8Te2LXQSxli9yz61wPlzEKwmRBroHiXZU6ddTTEX5HpOu/qcGG EIbA== X-Gm-Message-State: AG10YOR91i8l+GpZyF6qSEZ8Rsstt7TepjcwXoIyapDxwn3yublUCxLvpQRWmbapN4gx+b7a0VVWidmCFbKafA== MIME-Version: 1.0 X-Received: by 10.50.102.69 with SMTP id fm5mr12988181igb.24.1453643888382; Sun, 24 Jan 2016 05:58:08 -0800 (PST) Sender: antoine.brodin.freebsd@gmail.com Received: by 10.107.159.195 with HTTP; Sun, 24 Jan 2016 05:58:08 -0800 (PST) Received: by 10.107.159.195 with HTTP; Sun, 24 Jan 2016 05:58:08 -0800 (PST) In-Reply-To: <201601130149.u0D1nZmI053966@repo.freebsd.org> References: <201601130149.u0D1nZmI053966@repo.freebsd.org> Date: Sun, 24 Jan 2016 13:58:08 +0000 X-Google-Sender-Auth: Ys0Ki2zZDeYZIBI0ysjf5PdQ0AU Message-ID: Subject: Re: svn commit: r293801 - in head: . etc share/examples/ypldap usr.sbin/ypldap From: Antoine Brodin To: "araujo@FreeBSD.org" Cc: src-committers@freebsd.org, svn-src-head@freebsd.org, svn-src-all@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 13:58:09 -0000 On Jan 13, 2016 2:49 AM, "Marcelo Araujo" wrote: > > Author: araujo > Date: Wed Jan 13 01:49:35 2016 > New Revision: 293801 > URL: https://svnweb.freebsd.org/changeset/base/293801 > > Log: > ypldap(8) is a feature ready to be used to translate nis(8) database to ldap(3). > > This commit, fix a core dump on ypldap(8) related with memory allocation. > Also an example of how to set the ypldap.conf(5) properly is added to > examples files. > > A new user _ypldap is required to be able to run ypldap(8) as well as > in a chroot mode. > > Reviewed by: rodrigc (mentor), bjk > Approved by: bapt (mentor) > Relnotes: Yes > Sponsored by: gandi.net > Differential Revision: https://reviews.freebsd.org/D4744 > Hi, Uid 93 is already used in the ports tree by jabber. (/usr/ports/UIDs) Cheers, Antoine > Added: > head/share/examples/ypldap/ > head/share/examples/ypldap/ypldap.conf (contents, props changed) > Modified: > head/UPDATING > head/etc/master.passwd > head/usr.sbin/ypldap/yp.c > head/usr.sbin/ypldap/ypldap.conf.5 > > Modified: head/UPDATING > ============================================================================== > --- head/UPDATING Wed Jan 13 01:32:04 2016 (r293800) > +++ head/UPDATING Wed Jan 13 01:49:35 2016 (r293801) > @@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 > disable the most expensive debugging functionality run > "ln -s 'abort:false,junk:false' /etc/malloc.conf".) > > +20160113: > + With the addition of ypldap(8), a new _ypldap user is now required > + during installworld. "mergemaster -p" can be used to add the user > + prior to installworld, as documented in the handbook. > + > 20151216: > The tftp loader (pxeboot) now uses the option root-path directive. As a > consequence it no longer looks for a pxeboot.4th file on the tftp > > Modified: head/etc/master.passwd > ============================================================================== > --- head/etc/master.passwd Wed Jan 13 01:32:04 2016 (r293800) > +++ head/etc/master.passwd Wed Jan 13 01:49:35 2016 (r293801) > @@ -22,5 +22,6 @@ uucp:*:66:66::0:0:UUCP pseudo-user:/var/ > pop:*:68:6::0:0:Post Office Owner:/nonexistent:/usr/sbin/nologin > auditdistd:*:78:77::0:0:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin > www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin > +_ypldap:*:93:93::0:0:YP Ldap unprivileged user:/var/empty:/usr/sbin/nologin > hast:*:845:845::0:0:HAST unprivileged user:/var/empty:/usr/sbin/nologin > nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin > > Added: head/share/examples/ypldap/ypldap.conf > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/share/examples/ypldap/ypldap.conf Wed Jan 13 01:49:35 2016 (r293801) > @@ -0,0 +1,40 @@ > +$FreeBSD$ > +domain "freebsd.org" > +interval 60 > +provide map "passwd.byname" > +provide map "passwd.byuid" > +provide map "group.byname" > +provide map "group.bygid" > +provide map "netid.byname" > + > +directory "127.0.0.1" { > + # directory options > + binddn "cn=ldap,dc=freebsd,dc=org" > + bindcred "secret" > + basedn "dc=freebsd.,dc=org" > + # starting point for groups directory search, default to basedn > + groupdn "ou=Groups,dc=freebsd,dc=org" > + > + # passwd maps configuration (RFC 2307 posixAccount object class) > + passwd filter "(objectClass=posixAccount)" > + > + attribute name maps to "uid" > + fixed attribute passwd "*" > + attribute uid maps to "uidNumber" > + attribute gid maps to "gidNumber" > + attribute gecos maps to "cn" > + attribute home maps to "homeDirectory" > + attribute shell maps to "loginShell" > + fixed attribute change "0" > + fixed attribute expire "0" > + fixed attribute class "" > + > + # group maps configuration (RFC 2307 posixGroup object class) > + group filter "(objectClass=posixGroup)" > + > + attribute groupname maps to "cn" > + fixed attribute grouppasswd "*" > + attribute groupgid maps to "gidNumber" > + # memberUid returns multiple group members > + list groupmembers maps to "memberUid" > +} > > Modified: head/usr.sbin/ypldap/yp.c > ============================================================================== > --- head/usr.sbin/ypldap/yp.c Wed Jan 13 01:32:04 2016 (r293800) > +++ head/usr.sbin/ypldap/yp.c Wed Jan 13 01:49:35 2016 (r293801) > @@ -83,10 +83,10 @@ void > yp_enable_events(void) > { > int i; > - extern fd_set svc_fdset; > + extern fd_set svc_fdset; > struct yp_event *ye; > > - for (i = 0; i < getdtablesize(); i++) { > + for (i = 0; i < FD_SETSIZE; i++) { > if (FD_ISSET(i, &svc_fdset)) { > if ((ye = calloc(1, sizeof(*ye))) == NULL) > fatal(NULL); > > Modified: head/usr.sbin/ypldap/ypldap.conf.5 > ============================================================================== > --- head/usr.sbin/ypldap/ypldap.conf.5 Wed Jan 13 01:32:04 2016 (r293800) > +++ head/usr.sbin/ypldap/ypldap.conf.5 Wed Jan 13 01:49:35 2016 (r293801) > @@ -15,7 +15,7 @@ > .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF > .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. > .\" > -.Dd $Mdocdate: April 30 2012 $ > +.Dd $Mdocdate: January 13 2016 $ > .Dt YPLDAP.CONF 5 > .Os > .Sh NAME > @@ -155,6 +155,9 @@ Use the supplied LDAP filter to retrieve > .It Pa /etc/ypldap.conf > .Xr ypldap 8 > configuration file. > +.It Pa /usr/share/example/ypldap/ypldap.conf > +.Xr ypldap 8 > +configuration file example. > .El > .Sh SEE ALSO > .Xr ypbind 8 , > From owner-svn-src-all@freebsd.org Sun Jan 24 14:13:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A71C69C2C50 for ; Sun, 24 Jan 2016 14:13:38 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qg0-x230.google.com (mail-qg0-x230.google.com [IPv6:2607:f8b0:400d:c04::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5D660FA3 for ; Sun, 24 Jan 2016 14:13:38 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qg0-x230.google.com with SMTP id 6so91281308qgy.1 for ; Sun, 24 Jan 2016 06:13:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=nVeM28EElP2c57G60j+MRwWZxy4xcqW7nvIcFM2rQxk=; b=uzzdDEqdFvGLMjJesICihw7J3XSCXtseZFpiCCnitZ6CYN6ZfmhnnIufO4YcH35t6a +dyle2DT6IPgk5x/VgS6HyByXX7LEmEi4SEPdjVfno9CEDI8JDpkzr1nPcnrVmHsQ5V6 +B+5Zg0cbVuY8J5iyvQWDyd0RFTWYNa+GKo5/WYAFeGj/YL/+GTf9MFjbDt0PRTWQwpv x1DraaY5RctgoMtApMlQ2xeWT3WeNzYi62NocEByM8xpseNpFVNkebPrGVprK0zTya4Z f0PlrD/s8UN1PhGWP5c/9aiF339gOuDAyWN8DHRX5I7npFcKzFabSG4vQew8akDh45kd p1yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=nVeM28EElP2c57G60j+MRwWZxy4xcqW7nvIcFM2rQxk=; b=XGXWCSMqUGA4AL617cummK6b+gaauHqj7IQ2lCrT4vxeBJKSqJ4Hq+3MY4HK2C8r7m S7jqQKzItiK28P++Xg3LcOjEybZzhvD6xS8E+/IPFMWcUMP8L2PKouCb1FsIn5bsE0w5 jDsJxu3+b4eeiqmzwsrjUN/hhlLGwF4Jah9wJzfIBj+KL/J+KOndr3jsX6PmSq4YNsSz 7M38slpihb3uRvqAMFiGN1RCHMYWNLBnsZWIfbEpKZ65nGG/9XbHa4Ib9+YSJNFv+a/z k6TLJAyzO99bmiRcJHBFgbaoQuHcrbCIPnkdULU+cjBxhRWC3OzsI9W3DEREFLQtT89U fIkA== X-Gm-Message-State: AG10YOR05dOBYyPgG96+ArwDPguUoCw4XwyxGae7uEdfqI2jqt2quseczTH2SatSJHHjo/z1 X-Received: by 10.140.171.5 with SMTP id r5mr16812202qhr.51.1453644817449; Sun, 24 Jan 2016 06:13:37 -0800 (PST) Received: from mutt-hardenedbsd (c-73-135-80-144.hsd1.md.comcast.net. [73.135.80.144]) by smtp.gmail.com with ESMTPSA id l139sm6874931qhc.24.2016.01.24.06.13.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 24 Jan 2016 06:13:35 -0800 (PST) Date: Sun, 24 Jan 2016 09:13:33 -0500 From: Shawn Webb To: Alan Somers Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294329 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys Message-ID: <20160124141333.GA19117@mutt-hardenedbsd> References: <201601191700.u0JH0P6k061610@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="2oS5YaxWCcQjTEyO" Content-Disposition: inline In-Reply-To: <201601191700.u0JH0P6k061610@repo.freebsd.org> X-Operating-System: FreeBSD mutt-hardenedbsd 11.0-CURRENT-HBSD FreeBSD 11.0-CURRENT-HBSD X-PGP-Key: http://pgp.mit.edu/pks/lookup?op=vindex&search=0x6A84658F52456EEE User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 14:13:38 -0000 --2oS5YaxWCcQjTEyO Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jan 19, 2016 at 05:00:25PM +0000, Alan Somers wrote: > Author: asomers > Date: Tue Jan 19 17:00:25 2016 > New Revision: 294329 > URL: https://svnweb.freebsd.org/changeset/base/294329 >=20 > Log: > Disallow zvol-backed ZFS pools > =20 > Using zvols as backing devices for ZFS pools is fraught with panics and > deadlocks. For example, attempting to online a missing device in the > presence of a zvol can cause a panic when vdev_geom tastes the zvol. B= etter > to completely disable vdev_geom from ever opening a zvol. The solution > relies on setting a thread-local variable during vdev_geom_open, and > returning EOPNOTSUPP during zvol_open if that thread-local variable is = set. > =20 > Remove the check for MUTEX_HELD(&zfsdev_state_lock) in zvol_open. Its i= ntent > was to prevent a recursive mutex acquisition panic. However, the new ch= eck > for the thread-local variable also fixes that problem. > =20 > Also, fix a panic in vdev_geom_taste_orphan. For an unknown reason, this > function was set to panic. But it can occur that a device disappears du= ring > tasting, and it causes no problems to ignore this departure. > =20 > Reviewed by: delphij > MFC after: 1 week > Relnotes: yes > Sponsored by: Spectra Logic Corp > Differential Revision: https://reviews.freebsd.org/D4986 I've just been bit by this pretty hard. I have a bhyve VM that's backed by a zvol. The VM is running root-on-zfs. I wrote some experimental code that's now preventing the VM from booting (kernel panic due to userland change). Since I can't import the pool, I have no way of fixing the problem. I'm probably just going to go revert this commit locally on my box so I can get some work done. Thanks, --=20 Shawn Webb HardenedBSD GPG Key ID: 0x6A84658F52456EEE GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89 3D9E 6A84 658F 5245 6EEE --2oS5YaxWCcQjTEyO Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWpNwKAAoJEGqEZY9SRW7u0MUP/i7mAOrXGAWq9LUGWbZ2Khiq CIfq9DUKtwDvfEMSqk8tpvyMyqXll68BcFcZBT7lPOOX4DUhkKyYsvhllzu9Yq/a UHA+tXO/64WEXwTCMKBp3pPARr/wD7BRHturAQMgfsBmjWS3LbNXlle3fSMDfq5f X83wsvmU7AbYfmLS3twr9dP4kgp+LFcgGLC8zLHE7HkESXq/rEblLxrTUJCkdZuZ kT79/PkHrr0E8nhyOojCadLHfg1V0toc4Gj03ADHi17G3Bh5P8AZyniZa6fOdXtO Moc8+yMqqAmwh7J/R1QxNtGATs8oEhjgz+55jRUFVml+qlExC7aXh0PrOHSPkPc7 6890Z3HFSahDYbIfBQcku/O41i4DTOticyaAJ82O2Gc8VI4SZLagziai8RIGyETR qhqxJP3jP+g3KoF+QIQu72Ea6p/ww67Edweq80oHfSYsKKSRMP/lFrulIc4E1eP9 QHORBECiFnRvU0FQCNSuSeQ9W0IA5/Rl0Du7NNjaGpd+xsNlHKrjy50FmzgG/GWu HItpdZzQ6QhBbno2mr8AcyL4XoTi9sEWXHeKOWLx9VWqiYCfUKgkFAKh4VoJ+79r LbtMDbjDYstdnSTL7LUerRSz7iSPs/jI4Esoku4LZoCbV22ao0YiXWysR6BwSl0a L8pQ/dPnyR8VtAn7QnAb =1JIc -----END PGP SIGNATURE----- --2oS5YaxWCcQjTEyO-- From owner-svn-src-all@freebsd.org Sun Jan 24 14:20:17 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 654289C2FBB; Sun, 24 Jan 2016 14:20:17 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 2712F859; Sun, 24 Jan 2016 14:20:16 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from Julian-MBP3.local (50-196-156-133-static.hfc.comcastbusiness.net [50.196.156.133]) (authenticated bits=0) by vps1.elischer.org (8.15.2/8.15.2) with ESMTPSA id u0OEJmLP085450 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Sun, 24 Jan 2016 06:19:53 -0800 (PST) (envelope-from julian@freebsd.org) Subject: Re: svn commit: r294329 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys To: Shawn Webb , Alan Somers References: <201601191700.u0JH0P6k061610@repo.freebsd.org> <20160124141333.GA19117@mutt-hardenedbsd> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Xin LI From: Julian Elischer Message-ID: <56A4DD7E.7040303@freebsd.org> Date: Sun, 24 Jan 2016 22:19:42 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160124141333.GA19117@mutt-hardenedbsd> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 14:20:17 -0000 On 24/01/2016 10:13 PM, Shawn Webb wrote: > On Tue, Jan 19, 2016 at 05:00:25PM +0000, Alan Somers wrote: >> Author: asomers >> Date: Tue Jan 19 17:00:25 2016 >> New Revision: 294329 >> URL: https://svnweb.freebsd.org/changeset/base/294329 >> >> Log: >> Disallow zvol-backed ZFS pools >> >> Using zvols as backing devices for ZFS pools is fraught with panics and >> deadlocks. For example, attempting to online a missing device in the >> presence of a zvol can cause a panic when vdev_geom tastes the zvol. Better >> to completely disable vdev_geom from ever opening a zvol. The solution >> relies on setting a thread-local variable during vdev_geom_open, and >> returning EOPNOTSUPP during zvol_open if that thread-local variable is set. >> >> Remove the check for MUTEX_HELD(&zfsdev_state_lock) in zvol_open. Its intent >> was to prevent a recursive mutex acquisition panic. However, the new check >> for the thread-local variable also fixes that problem. >> >> Also, fix a panic in vdev_geom_taste_orphan. For an unknown reason, this >> function was set to panic. But it can occur that a device disappears during >> tasting, and it causes no problems to ignore this departure. >> >> Reviewed by: delphij >> MFC after: 1 week >> Relnotes: yes >> Sponsored by: Spectra Logic Corp >> Differential Revision: https://reviews.freebsd.org/D4986 > I've just been bit by this pretty hard. I have a bhyve VM that's backed > by a zvol. The VM is running root-on-zfs. I wrote some experimental code > that's now preventing the VM from booting (kernel panic due to userland > change). Since I can't import the pool, I have no way of fixing the > problem. > > I'm probably just going to go revert this commit locally on my box so I > can get some work done. I use an md device to do this in bhyve but I was considering using a zvol. Populating it in the host system and then presenting it to the VM as a disk. maybe it could be enabled with a sysctl? Is the problem always present? > > Thanks, > From owner-svn-src-all@freebsd.org Sun Jan 24 14:35:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D32287537; Sun, 24 Jan 2016 14:35:22 +0000 (UTC) (envelope-from cschuber@gmail.com) Received: from mail-pf0-x232.google.com (mail-pf0-x232.google.com [IPv6:2607:f8b0:400e:c00::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A32641B3; Sun, 24 Jan 2016 14:35:22 +0000 (UTC) (envelope-from cschuber@gmail.com) Received: by mail-pf0-x232.google.com with SMTP id e65so68302853pfe.0; Sun, 24 Jan 2016 06:35:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:mime-version:from:subject:date:to:cc:content-type; bh=kRB229AmBlHEx8ARzNEdP21zQtL1MEXdgo7LTrlh2/s=; b=yaYIkAPqrt8+F/Bt3z9euy3oS7hzdDQw1S4BesGIJtKxfjGfxDFWhdP2WIaeFHyCUX Qop18RjFiEPapV6Rccvzv0l66ZnrgQnOlkXCbXR/lj7p5zVyiDENQOfR9Q/dVErNODHc RZonRSE0/lmy6n3iyhtPmqOt3rSFARVqs9ANpv61q0P6eaQCd1MokxJ0UUUJGYAUEvWI KLIBVZvinttNTDbQNtLbQ5P+SoMvBp20XMH74oQKEeqdbZ2X952bjnYst1E0+Px7ORqG yQvqn2msa9IpqyY7FfWkXiVvVKASYZjOJHfPRHqVJ1blMHASfas2kwD7cO8kU7NQslt3 P6Xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:mime-version:from:subject:date:to:cc :content-type; bh=kRB229AmBlHEx8ARzNEdP21zQtL1MEXdgo7LTrlh2/s=; b=QnViE9q+TyWubcLFalNoZEzqitUSDl5KArQeIYMbsGtYtxTLOrwzD+CWMSMWpffmPb mDAkP53LqEmmuDepgFbsv0TWH472U2hCFePjSWjfHhy6nmGomJOuoDLbSbfT42A9t540 3UHEjH0LI4Aj5H4T4r0yUmLh8Nt29qUj5vsGnST+Cf7+yy2EEmev+b7QE6FDOuMut+59 LG/zRXt6X7/7oy1FFLGX+QjtwE1ZKNKgMFnSa+6of6PGM6416DwqR2ElD6qoSR9j1i7R PXx0i3S9+0321xVe45Fe86MIbW4xrnj42ENtdVDDT9sDrFXTrfE3Sh/13Jfkt0WoRPMQ mldg== X-Gm-Message-State: AG10YOS6aESrxDG7mi5g9V7RwbZdXfWlZC7wPUnt1ooaEATSMGdn21KEtckz+8vWFo0xcA== X-Received: by 10.98.70.17 with SMTP id t17mr18765725pfa.107.1453646122230; Sun, 24 Jan 2016 06:35:22 -0800 (PST) Received: from [10.168.3.103] (S0106d4ca6d8943b0.gv.shawcable.net. [24.68.134.59]) by smtp.gmail.com with ESMTPSA id qz9sm22135447pab.39.2016.01.24.06.35.21 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 24 Jan 2016 06:35:21 -0800 (PST) Message-ID: <56a4e129.a98b420a.ebf8f.ffffe225@mx.google.com> MIME-Version: 1.0 From: Cy Schubert Subject: RE: svn commit: r294329 - inhead/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys Date: Sun, 24 Jan 2016 06:35:22 -0800 To: Julian Elischer , Shawn Webb , Alan Somers CC: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" , Xin LI , "cy.schubert@cschubert.com" Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 14:35:23 -0000 A previous email in this thread said that a sysctl will be committed before= MFC. I personally have never encountered this particular problem. Sent from my cellphone, ~Cy -----Original Message----- From: Julian Elischer Sent: 24/01/2016 06:20 To: Shawn Webb; Alan Somers Cc: src-committers@freebsd.org; svn-src-all@freebsd.org; svn-src-head@freeb= sd.org; Xin LI Subject: Re: svn commit: r294329 - inhead/sys/cddl/contrib/opensolaris/uts/= common/fs/zfs: . sys On 24/01/2016 10:13 PM, Shawn Webb wrote: > On Tue, Jan 19, 2016 at 05:00:25PM +0000, Alan Somers wrote: >> Author: asomers >> Date: Tue Jan 19 17:00:25 2016 >> New Revision: 294329 >> URL: https://svnweb.freebsd.org/changeset/base/294329 >> >> Log: >> Disallow zvol-backed ZFS pools >> =20 >> Using zvols as backing devices for ZFS pools is fraught with panics a= nd >> deadlocks. For example, attempting to online a missing device in the >> presence of a zvol can cause a panic when vdev_geom tastes the zvol. = Better >> to completely disable vdev_geom from ever opening a zvol. The solutio= n >> relies on setting a thread-local variable during vdev_geom_open, and >> returning EOPNOTSUPP during zvol_open if that thread-local variable i= s set. >> =20 >> Remove the check for MUTEX_HELD(&zfsdev_state_lock) in zvol_open. Its= intent >> was to prevent a recursive mutex acquisition panic. However, the new = check >> for the thread-local variable also fixes that problem. >> =20 >> Also, fix a panic in vdev_geom_taste_orphan. For an unknown reason, t= his >> function was set to panic. But it can occur that a device disappears = during >> tasting, and it causes no problems to ignore this departure. >> =20 >> Reviewed by: delphij >> MFC after: 1 week >> Relnotes: yes >> Sponsored by: Spectra Logic Corp >> Differential Revision: https://reviews.freebsd.org/D4986 > I've just been bit by this pretty hard. I have a bhyve VM that's backed > by a zvol. The VM is running root-on-zfs. I wrote some experimental code > that's now preventing the VM from booting (kernel panic due to userland > change). Since I can't import the pool, I have no way of fixing the > problem. > > I'm probably just going to go revert this commit locally on my box so I > can get some work done. I use an md device to do this in bhyve but I was considering using a zvol. Populating it in the host system and then presenting it to the VM as a=20 disk. maybe it could be enabled with a sysctl? Is the problem always present? > > Thanks, > From owner-svn-src-all@freebsd.org Sun Jan 24 15:12:51 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 695D09D2D58; Sun, 24 Jan 2016 15:12:51 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 366A975B; Sun, 24 Jan 2016 15:12:51 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OFCoor001462; Sun, 24 Jan 2016 15:12:50 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OFCocB001461; Sun, 24 Jan 2016 15:12:50 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601241512.u0OFCocB001461@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Sun, 24 Jan 2016 15:12:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294664 - head/contrib/elftoolchain/libelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 15:12:51 -0000 Author: br Date: Sun Jan 24 15:12:49 2016 New Revision: 294664 URL: https://svnweb.freebsd.org/changeset/base/294664 Log: Add config for RISC-V ISA. Reviewed by: emaste Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D5046 Modified: head/contrib/elftoolchain/libelf/_libelf_config.h Modified: head/contrib/elftoolchain/libelf/_libelf_config.h ============================================================================== --- head/contrib/elftoolchain/libelf/_libelf_config.h Sun Jan 24 13:38:41 2016 (r294663) +++ head/contrib/elftoolchain/libelf/_libelf_config.h Sun Jan 24 15:12:49 2016 (r294664) @@ -97,6 +97,12 @@ #define LIBELF_BYTEORDER ELFDATA2MSB #define LIBELF_CLASS ELFCLASS32 +#elif defined(__riscv64) + +#define LIBELF_ARCH EM_RISCV +#define LIBELF_BYTEORDER ELFDATA2LSB +#define LIBELF_CLASS ELFCLASS64 + #elif defined(__sparc__) #define LIBELF_ARCH EM_SPARCV9 From owner-svn-src-all@freebsd.org Sun Jan 24 15:15:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E3CCF9D2FB0; Sun, 24 Jan 2016 15:15:58 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B6C2AC24; Sun, 24 Jan 2016 15:15:58 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OFFvLt001609; Sun, 24 Jan 2016 15:15:57 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OFFvhb001608; Sun, 24 Jan 2016 15:15:57 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601241515.u0OFFvhb001608@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Sun, 24 Jan 2016 15:15:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294665 - head/usr.bin/ldd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 15:15:59 -0000 Author: br Date: Sun Jan 24 15:15:57 2016 New Revision: 294665 URL: https://svnweb.freebsd.org/changeset/base/294665 Log: We don't support a.out executables on RISC-V. Reviewed by: emaste Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D5048 Modified: head/usr.bin/ldd/ldd.c Modified: head/usr.bin/ldd/ldd.c ============================================================================== --- head/usr.bin/ldd/ldd.c Sun Jan 24 15:12:49 2016 (r294664) +++ head/usr.bin/ldd/ldd.c Sun Jan 24 15:15:57 2016 (r294665) @@ -48,8 +48,8 @@ __FBSDID("$FreeBSD$"); #include "extern.h" -/* We don't support a.out executables on arm64 */ -#ifndef __aarch64__ +/* We don't support a.out executables on arm64 and riscv */ +#if !defined(__aarch64__) && !defined(__riscv__) #include #define AOUT_SUPPORTED #endif From owner-svn-src-all@freebsd.org Sun Jan 24 15:45:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3ED2C7F1E; Sun, 24 Jan 2016 15:45:04 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0FF51D3F; Sun, 24 Jan 2016 15:45:03 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OFj36B012372; Sun, 24 Jan 2016 15:45:03 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OFiwko012314; Sun, 24 Jan 2016 15:44:58 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601241544.u0OFiwko012314@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sun, 24 Jan 2016 15:44:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294666 - stable/10/crypto/openssh X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 15:45:04 -0000 Author: des Date: Sun Jan 24 15:44:57 2016 New Revision: 294666 URL: https://svnweb.freebsd.org/changeset/base/294666 Log: MFH (r263234, r263691, r266465, r290671, r290672, r290673, r290674, r294320, r294322, r294324, r294330, r294469, r294494, r294466) Reduce diffs to head in preparation for removing HPN and None. Added: stable/10/crypto/openssh/freebsd-post-merge.sh (contents, props changed) - copied, changed from r263691, head/crypto/openssh/freebsd-post-merge.sh stable/10/crypto/openssh/freebsd-pre-merge.sh (contents, props changed) - copied, changed from r263691, head/crypto/openssh/freebsd-pre-merge.sh Deleted: stable/10/crypto/openssh/FREEBSD-tricks stable/10/crypto/openssh/config.h.in stable/10/crypto/openssh/configure stable/10/crypto/openssh/schnorr.c Modified: stable/10/crypto/openssh/FREEBSD-upgrade stable/10/crypto/openssh/auth-krb5.c (contents, props changed) stable/10/crypto/openssh/auth-pam.c (contents, props changed) stable/10/crypto/openssh/auth2-chall.c (contents, props changed) stable/10/crypto/openssh/bufaux.c (contents, props changed) stable/10/crypto/openssh/buffer.c stable/10/crypto/openssh/channels.c stable/10/crypto/openssh/cipher.c stable/10/crypto/openssh/clientloop.c stable/10/crypto/openssh/compat.c stable/10/crypto/openssh/config.h stable/10/crypto/openssh/digest-libc.c (contents, props changed) stable/10/crypto/openssh/freebsd-configure.sh stable/10/crypto/openssh/kex.c stable/10/crypto/openssh/misc.c stable/10/crypto/openssh/moduli.5 stable/10/crypto/openssh/monitor.c (contents, props changed) stable/10/crypto/openssh/monitor_wrap.c (contents, props changed) stable/10/crypto/openssh/mux.c (contents, props changed) stable/10/crypto/openssh/packet.c stable/10/crypto/openssh/pathnames.h (contents, props changed) stable/10/crypto/openssh/readconf.c stable/10/crypto/openssh/scp.1 stable/10/crypto/openssh/servconf.c stable/10/crypto/openssh/serverloop.c stable/10/crypto/openssh/session.c stable/10/crypto/openssh/sftp-common.c (contents, props changed) stable/10/crypto/openssh/sftp-server.8 (contents, props changed) stable/10/crypto/openssh/sftp.1 stable/10/crypto/openssh/sftp.c stable/10/crypto/openssh/ssh-add.1 stable/10/crypto/openssh/ssh-gss.h (contents, props changed) stable/10/crypto/openssh/ssh-keygen.1 (contents, props changed) stable/10/crypto/openssh/ssh-keyscan.1 (contents, props changed) stable/10/crypto/openssh/ssh-keysign.8 stable/10/crypto/openssh/ssh-pkcs11-helper.8 stable/10/crypto/openssh/ssh.1 stable/10/crypto/openssh/ssh.c stable/10/crypto/openssh/ssh_config (contents, props changed) stable/10/crypto/openssh/ssh_config.5 stable/10/crypto/openssh/ssh_namespace.h stable/10/crypto/openssh/sshconnect.c stable/10/crypto/openssh/sshconnect2.c stable/10/crypto/openssh/sshd.8 stable/10/crypto/openssh/sshd.c stable/10/crypto/openssh/sshd_config (contents, props changed) stable/10/crypto/openssh/sshd_config.5 Directory Properties: stable/10/ (props changed) stable/10/crypto/openssh/sandbox-capsicum.c (props changed) Modified: stable/10/crypto/openssh/FREEBSD-upgrade ============================================================================== --- stable/10/crypto/openssh/FREEBSD-upgrade Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/FREEBSD-upgrade Sun Jan 24 15:44:57 2016 (r294666) @@ -3,81 +3,97 @@ FreeBSD maintainer's guide to OpenSSH-portable ============================================== -XXX -XXX this needs a complete rewrite -XXX svn merge from vendor branch, resolve conflicts manually -XXX (see FREEBSD-tricks for tips on how to reduce conflicts) -XXX run freebsd-configure.sh to generate config.h and krb5_config.h -XXX svn diff Makefile.in to see if the Makefiles need adjusting -XXX +00) Make sure your mail spool has plenty of free space. It'll fill up + pretty fast once you're done with this checklist. -0) Make sure your mail spool has plenty of free space. It'll fill up - pretty fast once you're done with this checklist. +01) Download the latest OpenSSH-portable tarball and signature from + OpenBSD (ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/). -1) Grab the latest OpenSSH-portable tarball from the OpenBSD FTP - site (ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/) +02) Verify the signature: -2) Unpack the tarball in a suitable directory. + $ gpg --verify openssh-X.YpZ.tar.gz.asc - $ tar xf openssh-X.YpZ.tar.gz \ - -X /usr/src/crypto/openssh/FREEBSD-Xlist +03) Unpack the tarball in a suitable directory: -3) Remove trash: + $ tar xf openssh-X.YpZ.tar.gz - Make sure -X took care of everything, and if it didn't, make sure - to update FREEBSD-Xlist so you won't miss it the next time. A good - way to do this is to run a test import and see if any new files - show up: +04) Copy to the vendor directory: - $ cvs -n import src/crypto/openssh OPENSSH x | grep \^N + $ svn co svn+ssh://svn.freebsd.org/base/vendor-crypto/openssh/dist + $ rsync --archive --delete openssh-X.YpZ/ dist/ -4) Import the sources: +05) Take care of added / deleted files: - $ cvs import src/crypto/openssh OPENSSH OpenSSH_X_YpZ + $ svn rm $(svn stat dist | awk '$1 == "!" { print $2 }') + $ svn add --no-auto-props $(svn stat dist | awk '$1 == "?" { print $2 }') -5) Resolve conflicts. Remember to bump the version number and - addendum in version.h, and update the default value in - ssh{,d}_config and ssh{,d}_config.5. +06) Commit: -6) Generate configure and config.h.in: + $ svn commit -m "Vendor import of OpenSSH X.YpZ." dist - $ autoconf - $ autoheader +07) Tag: - Note: this requires a recent version of autoconf, not autoconf213. + $ svn copy -m "Tag OpenSSH X.YpZ." \ + svn+ssh://svn.freebsd.org/base/vendor-crypto/openssh/dist \ + svn+ssh://svn.freebsd.org/base/vendor-crypto/openssh/X.YpZ -7) Run configure with the appropriate arguments: +08) Check out head and run the pre-merge script: - $ ./configure --prefix=/usr --sysconfdir=/etc/ssh \ - --with-pam --with-tcp-wrappers --with-libedit \ - --with-ssl-engine + $ svn co svn+ssh://svn.freebsd.org/base/head + $ cd head/crypto/openssh + $ sh freebsd-pre-merge.sh - This will regenerate config.h, which must be committed along with - the rest. +09) Merge from the vendor branch: - Note that we don't want to configure OpenSSH for Kerberos using - configure since we have to be able to turn it on or off depending - on the value of MK_KERBEROS. Our Makefiles take care of this. + $ svn merge -cNNNNNN \^/vendor-crypto/openssh/dist . -8) If source files have been added or removed, update the appropriate - makefiles to reflect changes in the vendor's Makefile.in. +0A) Resolve conflicts. Remember to bump the version addendum in + version.h, and update the default value in ssh{,d}_config and + ssh{,d}_config.5. -9) Build libssh. Follow the instructions in ssh_namespace.h to get a - list of new symbols. Update ssh_namespace.h, build everything, - install and test. +0B) Diff against the vendor branch: -A) Build and test the pam_ssh PAM module. It gropes around libssh's - internals and will break if something significant changes or if - ssh_namespace.h is out of whack. + $ svn diff \^/vendor-crypto/openssh/dist . -B) Re-commit everything on repoman (you *did* use a test repo for - this, didn't you?) + Files that have modifications relative to the vendor code, and + only those files, must have the svn:keywords property set to + FreeBSD=%H and be listed in the 'keywords' file created by the + pre-merge script. + +0C) Run the post-merge script: + + $ sh freebsd-post-merge.sh + +0D) Run the configure script: + + $ sh freebsd-configure.sh + +0E) Check config.h very carefully. + +0F) If source files have been added or removed, update the appropriate + makefiles to reflect changes in the vendor's Makefile.in. + +10) Build libssh: + + $ cd ../../secure/lib/libssh && make obj && make depend && make + +11) Follow the instructions in ssh_namespace.h to get a list of new + symbols, and them to ssh_namespace.h. Keep it sorted! + +12) Build and install world, reboot, test. Pay particular attention + to pam_ssh(8), which gropes inside libssh and will break if + something significant changes or if ssh_namespace.h is out of + whack. + +13) Commit, and hunker down for the inevitable storm of complaints. An overview of FreeBSD changes to OpenSSH-portable ================================================== +XXX This section is out of date + 0) VersionAddendum The SSH protocol allows for a human-readable version string of up Modified: stable/10/crypto/openssh/auth-krb5.c ============================================================================== --- stable/10/crypto/openssh/auth-krb5.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/auth-krb5.c Sun Jan 24 15:44:57 2016 (r294666) @@ -2,7 +2,7 @@ /* * Kerberos v5 authentication and ticket-passing routines. * - * $FreeBSD: src/crypto/openssh/auth-krb5.c,v 1.6 2001/02/13 16:58:04 assar Exp $ + * $FreeBSD$ */ /* * Copyright (c) 2002 Daniel Kouril. All rights reserved. Modified: stable/10/crypto/openssh/auth-pam.c ============================================================================== --- stable/10/crypto/openssh/auth-pam.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/auth-pam.c Sun Jan 24 15:44:57 2016 (r294666) @@ -45,7 +45,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */ +/* Based on $FreeBSD$ */ #include "includes.h" #include Modified: stable/10/crypto/openssh/auth2-chall.c ============================================================================== --- stable/10/crypto/openssh/auth2-chall.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/auth2-chall.c Sun Jan 24 15:44:57 2016 (r294666) @@ -25,6 +25,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include Modified: stable/10/crypto/openssh/bufaux.c ============================================================================== --- stable/10/crypto/openssh/bufaux.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/bufaux.c Sun Jan 24 15:44:57 2016 (r294666) @@ -38,6 +38,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include Modified: stable/10/crypto/openssh/buffer.c ============================================================================== --- stable/10/crypto/openssh/buffer.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/buffer.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: buffer.c,v 1.35 2014/02/02 03:44:31 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -14,6 +13,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include Modified: stable/10/crypto/openssh/channels.c ============================================================================== --- stable/10/crypto/openssh/channels.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/channels.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: channels.c,v 1.331 2014/02/26 20:29:29 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -41,6 +40,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/cipher.c ============================================================================== --- stable/10/crypto/openssh/cipher.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/cipher.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: cipher.c,v 1.97 2014/02/07 06:55:54 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -37,6 +36,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include Modified: stable/10/crypto/openssh/clientloop.c ============================================================================== --- stable/10/crypto/openssh/clientloop.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/clientloop.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: clientloop.c,v 1.258 2014/02/02 03:44:31 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -61,6 +60,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/compat.c ============================================================================== --- stable/10/crypto/openssh/compat.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/compat.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: compat.c,v 1.82 2013/12/30 23:52:27 djm Exp $ */ -/* $FreeBSD$ */ /* * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. * @@ -25,6 +24,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include Modified: stable/10/crypto/openssh/config.h ============================================================================== --- stable/10/crypto/openssh/config.h Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/config.h Sun Jan 24 15:44:57 2016 (r294666) @@ -1681,6 +1681,11 @@ /* Define if xauth is found in your path */ /* #undef XAUTH_PATH */ +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + /* Number of bits in a file offset, on hosts where this is settable. */ /* #undef _FILE_OFFSET_BITS */ Modified: stable/10/crypto/openssh/digest-libc.c ============================================================================== --- stable/10/crypto/openssh/digest-libc.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/digest-libc.c Sun Jan 24 15:44:57 2016 (r294666) @@ -17,6 +17,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/freebsd-configure.sh ============================================================================== --- stable/10/crypto/openssh/freebsd-configure.sh Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/freebsd-configure.sh Sun Jan 24 15:44:57 2016 (r294666) @@ -7,6 +7,7 @@ configure_args=" --prefix=/usr --sysconfdir=/etc/ssh --with-pam + --with-ssl-dir=/usr --with-tcp-wrappers --with-libedit --with-ssl-engine @@ -15,6 +16,19 @@ configure_args=" set -e +# make sure configure uses the correct compiler +export CC=$(echo ".include " | make -f /dev/stdin -VCC) +export CPP=$(echo ".include " | make -f /dev/stdin -VCPP) +unset CFLAGS CPPFLAGS LDFLAGS LIBS + +# regenerate configure and config.h.in +autoheader +autoconf + +# reset PATH to avoid picking up the wrong libraries +export PATH=/bin:/sbin:/usr/bin:/usr/sbin +unset LD_LIBRARY_PATH + # generate config.h with krb5 and stash it sh configure $configure_args --with-kerberos5 mv config.log config.log.orig Copied and modified: stable/10/crypto/openssh/freebsd-post-merge.sh (from r263691, head/crypto/openssh/freebsd-post-merge.sh) ============================================================================== --- head/crypto/openssh/freebsd-post-merge.sh Mon Mar 24 19:15:13 2014 (r263691, copy source) +++ stable/10/crypto/openssh/freebsd-post-merge.sh Sun Jan 24 15:44:57 2016 (r294666) @@ -1,14 +1,14 @@ #!/bin/sh # -# $FreeBSD$ +# $FreeBSD: stable/10/crypto/openssh/freebsd-post-merge.sh 263691 2014-03-24 19:15:13Z des $ # xargs perl -n -i -e ' print; s/\$(Id|OpenBSD): [^\$]*/\$FreeBSD/ && print; - m/^\#include "includes.h"/ && print "__RCSID(\"\$FreeBSD\$\");\n"; ' keywords +:>rcsid +svn list -R | grep -v '/$' | \ while read f ; do - svn propget svn:keywords $f | grep -q . && echo $f -done >keywords -xargs perl -n -i -e ' + svn proplist -v $f | grep -q 'FreeBSD=%H' || continue + egrep -l '^(#|\.\\"|/\*)[[:space:]]+\$FreeBSD[:\$]' $f >>keywords + egrep -l '__RCSID\("\$FreeBSD[:\$]' $f >>rcsid +done +sort -u keywords rcsid | xargs perl -n -i -e ' $strip = $ARGV if /\$(Id|OpenBSD):.*\$/; - print unless ($strip eq $ARGV && /\$FreeBSD.*\$/); -' mdocdates -xargs perl -p -i -e ' - s/^\.Dd (\w+) (\d+), (\d+)$/.Dd \$Mdocdate: $1 $2 $3 \$/; -' Modified: stable/10/crypto/openssh/misc.c ============================================================================== --- stable/10/crypto/openssh/misc.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/misc.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: misc.c,v 1.92 2013/10/14 23:28:23 djm Exp $ */ -/* $FreeBSD$ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005,2006 Damien Miller. All rights reserved. @@ -26,6 +25,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/moduli.5 ============================================================================== --- stable/10/crypto/openssh/moduli.5 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/moduli.5 Sun Jan 24 15:44:57 2016 (r294666) @@ -13,7 +13,7 @@ .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.Dd September 26, 2012 +.Dd $Mdocdate: September 26 2012 $ .Dt MODULI 5 .Os .Sh NAME Modified: stable/10/crypto/openssh/monitor.c ============================================================================== --- stable/10/crypto/openssh/monitor.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/monitor.c Sun Jan 24 15:44:57 2016 (r294666) @@ -26,6 +26,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/monitor_wrap.c ============================================================================== --- stable/10/crypto/openssh/monitor_wrap.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/monitor_wrap.c Sun Jan 24 15:44:57 2016 (r294666) @@ -26,6 +26,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/mux.c ============================================================================== --- stable/10/crypto/openssh/mux.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/mux.c Sun Jan 24 15:44:57 2016 (r294666) @@ -31,6 +31,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/packet.c ============================================================================== --- stable/10/crypto/openssh/packet.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/packet.c Sun Jan 24 15:44:57 2016 (r294666) @@ -38,6 +38,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include "openbsd-compat/sys-queue.h" Modified: stable/10/crypto/openssh/pathnames.h ============================================================================== --- stable/10/crypto/openssh/pathnames.h Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/pathnames.h Sun Jan 24 15:44:57 2016 (r294666) @@ -1,4 +1,5 @@ /* $OpenBSD: pathnames.h,v 1.24 2013/12/06 13:39:49 markus Exp $ */ +/* $FreeBSD$ */ /* * Author: Tatu Ylonen Modified: stable/10/crypto/openssh/readconf.c ============================================================================== --- stable/10/crypto/openssh/readconf.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/readconf.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: readconf.c,v 1.218 2014/02/23 20:11:36 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland Modified: stable/10/crypto/openssh/scp.1 ============================================================================== --- stable/10/crypto/openssh/scp.1 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/scp.1 Sun Jan 24 15:44:57 2016 (r294666) @@ -10,7 +10,7 @@ .\" .\" $OpenBSD: scp.1,v 1.61 2013/10/20 09:51:26 djm Exp $ .\" -.Dd October 20, 2013 +.Dd $Mdocdate: October 20 2013 $ .Dt SCP 1 .Os .Sh NAME Modified: stable/10/crypto/openssh/servconf.c ============================================================================== --- stable/10/crypto/openssh/servconf.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/servconf.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,6 +1,5 @@ /* $OpenBSD: servconf.c,v 1.249 2014/01/29 06:18:35 djm Exp $ */ -/* $FreeBSD$ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved Modified: stable/10/crypto/openssh/serverloop.c ============================================================================== --- stable/10/crypto/openssh/serverloop.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/serverloop.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: serverloop.c,v 1.170 2014/02/02 03:44:31 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -37,6 +36,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/session.c ============================================================================== --- stable/10/crypto/openssh/session.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/session.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: session.c,v 1.270 2014/01/31 16:39:19 tedu Exp $ */ -/* $FreeBSD$ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved Modified: stable/10/crypto/openssh/sftp-common.c ============================================================================== --- stable/10/crypto/openssh/sftp-common.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sftp-common.c Sun Jan 24 15:44:57 2016 (r294666) @@ -25,6 +25,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/sftp-server.8 ============================================================================== --- stable/10/crypto/openssh/sftp-server.8 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sftp-server.8 Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ .\" $OpenBSD: sftp-server.8,v 1.25 2013/10/14 14:18:56 jmc Exp $ -.\" $FreeBSD$ .\" .\" Copyright (c) 2000 Markus Friedl. All rights reserved. .\" @@ -23,7 +22,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd October 14, 2013 +.Dd $Mdocdate: October 14 2013 $ .Dt SFTP-SERVER 8 .Os .Sh NAME Modified: stable/10/crypto/openssh/sftp.1 ============================================================================== --- stable/10/crypto/openssh/sftp.1 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sftp.1 Sun Jan 24 15:44:57 2016 (r294666) @@ -23,7 +23,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd October 20, 2013 +.Dd $Mdocdate: October 20 2013 $ .Dt SFTP 1 .Os .Sh NAME Modified: stable/10/crypto/openssh/sftp.c ============================================================================== --- stable/10/crypto/openssh/sftp.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sftp.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: sftp.c,v 1.158 2013/11/20 20:54:10 deraadt Exp $ */ -/* $FreeBSD$ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -17,6 +16,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/ssh-add.1 ============================================================================== --- stable/10/crypto/openssh/ssh-add.1 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh-add.1 Sun Jan 24 15:44:57 2016 (r294666) @@ -35,7 +35,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd December 7, 2013 +.Dd $Mdocdate: December 7 2013 $ .Dt SSH-ADD 1 .Os .Sh NAME Modified: stable/10/crypto/openssh/ssh-gss.h ============================================================================== --- stable/10/crypto/openssh/ssh-gss.h Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh-gss.h Sun Jan 24 15:44:57 2016 (r294666) @@ -1,4 +1,5 @@ /* $OpenBSD: ssh-gss.h,v 1.11 2014/02/26 20:28:44 djm Exp $ */ +/* $FreeBSD$ */ /* * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. * Modified: stable/10/crypto/openssh/ssh-keygen.1 ============================================================================== --- stable/10/crypto/openssh/ssh-keygen.1 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh-keygen.1 Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ .\" $OpenBSD: ssh-keygen.1,v 1.120 2014/02/05 20:13:25 naddy Exp $ -.\" $FreeBSD$ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -36,7 +35,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd February 5, 2014 +.Dd $Mdocdate: February 5 2014 $ .Dt SSH-KEYGEN 1 .Os .Sh NAME Modified: stable/10/crypto/openssh/ssh-keyscan.1 ============================================================================== --- stable/10/crypto/openssh/ssh-keyscan.1 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh-keyscan.1 Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ .\" $OpenBSD: ssh-keyscan.1,v 1.34 2014/01/28 14:13:39 jmc Exp $ -.\" $FreeBSD$ .\" .\" Copyright 1995, 1996 by David Mazieres . .\" @@ -7,7 +6,7 @@ .\" permitted provided that due credit is given to the author and the .\" OpenBSD project by leaving this copyright notice intact. .\" -.Dd January 28, 2014 +.Dd $Mdocdate: January 28 2014 $ .Dt SSH-KEYSCAN 1 .Os .Sh NAME Modified: stable/10/crypto/openssh/ssh-keysign.8 ============================================================================== --- stable/10/crypto/openssh/ssh-keysign.8 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh-keysign.8 Sun Jan 24 15:44:57 2016 (r294666) @@ -22,7 +22,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd December 7, 2013 +.Dd $Mdocdate: December 7 2013 $ .Dt SSH-KEYSIGN 8 .Os .Sh NAME Modified: stable/10/crypto/openssh/ssh-pkcs11-helper.8 ============================================================================== --- stable/10/crypto/openssh/ssh-pkcs11-helper.8 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh-pkcs11-helper.8 Sun Jan 24 15:44:57 2016 (r294666) @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd July 16, 2013 +.Dd $Mdocdate: July 16 2013 $ .Dt SSH-PKCS11-HELPER 8 .Os .Sh NAME Modified: stable/10/crypto/openssh/ssh.1 ============================================================================== --- stable/10/crypto/openssh/ssh.1 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh.1 Sun Jan 24 15:44:57 2016 (r294666) @@ -35,7 +35,7 @@ .\" .\" $OpenBSD: ssh.1,v 1.343 2013/12/07 11:58:46 naddy Exp $ .\" $FreeBSD$ -.Dd December 7, 2013 +.Dd $Mdocdate: December 7 2013 $ .Dt SSH 1 .Os .Sh NAME Modified: stable/10/crypto/openssh/ssh.c ============================================================================== --- stable/10/crypto/openssh/ssh.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: ssh.c,v 1.401 2014/02/26 20:18:37 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland Modified: stable/10/crypto/openssh/ssh_config ============================================================================== --- stable/10/crypto/openssh/ssh_config Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh_config Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ # $OpenBSD: ssh_config,v 1.28 2013/09/16 11:35:43 sthen Exp $ -# $FreeBSD$ # This is the ssh client system-wide configuration file. See # ssh_config(5) for more information. This file provides defaults for Modified: stable/10/crypto/openssh/ssh_config.5 ============================================================================== --- stable/10/crypto/openssh/ssh_config.5 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh_config.5 Sun Jan 24 15:44:57 2016 (r294666) @@ -35,7 +35,7 @@ .\" .\" $OpenBSD: ssh_config.5,v 1.185 2014/02/23 20:11:36 djm Exp $ .\" $FreeBSD$ -.Dd March 22, 2015 +.Dd $Mdocdate: February 23 2014 $ .Dt SSH_CONFIG 5 .Os .Sh NAME Modified: stable/10/crypto/openssh/ssh_namespace.h ============================================================================== --- stable/10/crypto/openssh/ssh_namespace.h Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/ssh_namespace.h Sun Jan 24 15:44:57 2016 (r294666) @@ -202,6 +202,7 @@ #define compat20 ssh_compat20 #define compat_cipher_proposal ssh_compat_cipher_proposal #define compat_datafellows ssh_compat_datafellows +#define compat_kex_proposal ssh_compat_kex_proposal #define compat_pkalg_proposal ssh_compat_pkalg_proposal #define convtime ssh_convtime #define crypto_hash_sha512 ssh_crypto_hash_sha512 Modified: stable/10/crypto/openssh/sshconnect.c ============================================================================== --- stable/10/crypto/openssh/sshconnect.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sshconnect.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: sshconnect.c,v 1.246 2014/02/06 22:21:01 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -15,6 +14,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/sshconnect2.c ============================================================================== --- stable/10/crypto/openssh/sshconnect2.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sshconnect2.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: sshconnect2.c,v 1.204 2014/02/02 03:44:32 djm Exp $ */ -/* $FreeBSD$ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -26,6 +25,7 @@ */ #include "includes.h" +__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/sshd.8 ============================================================================== --- stable/10/crypto/openssh/sshd.8 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sshd.8 Sun Jan 24 15:44:57 2016 (r294666) @@ -35,7 +35,7 @@ .\" .\" $OpenBSD: sshd.8,v 1.273 2013/12/07 11:58:46 naddy Exp $ .\" $FreeBSD$ -.Dd December 7, 2013 +.Dd $Mdocdate: December 7 2013 $ .Dt SSHD 8 .Os .Sh NAME Modified: stable/10/crypto/openssh/sshd.c ============================================================================== --- stable/10/crypto/openssh/sshd.c Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sshd.c Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ /* $OpenBSD: sshd.c,v 1.420 2014/02/26 21:53:37 markus Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland Modified: stable/10/crypto/openssh/sshd_config ============================================================================== --- stable/10/crypto/openssh/sshd_config Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sshd_config Sun Jan 24 15:44:57 2016 (r294666) @@ -1,5 +1,4 @@ # $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $ -# $FreeBSD$ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. @@ -128,7 +127,7 @@ # override default of no subsystems Subsystem sftp /usr/libexec/sftp-server -# Disable HPN tuning improvements. +# Change to yes to disable HPN tuning improvements. #HPNDisabled no # Buffer size for HPN to non-HPN connections. Modified: stable/10/crypto/openssh/sshd_config.5 ============================================================================== --- stable/10/crypto/openssh/sshd_config.5 Sun Jan 24 15:15:57 2016 (r294665) +++ stable/10/crypto/openssh/sshd_config.5 Sun Jan 24 15:44:57 2016 (r294666) @@ -35,7 +35,7 @@ .\" .\" $OpenBSD: sshd_config.5,v 1.172 2014/02/27 22:47:07 djm Exp $ .\" $FreeBSD$ -.Dd March 22, 2015 +.Dd $Mdocdate: February 27 2014 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME From owner-svn-src-all@freebsd.org Sun Jan 24 17:01:35 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C6E39A1D004; Sun, 24 Jan 2016 17:01:35 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 847CE76F; Sun, 24 Jan 2016 17:01:35 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OH1YII034367; Sun, 24 Jan 2016 17:01:34 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OH1YHn034366; Sun, 24 Jan 2016 17:01:34 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201601241701.u0OH1YHn034366@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sun, 24 Jan 2016 17:01:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294667 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 17:01:36 -0000 Author: jilles Date: Sun Jan 24 17:01:34 2016 New Revision: 294667 URL: https://svnweb.freebsd.org/changeset/base/294667 Log: sh: Remove a global variable from cd.c. Modified: head/bin/sh/cd.c Modified: head/bin/sh/cd.c ============================================================================== --- head/bin/sh/cd.c Sun Jan 24 15:44:57 2016 (r294666) +++ head/bin/sh/cd.c Sun Jan 24 17:01:34 2016 (r294667) @@ -68,14 +68,13 @@ __FBSDID("$FreeBSD$"); static int cdlogical(char *); static int cdphysical(char *); static int docd(char *, int, int); -static char *getcomponent(void); +static char *getcomponent(char **); static char *findcwd(char *); static void updatepwd(char *); static char *getpwd(void); static char *getpwd2(void); static char *curdir = NULL; /* current working directory */ -static char *cdcomppath; int cdcmd(int argc __unused, char **argv __unused) @@ -177,6 +176,7 @@ cdlogical(char *dest) char *p; char *q; char *component; + char *path; struct stat statb; int first; int badstat; @@ -187,14 +187,14 @@ cdlogical(char *dest) * next time we get the value of the current directory. */ badstat = 0; - cdcomppath = stsavestr(dest); + path = stsavestr(dest); STARTSTACKSTR(p); if (*dest == '/') { STPUTC('/', p); - cdcomppath++; + path++; } first = 1; - while ((q = getcomponent()) != NULL) { + while ((q = getcomponent(&path)) != NULL) { if (q[0] == '\0' || (q[0] == '.' && q[1] == '\0')) continue; if (! first) @@ -243,25 +243,25 @@ cdphysical(char *dest) } /* - * Get the next component of the path name pointed to by cdcomppath. - * This routine overwrites the string pointed to by cdcomppath. + * Get the next component of the path name pointed to by *path. + * This routine overwrites *path and the string pointed to by it. */ static char * -getcomponent(void) +getcomponent(char **path) { char *p; char *start; - if ((p = cdcomppath) == NULL) + if ((p = *path) == NULL) return NULL; - start = cdcomppath; + start = *path; while (*p != '/' && *p != '\0') p++; if (*p == '\0') { - cdcomppath = NULL; + *path = NULL; } else { *p++ = '\0'; - cdcomppath = p; + *path = p; } return start; } @@ -272,6 +272,7 @@ findcwd(char *dir) { char *new; char *p; + char *path; /* * If our argument is NULL, we don't know the current directory @@ -280,14 +281,14 @@ findcwd(char *dir) */ if (dir == NULL || curdir == NULL) return getpwd2(); - cdcomppath = stsavestr(dir); + path = stsavestr(dir); STARTSTACKSTR(new); if (*dir != '/') { STPUTS(curdir, new); if (STTOPC(new) == '/') STUNPUTC(new); } - while ((p = getcomponent()) != NULL) { + while ((p = getcomponent(&path)) != NULL) { if (equal(p, "..")) { while (new > stackblock() && (STUNPUTC(new), *new) != '/'); } else if (*p != '\0' && ! equal(p, ".")) { From owner-svn-src-all@freebsd.org Sun Jan 24 17:09:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 026ECA1D422; Sun, 24 Jan 2016 17:09:13 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C3916A2B; Sun, 24 Jan 2016 17:09:12 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OH9B8o036587; Sun, 24 Jan 2016 17:09:11 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OH9B7P036586; Sun, 24 Jan 2016 17:09:11 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601241709.u0OH9B7P036586@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Sun, 24 Jan 2016 17:09:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294668 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 17:09:13 -0000 Author: andrew Date: Sun Jan 24 17:09:11 2016 New Revision: 294668 URL: https://svnweb.freebsd.org/changeset/base/294668 Log: Fix the style of the reading of a nodes xref to make it readable. Modified: head/sys/dev/ofw/openfirm.c Modified: head/sys/dev/ofw/openfirm.c ============================================================================== --- head/sys/dev/ofw/openfirm.c Sun Jan 24 17:01:34 2016 (r294667) +++ head/sys/dev/ofw/openfirm.c Sun Jan 24 17:09:11 2016 (r294668) @@ -599,10 +599,9 @@ OF_xref_from_node(phandle_t node) return (xi->xref); } - if (OF_getencprop(node, "phandle", &xref, sizeof(xref)) == - -1 && OF_getencprop(node, "ibm,phandle", &xref, - sizeof(xref)) == -1 && OF_getencprop(node, - "linux,phandle", &xref, sizeof(xref)) == -1) + if (OF_getencprop(node, "phandle", &xref, sizeof(xref)) == -1 && + OF_getencprop(node, "ibm,phandle", &xref, sizeof(xref)) == -1 && + OF_getencprop(node, "linux,phandle", &xref, sizeof(xref)) == -1) return (node); return (xref); } From owner-svn-src-all@freebsd.org Sun Jan 24 17:15:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0C0DA1D6F5; Sun, 24 Jan 2016 17:15:43 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 92519E9D; Sun, 24 Jan 2016 17:15:43 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OHFgOl039422; Sun, 24 Jan 2016 17:15:42 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OHFghe039421; Sun, 24 Jan 2016 17:15:42 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601241715.u0OHFghe039421@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Sun, 24 Jan 2016 17:15:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294669 - head/usr.sbin/bsdconfig/share X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 17:15:43 -0000 Author: dteske Date: Sun Jan 24 17:15:42 2016 New Revision: 294669 URL: https://svnweb.freebsd.org/changeset/base/294669 Log: Fix a typo in a comment MFC after: 3 days X-MFC-to: stable/10 Modified: head/usr.sbin/bsdconfig/share/strings.subr Modified: head/usr.sbin/bsdconfig/share/strings.subr ============================================================================== --- head/usr.sbin/bsdconfig/share/strings.subr Sun Jan 24 17:09:11 2016 (r294668) +++ head/usr.sbin/bsdconfig/share/strings.subr Sun Jan 24 17:15:42 2016 (r294669) @@ -110,7 +110,7 @@ f_sprintf() # Example 2: # # limit=12 format="%s %s" -# format_args=" 'doghouse' 'foxhound' " +# format_args=" 'doghouse' 'fox' " # # even more spaces added to illustrate escape-method # f_vsnprintf foo $limit "$format" "$format_args" # foo=[doghouse fox] # From owner-svn-src-all@freebsd.org Sun Jan 24 17:27:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70B8BA1DC71 for ; Sun, 24 Jan 2016 17:27:27 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6]) by mx1.freebsd.org (Postfix) with ESMTP id 359E7921 for ; Sun, 24 Jan 2016 17:27:27 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from [10.1.1.2] (unknown [10.1.1.2]) (Authenticated sender: allanjude.freebsd@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id C07DCDA7F; Sun, 24 Jan 2016 17:27:26 +0000 (UTC) Subject: Re: svn commit: r294329 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys To: Shawn Webb References: <201601191700.u0JH0P6k061610@repo.freebsd.org> <20160124141333.GA19117@mutt-hardenedbsd> Cc: svn-src-all@freebsd.org From: Allan Jude Message-ID: <56A509A3.6020808@freebsd.org> Date: Sun, 24 Jan 2016 12:28:03 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160124141333.GA19117@mutt-hardenedbsd> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="PDOfdeqgWrXeiIOK81NRqW2O3lFNSTAum" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 17:27:27 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --PDOfdeqgWrXeiIOK81NRqW2O3lFNSTAum Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 2016-01-24 09:13, Shawn Webb wrote: > On Tue, Jan 19, 2016 at 05:00:25PM +0000, Alan Somers wrote: >> Author: asomers >> Date: Tue Jan 19 17:00:25 2016 >> New Revision: 294329 >> URL: https://svnweb.freebsd.org/changeset/base/294329 >> >> Log: >> Disallow zvol-backed ZFS pools >> =20 >> Using zvols as backing devices for ZFS pools is fraught with panics = and >> deadlocks. For example, attempting to online a missing device in the= >> presence of a zvol can cause a panic when vdev_geom tastes the zvol.= Better >> to completely disable vdev_geom from ever opening a zvol. The soluti= on >> relies on setting a thread-local variable during vdev_geom_open, and= >> returning EOPNOTSUPP during zvol_open if that thread-local variable = is set. >> =20 >> Remove the check for MUTEX_HELD(&zfsdev_state_lock) in zvol_open. It= s intent >> was to prevent a recursive mutex acquisition panic. However, the new= check >> for the thread-local variable also fixes that problem. >> =20 >> Also, fix a panic in vdev_geom_taste_orphan. For an unknown reason, = this >> function was set to panic. But it can occur that a device disappears= during >> tasting, and it causes no problems to ignore this departure. >> =20 >> Reviewed by: delphij >> MFC after: 1 week >> Relnotes: yes >> Sponsored by: Spectra Logic Corp >> Differential Revision: https://reviews.freebsd.org/D4986 >=20 > I've just been bit by this pretty hard. I have a bhyve VM that's backed= > by a zvol. The VM is running root-on-zfs. I wrote some experimental cod= e > that's now preventing the VM from booting (kernel panic due to userland= > change). Since I can't import the pool, I have no way of fixing the > problem. >=20 > I'm probably just going to go revert this commit locally on my box so I= > can get some work done. >=20 > Thanks, >=20 Alan is working on making it a sysctl, so you can turn the old behaviour back on. You might want to test that patch: https://reviews.freebsd.org/D4998 --=20 Allan Jude --PDOfdeqgWrXeiIOK81NRqW2O3lFNSTAum Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJWpQmjAAoJEBmVNT4SmAt+Q1cP/i3Egvv98EjH070rTkz4ybGA 5xxaTwx0CY0oBH/AT1biFfsBjX/TRd2WvA1+dhdihmByuxFKebwF7Q82Kr5PwkMY V9rFLoJpTEoTFrUtifHXkCxPKbZJm6MuTRFf3fPDoLaw+DJgUFuvEtiQvozrZ6M0 ShE26cz1JCoqjL0jf6SB4b3cS6K2NGvsHnI7J3MNfkDHT9dBe0am2ccdsNS6+W+7 brRTRJ2s4ClTGNJQR81wpEAFYr+X+CCDDEq8FNau6rDwjb1QsbifbbptAm2R8kpa a1c9aTdS0J+S8xp80R1uZVYBwh27mRaoWMwc5OR9+W2kGa7ssZFDDyKcjlNi6F6k jpx1GkIxmmBh0O2+k7gRY263nVtpH1F8XncutJAItAsunLPaPk5kcZjXSqxO3DKY 0QxkQTjyWnyQjXf6DJgFTAgasgombNMNNZ7f7AivGtNh94QA/u1b798pjRLOqFl6 DHufCdNmiK08ECg56UrA+pZ/BEFbAwq2aMOPxf2Yaw8lZRJsW4Kt7gqrpMfRDLjw 1BCBOaph/7PCPFMLzXBQpwoAN9kjDHO9LtGRTWiPNl7LjUxUf/WTPFmKZbJtyxLu wOzPFwXYHz2YLTQ/TyhEfdN2sWxJsnA9O5fkXrvVK4knaFNFOLTjynsHCCcG8wfx 8eG4Mblxbb08AllnvuEz =0MNG -----END PGP SIGNATURE----- --PDOfdeqgWrXeiIOK81NRqW2O3lFNSTAum-- From owner-svn-src-all@freebsd.org Sun Jan 24 18:11:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5900C79A4; Sun, 24 Jan 2016 18:11:38 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 33B70B93; Sun, 24 Jan 2016 18:11:38 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OIBbjx055595; Sun, 24 Jan 2016 18:11:37 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OIBa4Y055588; Sun, 24 Jan 2016 18:11:36 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201601241811.u0OIBa4Y055588@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 24 Jan 2016 18:11:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294670 - in head/usr.sbin: autofs iscsid X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 18:11:38 -0000 Author: trasz Date: Sun Jan 24 18:11:36 2016 New Revision: 294670 URL: https://svnweb.freebsd.org/changeset/base/294670 Log: The is an ordinary header file; should sort just like any other. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/autofs/automount.c head/usr.sbin/autofs/automountd.c head/usr.sbin/autofs/autounmountd.c head/usr.sbin/autofs/common.c head/usr.sbin/autofs/defined.c head/usr.sbin/iscsid/iscsid.c Modified: head/usr.sbin/autofs/automount.c ============================================================================== --- head/usr.sbin/autofs/automount.c Sun Jan 24 17:15:42 2016 (r294669) +++ head/usr.sbin/autofs/automount.c Sun Jan 24 18:11:36 2016 (r294670) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -55,8 +56,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include - #include "common.h" #include "mntopts.h" Modified: head/usr.sbin/autofs/automountd.c ============================================================================== --- head/usr.sbin/autofs/automountd.c Sun Jan 24 17:15:42 2016 (r294669) +++ head/usr.sbin/autofs/automountd.c Sun Jan 24 18:11:36 2016 (r294670) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -55,8 +56,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include - #include "autofs_ioctl.h" #include "common.h" Modified: head/usr.sbin/autofs/autounmountd.c ============================================================================== --- head/usr.sbin/autofs/autounmountd.c Sun Jan 24 17:15:42 2016 (r294669) +++ head/usr.sbin/autofs/autounmountd.c Sun Jan 24 18:11:36 2016 (r294670) @@ -37,13 +37,13 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include #include #include -#include #include "common.h" Modified: head/usr.sbin/autofs/common.c ============================================================================== --- head/usr.sbin/autofs/common.c Sun Jan 24 17:15:42 2016 (r294669) +++ head/usr.sbin/autofs/common.c Sun Jan 24 18:11:36 2016 (r294670) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -58,8 +59,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include - #include "autofs_ioctl.h" #include "common.h" Modified: head/usr.sbin/autofs/defined.c ============================================================================== --- head/usr.sbin/autofs/defined.c Sun Jan 24 17:15:42 2016 (r294669) +++ head/usr.sbin/autofs/defined.c Sun Jan 24 18:11:36 2016 (r294670) @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -60,8 +61,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include - #include "common.h" static TAILQ_HEAD(, defined_value) defined_values; Modified: head/usr.sbin/iscsid/iscsid.c ============================================================================== --- head/usr.sbin/iscsid/iscsid.c Sun Jan 24 17:15:42 2016 (r294669) +++ head/usr.sbin/iscsid/iscsid.c Sun Jan 24 18:11:36 2016 (r294670) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -51,8 +52,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include - #include "iscsid.h" static volatile bool sigalrm_received = false; From owner-svn-src-all@freebsd.org Sun Jan 24 18:25:39 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3F971A31007; Sun, 24 Jan 2016 18:25:39 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 125E3130E; Sun, 24 Jan 2016 18:25:39 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OIPc0N061319; Sun, 24 Jan 2016 18:25:38 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OIPcx2061318; Sun, 24 Jan 2016 18:25:38 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601241825.u0OIPcx2061318@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 18:25:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294671 - stable/10/sys/arm/arm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 18:25:39 -0000 Author: ian Date: Sun Jan 24 18:25:37 2016 New Revision: 294671 URL: https://svnweb.freebsd.org/changeset/base/294671 Log: MFC r289619: Follow the advice of the misplaced comment and don't access the map struct after freeing it. Remove the comment whose uselessness has been revealed. Modified: stable/10/sys/arm/arm/busdma_machdep.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/arm/busdma_machdep.c ============================================================================== --- stable/10/sys/arm/arm/busdma_machdep.c Sun Jan 24 18:11:36 2016 (r294670) +++ stable/10/sys/arm/arm/busdma_machdep.c Sun Jan 24 18:25:37 2016 (r294671) @@ -786,10 +786,9 @@ bus_dmamem_free(bus_dma_tag_t dmat, void ba = coherent_allocator; else ba = standard_allocator; - uma_zfree(dmamap_zone, map); free(map->slist, M_DEVBUF); - /* Be careful not to access map from here on. */ + uma_zfree(dmamap_zone, map); bufzone = busdma_bufalloc_findzone(ba, dmat->maxsize); From owner-svn-src-all@freebsd.org Sun Jan 24 18:50:39 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3B058A3182A; Sun, 24 Jan 2016 18:50:39 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E08601D40; Sun, 24 Jan 2016 18:50:38 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OIob10067265; Sun, 24 Jan 2016 18:50:37 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OIobxW067262; Sun, 24 Jan 2016 18:50:37 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601241850.u0OIobxW067262@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 18:50:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294672 - in stable/10/sys: boot/fdt/dts/arm dev/ofw X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 18:50:39 -0000 Author: ian Date: Sun Jan 24 18:50:37 2016 New Revision: 294672 URL: https://svnweb.freebsd.org/changeset/base/294672 Log: MFC r289704: Fix parsing of I2C addresses properties in fdt data. I2C address is represented in 7-bits format in DT files, but system expect it in 8-bit format. Also, fix two drivers that locally hack around this bug. This includes a direct-commit change to the beaglebone dts data in the 10-stable branch to adjust the i2c slave addresses directly. In -current the equivelent change happened with a switch from homegrown to standard fdt data. Modified: stable/10/sys/boot/fdt/dts/arm/beaglebone-black.dts stable/10/sys/boot/fdt/dts/arm/beaglebone.dts stable/10/sys/dev/ofw/ofw_iicbus.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/fdt/dts/arm/beaglebone-black.dts ============================================================================== --- stable/10/sys/boot/fdt/dts/arm/beaglebone-black.dts Sun Jan 24 18:25:37 2016 (r294671) +++ stable/10/sys/boot/fdt/dts/arm/beaglebone-black.dts Sun Jan 24 18:50:37 2016 (r294672) @@ -146,9 +146,9 @@ }; i2c@44e0b000 { - pmic@48 { + pmic@24 { compatible = "ti,am335x-pmic"; - reg = <0x48>; + reg = <0x24>; }; }; }; Modified: stable/10/sys/boot/fdt/dts/arm/beaglebone.dts ============================================================================== --- stable/10/sys/boot/fdt/dts/arm/beaglebone.dts Sun Jan 24 18:25:37 2016 (r294671) +++ stable/10/sys/boot/fdt/dts/arm/beaglebone.dts Sun Jan 24 18:50:37 2016 (r294672) @@ -133,7 +133,7 @@ i2c@44e0b000 { pmic@24 { compatible = "ti,am335x-pmic"; - reg = <0x48>; + reg = <0x24>; }; }; }; Modified: stable/10/sys/dev/ofw/ofw_iicbus.c ============================================================================== --- stable/10/sys/dev/ofw/ofw_iicbus.c Sun Jan 24 18:25:37 2016 (r294671) +++ stable/10/sys/dev/ofw/ofw_iicbus.c Sun Jan 24 18:50:37 2016 (r294672) @@ -147,7 +147,11 @@ ofw_iicbus_attach(device_t dev) M_NOWAIT | M_ZERO); if (dinfo == NULL) continue; - dinfo->opd_dinfo.addr = paddr; + /* + * OFW uses 7-bit I2C address format (see ePAPR), + * but system expect 8-bit. + */ + dinfo->opd_dinfo.addr = paddr << 1; if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, child) != 0) { free(dinfo, M_DEVBUF); From owner-svn-src-all@freebsd.org Sun Jan 24 18:54:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91413A318D0; Sun, 24 Jan 2016 18:54:13 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 43F3610B; Sun, 24 Jan 2016 18:54:13 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OIsCMd069978; Sun, 24 Jan 2016 18:54:12 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OIsCRs069976; Sun, 24 Jan 2016 18:54:12 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601241854.u0OIsCRs069976@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 18:54:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294673 - stable/10/sys/dev/iicbus X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 18:54:13 -0000 Author: ian Date: Sun Jan 24 18:54:11 2016 New Revision: 294673 URL: https://svnweb.freebsd.org/changeset/base/294673 Log: MFC r289726: Add iicbus_transfer_excl(), a helper routine to do an i2c bus transaction while holding exclusive ownership of the bus. This is the routine most slave drivers should use unless they have a need to acquire and hold the bus across a series of related operations that involves multiple transfers. Modified: stable/10/sys/dev/iicbus/iiconf.c stable/10/sys/dev/iicbus/iiconf.h Modified: stable/10/sys/dev/iicbus/iiconf.c ============================================================================== --- stable/10/sys/dev/iicbus/iiconf.c Sun Jan 24 18:50:37 2016 (r294672) +++ stable/10/sys/dev/iicbus/iiconf.c Sun Jan 24 18:54:11 2016 (r294673) @@ -395,6 +395,21 @@ iicbus_transfer(device_t bus, struct iic return (IICBUS_TRANSFER(device_get_parent(bus), msgs, nmsgs)); } +int +iicbus_transfer_excl(device_t dev, struct iic_msg *msgs, uint32_t nmsgs, + int how) +{ + device_t bus; + int error; + + bus = device_get_parent(dev); + error = iicbus_request_bus(bus, dev, how); + if (error == 0) + error = IICBUS_TRANSFER(bus, msgs, nmsgs); + iicbus_release_bus(bus, dev); + return (error); +} + /* * Generic version of iicbus_transfer that calls the appropriate * routines to accomplish this. See note above about acceptable Modified: stable/10/sys/dev/iicbus/iiconf.h ============================================================================== --- stable/10/sys/dev/iicbus/iiconf.h Sun Jan 24 18:50:37 2016 (r294672) +++ stable/10/sys/dev/iicbus/iiconf.h Sun Jan 24 18:54:11 2016 (r294673) @@ -129,6 +129,8 @@ extern int iicbus_block_read(device_t, u /* vectors of iic operations to pass to bridge */ int iicbus_transfer(device_t bus, struct iic_msg *msgs, uint32_t nmsgs); +int iicbus_transfer_excl(device_t bus, struct iic_msg *msgs, uint32_t nmsgs, + int how); int iicbus_transfer_gen(device_t bus, struct iic_msg *msgs, uint32_t nmsgs); #define IICBUS_MODVER 1 From owner-svn-src-all@freebsd.org Sun Jan 24 18:54:57 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20EC5A31969; Sun, 24 Jan 2016 18:54:57 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ED88E2C3; Sun, 24 Jan 2016 18:54:56 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OIstAE070041; Sun, 24 Jan 2016 18:54:55 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OIstlU070040; Sun, 24 Jan 2016 18:54:55 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601241854.u0OIstlU070040@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 18:54:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294674 - stable/10/sys/dev/iicbus X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 18:54:57 -0000 Author: ian Date: Sun Jan 24 18:54:55 2016 New Revision: 294674 URL: https://svnweb.freebsd.org/changeset/base/294674 Log: MFC r289727: Add FDT compatibility to the icee driver. The FDT bindings for eeprom parts don't include any metadata about the device other than the part name encoded in the compatible property. Instead, a driver is required to have a compiled-in table of information about the various parts (page size, device capacity, addressing scheme). So much for FDT being an abstract description of hardware characteristics, huh? In addition to the FDT-specific changes, this also switches to using the newer iicbus_transfer_excl() mechanism which holds bus ownership for the duration of the transfer. Previously this code held the bus across all the transfers needed to complete the user's IO request, which could be up to 128KB of data which might occupy the bus for 10-20 seconds. Now the bus will be released and re-aquired between every page-sized (8-256 byte) transfer, making this driver a much nicer citizen on the i2c bus. The hint-based configuration mechanism is still in place for non-FDT systems. Modified: stable/10/sys/dev/iicbus/icee.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/iicbus/icee.c ============================================================================== --- stable/10/sys/dev/iicbus/icee.c Sun Jan 24 18:54:11 2016 (r294673) +++ stable/10/sys/dev/iicbus/icee.c Sun Jan 24 18:54:55 2016 (r294674) @@ -27,6 +27,9 @@ __FBSDID("$FreeBSD$"); /* * Generic IIC eeprom support, modeled after the AT24C family of products. */ + +#include "opt_platform.h" + #include #include #include @@ -37,26 +40,73 @@ __FBSDID("$FreeBSD$"); #include #include #include + +#ifdef FDT +#include +#include +#endif + #include #include #include "iicbus_if.h" -#define IIC_M_WR 0 /* write operation */ +/* + * AT24 parts have a "write page size" that differs per-device, and a "read page + * size" that is always equal to the full device size. We define maximum values + * here to limit how long we occupy the bus with a single transfer, and because + * there are temporary buffers of these sizes allocated on the stack. + */ #define MAX_RD_SZ 256 /* Largest read size we support */ -#define MAX_WR_SZ 256 /* Largest write size we support */ +#define MAX_WR_SZ 256 /* Largest write size we support */ struct icee_softc { - device_t sc_dev; /* Myself */ - device_t sc_busdev; /* Parent bus */ + device_t dev; /* Myself */ struct cdev *cdev; /* user interface */ - int addr; + int addr; /* Slave address on the bus */ int size; /* How big am I? */ - int type; /* What type 8 or 16 bit? */ - int rd_sz; /* What's the read page size */ + int type; /* What address type 8 or 16 bit? */ int wr_sz; /* What's the write page size */ }; +#ifdef FDT +struct eeprom_desc { + int type; + int size; + int wr_sz; + const char *name; +}; + +static struct eeprom_desc type_desc[] = { + { 8, 128, 8, "AT24C01"}, + { 8, 256, 8, "AT24C02"}, + { 8, 512, 16, "AT24C04"}, + { 8, 1024, 16, "AT24C08"}, + { 8, 2 * 1024, 16, "AT24C16"}, + {16, 4 * 1024, 32, "AT24C32"}, + {16, 8 * 1024, 32, "AT24C64"}, + {16, 16 * 1024, 64, "AT24C128"}, + {16, 32 * 1024, 64, "AT24C256"}, + {16, 64 * 1024, 128, "AT24C512"}, + {16, 128 * 1024, 256, "AT24CM01"}, +}; + +static struct ofw_compat_data compat_data[] = { + {"atmel,24c01", (uintptr_t)(&type_desc[0])}, + {"atmel,24c02", (uintptr_t)(&type_desc[1])}, + {"atmel,24c04", (uintptr_t)(&type_desc[2])}, + {"atmel,24c08", (uintptr_t)(&type_desc[3])}, + {"atmel,24c16", (uintptr_t)(&type_desc[4])}, + {"atmel,24c32", (uintptr_t)(&type_desc[5])}, + {"atmel,24c64", (uintptr_t)(&type_desc[6])}, + {"atmel,24c128", (uintptr_t)(&type_desc[7])}, + {"atmel,24c256", (uintptr_t)(&type_desc[8])}, + {"atmel,24c512", (uintptr_t)(&type_desc[9])}, + {"atmel,24c1024", (uintptr_t)(&type_desc[10])}, + {NULL, (uintptr_t)NULL}, +}; +#endif + #define CDEV2SOFTC(dev) ((dev)->si_drv1) /* cdev routines */ @@ -75,6 +125,39 @@ static struct cdevsw icee_cdevsw = .d_write = icee_write }; +#ifdef FDT +static int +icee_probe(device_t dev) +{ + struct eeprom_desc *d; + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + d = (struct eeprom_desc *) + ofw_bus_search_compatible(dev, compat_data)->ocd_data; + if (d == NULL) + return (ENXIO); + + device_set_desc(dev, d->name); + return (BUS_PROBE_DEFAULT); +} + +static void +icee_init(struct icee_softc *sc) +{ + struct eeprom_desc *d; + + d = (struct eeprom_desc *) + ofw_bus_search_compatible(sc->dev, compat_data)->ocd_data; + if (d == NULL) + return; /* attach will see sc->size == 0 and return error */ + + sc->size = d->size; + sc->type = d->type; + sc->wr_sz = d->wr_sz; +} +#else /* !FDT */ static int icee_probe(device_t dev) { @@ -83,37 +166,44 @@ icee_probe(device_t dev) return (BUS_PROBE_NOWILDCARD); } -static int -icee_attach(device_t dev) +static void +icee_init(struct icee_softc *sc) { - struct icee_softc *sc = device_get_softc(dev); const char *dname; - int dunit, err; + int dunit; - sc->sc_dev = dev; - sc->sc_busdev = device_get_parent(sc->sc_dev); - sc->addr = iicbus_get_addr(dev); - err = 0; - dname = device_get_name(dev); - dunit = device_get_unit(dev); + dname = device_get_name(sc->dev); + dunit = device_get_unit(sc->dev); resource_int_value(dname, dunit, "size", &sc->size); resource_int_value(dname, dunit, "type", &sc->type); - resource_int_value(dname, dunit, "rd_sz", &sc->rd_sz); - if (sc->rd_sz > MAX_RD_SZ) - sc->rd_sz = MAX_RD_SZ; resource_int_value(dname, dunit, "wr_sz", &sc->wr_sz); +} +#endif /* FDT */ + +static int +icee_attach(device_t dev) +{ + struct icee_softc *sc = device_get_softc(dev); + + sc->dev = dev; + sc->addr = iicbus_get_addr(dev); + icee_init(sc); + if (sc->size == 0 || sc->type == 0 || sc->wr_sz == 0) { + device_printf(sc->dev, "Missing config data, " + "these cannot be zero: size %d type %d wr_sz %d\n", + sc->size, sc->type, sc->wr_sz); + return (EINVAL); + } if (bootverbose) - device_printf(dev, "size: %d bytes bus_width: %d-bits\n", + device_printf(dev, "size: %d bytes, addressing: %d-bits\n", sc->size, sc->type); sc->cdev = make_dev(&icee_cdevsw, device_get_unit(dev), UID_ROOT, GID_WHEEL, 0600, "icee%d", device_get_unit(dev)); if (sc->cdev == NULL) { - err = ENOMEM; - goto out; + return (ENOMEM); } sc->cdev->si_drv1 = sc; -out: - return (err); + return (0); } static int @@ -149,14 +239,11 @@ icee_read(struct cdev *dev, struct uio * return (EIO); if (sc->type != 8 && sc->type != 16) return (EINVAL); - error = iicbus_request_bus(sc->sc_busdev, sc->sc_dev, IIC_INTRWAIT); - if (error!= 0) - return (iic2errno(error)); slave = error = 0; while (uio->uio_resid > 0) { if (uio->uio_offset >= sc->size) break; - len = MIN(sc->rd_sz - (uio->uio_offset & (sc->rd_sz - 1)), + len = MIN(MAX_RD_SZ - (uio->uio_offset & (MAX_RD_SZ - 1)), uio->uio_resid); switch (sc->type) { case 8: @@ -175,7 +262,7 @@ icee_read(struct cdev *dev, struct uio * } for (i = 0; i < 2; i++) msgs[i].slave = slave; - error = iicbus_transfer(sc->sc_dev, msgs, 2); + error = iicbus_transfer_excl(sc->dev, msgs, 2, IIC_INTRWAIT); if (error) { error = iic2errno(error); break; @@ -184,7 +271,6 @@ icee_read(struct cdev *dev, struct uio * if (error) break; } - iicbus_release_bus(sc->sc_busdev, sc->sc_dev); return (error); } @@ -213,9 +299,6 @@ icee_write(struct cdev *dev, struct uio if (sc->type != 8 && sc->type != 16) return (EINVAL); - error = iicbus_request_bus(sc->sc_busdev, sc->sc_dev, IIC_INTRWAIT); - if (error!= 0) - return (iic2errno(error)); slave = error = 0; while (uio->uio_resid > 0) { if (uio->uio_offset >= sc->size) @@ -239,7 +322,7 @@ icee_write(struct cdev *dev, struct uio error = uiomove(data + sc->type / 8, len, uio); if (error) break; - error = iicbus_transfer(sc->sc_dev, wr, 1); + error = iicbus_transfer_excl(sc->dev, wr, 1, IIC_INTRWAIT); if (error) { error = iic2errno(error); break; @@ -248,14 +331,14 @@ icee_write(struct cdev *dev, struct uio waitlimit = 10000; rd[0].slave = slave; do { - error = iicbus_transfer(sc->sc_dev, rd, 1); + error = iicbus_transfer_excl(sc->dev, rd, 1, + IIC_INTRWAIT); } while (waitlimit-- > 0 && error != 0); if (error) { error = iic2errno(error); break; } } - iicbus_release_bus(sc->sc_busdev, sc->sc_dev); return error; } From owner-svn-src-all@freebsd.org Sun Jan 24 19:10:31 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9E5AA31DE8; Sun, 24 Jan 2016 19:10:31 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 93C259EB; Sun, 24 Jan 2016 19:10:31 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OJAUgW073140; Sun, 24 Jan 2016 19:10:30 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OJAUUD073138; Sun, 24 Jan 2016 19:10:30 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601241910.u0OJAUUD073138@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Sun, 24 Jan 2016 19:10:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294675 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 19:10:31 -0000 Author: andrew Date: Sun Jan 24 19:10:30 2016 New Revision: 294675 URL: https://svnweb.freebsd.org/changeset/base/294675 Log: Add support for controlling the clocks for the audio codec and DMA engines. Submitted by: Jared McNeill Differential Revision: https://reviews.freebsd.org/D5052 Modified: head/sys/arm/allwinner/a10_clk.c head/sys/arm/allwinner/a10_clk.h Modified: head/sys/arm/allwinner/a10_clk.c ============================================================================== --- head/sys/arm/allwinner/a10_clk.c Sun Jan 24 18:54:55 2016 (r294674) +++ head/sys/arm/allwinner/a10_clk.c Sun Jan 24 19:10:30 2016 (r294675) @@ -255,6 +255,58 @@ a10_clk_pll6_get_rate(void) return ((CCM_CLK_REF_FREQ * n * k) / 2); } +static int +a10_clk_pll2_set_rate(unsigned int freq) +{ + struct a10_ccm_softc *sc; + uint32_t reg_value; + unsigned int prediv, postdiv, n; + + sc = a10_ccm_sc; + if (sc == NULL) + return (ENXIO); + + + reg_value = ccm_read_4(sc, CCM_PLL2_CFG); + reg_value &= ~(CCM_PLL2_CFG_PREDIV | CCM_PLL2_CFG_POSTDIV | + CCM_PLL_CFG_FACTOR_N); + + /* + * Audio Codec needs PLL2 to be either 24576000 Hz or 22579200 Hz + * + * PLL2 output frequency is 24MHz * n / prediv / postdiv. + * To get as close as possible to the desired rate, we use a + * pre-divider of 21 and a post-divider of 4. With these values, + * a multiplier of 86 or 79 gets us close to the target rates. + */ + prediv = 21; + postdiv = 4; + + switch (freq) { + case 24576000: + n = 86; + reg_value |= CCM_PLL_CFG_ENABLE; + break; + case 22579200: + n = 79; + reg_value |= CCM_PLL_CFG_ENABLE; + break; + case 0: + n = 1; + reg_value &= ~CCM_PLL_CFG_ENABLE; + break; + default: + return (EINVAL); + } + + reg_value |= (prediv << CCM_PLL2_CFG_PREDIV_SHIFT); + reg_value |= (postdiv << CCM_PLL2_CFG_POSTDIV_SHIFT); + reg_value |= (n << CCM_PLL_CFG_FACTOR_N_SHIFT); + ccm_write_4(sc, CCM_PLL2_CFG, reg_value); + + return (0); +} + int a10_clk_ahci_activate(void) { @@ -347,3 +399,46 @@ a10_clk_mmc_cfg(int devid, int freq) return (0); } + +int +a10_clk_dmac_activate(void) +{ + struct a10_ccm_softc *sc; + uint32_t reg_value; + + sc = a10_ccm_sc; + if (sc == NULL) + return (ENXIO); + + /* Gating AHB clock for DMA controller */ + reg_value = ccm_read_4(sc, CCM_AHB_GATING0); + reg_value |= CCM_AHB_GATING_DMA; + ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + + return (0); +} + +int +a10_clk_codec_activate(unsigned int freq) +{ + struct a10_ccm_softc *sc; + uint32_t reg_value; + + sc = a10_ccm_sc; + if (sc == NULL) + return (ENXIO); + + a10_clk_pll2_set_rate(freq); + + /* Gating APB clock for ADDA */ + reg_value = ccm_read_4(sc, CCM_APB0_GATING); + reg_value |= CCM_APB0_GATING_ADDA; + ccm_write_4(sc, CCM_APB0_GATING, reg_value); + + /* Enable audio codec clock */ + reg_value = ccm_read_4(sc, CCM_AUDIO_CODEC_CLK); + reg_value |= CCM_AUDIO_CODEC_ENABLE; + ccm_write_4(sc, CCM_AUDIO_CODEC_CLK, reg_value); + + return (0); +} Modified: head/sys/arm/allwinner/a10_clk.h ============================================================================== --- head/sys/arm/allwinner/a10_clk.h Sun Jan 24 18:54:55 2016 (r294674) +++ head/sys/arm/allwinner/a10_clk.h Sun Jan 24 19:10:30 2016 (r294675) @@ -106,10 +106,14 @@ #define CCM_GMAC_CLK_EXT_RGMII 0x1 #define CCM_GMAC_CLK_RGMII 0x2 +/* APB0_GATING */ +#define CCM_APB0_GATING_ADDA (1 << 0) + /* AHB_GATING_REG0 */ #define CCM_AHB_GATING_USB0 (1 << 0) #define CCM_AHB_GATING_EHCI0 (1 << 1) #define CCM_AHB_GATING_EHCI1 (1 << 3) +#define CCM_AHB_GATING_DMA (1 << 6) #define CCM_AHB_GATING_SDMMC0 (1 << 8) #define CCM_AHB_GATING_EMAC (1 << 17) #define CCM_AHB_GATING_SATA (1 << 25) @@ -132,6 +136,11 @@ #define CCM_PLL_CFG_FACTOR_K_SHIFT 4 #define CCM_PLL_CFG_FACTOR_M 0x3 +#define CCM_PLL2_CFG_POSTDIV 0x3c000000 +#define CCM_PLL2_CFG_POSTDIV_SHIFT 26 +#define CCM_PLL2_CFG_PREDIV 0x1f +#define CCM_PLL2_CFG_PREDIV_SHIFT 0 + #define CCM_PLL6_CFG_SATA_CLKEN (1U << 14) #define CCM_SD_CLK_SRC_SEL 0x3000000 @@ -146,6 +155,8 @@ #define CCM_SD_CLK_OPHASE_CTR_SHIFT 8 #define CCM_SD_CLK_DIV_RATIO_M 0xf +#define CCM_AUDIO_CODEC_ENABLE (1U << 31) + #define CCM_CLK_REF_FREQ 24000000U int a10_clk_usb_activate(void); @@ -155,5 +166,7 @@ int a10_clk_gmac_activate(phandle_t); int a10_clk_ahci_activate(void); int a10_clk_mmc_activate(int); int a10_clk_mmc_cfg(int, int); +int a10_clk_dmac_activate(void); +int a10_clk_codec_activate(unsigned int); #endif /* _A10_CLK_H_ */ From owner-svn-src-all@freebsd.org Sun Jan 24 19:12:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2827FA31F4F; Sun, 24 Jan 2016 19:12:18 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E9E3CD11; Sun, 24 Jan 2016 19:12:17 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OJCGr6075698; Sun, 24 Jan 2016 19:12:16 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OJCG2p075697; Sun, 24 Jan 2016 19:12:16 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601241912.u0OJCG2p075697@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Sun, 24 Jan 2016 19:12:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294676 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 19:12:18 -0000 Author: andrew Date: Sun Jan 24 19:12:16 2016 New Revision: 294676 URL: https://svnweb.freebsd.org/changeset/base/294676 Log: Remove an extra newline that crept in. Modified: head/sys/arm/allwinner/a10_clk.c Modified: head/sys/arm/allwinner/a10_clk.c ============================================================================== --- head/sys/arm/allwinner/a10_clk.c Sun Jan 24 19:10:30 2016 (r294675) +++ head/sys/arm/allwinner/a10_clk.c Sun Jan 24 19:12:16 2016 (r294676) @@ -266,7 +266,6 @@ a10_clk_pll2_set_rate(unsigned int freq) if (sc == NULL) return (ENXIO); - reg_value = ccm_read_4(sc, CCM_PLL2_CFG); reg_value &= ~(CCM_PLL2_CFG_PREDIV | CCM_PLL2_CFG_POSTDIV | CCM_PLL_CFG_FACTOR_N); From owner-svn-src-all@freebsd.org Sun Jan 24 19:21:55 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E3B3717D; Sun, 24 Jan 2016 19:21:55 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D8EF220F; Sun, 24 Jan 2016 19:21:54 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OJLra7078599; Sun, 24 Jan 2016 19:21:53 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OJLrSa078594; Sun, 24 Jan 2016 19:21:53 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601241921.u0OJLrSa078594@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 19:21:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294677 - in stable/10/sys: kern powerpc/powerpc sparc64/sparc64 x86/x86 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 19:21:55 -0000 Author: ian Date: Sun Jan 24 19:21:53 2016 New Revision: 294677 URL: https://svnweb.freebsd.org/changeset/base/294677 Log: MFC r289618, r290316: Fix printf format to allow for bus_size_t not being u_long on all platforms. Fix an alignment check that is wrong in half the busdma implementations. This will enable the elimination of a workaround in the USB driver that artifically allocates buffers twice as big as they need to be (which actually saves memory for very small buffers on the buggy platforms). When deciding how to allocate a dma buffer, armv4, armv6, mips, and x86/iommu all correctly check for the tag alignment <= maxsize as enabling simple uma/malloc based allocation. Powerpc, sparc64, x86/bounce, and arm64/bounce were all checking for alignment < maxsize; on those platforms when alignment was equal to the max size it would fall back to page-based allocators even for very small buffers. This change makes all platforms use the <= check. It should be noted that on all platforms other than arm[v6] and mips, this check is relying on undocumented behavior in malloc(9) that if you allocate a block of a given size it will be aligned to the next larger power-of-2 boundary. There is nothing in the malloc(9) man page that makes that explicit promise (but the busdma code has been relying on this behavior all along so I guess it works). Arm and mips code uses the allocator in kern/subr_busdma_buffalloc.c, which does explicitly implement this promise about size and alignment. Other platforms probably should switch to the aligned allocator. Modified: stable/10/sys/kern/subr_busdma_bufalloc.c stable/10/sys/powerpc/powerpc/busdma_machdep.c stable/10/sys/sparc64/sparc64/bus_machdep.c stable/10/sys/x86/x86/busdma_bounce.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/subr_busdma_bufalloc.c ============================================================================== --- stable/10/sys/kern/subr_busdma_bufalloc.c Sun Jan 24 19:12:16 2016 (r294676) +++ stable/10/sys/kern/subr_busdma_bufalloc.c Sun Jan 24 19:21:53 2016 (r294677) @@ -94,8 +94,8 @@ busdma_bufalloc_create(const char *name, for (i = 0, bz = ba->buf_zones, cursize = ba->min_size; i < nitems(ba->buf_zones) && cursize <= MAX_ZONE_BUFSIZE; ++i, ++bz, cursize <<= 1) { - snprintf(bz->name, sizeof(bz->name), "dma %.10s %lu", - name, cursize); + snprintf(bz->name, sizeof(bz->name), "dma %.10s %ju", + name, (uintmax_t)cursize); bz->size = cursize; bz->umazone = uma_zcreate(bz->name, bz->size, NULL, NULL, NULL, NULL, bz->size - 1, zcreate_flags); Modified: stable/10/sys/powerpc/powerpc/busdma_machdep.c ============================================================================== --- stable/10/sys/powerpc/powerpc/busdma_machdep.c Sun Jan 24 19:12:16 2016 (r294676) +++ stable/10/sys/powerpc/powerpc/busdma_machdep.c Sun Jan 24 19:21:53 2016 (r294677) @@ -514,14 +514,14 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, voi /* * XXX: - * (dmat->alignment < dmat->maxsize) is just a quick hack; the exact + * (dmat->alignment <= dmat->maxsize) is just a quick hack; the exact * alignment guarantees of malloc need to be nailed down, and the * code below should be rewritten to take that into account. * * In the meantime, we'll warn the user if malloc gets it wrong. */ if ((dmat->maxsize <= PAGE_SIZE) && - (dmat->alignment < dmat->maxsize) && + (dmat->alignment <= dmat->maxsize) && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem) && attr == VM_MEMATTR_DEFAULT) { *vaddr = malloc(dmat->maxsize, M_DEVBUF, mflags); Modified: stable/10/sys/sparc64/sparc64/bus_machdep.c ============================================================================== --- stable/10/sys/sparc64/sparc64/bus_machdep.c Sun Jan 24 19:12:16 2016 (r294676) +++ stable/10/sys/sparc64/sparc64/bus_machdep.c Sun Jan 24 19:21:53 2016 (r294677) @@ -521,14 +521,14 @@ nexus_dmamem_alloc(bus_dma_tag_t dmat, v /* * XXX: - * (dmat->dt_alignment < dmat->dt_maxsize) is just a quick hack; the + * (dmat->dt_alignment <= dmat->dt_maxsize) is just a quick hack; the * exact alignment guarantees of malloc need to be nailed down, and * the code below should be rewritten to take that into account. * * In the meantime, we'll warn the user if malloc gets it wrong. */ if (dmat->dt_maxsize <= PAGE_SIZE && - dmat->dt_alignment < dmat->dt_maxsize) + dmat->dt_alignment <= dmat->dt_maxsize) *vaddr = malloc(dmat->dt_maxsize, M_DEVBUF, mflags); else { /* Modified: stable/10/sys/x86/x86/busdma_bounce.c ============================================================================== --- stable/10/sys/x86/x86/busdma_bounce.c Sun Jan 24 19:12:16 2016 (r294676) +++ stable/10/sys/x86/x86/busdma_bounce.c Sun Jan 24 19:21:53 2016 (r294677) @@ -402,14 +402,14 @@ bounce_bus_dmamem_alloc(bus_dma_tag_t dm /* * XXX: - * (dmat->alignment < dmat->maxsize) is just a quick hack; the exact + * (dmat->alignment <= dmat->maxsize) is just a quick hack; the exact * alignment guarantees of malloc need to be nailed down, and the * code below should be rewritten to take that into account. * * In the meantime, we'll warn the user if malloc gets it wrong. */ if ((dmat->common.maxsize <= PAGE_SIZE) && - (dmat->common.alignment < dmat->common.maxsize) && + (dmat->common.alignment <= dmat->common.maxsize) && dmat->common.lowaddr >= ptoa((vm_paddr_t)Maxmem) && attr == VM_MEMATTR_DEFAULT) { *vaddr = malloc(dmat->common.maxsize, M_DEVBUF, mflags); From owner-svn-src-all@freebsd.org Sun Jan 24 19:34:07 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ACADC7752; Sun, 24 Jan 2016 19:34:07 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6C864A34; Sun, 24 Jan 2016 19:34:07 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OJY6qN081664; Sun, 24 Jan 2016 19:34:06 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OJY6pK081659; Sun, 24 Jan 2016 19:34:06 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601241934.u0OJY6pK081659@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 19:34:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294678 - stable/10/sys/arm/freescale/imx X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 19:34:07 -0000 Author: ian Date: Sun Jan 24 19:34:05 2016 New Revision: 294678 URL: https://svnweb.freebsd.org/changeset/base/294678 Log: MFC r291149, r291367: Update the imx5/imx6 cpu_reset() implementation based on a new understanding of the SRS (software reset) bit in the watchdog control register. Despite what the manual seems to imply, this bit DOES trigger an immediate reset, as opposed to simply flagging the type of reset as software-triggered. Rename sysctl node hw.imx6 to hw.imx. Move its definition to imx_machdep.c so that code shared between imx5 and imx6 can work with OIDs under that node. Add last_reset_status (integer) and last_reset_reason (string) OIDs that provide info about the last chip reset (power-on, software reset, watchdog timeout). Modified: stable/10/sys/arm/freescale/imx/imx6_anatop.c stable/10/sys/arm/freescale/imx/imx6_machdep.c stable/10/sys/arm/freescale/imx/imx_machdep.c stable/10/sys/arm/freescale/imx/imx_machdep.h stable/10/sys/arm/freescale/imx/imx_wdogreg.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/freescale/imx/imx6_anatop.c ============================================================================== --- stable/10/sys/arm/freescale/imx/imx6_anatop.c Sun Jan 24 19:21:53 2016 (r294677) +++ stable/10/sys/arm/freescale/imx/imx6_anatop.c Sun Jan 24 19:34:05 2016 (r294678) @@ -73,11 +73,10 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include -static SYSCTL_NODE(_hw, OID_AUTO, imx6, CTLFLAG_RW, NULL, "i.MX6 container"); - static struct resource_spec imx6_anatop_spec[] = { { SYS_RES_MEMORY, 0, RF_ACTIVE }, { SYS_RES_IRQ, 0, RF_ACTIVE }, @@ -396,23 +395,23 @@ cpufreq_initialize(struct imx6_anatop_so uint32_t cfg3speed; struct oppt * op; - SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx6), + SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), OID_AUTO, "cpu_mhz", CTLFLAG_RD, &sc->cpu_curmhz, 0, "CPU frequency"); - SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx6), + SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), OID_AUTO, "cpu_minmhz", CTLTYPE_INT | CTLFLAG_RWTUN, sc, 0, cpufreq_sysctl_minmhz, "IU", "Minimum CPU frequency"); - SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx6), + SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), OID_AUTO, "cpu_maxmhz", CTLTYPE_INT | CTLFLAG_RWTUN, sc, 0, cpufreq_sysctl_maxmhz, "IU", "Maximum CPU frequency"); - SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx6), + SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), OID_AUTO, "cpu_maxmhz_hw", CTLFLAG_RD, &sc->cpu_maxmhz_hw, 0, "Maximum CPU frequency allowed by hardware"); - SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx6), + SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), OID_AUTO, "cpu_overclock_enable", CTLFLAG_RWTUN, &sc->cpu_overclock_enable, 0, "Allow setting CPU frequency higher than cpu_maxmhz_hw"); @@ -630,10 +629,10 @@ initialize_tempmon(struct imx6_anatop_so callout_reset_sbt(&sc->temp_throttle_callout, sc->temp_throttle_delay, 0, tempmon_throttle_check, sc, 0); - SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx6), + SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD, sc, 0, temp_sysctl_handler, "IK", "Current die temperature"); - SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx6), + SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), OID_AUTO, "throttle_temperature", CTLTYPE_INT | CTLFLAG_RW, sc, 0, temp_throttle_sysctl_handler, "IK", "Throttle CPU when exceeding this temperature"); Modified: stable/10/sys/arm/freescale/imx/imx6_machdep.c ============================================================================== --- stable/10/sys/arm/freescale/imx/imx6_machdep.c Sun Jan 24 19:21:53 2016 (r294677) +++ stable/10/sys/arm/freescale/imx/imx6_machdep.c Sun Jan 24 19:34:05 2016 (r294678) @@ -99,7 +99,6 @@ initarm_lastaddr(void) void initarm_early_init(void) { - /* Inform the MPCore timer driver that its clock is variable. */ arm_tmr_change_frequency(ARM_TMR_FREQUENCY_VARIES); } @@ -113,6 +112,9 @@ initarm_gpio_init(void) void initarm_late_init(void) { + const uint32_t IMX6_WDOG_SR_PHYS = 0x020bc004; + + imx_wdog_init_last_reset(IMX6_WDOG_SR_PHYS); /* Cache the gpio1 node handle for imx6_decode_fdt() workaround code. */ gpio1_node = OF_node_from_xref( Modified: stable/10/sys/arm/freescale/imx/imx_machdep.c ============================================================================== --- stable/10/sys/arm/freescale/imx/imx_machdep.c Sun Jan 24 19:21:53 2016 (r294677) +++ stable/10/sys/arm/freescale/imx/imx_machdep.c Sun Jan 24 19:34:05 2016 (r294678) @@ -45,6 +45,15 @@ __FBSDID("$FreeBSD$"); #include #include +SYSCTL_NODE(_hw, OID_AUTO, imx, CTLFLAG_RW, NULL, "i.MX container"); + +static int last_reset_status; +SYSCTL_UINT(_hw_imx, OID_AUTO, last_reset_status, CTLFLAG_RD, + &last_reset_status, 0, "Last reset status register"); + +SYSCTL_STRING(_hw_imx, OID_AUTO, last_reset_reason, CTLFLAG_RD, + "unknown", 0, "Last reset reason"); + struct arm32_dma_range * bus_dma_get_range(void) { @@ -72,21 +81,36 @@ imx_wdog_cpu_reset(vm_offset_t wdcr_phys volatile uint16_t * pcr; /* - * The deceptively simple write of WDOG_CR_WDE enables the watchdog, - * sets the timeout to its minimum value (half a second), and also - * clears the SRS bit which results in the SFTW (software-requested - * reset) bit being set in the watchdog status register after the reset. - * This is how software can distinguish a reset from a wdog timeout. + * Trigger an immediate reset by clearing the SRS bit in the watchdog + * control register. The reset happens on the next cycle of the wdog + * 32KHz clock, so hang out in a spin loop until the reset takes effect. */ if ((pcr = arm_devmap_ptov(wdcr_physaddr, sizeof(*pcr))) == NULL) { printf("cpu_reset() can't find its control register... locking up now."); } else { - *pcr = WDOG_CR_WDE; + *pcr &= ~WDOG_CR_SRS; } for (;;) continue; } +void +imx_wdog_init_last_reset(vm_offset_t wdsr_phys) +{ + volatile uint16_t * psr; + + if ((psr = arm_devmap_ptov(wdsr_phys, sizeof(*psr))) == NULL) + return; + last_reset_status = *psr; + if (last_reset_status & WDOG_RSR_SFTW) { + sysctl___hw_imx_last_reset_reason.oid_arg1 = "SoftwareReset"; + } else if (last_reset_status & WDOG_RSR_TOUT) { + sysctl___hw_imx_last_reset_reason.oid_arg1 = "WatchdogTimeout"; + } else if (last_reset_status & WDOG_RSR_POR) { + sysctl___hw_imx_last_reset_reason.oid_arg1 = "PowerOnReset"; + } +} + u_int imx_soc_family(void) { Modified: stable/10/sys/arm/freescale/imx/imx_machdep.h ============================================================================== --- stable/10/sys/arm/freescale/imx/imx_machdep.h Sun Jan 24 19:21:53 2016 (r294677) +++ stable/10/sys/arm/freescale/imx/imx_machdep.h Sun Jan 24 19:34:05 2016 (r294678) @@ -30,10 +30,14 @@ #define IMX_MACHDEP_H #include +#include + +SYSCTL_DECL(_hw_imx); /* Common functions, implemented in imx_machdep.c. */ void imx_wdog_cpu_reset(vm_offset_t _wdcr_phys) __attribute__((__noreturn__)); +void imx_wdog_init_last_reset(vm_offset_t _wdsr_phys); /* From here down, routines are implemented in imxNN_machdep.c. */ Modified: stable/10/sys/arm/freescale/imx/imx_wdogreg.h ============================================================================== --- stable/10/sys/arm/freescale/imx/imx_wdogreg.h Sun Jan 24 19:21:53 2016 (r294677) +++ stable/10/sys/arm/freescale/imx/imx_wdogreg.h Sun Jan 24 19:34:05 2016 (r294678) @@ -47,6 +47,7 @@ #define WDOG_SR_STEP2 0xaaaa #define WDOG_RSR_REG 0x04 /* Reset Status Register */ +#define WDOG_RSR_POR (1 << 4) /* Due to Power-On Reset */ #define WDOG_RSR_TOUT (1 << 1) /* Due WDog timeout reset */ #define WDOG_RSR_SFTW (1 << 0) /* Due Soft reset */ From owner-svn-src-all@freebsd.org Sun Jan 24 19:36:50 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE66F7859; Sun, 24 Jan 2016 19:36:50 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8FB77BC4; Sun, 24 Jan 2016 19:36:50 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OJanmG081793; Sun, 24 Jan 2016 19:36:49 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OJan11081792; Sun, 24 Jan 2016 19:36:49 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601241936.u0OJan11081792@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 19:36:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294679 - stable/10/sys/arm/freescale/imx X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 19:36:50 -0000 Author: ian Date: Sun Jan 24 19:36:49 2016 New Revision: 294679 URL: https://svnweb.freebsd.org/changeset/base/294679 Log: MFC r292419, r294237: Fix the clock divisor calc for imx6 sdcard bus speed. Quick exit after setting the clock control register. Modified: stable/10/sys/arm/freescale/imx/imx_sdhci.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/freescale/imx/imx_sdhci.c ============================================================================== --- stable/10/sys/arm/freescale/imx/imx_sdhci.c Sun Jan 24 19:34:05 2016 (r294678) +++ stable/10/sys/arm/freescale/imx/imx_sdhci.c Sun Jan 24 19:36:49 2016 (r294679) @@ -429,6 +429,7 @@ imx_sdhci_write_2(device_t dev, struct s } else { imx_sdhc_set_clock(sc, false); } + return; } /* @@ -522,12 +523,19 @@ imx_sdhc_set_clock(struct imx_sdhci_soft else freq = sc->baseclk_hz / (2 * divisor); - for (prescale = 2; prescale < freq / prescale / 16;) + for (prescale = 2; freq < sc->baseclk_hz / (prescale * 16);) prescale <<= 1; - for (divisor = 1; freq < freq / prescale / divisor;) + for (divisor = 1; freq < sc->baseclk_hz / (prescale * divisor);) ++divisor; +#ifdef DEBUG + device_printf(sc->dev, + "desired SD freq: %d, actual: %d; base %d prescale %d divisor %d\n", + freq, sc->baseclk_hz / (prescale * divisor), sc->baseclk_hz, + prescale, divisor); +#endif + prescale >>= 1; divisor -= 1; From owner-svn-src-all@freebsd.org Sun Jan 24 19:41:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6418E79FD; Sun, 24 Jan 2016 19:41:33 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25C75E16; Sun, 24 Jan 2016 19:41:33 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OJfWle082604; Sun, 24 Jan 2016 19:41:32 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OJfVus082601; Sun, 24 Jan 2016 19:41:31 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601241941.u0OJfVus082601@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 19:41:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294680 - in stable/10/etc: defaults rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 19:41:33 -0000 Author: ian Date: Sun Jan 24 19:41:31 2016 New Revision: 294680 URL: https://svnweb.freebsd.org/changeset/base/294680 Log: MFC r292752: Enhance rc.d/netwait script to wait for late-attaching interfaces such as USB NICs. USB network hardware may not be enumerated and available when the rc.d networking scripts run. Eventually the USB attachment completes and devd events cause the network initialization to happen, but by then other rc.d scripts have already failed, because services which depend on NETWORKING (such as mountcritremote) may end up running before the network is actually ready. There is an existing netwait script, but because it is dependent on NETWORKING it runs too late to prevent failure of some other rc scripts. This change flips the order so that NETWORKING depends on netwait, and netwait now depends on devd and routing (the former is needed to make interfaces appear, and the latter is needed to run the ping tests in netwait). The netwait script used to be oriented primarily towards "as soon as any host is reachable the network is fully functional", so you gave it a list of IPs to try and you could optionally name an interface and it would wait for carrier on that interface. That functionality still works the same, but now you can provide a list of interfaces to wait for and it waits until each one of them is available. The ping logic still completes as soon as the first IP on the list responds. These changes were submitted by Brenden Molloy in PR 205186, and lightly modified by me to allow a list of interfaces instead of just one. PR: 205186 Relnotes: yes Modified: stable/10/etc/defaults/rc.conf stable/10/etc/rc.d/NETWORKING stable/10/etc/rc.d/netwait Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/defaults/rc.conf ============================================================================== --- stable/10/etc/defaults/rc.conf Sun Jan 24 19:36:49 2016 (r294679) +++ stable/10/etc/defaults/rc.conf Sun Jan 24 19:41:31 2016 (r294680) @@ -452,9 +452,9 @@ ubthidhci_enable="NO" # Switch an USB B ### Network link/usability verification options netwait_enable="NO" # Enable rc.d/netwait (or NO) -#netwait_ip="" # IP addresses to be pinged by netwait. +#netwait_ip="" # Wait for ping response from any IP in this list. netwait_timeout="60" # Total number of seconds to perform pings. -#netwait_if="" # Interface name to watch link state on. +#netwait_if="" # Wait for active link on each intf in this list. netwait_if_timeout="30" # Total number of seconds to monitor link state. ### Miscellaneous network options: ### Modified: stable/10/etc/rc.d/NETWORKING ============================================================================== --- stable/10/etc/rc.d/NETWORKING Sun Jan 24 19:36:49 2016 (r294679) +++ stable/10/etc/rc.d/NETWORKING Sun Jan 24 19:41:31 2016 (r294680) @@ -4,7 +4,7 @@ # # PROVIDE: NETWORKING NETWORK -# REQUIRE: netif netoptions routing ppp ipfw stf faith +# REQUIRE: netif netwait netoptions routing ppp ipfw stf faith # REQUIRE: defaultroute routed mrouted route6d mroute6d resolv bridge # REQUIRE: static_arp static_ndp Modified: stable/10/etc/rc.d/netwait ============================================================================== --- stable/10/etc/rc.d/netwait Sun Jan 24 19:36:49 2016 (r294679) +++ stable/10/etc/rc.d/netwait Sun Jan 24 19:41:31 2016 (r294680) @@ -3,13 +3,20 @@ # $FreeBSD$ # # PROVIDE: netwait -# REQUIRE: NETWORKING +# REQUIRE: devd routing # KEYWORD: nojail # -# The netwait script is intended to be used by systems which have -# statically-configured IP addresses in rc.conf(5). If your system -# uses DHCP, you should use synchronous_dhclient="YES" in your -# /etc/rc.conf instead of using netwait. +# The netwait script helps handle two situations: +# - Systems with USB or other late-attaching network hardware which +# is initialized by devd events. The script waits for all the +# interfaces named in the netwait_if list to appear. +# - Systems with statically-configured IP addresses in rc.conf(5). +# The IP addresses in the netwait_ip list are pinged. The script +# waits for any single IP in the list to respond to the ping. If your +# system uses DHCP, you should probably use synchronous_dhclient="YES" +# in your /etc/rc.conf instead of netwait_ip. +# Either or both of the wait lists can be used (at least one must be +# non-empty if netwait is enabled). . /etc/rc.subr @@ -21,77 +28,87 @@ stop_cmd=":" netwait_start() { - local ip rc count output link + local ip rc count output link wait_if got_if any_error - if [ -z "${netwait_ip}" ]; then - err 1 "You must define one or more IP addresses in netwait_ip" + if [ -z "${netwait_if}" ] && [ -z "${netwait_ip}" ]; then + err 1 "No interface or IP addresses listed, nothing to wait for" fi if [ ${netwait_timeout} -lt 1 ]; then err 1 "netwait_timeout must be >= 1" fi - # Handle SIGINT (Ctrl-C); force abort of while() loop - trap break SIGINT - if [ -n "${netwait_if}" ]; then - echo -n "Waiting for $netwait_if to have link" - - count=1 - while [ ${count} -le ${netwait_if_timeout} ]; do - if output=`/sbin/ifconfig ${netwait_if} 2>/dev/null`; then - link=`expr "${output}" : '.*[[:blank:]]status: \(no carrier\)'` - if [ -z "${link}" ]; then - echo '.' - break + any_error=0 + for wait_if in ${netwait_if}; do + echo -n "Waiting for ${wait_if}" + link="" + got_if=0 + count=1 + # Handle SIGINT (Ctrl-C); force abort of while() loop + trap break SIGINT + while [ ${count} -le ${netwait_if_timeout} ]; do + if output=`/sbin/ifconfig ${wait_if} 2>/dev/null`; then + if [ ${got_if} -eq 0 ]; then + echo -n ", interface present" + got_if=1 + fi + link=`expr "${output}" : '.*[[:blank:]]status: \(no carrier\)'` + if [ -z "${link}" ]; then + echo ', got link.' + break + fi fi - else - echo '' - err 1 "ifconfig ${netwait_if} failed" - fi - sleep 1 - count=$((count+1)) - done - if [ -n "${link}" ]; then + sleep 1 + count=$((count+1)) + done # Restore default SIGINT handler trap - SIGINT - - echo '' - warn "Interface still has no link. Continuing with startup, but" - warn "be aware you may not have a fully functional networking" - warn "layer at this point." - return + if [ ${got_if} -eq 0 ]; then + echo ", wait failed: interface never appeared." + any_error=1 + elif [ -n "${link}" ]; then + echo ", wait failed: interface still has no link." + any_error=1 + fi + done + if [ ${any_error} -eq 1 ]; then + warn "Continuing with startup, but be aware you may not have " + warn "a fully functional networking layer at this point." fi fi + + if [ -n "${netwait_ip}" ]; then + # Handle SIGINT (Ctrl-C); force abort of for() loop + trap break SIGINT + + for ip in ${netwait_ip}; do + echo -n "Waiting for ${ip} to respond to ICMP ping" + + count=1 + while [ ${count} -le ${netwait_timeout} ]; do + /sbin/ping -t 1 -c 1 -o ${ip} >/dev/null 2>&1 + rc=$? + + if [ $rc -eq 0 ]; then + # Restore default SIGINT handler + trap - SIGINT - # Handle SIGINT (Ctrl-C); force abort of while() loop - trap break SIGINT - - for ip in ${netwait_ip}; do - echo -n "Waiting for ${ip} to respond to ICMP" - - count=1 - while [ ${count} -le ${netwait_timeout} ]; do - /sbin/ping -t 1 -c 1 -o ${ip} >/dev/null 2>&1 - rc=$? - - if [ $rc -eq 0 ]; then - # Restore default SIGINT handler - trap - SIGINT - - echo '.' - return - fi - count=$((count+1)) + echo ', got response.' + return + fi + count=$((count+1)) + done + echo ', failed: No response from host.' done - echo ': No response from host.' - done - # Restore default SIGINT handler - trap - SIGINT + # Restore default SIGINT handler + trap - SIGINT + + warn "Exhausted IP list. Continuing with startup, but be aware you may" + warn "not have a fully functional networking layer at this point." + fi - warn "Exhausted IP list. Continuing with startup, but be aware you may" - warn "not have a fully functional networking layer at this point." } load_rc_config $name From owner-svn-src-all@freebsd.org Sun Jan 24 19:59:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EA7D8A1D00F; Sun, 24 Jan 2016 19:59:00 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B2D4D867; Sun, 24 Jan 2016 19:59:00 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OJwxMq087624; Sun, 24 Jan 2016 19:58:59 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OJwxnX087617; Sun, 24 Jan 2016 19:58:59 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601241958.u0OJwxnX087617@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 19:58:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294681 - stable/10/sys/arm/arm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 19:59:01 -0000 Author: ian Date: Sun Jan 24 19:58:58 2016 New Revision: 294681 URL: https://svnweb.freebsd.org/changeset/base/294681 Log: MFC r277416, r282023, r282024, r282025, r284264: Remove the SMP code from locore-v4. These will never use the SMP code as there is no multi-core hardware prior to ARMv6. Remove the armv6 code from locore-v4.S, it's not needed there. Fix the style of locore-v4.S and locore-v6.S to help find any common code. Cleanup a little more: - Remove whitespace at the end of lines - Use a tab after instructions, not spaces Fix the spelling of __ARM_ARCH >= 6 in sys/arm/arm. Modified: stable/10/sys/arm/arm/bcopyinout.S stable/10/sys/arm/arm/bcopyinout_xscale.S stable/10/sys/arm/arm/copystr.S stable/10/sys/arm/arm/locore-v4.S stable/10/sys/arm/arm/locore-v6.S stable/10/sys/arm/arm/machdep.c stable/10/sys/arm/arm/trap.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/arm/bcopyinout.S ============================================================================== --- stable/10/sys/arm/arm/bcopyinout.S Sun Jan 24 19:41:31 2016 (r294680) +++ stable/10/sys/arm/arm/bcopyinout.S Sun Jan 24 19:58:58 2016 (r294681) @@ -38,6 +38,7 @@ #include "assym.s" +#include #include #include @@ -54,7 +55,7 @@ __FBSDID("$FreeBSD$"); .text .align 2 -#ifdef _ARM_ARCH_6 +#if __ARM_ARCH >= 6 #define GET_PCB(tmp) \ mrc p15, 0, tmp, c13, c0, 4; \ add tmp, tmp, #(TD_PCB) Modified: stable/10/sys/arm/arm/bcopyinout_xscale.S ============================================================================== --- stable/10/sys/arm/arm/bcopyinout_xscale.S Sun Jan 24 19:41:31 2016 (r294680) +++ stable/10/sys/arm/arm/bcopyinout_xscale.S Sun Jan 24 19:58:58 2016 (r294681) @@ -38,11 +38,13 @@ #include __FBSDID("$FreeBSD$"); +#include + .syntax unified .text .align 2 -#ifdef _ARM_ARCH_6 +#if __ARM_ARCH >= 6 #define GET_PCB(tmp) \ mrc p15, 0, tmp, c13, c0, 4; \ add tmp, tmp, #(TD_PCB) Modified: stable/10/sys/arm/arm/copystr.S ============================================================================== --- stable/10/sys/arm/arm/copystr.S Sun Jan 24 19:41:31 2016 (r294680) +++ stable/10/sys/arm/arm/copystr.S Sun Jan 24 19:58:58 2016 (r294681) @@ -40,6 +40,7 @@ #include "assym.s" +#include #include #include __FBSDID("$FreeBSD$"); @@ -49,7 +50,7 @@ __FBSDID("$FreeBSD$"); .text .align 2 -#ifdef _ARM_ARCH_6 +#if __ARM_ARCH >= 6 #define GET_PCB(tmp) \ mrc p15, 0, tmp, c13, c0, 4; \ add tmp, tmp, #(TD_PCB) Modified: stable/10/sys/arm/arm/locore-v4.S ============================================================================== --- stable/10/sys/arm/arm/locore-v4.S Sun Jan 24 19:41:31 2016 (r294680) +++ stable/10/sys/arm/arm/locore-v4.S Sun Jan 24 19:58:58 2016 (r294681) @@ -49,8 +49,7 @@ __FBSDID("$FreeBSD$"); * * TODO: Fix the ARMv4/v5 case. */ -#if (defined(FLASHADDR) || defined(LOADERRAMADDR) || !defined(_ARM_ARCH_6)) && \ - !defined(PHYSADDR) +#ifndef PHYSADDR #error PHYSADDR must be defined for this configuration #endif @@ -116,7 +115,7 @@ ASENTRY_NP(_start) * If we're running with MMU disabled, test against the * physical address instead. */ - mrc p15, 0, r2, c1, c0, 0 + mrc p15, 0, r2, c1, c0, 0 ands r2, r2, #CPU_CONTROL_MMU_ENABLE ldreq r6, =PHYSADDR ldrne r6, =LOADERRAMADDR @@ -125,7 +124,7 @@ ASENTRY_NP(_start) cmp r7, pc bhi from_ram b do_copy - + flash_lower: cmp r6, pc bls from_ram @@ -148,12 +147,12 @@ from_ram: disable_mmu: /* Disable MMU for a while */ - mrc p15, 0, r2, c1, c0, 0 + mrc p15, 0, r2, c1, c0, 0 bic r2, r2, #(CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_DC_ENABLE |\ CPU_CONTROL_WBUF_ENABLE) bic r2, r2, #(CPU_CONTROL_IC_ENABLE) bic r2, r2, #(CPU_CONTROL_BPRD_ENABLE) - mcr p15, 0, r2, c1, c0, 0 + mcr p15, 0, r2, c1, c0, 0 nop nop @@ -169,36 +168,16 @@ Lunmapped: adr r0, Lpagetable bl translate_va_to_pa -#ifndef _ARM_ARCH_6 /* * Some of the older ports (the various XScale, mostly) assume * that the memory before the kernel is mapped, and use it for - * the various stacks, page tables, etc. For those CPUs, map the - * 64 first MB of RAM, as it used to be. + * the various stacks, page tables, etc. For those CPUs, map the + * 64 first MB of RAM, as it used to be. */ /* * Map PA == VA - */ - ldr r5, =PHYSADDR - mov r1, r5 - mov r2, r5 - /* Map 64MiB, preserved over calls to build_pagetables */ - mov r3, #64 - bl build_pagetables - - /* Create the kernel map to jump to */ - mov r1, r5 - ldr r2, =(KERNBASE) - bl build_pagetables - ldr r5, =(KERNPHYSADDR) -#else - /* - * Map PA == VA - */ - /* Find the start kernels load address */ - adr r5, _start - ldr r2, =(L1_S_OFFSET) - bic r5, r2 + */ + ldr r5, =PHYSADDR mov r1, r5 mov r2, r5 /* Map 64MiB, preserved over calls to build_pagetables */ @@ -207,10 +186,10 @@ Lunmapped: /* Create the kernel map to jump to */ mov r1, r5 - ldr r2, =(KERNVIRTADDR) + ldr r2, =(KERNBASE) bl build_pagetables -#endif - + ldr r5, =(KERNPHYSADDR) + #if defined(SOCDEV_PA) && defined(SOCDEV_VA) /* Create the custom map */ ldr r1, =SOCDEV_PA @@ -218,32 +197,19 @@ Lunmapped: bl build_pagetables #endif -#if defined(SMP) - orr r0, r0, #2 /* Set TTB shared memory flag */ -#endif mcr p15, 0, r0, c2, c0, 0 /* Set TTB */ mcr p15, 0, r0, c8, c7, 0 /* Flush TLB */ -#if defined(CPU_ARM1136) || defined(CPU_ARM1176) || defined(CPU_CORTEXA) || defined(CPU_MV_PJ4B) || defined(CPU_KRAIT) - mov r0, #0 - mcr p15, 0, r0, c13, c0, 1 /* Set ASID to 0 */ -#endif - /* Set the Domain Access register. Very important! */ - mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) + mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) mcr p15, 0, r0, c3, c0, 0 - /* + /* * Enable MMU. * On armv6 enable extended page tables, and set alignment checking * to modulo-4 (CPU_CONTROL_UNAL_ENABLE) for the ldrd/strd * instructions emitted by clang. */ mrc p15, 0, r0, c1, c0, 0 -#ifdef _ARM_ARCH_6 - orr r0, r0, #(CPU_CONTROL_V6_EXTPAGE | CPU_CONTROL_UNAL_ENABLE) - orr r0, r0, #(CPU_CONTROL_AFLT_ENABLE) - orr r0, r0, #(CPU_CONTROL_AF_ENABLE) -#endif orr r0, r0, #(CPU_CONTROL_MMU_ENABLE) mcr p15, 0, r0, c1, c0, 0 nop @@ -283,7 +249,7 @@ virt_done: /* init arm will return the new stack pointer. */ mov sp, r0 - bl _C_LABEL(mi_startup) /* call mi_startup()! */ + bl _C_LABEL(mi_startup) /* call mi_startup()! */ adr r0, .Lmainreturned b _C_LABEL(panic) @@ -338,9 +304,6 @@ translate_va_to_pa: build_pagetables: /* Set the required page attributed */ ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)) -#if defined(SMP) - orr r4, #(L1_SHARED) -#endif orr r1, r4 /* Move the virtual address to the correct bit location */ @@ -394,98 +357,12 @@ pagetable: .Lcpufuncs: .word _C_LABEL(cpufuncs) -#if defined(SMP) - -.Lmpvirt_done: - .word mpvirt_done -VA_TO_PA_POINTER(Lstartup_pagetable_secondary, temp_pagetable) - -ASENTRY_NP(mpentry) - - /* Make sure interrupts are disabled. */ - mrs r7, cpsr - orr r7, r7, #(PSR_I | PSR_F) - msr cpsr_c, r7 - - /* Disable MMU. It should be disabled already, but make sure. */ - mrc p15, 0, r2, c1, c0, 0 - bic r2, r2, #(CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_DC_ENABLE |\ - CPU_CONTROL_WBUF_ENABLE) - bic r2, r2, #(CPU_CONTROL_IC_ENABLE) - bic r2, r2, #(CPU_CONTROL_BPRD_ENABLE) - mcr p15, 0, r2, c1, c0, 0 - nop - nop - nop - CPWAIT(r0) - -#if ARM_MMU_V6 - bl armv6_idcache_inv_all /* Modifies r0 only */ -#elif ARM_MMU_V7 - bl armv7_idcache_inv_all /* Modifies r0-r3, ip */ -#endif - - /* Load the page table physical address */ - adr r0, Lstartup_pagetable_secondary - bl translate_va_to_pa - /* Load the address the secondary page table */ - ldr r0, [r0] - - orr r0, r0, #2 /* Set TTB shared memory flag */ - mcr p15, 0, r0, c2, c0, 0 /* Set TTB */ - mcr p15, 0, r0, c8, c7, 0 /* Flush TLB */ - - mov r0, #0 - mcr p15, 0, r0, c13, c0, 1 /* Set ASID to 0 */ - - /* Set the Domain Access register. Very important! */ - mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) - mcr p15, 0, r0, c3, c0, 0 - /* Enable MMU */ - mrc p15, 0, r0, c1, c0, 0 - orr r0, r0, #CPU_CONTROL_V6_EXTPAGE - orr r0, r0, #CPU_CONTROL_AF_ENABLE - orr r0, r0, #(CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_DC_ENABLE |\ - CPU_CONTROL_WBUF_ENABLE) - orr r0, r0, #(CPU_CONTROL_IC_ENABLE) - orr r0, r0, #(CPU_CONTROL_BPRD_ENABLE) - mcr p15, 0, r0, c1, c0, 0 - nop - nop - nop - CPWAIT(r0) - - adr r1, .Lstart - ldmia r1, {r1, r2, sp} /* Set initial stack and */ - mrc p15, 0, r0, c0, c0, 5 - and r0, r0, #15 - mov r1, #2048 - mul r2, r1, r0 - sub sp, sp, r2 - str r1, [sp] - ldr pc, .Lmpvirt_done - -mpvirt_done: - - mov fp, #0 /* trace back starts here */ - bl _C_LABEL(init_secondary) /* Off we go */ - - adr r0, .Lmpreturned - b _C_LABEL(panic) - /* NOTREACHED */ - -.Lmpreturned: - .asciz "init_secondary() returned" - .align 2 -END(mpentry) -#endif - ENTRY_NP(cpu_halt) - mrs r2, cpsr + mrs r2, cpsr bic r2, r2, #(PSR_MODE) - orr r2, r2, #(PSR_SVC32_MODE) + orr r2, r2, #(PSR_SVC32_MODE) orr r2, r2, #(PSR_I | PSR_F) - msr cpsr_fsxc, r2 + msr cpsr_fsxc, r2 ldr r4, .Lcpu_reset_address ldr r4, [r4] @@ -511,9 +388,9 @@ ENTRY_NP(cpu_halt) * Hurl ourselves into the ROM */ mov r0, #(CPU_CONTROL_32BP_ENABLE | CPU_CONTROL_32BD_ENABLE) - mcr p15, 0, r0, c1, c0, 0 - mcrne p15, 0, r2, c8, c7, 0 /* nail I+D TLB on ARMv4 and greater */ - mov pc, r4 + mcr p15, 0, r0, c1, c0, 0 + mcrne p15, 0, r2, c8, c7, 0 /* nail I+D TLB on ARMv4 and greater */ + mov pc, r4 /* * _cpu_reset_address contains the address to branch to, to complete @@ -550,7 +427,7 @@ ENTRY(longjmp) END(longjmp) .data - .global _C_LABEL(esym) + .global _C_LABEL(esym) _C_LABEL(esym): .word _C_LABEL(end) ENTRY_NP(abort) @@ -563,7 +440,7 @@ ENTRY_NP(sigcode) /* * Call the sigreturn system call. - * + * * We have to load r7 manually rather than using * "ldr r7, =SYS_sigreturn" to ensure the value of szsigcode is * correct. Using the alternative places esigcode at the address Modified: stable/10/sys/arm/arm/locore-v6.S ============================================================================== --- stable/10/sys/arm/arm/locore-v6.S Sun Jan 24 19:41:31 2016 (r294680) +++ stable/10/sys/arm/arm/locore-v6.S Sun Jan 24 19:58:58 2016 (r294681) @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$"); -#ifndef ARM_NEW_PMAP +#ifndef ARM_NEW_PMAP #define PTE1_OFFSET L1_S_OFFSET #define PTE1_SHIFT L1_S_SHIFT #define PTE1_SIZE L1_S_SIZE @@ -52,13 +52,13 @@ __FBSDID("$FreeBSD$"); .align 2 /* - * On entry for FreeBSD boot ABI: - * r0 - metadata pointer or 0 (boothowto on AT91's boot2) - * r1 - if (r0 == 0) then metadata pointer - * On entry for Linux boot ABI: + * On entry for FreeBSD boot ABI: + * r0 - metadata pointer or 0 (boothowto on AT91's boot2) + * r1 - if (r0 == 0) then metadata pointer + * On entry for Linux boot ABI: * r0 - 0 * r1 - machine type (passed as arg2 to initarm) - * r2 - Pointer to a tagged list or dtb image (phys addr) (passed as arg1 initarm) + * r2 - Pointer to a tagged list or dtb image (phys addr) (passed as arg1 initarm) * * For both types of boot we gather up the args, put them in a struct arm_boot_params * structure and pass that to initarm. @@ -66,17 +66,17 @@ __FBSDID("$FreeBSD$"); .globl btext btext: ASENTRY_NP(_start) - STOP_UNWINDING /* Can't unwind into the bootloader! */ + STOP_UNWINDING /* Can't unwind into the bootloader! */ - /* Make sure interrupts are disabled. */ + /* Make sure interrupts are disabled. */ cpsid ifa - mov r8, r0 /* 0 or boot mode from boot2 */ - mov r9, r1 /* Save Machine type */ - mov r10, r2 /* Save meta data */ + mov r8, r0 /* 0 or boot mode from boot2 */ + mov r9, r1 /* Save Machine type */ + mov r10, r2 /* Save meta data */ mov r11, r3 /* Future expansion */ - /* + /* * Check whether data cache is enabled. If it is, then we know * current tags are valid (not power-on garbage values) and there * might be dirty lines that need cleaning. Disable cache to prevent @@ -93,7 +93,7 @@ ASENTRY_NP(_start) * valid. Disable all caches and the MMU, and invalidate everything * before setting up new page tables and re-enabling the mmu. */ -1: +1: bic r7, #CPU_CONTROL_DC_ENABLE bic r7, #CPU_CONTROL_MMU_ENABLE bic r7, #CPU_CONTROL_IC_ENABLE @@ -119,13 +119,13 @@ ASENTRY_NP(_start) /* * Map PA == VA */ - /* Find the start kernels load address */ + /* Find the start kernels load address */ adr r5, _start ldr r2, =(PTE1_OFFSET) bic r5, r2 mov r1, r5 mov r2, r5 - /* Map 64MiB, preserved over calls to build_pagetables */ + /* Map 64MiB, preserved over calls to build_pagetables */ mov r3, #64 bl build_pagetables @@ -142,41 +142,41 @@ ASENTRY_NP(_start) #endif bl init_mmu - /* Switch to virtual addresses. */ + /* Switch to virtual addresses. */ ldr pc, =1f 1: - /* Setup stack, clear BSS */ + /* Setup stack, clear BSS */ ldr r1, =.Lstart ldmia r1, {r1, r2, sp} /* Set initial stack and */ add sp, sp, #INIT_ARM_STACK_SIZE - sub r2, r2, r1 /* get zero init data */ + sub r2, r2, r1 /* get zero init data */ mov r3, #0 2: str r3, [r1], #0x0004 /* get zero init data */ - subs r2, r2, #4 + subs r2, r2, #4 bgt 2b - mov r1, #28 /* loader info size is 28 bytes also second arg */ - subs sp, sp, r1 /* allocate arm_boot_params struct on stack */ - mov r0, sp /* loader info pointer is first arg */ - bic sp, sp, #7 /* align stack to 8 bytes */ - str r1, [r0] /* Store length of loader info */ + mov r1, #28 /* loader info size is 28 bytes also second arg */ + subs sp, sp, r1 /* allocate arm_boot_params struct on stack */ + mov r0, sp /* loader info pointer is first arg */ + bic sp, sp, #7 /* align stack to 8 bytes */ + str r1, [r0] /* Store length of loader info */ str r8, [r0, #4] /* Store r0 from boot loader */ str r9, [r0, #8] /* Store r1 from boot loader */ str r10, [r0, #12] /* store r2 from boot loader */ str r11, [r0, #16] /* store r3 from boot loader */ str r5, [r0, #20] /* store the physical address */ - adr r4, Lpagetable /* load the pagetable address */ + adr r4, Lpagetable /* load the pagetable address */ ldr r5, [r4, #4] str r5, [r0, #24] /* store the pagetable address */ mov fp, #0 /* trace back starts here */ bl _C_LABEL(initarm) /* Off we go */ - /* init arm will return the new stack pointer. */ + /* init arm will return the new stack pointer. */ mov sp, r0 - bl _C_LABEL(mi_startup) /* call mi_startup()! */ + bl _C_LABEL(mi_startup) /* call mi_startup()! */ ldr r0, =.Lmainreturned b _C_LABEL(panic) @@ -219,8 +219,8 @@ translate_va_to_pa: mov pc, lr /* - * Init MMU - * r0 - The table base address + * Init MMU + * r0 - the table base address */ ASENTRY_NP(init_mmu) @@ -267,11 +267,11 @@ END(init_mmu) /* - * Init SMP coherent mode, enable caching and switch to final MMU table. - * Called with disabled caches - * r0 - The table base address - * r1 - clear bits for aux register - * r2 - set bits for aux register + * Init SMP coherent mode, enable caching and switch to final MMU table. + * Called with disabled caches + * r0 - The table base address + * r1 - clear bits for aux register + * r2 - set bits for aux register */ ASENTRY_NP(reinit_mmu) push {r4-r11, lr} @@ -331,11 +331,11 @@ END(reinit_mmu) /* * Builds the page table - * r0 - The table base address - * r1 - The physical address (trashed) - * r2 - The virtual address (trashed) - * r3 - The number of 1MiB sections - * r4 - Trashed + * r0 - The table base address + * r1 - The physical address (trashed) + * r2 - The virtual address (trashed) + * r3 - The number of 1MiB sections + * r4 - Trashed * * Addresses must be 1MiB aligned */ @@ -350,15 +350,15 @@ build_pagetables: #endif orr r1, r4 - /* Move the virtual address to the correct bit location */ + /* Move the virtual address to the correct bit location */ lsr r2, #(PTE1_SHIFT - 2) mov r4, r3 1: str r1, [r0, r2] - add r2, r2, #4 - add r1, r1, #(PTE1_SIZE) - adds r4, r4, #-1 + add r2, r2, #4 + add r1, r1, #(PTE1_SIZE) + adds r4, r4, #-1 bhi 1b mov pc, lr @@ -372,7 +372,7 @@ VA_TO_PA_POINTER(Lpagetable, boot_pt1) .word svcstk /* must remain in order together. */ .Lmainreturned: - .asciz "main() returned" + .asciz "main() returned" .align 2 .bss @@ -380,8 +380,8 @@ svcstk: .space INIT_ARM_STACK_SIZE * MAXCPU /* - * Memory for the initial pagetable. We are unable to place this in - * the bss as this will be cleared after the table is loaded. + * Memory for the initial pagetable. We are unable to place this in + * the bss as this will be cleared after the table is loaded. */ .section ".init_pagetable" .align 14 /* 16KiB aligned */ @@ -398,7 +398,7 @@ boot_pt1: #if defined(SMP) ASENTRY_NP(mpentry) - /* Make sure interrupts are disabled. */ + /* Make sure interrupts are disabled. */ cpsid ifa /* Setup core, disable all caches. */ @@ -419,10 +419,10 @@ ASENTRY_NP(mpentry) mcr CP15_ICIALLU ISB - /* Find the delta between VA and PA */ + /* Find the delta between VA and PA */ adr r0, Lpagetable bl translate_va_to_pa - + bl init_mmu adr r1, .Lstart+8 /* Get initstack pointer from */ @@ -433,7 +433,7 @@ ASENTRY_NP(mpentry) mul r2, r1, r0 /* Point sp to initstack */ add sp, sp, r2 /* area for this processor. */ - /* Switch to virtual addresses. */ + /* Switch to virtual addresses. */ ldr pc, =1f 1: mov fp, #0 /* trace back starts here */ @@ -459,14 +459,14 @@ ENTRY_NP(cpu_halt) ldr r4, [r4] teq r4, #0 movne pc, r4 -1: +1: WFI b 1b /* * _cpu_reset_address contains the address to branch to, to complete * the cpu reset after turning the MMU off - * This variable is provided by the hardware specific code + * This variable is provided by the hardware specific code */ .Lcpu_reset_address: .word _C_LABEL(cpu_reset_address) @@ -498,38 +498,37 @@ END(abort) ENTRY_NP(sigcode) mov r0, sp - add r0, r0, #SIGF_UC + add r0, r0, #SIGF_UC /* - * Call the sigreturn system call. + * Call the sigreturn system call. * * We have to load r7 manually rather than using - * "ldr r7, =SYS_sigreturn" to ensure the value of szsigcode is + * "ldr r7, =SYS_sigreturn" to ensure the value of szsigcode is * correct. Using the alternative places esigcode at the address - * of the data rather than the address one past the data. + * of the data rather than the address one past the data. */ - ldr r7, [pc, #12] /* Load SYS_sigreturn */ + ldr r7, [pc, #12] /* Load SYS_sigreturn */ swi SYS_sigreturn - /* Well if that failed we better exit quick ! */ + /* Well if that failed we better exit quick ! */ - ldr r7, [pc, #8] /* Load SYS_exit */ + ldr r7, [pc, #8] /* Load SYS_exit */ swi SYS_exit - /* Branch back to retry SYS_sigreturn */ + /* Branch back to retry SYS_sigreturn */ b . - 16 END(sigcode) - .word SYS_sigreturn .word SYS_exit .align 2 - .global _C_LABEL(esigcode) + .global _C_LABEL(esigcode) _C_LABEL(esigcode): .data - .global szsigcode + .global szsigcode szsigcode: .long esigcode-sigcode Modified: stable/10/sys/arm/arm/machdep.c ============================================================================== --- stable/10/sys/arm/arm/machdep.c Sun Jan 24 19:41:31 2016 (r294680) +++ stable/10/sys/arm/arm/machdep.c Sun Jan 24 19:58:58 2016 (r294681) @@ -832,7 +832,7 @@ fake_preload_metadata(struct arm_boot_pa void pcpu0_init(void) { -#if ARM_ARCH_6 || ARM_ARCH_7A || defined(CPU_MV_PJ4B) +#if __ARM_ARCH >= 6 set_curthread(&thread0); #endif pcpu_init(pcpup, 0, sizeof(struct pcpu)); Modified: stable/10/sys/arm/arm/trap.c ============================================================================== --- stable/10/sys/arm/arm/trap.c Sun Jan 24 19:41:31 2016 (r294680) +++ stable/10/sys/arm/arm/trap.c Sun Jan 24 19:58:58 2016 (r294681) @@ -95,6 +95,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -322,7 +323,7 @@ abort_handler(struct trapframe *tf, int * location, so we can deal with those quickly. Otherwise we need to * disassemble the faulting instruction to determine if it was a write. */ -#if ARM_ARCH_6 || ARM_ARCH_7A +#if __ARM_ARCH >= 6 ftype = (fsr & FAULT_WNR) ? VM_PROT_READ | VM_PROT_WRITE : VM_PROT_READ; #else if (IS_PERMISSION_FAULT(fsr)) From owner-svn-src-all@freebsd.org Sun Jan 24 20:15:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0F064A1D699; Sun, 24 Jan 2016 20:15:54 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B864D27F; Sun, 24 Jan 2016 20:15:53 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OKFqvq093816; Sun, 24 Jan 2016 20:15:52 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OKFq39093814; Sun, 24 Jan 2016 20:15:52 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601242015.u0OKFq39093814@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 20:15:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294682 - stable/10/sys/arm/arm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 20:15:54 -0000 Author: ian Date: Sun Jan 24 20:15:52 2016 New Revision: 294682 URL: https://svnweb.freebsd.org/changeset/base/294682 Log: MFC r290647, r292523, r292891: ARM: Improve robustness of locore_v6.S and fix errors. - boot page table is not allocated in data section, so must be cleared before use - map only one section (1 MB) for SOCDEV mapping (*) - DSB must be used for ensuring of finishing TLB operations - Invalidate BTB when appropriate Allow armv4/5 kernels to be loaded on any 2MB boundary, like armv6/7. This eliminates the reliance on PHYSADDR and KERNPHYSADDR compile-time symbols (except when the rom-copy code is enabled) by using the current PC and the assumption that the entry-point routine is in the first 1MB section of the text segment. Other cleanups done: - Reduce the initarm() stack size back to 2K. It got increased to 4 * 2K when this file was supporting multicore armv6, but that support is now in locore-v6.S. - When building the temporary startup page tables, map the entire 4GB address space as VA=PA before mapping the kernel at its loaded location. This allows access to boot parameters stored somewhere in ram by the bootloader, regardless of where that may be. - When building the page table entry for supporting EARLY_PRINTF, map the section as uncached unbuffered, since it is presumably device registers. Note that this restores the ability to use loader(8)/ubldr on armv4/5 kernels. That was broken in r283035, the point at which ubldr started loading an arm kernel at any 2MB boundary. Also note that after this, there is no reason to set KERNVIRTADDR to anything other than 0xc0000000, and no need for PHYSADDR or KERNPHYSADDR symbols at all. Bring some of the recent locore-v4.S improvements into locore-V6... - Map all 4GB as VA=PA so that args passed in from a bootloader can be accessed regardless of where they are. - Figure out the kernel load address by directly masking the PC rather then by doing pc-relative math on the _start symbol. - For EARLY_PRINTF support, map device memory as uncacheable (no-op for ARM_NEW_PMAP because all TEX types resolve to uncacheable). Modified: stable/10/sys/arm/arm/locore-v4.S stable/10/sys/arm/arm/locore-v6.S Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/arm/locore-v4.S ============================================================================== --- stable/10/sys/arm/arm/locore-v4.S Sun Jan 24 19:58:58 2016 (r294681) +++ stable/10/sys/arm/arm/locore-v4.S Sun Jan 24 20:15:52 2016 (r294682) @@ -42,19 +42,8 @@ __FBSDID("$FreeBSD$"); -/* - * Sanity check the configuration. - * FLASHADDR and LOADERRAMADDR depend on PHYSADDR in some cases. - * ARMv4 and ARMv5 make assumptions on where they are loaded. - * - * TODO: Fix the ARMv4/v5 case. - */ -#ifndef PHYSADDR -#error PHYSADDR must be defined for this configuration -#endif - -/* What size should this really be ? It is only used by initarm() */ -#define INIT_ARM_STACK_SIZE (2048 * 4) +/* 2K initial stack is plenty, it is only used by initarm() */ +#define INIT_ARM_STACK_SIZE 2048 #define CPWAIT_BRANCH \ sub pc, pc, #4 @@ -109,6 +98,16 @@ ASENTRY_NP(_start) msr cpsr_c, r7 #if defined (FLASHADDR) && defined(LOADERRAMADDR) +/* + * Sanity check the configuration. + * FLASHADDR and LOADERRAMADDR depend on PHYSADDR in some cases. + * ARMv4 and ARMv5 make assumptions on where they are loaded. + * TODO: Fix the ARMv4/v5 case. + */ +#ifndef PHYSADDR +#error PHYSADDR must be defined for this configuration +#endif + /* Check if we're running from flash. */ ldr r7, =FLASHADDR /* @@ -164,37 +163,45 @@ Lunmapped: * Build page table from scratch. */ - /* Find the delta between VA and PA */ + /* + * Figure out the physical address we're loaded at by assuming this + * entry point code is in the first L1 section and so if we clear the + * offset bits of the pc that will give us the section-aligned load + * address, which remains in r5 throughout all the following code. + */ + ldr r2, =(L1_S_OFFSET) + bic r5, pc, r2 + + /* Find the delta between VA and PA, result stays in r0 throughout. */ adr r0, Lpagetable bl translate_va_to_pa - /* - * Some of the older ports (the various XScale, mostly) assume - * that the memory before the kernel is mapped, and use it for - * the various stacks, page tables, etc. For those CPUs, map the - * 64 first MB of RAM, as it used to be. - */ - /* - * Map PA == VA + /* + * First map the entire 4GB address space as VA=PA. It's mapped as + * normal (cached) memory because it's for things like accessing the + * parameters passed in from the bootloader, which might be at any + * physical address, different for every platform. */ - ldr r5, =PHYSADDR - mov r1, r5 - mov r2, r5 - /* Map 64MiB, preserved over calls to build_pagetables */ - mov r3, #64 + mov r1, #0 + mov r2, #0 + mov r3, #4096 bl build_pagetables - /* Create the kernel map to jump to */ + /* + * Next we do 64MiB starting at the physical load address, mapped to + * the VA the kernel is linked for. + */ mov r1, r5 - ldr r2, =(KERNBASE) + ldr r2, =(KERNVIRTADDR) + mov r3, #64 bl build_pagetables - ldr r5, =(KERNPHYSADDR) + /* Create a device mapping for early_printf if specified. */ #if defined(SOCDEV_PA) && defined(SOCDEV_VA) - /* Create the custom map */ ldr r1, =SOCDEV_PA ldr r2, =SOCDEV_VA - bl build_pagetables + mov r3, #1 + bl build_device_pagetables #endif mcr p15, 0, r0, c2, c0, 0 /* Set TTB */ @@ -205,9 +212,6 @@ Lunmapped: mcr p15, 0, r0, c3, c0, 0 /* * Enable MMU. - * On armv6 enable extended page tables, and set alignment checking - * to modulo-4 (CPU_CONTROL_UNAL_ENABLE) for the ldrd/strd - * instructions emitted by clang. */ mrc p15, 0, r0, c1, c0, 0 orr r0, r0, #(CPU_CONTROL_MMU_ENABLE) @@ -217,6 +221,9 @@ Lunmapped: nop CPWAIT(r0) + /* Transition the PC from physical to virtual addressing. */ + ldr pc,=mmu_done + mmu_done: nop adr r1, .Lstart @@ -227,7 +234,6 @@ mmu_done: str r3, [r1], #0x0004 /* get zero init data */ subs r2, r2, #4 bgt .L1 - ldr pc, .Lvirt_done virt_done: mov r1, #28 /* loader info size is 28 bytes also second arg */ @@ -301,21 +307,25 @@ translate_va_to_pa: * * Addresses must be 1MiB aligned */ +build_device_pagetables: + ldr r4, =(L1_TYPE_S|L1_S_AP(AP_KRW)) + b 1f build_pagetables: /* Set the required page attributed */ ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)) +1: orr r1, r4 /* Move the virtual address to the correct bit location */ lsr r2, #(L1_S_SHIFT - 2) mov r4, r3 -1: +2: str r1, [r0, r2] add r2, r2, #4 add r1, r1, #(L1_S_SIZE) adds r4, r4, #-1 - bhi 1b + bhi 2b RET Modified: stable/10/sys/arm/arm/locore-v6.S ============================================================================== --- stable/10/sys/arm/arm/locore-v6.S Sun Jan 24 19:58:58 2016 (r294681) +++ stable/10/sys/arm/arm/locore-v6.S Sun Jan 24 20:15:52 2016 (r294682) @@ -103,46 +103,60 @@ ASENTRY_NP(_start) orr r7, #CPU_CONTROL_AFLT_ENABLE orr r7, #CPU_CONTROL_VECRELOC mcr CP15_SCTLR(r7) + DSB ISB bl dcache_inv_poc_all mcr CP15_ICIALLU + DSB ISB /* * Build page table from scratch. */ - /* Calculate the physical address of the startup pagetable. */ + /* + * Figure out the physical address we're loaded at by assuming this + * entry point code is in the first L1 section and so if we clear the + * offset bits of the pc that will give us the section-aligned load + * address, which remains in r5 throughout all the following code. + */ + ldr r2, =(L1_S_OFFSET) + bic r5, pc, r2 + + /* Find the delta between VA and PA, result stays in r0 throughout. */ adr r0, Lpagetable bl translate_va_to_pa - /* - * Map PA == VA + /* + * First map the entire 4GB address space as VA=PA. It's mapped as + * normal (cached) memory because it's for things like accessing the + * parameters passed in from the bootloader, which might be at any + * physical address, different for every platform. */ - /* Find the start kernels load address */ - adr r5, _start - ldr r2, =(PTE1_OFFSET) - bic r5, r2 - mov r1, r5 - mov r2, r5 - /* Map 64MiB, preserved over calls to build_pagetables */ - mov r3, #64 + mov r1, #0 + mov r2, #0 + mov r3, #4096 bl build_pagetables - /* Create the kernel map to jump to */ + /* + * Next we do 64MiB starting at the physical load address, mapped to + * the VA the kernel is linked for. + */ mov r1, r5 ldr r2, =(KERNVIRTADDR) + mov r3, #64 bl build_pagetables + /* Create a device mapping for early_printf if specified. */ #if defined(SOCDEV_PA) && defined(SOCDEV_VA) - /* Create the custom map used for early_printf(). */ ldr r1, =SOCDEV_PA ldr r2, =SOCDEV_VA - bl build_pagetables + mov r3, #1 + bl build_device_pagetables #endif bl init_mmu - /* Switch to virtual addresses. */ + /* Transition the PC from physical to virtual addressing. */ ldr pc, =1f 1: @@ -261,7 +275,9 @@ ASENTRY_NP(init_mmu) ISB mcr CP15_TLBIALL /* Flush TLB */ mcr CP15_BPIALL /* Flush Branch predictor */ + DSB ISB + mov pc, lr END(init_mmu) @@ -289,6 +305,7 @@ ASENTRY_NP(reinit_mmu) bl dcache_inv_pou_all #endif mcr CP15_ICIALLU + DSB ISB /* Set auxiliary register */ @@ -297,6 +314,7 @@ ASENTRY_NP(reinit_mmu) eor r8, r8, r6 /* Set bits */ teq r7, r8 mcrne CP15_ACTLR(r8) + DSB ISB /* Enable caches. */ @@ -311,8 +329,8 @@ ASENTRY_NP(reinit_mmu) DSB ISB - /* Flush all TLBs */ - mcr CP15_TLBIALL + mcr CP15_TLBIALL /* Flush TLB */ + mcr CP15_BPIALL /* Flush Branch predictor */ DSB ISB @@ -323,6 +341,7 @@ ASENTRY_NP(reinit_mmu) bl dcache_inv_pou_all #endif mcr CP15_ICIALLU + DSB ISB pop {r4-r11, pc} @@ -339,6 +358,15 @@ END(reinit_mmu) * * Addresses must be 1MiB aligned */ +build_device_pagetables: +#if defined(ARM_NEW_PMAP) + ldr r4, =PTE1_V|PTE1_A|PTE1_AP_KRW|TEX1_CLASS_0 +#elif defined(SMP) + ldr r4, =(L1_TYPE_S|L1_S_AP(AP_KRW)|L1_SHARED) +#else + ldr r4, =(L1_TYPE_S|L1_S_AP(AP_KRW)) +#endif + b 1f build_pagetables: /* Set the required page attributed */ #if defined(ARM_NEW_PMAP) @@ -348,18 +376,19 @@ build_pagetables: #else ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)) #endif +1: orr r1, r4 /* Move the virtual address to the correct bit location */ lsr r2, #(PTE1_SHIFT - 2) mov r4, r3 -1: +2: str r1, [r0, r2] add r2, r2, #4 add r1, r1, #(PTE1_SIZE) adds r4, r4, #-1 - bhi 1b + bhi 2b mov pc, lr @@ -412,11 +441,13 @@ ASENTRY_NP(mpentry) orr r0, #CPU_CONTROL_AFLT_ENABLE orr r0, #CPU_CONTROL_VECRELOC mcr CP15_SCTLR(r0) + DSB ISB /* Invalidate L1 cache I+D cache */ bl dcache_inv_pou_all mcr CP15_ICIALLU + DSB ISB /* Find the delta between VA and PA */ From owner-svn-src-all@freebsd.org Sun Jan 24 21:04:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C88157F21; Sun, 24 Jan 2016 21:04:08 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A4E4667; Sun, 24 Jan 2016 21:04:08 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OL47X7008822; Sun, 24 Jan 2016 21:04:07 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OL47UM008815; Sun, 24 Jan 2016 21:04:07 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601242104.u0OL47UM008815@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 21:04:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294683 - in stable/10/sys: amd64/amd64 arm/arm arm/xscale/ixp425 i386/i386 kern sparc64/sparc64 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 21:04:09 -0000 Author: ian Date: Sun Jan 24 21:04:06 2016 New Revision: 294683 URL: https://svnweb.freebsd.org/changeset/base/294683 Log: MFC r293045, r293046: Make the 'env' directive described in config(5) work on all architectures, providing compiled-in static environment data that is used instead of any data passed in from a boot loader. Previously 'env' worked only on i386 and arm xscale systems, because it required the MD startup code to examine the global envmode variable and decide whether to use static_env or an environment obtained from the boot loader, and set the global kern_envp accordingly. Most startup code wasn't doing so. Making things even more complex, some mips startup code uses an alternate scheme that involves calling init_static_kenv() to pass an empty buffer and its size, then uses a series of kern_setenv() calls to populate that buffer. Now all MD startup code calls init_static_kenv(), and that routine provides a single point where envmode is checked and the decision is made whether to use the compiled-in static_kenv or the values provided by the MD code. The routine also continues to serve its original purpose for mips; if a non-zero buffer size is passed the routine installs the empty buffer ready to accept kern_setenv() values. Now if the size is zero, the provided buffer full of existing env data is installed. A NULL pointer can be passed if the boot loader provides no env data; this allows the static env to be installed if envmode is set to do so. Most of the work here is a near-mechanical change to call the init function instead of directly setting kern_envp. A notable exception is in xen/pv.c; that code was originally installing a buffer full of preformatted env data along with its non-zero size (like mips code does), which would have allowed kern_setenv() calls to wipe out the preformatted data. Now it passes a zero for the size so that the buffer of data it installs is treated as non-writeable. Also, revert accidental change that snuck into r293045. Modified: stable/10/sys/amd64/amd64/machdep.c stable/10/sys/arm/arm/machdep.c stable/10/sys/arm/xscale/ixp425/avila_machdep.c stable/10/sys/i386/i386/machdep.c stable/10/sys/kern/kern_environment.c stable/10/sys/sparc64/sparc64/machdep.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/amd64/machdep.c ============================================================================== --- stable/10/sys/amd64/amd64/machdep.c Sun Jan 24 20:15:52 2016 (r294682) +++ stable/10/sys/amd64/amd64/machdep.c Sun Jan 24 21:04:06 2016 (r294683) @@ -1847,7 +1847,7 @@ hammer_time(u_int64_t modulep, u_int64_t if (kmdp == NULL) kmdp = preload_search_by_type("elf64 kernel"); boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *) + KERNBASE; + init_static_kenv(MD_FETCH(kmdp, MODINFOMD_ENVP, char *) + KERNBASE, 0); #ifdef DDB ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); Modified: stable/10/sys/arm/arm/machdep.c ============================================================================== --- stable/10/sys/arm/arm/machdep.c Sun Jan 24 20:15:52 2016 (r294682) +++ stable/10/sys/arm/arm/machdep.c Sun Jan 24 21:04:06 2016 (r294683) @@ -826,6 +826,8 @@ fake_preload_metadata(struct arm_boot_pa fake_preload[i] = 0; preload_metadata = (void *)fake_preload; + init_static_kenv(NULL, 0); + return (lastaddr); } @@ -901,6 +903,8 @@ linux_parse_boot_param(struct arm_boot_p bcopy(atag_list, atags, (char *)walker - (char *)atag_list + ATAG_SIZE(walker)); + init_static_kenv(NULL, 0); + return fake_preload_metadata(abp); } #endif @@ -929,7 +933,7 @@ freebsd_parse_boot_param(struct arm_boot return 0; boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + init_static_kenv(MD_FETCH(kmdp, MODINFOMD_ENVP, char *), 0); lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); #ifdef DDB ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); Modified: stable/10/sys/arm/xscale/ixp425/avila_machdep.c ============================================================================== --- stable/10/sys/arm/xscale/ixp425/avila_machdep.c Sun Jan 24 20:15:52 2016 (r294682) +++ stable/10/sys/arm/xscale/ixp425/avila_machdep.c Sun Jan 24 21:04:06 2016 (r294683) @@ -223,8 +223,8 @@ initarm(struct arm_boot_params *abp) pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); - if (envmode == 1) - kern_envp = static_env; + init_static_kenv(NULL, 0); + /* Do basic tuning, hz etc */ init_param1(); @@ -420,10 +420,6 @@ initarm(struct arm_boot_params *abp) init_param2(physmem); kdb_init(); - /* use static kernel environment if so configured */ - if (envmode == 1) - kern_envp = static_env; - return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); #undef next_page Modified: stable/10/sys/i386/i386/machdep.c ============================================================================== --- stable/10/sys/i386/i386/machdep.c Sun Jan 24 20:15:52 2016 (r294682) +++ stable/10/sys/i386/i386/machdep.c Sun Jan 24 21:04:06 2016 (r294683) @@ -3190,10 +3190,11 @@ init386(first) } else { metadata_missing = 1; } - if (envmode == 1) - kern_envp = static_env; - else if (bootinfo.bi_envp) - kern_envp = (caddr_t)bootinfo.bi_envp + KERNBASE; + + if (bootinfo.bi_envp) + init_static_kenv((caddr_t)bootinfo.bi_envp + KERNBASE, 0); + else + init_static_kenv(NULL, 0); /* Init basic tunables, hz etc */ init_param1(); Modified: stable/10/sys/kern/kern_environment.c ============================================================================== --- stable/10/sys/kern/kern_environment.c Sun Jan 24 20:15:52 2016 (r294682) +++ stable/10/sys/kern/kern_environment.c Sun Jan 24 21:04:06 2016 (r294683) @@ -210,12 +210,44 @@ done: return (error); } +/* + * Populate the initial kernel environment. + * + * This is called very early in MD startup, either to provide a copy of the + * environment obtained from a boot loader, or to provide an empty buffer into + * which MD code can store an initial environment using kern_setenv() calls. + * + * If the global envmode is 1, the environment is initialized from the global + * static_env[], regardless of the arguments passed. This implements the env + * keyword described in config(5). In this case env_pos is set to env_len, + * causing kern_setenv() to return -1 (if len > 0) or panic (if len == 0) until + * the dynamic environment is available. The envmode and static_env variables + * are defined in env.c which is generated by config(8). + * + * If len is non-zero, the caller is providing an empty buffer. The caller will + * subsequently use kern_setenv() to add up to len bytes of initial environment + * before the dynamic environment is available. + * + * If len is zero, the caller is providing a pre-loaded buffer containing + * environment strings. Additional strings cannot be added until the dynamic + * environment is available. The memory pointed to must remain stable at least + * until sysinit runs init_dynamic_kenv(). If no initial environment is + * available from the boot loader, passing a NULL pointer allows the static_env + * to be installed if it is configured. + */ void init_static_kenv(char *buf, size_t len) { - kern_envp = buf; - env_len = len; - env_pos = 0; + + if (envmode == 1) { + kern_envp = static_env; + env_len = len; + env_pos = len; + } else { + kern_envp = buf; + env_len = len; + env_pos = 0; + } } /* Modified: stable/10/sys/sparc64/sparc64/machdep.c ============================================================================== --- stable/10/sys/sparc64/sparc64/machdep.c Sun Jan 24 20:15:52 2016 (r294682) +++ stable/10/sys/sparc64/sparc64/machdep.c Sun Jan 24 21:04:06 2016 (r294683) @@ -383,7 +383,8 @@ sparc64_init(caddr_t mdp, u_long o1, u_l kmdp = preload_search_by_type("elf kernel"); if (kmdp != NULL) { boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + init_static_kenv(MD_FETCH(kmdp, MODINFOMD_ENVP, char *), + 0); end = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); kernel_tlb_slots = MD_FETCH(kmdp, MODINFOMD_DTLB_SLOTS, int); From owner-svn-src-all@freebsd.org Sun Jan 24 21:18:56 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 63D559D9440; Sun, 24 Jan 2016 21:18:56 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31F8CC4C; Sun, 24 Jan 2016 21:18:56 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OLIth1011790; Sun, 24 Jan 2016 21:18:55 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OLIt0R011789; Sun, 24 Jan 2016 21:18:55 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601242118.u0OLIt0R011789@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Sun, 24 Jan 2016 21:18:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294684 - head/share/dtrace X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 21:18:56 -0000 Author: dteske Date: Sun Jan 24 21:18:54 2016 New Revision: 294684 URL: https://svnweb.freebsd.org/changeset/base/294684 Log: Bump copyright for change from fbt to syscall MFC after: 3 days X-MFC-to: stable/10 X-MFC-with: r294548 r294556 Modified: head/share/dtrace/watch_kill Modified: head/share/dtrace/watch_kill ============================================================================== --- head/share/dtrace/watch_kill Sun Jan 24 21:04:06 2016 (r294683) +++ head/share/dtrace/watch_kill Sun Jan 24 21:18:54 2016 (r294684) @@ -1,6 +1,6 @@ #!/usr/sbin/dtrace -s /* - - * Copyright (c) 2014-2015 Devin Teske + * Copyright (c) 2014-2016 Devin Teske * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From owner-svn-src-all@freebsd.org Sun Jan 24 21:45:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79D849D9CB3 for ; Sun, 24 Jan 2016 21:45:42 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-wm0-x22e.google.com (mail-wm0-x22e.google.com [IPv6:2a00:1450:400c:c09::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 134F8B05 for ; Sun, 24 Jan 2016 21:45:42 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-wm0-x22e.google.com with SMTP id n5so53433342wmn.0 for ; Sun, 24 Jan 2016 13:45:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=qPz3GfwjhcNWCILHpOD4WS2LZkA9vLBjhtGEg8/o0pc=; b=kk//FD7dZQZxRFgt6af0P5IojmT8ZixxMLxdOwfgq9OuNxAlMeCyiAkqQBLUOtfQ1a IqEbKK5pWtvnLMOtv/vXs+v/Cw1VNpG3Kp2zdfKeJzDe14wFyPAsRCV/fBaDEeKmIOzh glRAIiP30yXo3E0kZLflKe4UBKisMZmnZ/g0OxwWhVNRKUmTFV15RmRLYTqQz6daQjrL pvesPaTXpa+rX9R/htt0Wkc0r08a5M0rr/KepkgW6+qMFnqbu/oJJw7gqPusC4lNflRW ZnFytYvP1u/8Sb8tI7s71ry6vaxNuB5e6aeGEAFhELH7HkF3BpwgtSaUHYM3EaGGRw62 KQSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=qPz3GfwjhcNWCILHpOD4WS2LZkA9vLBjhtGEg8/o0pc=; b=e2se7kHcf81iaxmY2vI8+eb4XV/Jq0yq1qO0hw1cBBHmzS/jS6z/LvFribOXRgvwHu 0Bt3SNZKFLb3SiDd8cYxak0DfoOCHArbuZmNAFO7XSv0byyoqXmS1wCEw0fh7+iEIvu3 jbALI6NLKS/c6IXjlzysGWbbsh3mAEsB3TR4uaBXhn0HbYotZQm4Mi8VUf8tdgC6mR5p 79AFX+qs/o0zjQ8NvDqpQYXHMRPTo0zbSvNYOyBiGO7SfqtNCceEJ4dqslYPRKHAyBFi 3t3xrCWFUvgVD5MA1zdwNJDlt0N81LVGlV+YInU5b6Z/9gjiirbhu+ORoePEK/ekNoBz +xWA== X-Gm-Message-State: AG10YOTrdsdHyDzd4robOTxaTiVn18omppgQorINllx6WbTOztMMgR1nx/Az3j7TEi/kgsdTYwgORuWnsUWPYZ/X MIME-Version: 1.0 X-Received: by 10.28.5.213 with SMTP id 204mr14171063wmf.20.1453671940487; Sun, 24 Jan 2016 13:45:40 -0800 (PST) Received: by 10.194.82.6 with HTTP; Sun, 24 Jan 2016 13:45:40 -0800 (PST) In-Reply-To: <563F1A27.6030002@selasky.org> References: <201511070143.tA71h13k038232@repo.freebsd.org> <563DDE73.6030307@selasky.org> <563F1A27.6030002@selasky.org> Date: Sun, 24 Jan 2016 22:45:40 +0100 Message-ID: Subject: Re: svn commit: r290475 - in head: share/man/man9 sys/kern sys/sys From: Oliver Pinter To: Hans Petter Selasky Cc: cem@freebsd.org, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, emaste@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 21:45:42 -0000 On 11/8/15, Hans Petter Selasky wrote: > On 11/07/15 19:26, Conrad Meyer wrote: >> Can do =E2=80=94 fixed in r290505. >> >> Thanks, >> Conrad > > Thank you. Looks good! > > --HPS Hi All! Is there any way to merge back to 10-STABLE these patches? > > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" From owner-svn-src-all@freebsd.org Sun Jan 24 22:00:37 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8F1EC9D9FC9; Sun, 24 Jan 2016 22:00:37 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 61C60F07; Sun, 24 Jan 2016 22:00:37 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OM0aVr024062; Sun, 24 Jan 2016 22:00:36 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OM0anN024060; Sun, 24 Jan 2016 22:00:36 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601242200.u0OM0anN024060@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 22:00:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294685 - in stable/10/sys: arm/arm boot/uboot/lib X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:00:37 -0000 Author: ian Date: Sun Jan 24 22:00:36 2016 New Revision: 294685 URL: https://svnweb.freebsd.org/changeset/base/294685 Log: MFC r293053, r293061, r293063, r293064, r293065, r293775, r293792: Use 64-bit math when finding a block of ram to hold the kernel. This fixes a problem on 32-bit systems which have ram occupying the end of the physical address space -- for example, a block of ram at 0x80000000 with a size of 0x80000000 was overflowing 32 bit math and ending up with a calculated size of zero. Use 64-bit math when processing the lists of physical and excluded memory to generate the phys_avail and dump_avail arrays. Work around problems that happen when there is ram at the end of the physical address space. Cast pointer through uintptr_t on the way to uint64_t to squelch a warning. Reword the comment to better describe what I found while researching the problem that led to this temporary workaround (and also so I can properly cite the PR in the commit this time). Cast using uintfptr_t and eliminate the cast to uint64_t which is uneeded because rounding down cannot increase the number of bits needed to express the result. Go back to using uintptr_t, because code that actually compiles is infinitely less buggy than code that is theoretically correct in some alternate universe. PR: 201614 Modified: stable/10/sys/arm/arm/physmem.c stable/10/sys/boot/uboot/lib/copy.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/arm/physmem.c ============================================================================== --- stable/10/sys/arm/arm/physmem.c Sun Jan 24 21:18:54 2016 (r294684) +++ stable/10/sys/arm/arm/physmem.c Sun Jan 24 22:00:36 2016 (r294685) @@ -161,7 +161,7 @@ static size_t regions_to_avail(vm_paddr_t *avail, uint32_t exflags, long *pavail) { size_t acnt, exi, hwi; - vm_paddr_t end, start, xend, xstart; + uint64_t end, start, xend, xstart; long availmem; const struct region *exp, *hwp; @@ -171,7 +171,7 @@ regions_to_avail(vm_paddr_t *avail, uint for (hwi = 0, hwp = hwregions; hwi < hwcnt; ++hwi, ++hwp) { start = hwp->addr; end = hwp->size + start; - realmem += arm32_btop(end - start); + realmem += arm32_btop((vm_offset_t)(end - start)); for (exi = 0, exp = exregions; exi < excnt; ++exi, ++exp) { /* * If the excluded region does not match given flags, @@ -212,9 +212,10 @@ regions_to_avail(vm_paddr_t *avail, uint * could affect the remainder of this hw region. */ if ((xstart > start) && (xend < end)) { - avail[acnt++] = start; - avail[acnt++] = xstart; - availmem += arm32_btop(xstart - start); + avail[acnt++] = (vm_paddr_t)start; + avail[acnt++] = (vm_paddr_t)xstart; + availmem += + arm32_btop((vm_offset_t)(xstart - start)); start = xend; continue; } @@ -233,9 +234,9 @@ regions_to_avail(vm_paddr_t *avail, uint * available entry for it. */ if (end > start) { - avail[acnt++] = start; - avail[acnt++] = end; - availmem += arm32_btop(end - start); + avail[acnt++] = (vm_paddr_t)start; + avail[acnt++] = (vm_paddr_t)end; + availmem += arm32_btop((vm_offset_t)(end - start)); } if (acnt >= MAX_AVAIL_ENTRIES) panic("Not enough space in the dump/phys_avail arrays"); @@ -279,10 +280,22 @@ arm_physmem_hardware_region(vm_paddr_t p /* * Filter out the page at PA 0x00000000. The VM can't handle it, as * pmap_extract() == 0 means failure. + * + * Also filter out the page at the end of the physical address space -- + * if addr is non-zero and addr+size is zero we wrapped to the next byte + * beyond what vm_paddr_t can express. That leads to a NULL pointer + * deref early in startup; work around it by leaving the last page out. + * + * XXX This just in: subtract out a whole megabyte, not just 1 page. + * Reducing the size by anything less than 1MB results in the NULL + * pointer deref in _vm_map_lock_read(). Better to give up a megabyte + * than leave some folks with an unusable system while we investigate. */ if (pa == 0) { pa = PAGE_SIZE; sz -= PAGE_SIZE; + } else if (pa + sz == 0) { + sz -= 1024 * 1024; } /* Modified: stable/10/sys/boot/uboot/lib/copy.c ============================================================================== --- stable/10/sys/boot/uboot/lib/copy.c Sun Jan 24 21:18:54 2016 (r294684) +++ stable/10/sys/boot/uboot/lib/copy.c Sun Jan 24 22:00:36 2016 (r294685) @@ -69,11 +69,11 @@ uint64_t uboot_loadaddr(u_int type, void *data, uint64_t addr) { struct sys_info *si; - uintptr_t sblock, eblock, subldr, eubldr; - uintptr_t biggest_block, this_block; - size_t biggest_size, this_size; + uint64_t sblock, eblock, subldr, eubldr; + uint64_t biggest_block, this_block; + uint64_t biggest_size, this_size; int i; - char * envstr; + char *envstr; if (addr == 0) { /* @@ -101,13 +101,14 @@ uboot_loadaddr(u_int type, void *data, u biggest_block = 0; biggest_size = 0; subldr = rounddown2((uintptr_t)_start, KERN_ALIGN); - eubldr = roundup2(uboot_heap_end, KERN_ALIGN); + eubldr = roundup2((uint64_t)uboot_heap_end, KERN_ALIGN); for (i = 0; i < si->mr_no; i++) { if (si->mr[i].flags != MR_ATTR_DRAM) continue; - sblock = roundup2(si->mr[i].start, KERN_ALIGN); - eblock = rounddown2(si->mr[i].start + si->mr[i].size, + sblock = roundup2((uint64_t)si->mr[i].start, KERN_ALIGN); + eblock = rounddown2((uint64_t)si->mr[i].start + + si->mr[i].size, KERN_ALIGN); if (biggest_size == 0) sblock += KERN_MINADDR; if (subldr >= sblock && subldr < eblock) { @@ -127,9 +128,10 @@ uboot_loadaddr(u_int type, void *data, u if (biggest_size == 0) panic("Not enough DRAM to load kernel\n"); #if 0 - printf("Loading kernel into region 0x%08x-0x%08x (%u MiB)\n", - biggest_block, biggest_block + biggest_size - 1, - biggest_size / 1024 / 1024); + printf("Loading kernel into region 0x%08jx-0x%08jx (%ju MiB)\n", + (uintmax_t)biggest_block, + (uintmax_t)biggest_block + biggest_size - 1, + (uintmax_t)biggest_size / 1024 / 1024); #endif return (biggest_block); } From owner-svn-src-all@freebsd.org Sun Jan 24 22:05:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 490FF7232; Sun, 24 Jan 2016 22:05:23 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1B9113B2; Sun, 24 Jan 2016 22:05:23 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OM5MkO026823; Sun, 24 Jan 2016 22:05:22 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OM5M8r026822; Sun, 24 Jan 2016 22:05:22 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601242205.u0OM5M8r026822@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 22:05:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294686 - stable/10/sys/arm/arm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:05:23 -0000 Author: ian Date: Sun Jan 24 22:05:21 2016 New Revision: 294686 URL: https://svnweb.freebsd.org/changeset/base/294686 Log: MFC r293830: Fix the spelling of fueword* to eliminate compile warnings about mismatched begin/end symbols when the warning level is turned up. Modified: stable/10/sys/arm/arm/fusu.S Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/arm/fusu.S ============================================================================== --- stable/10/sys/arm/arm/fusu.S Sun Jan 24 22:00:36 2016 (r294685) +++ stable/10/sys/arm/arm/fusu.S Sun Jan 24 22:05:21 2016 (r294686) @@ -131,8 +131,8 @@ EENTRY_NP(fuword32) str r1, [r2, #PCB_ONFAULT] mov r0, r3 RET -EEND(fuword32) -END(fuword) +EEND(fueword32) +END(fueword) /* * fusword(caddr_t uaddr); From owner-svn-src-all@freebsd.org Sun Jan 24 22:06:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 036FC72DC; Sun, 24 Jan 2016 22:06:58 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B77817CC; Sun, 24 Jan 2016 22:06:57 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OM6uaV026917; Sun, 24 Jan 2016 22:06:56 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OM6uuR026916; Sun, 24 Jan 2016 22:06:56 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601242206.u0OM6uuR026916@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 22:06:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294687 - stable/10/sys/arm/at91 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:06:58 -0000 Author: ian Date: Sun Jan 24 22:06:56 2016 New Revision: 294687 URL: https://svnweb.freebsd.org/changeset/base/294687 Log: MFC r294032: Fix the handling of the "PDC write transfer length" erratum for at91. The problem affects revision 1xx hardware as well as later versions. Also, the recommended workaround is to set the PDC count register for a 12-byte transfer when the actual size is less than that, but there is no need to extend or zero-out the data buffer, because the blklen register contains the real transfer size and only that many bytes will be transferred. Also add a sysctl to turn debugging printfs on or off on the fly. Modified: stable/10/sys/arm/at91/at91_mci.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/at91/at91_mci.c ============================================================================== --- stable/10/sys/arm/at91/at91_mci.c Sun Jan 24 22:05:21 2016 (r294686) +++ stable/10/sys/arm/at91/at91_mci.c Sun Jan 24 22:06:56 2016 (r294687) @@ -446,6 +446,9 @@ at91_mci_attach(device_t dev) CTLFLAG_RW, &sc->allow_overclock, 0, "Allow up to 30MHz clock for 25MHz request when next highest speed 15MHz or less."); + SYSCTL_ADD_UINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "debug", + CTLFLAG_RWTUN, &mci_debug, 0, "enable debug output"); + /* * Our real min freq is master_clock/512, but upper driver layers are * going to set the min speed during card discovery, and the right speed @@ -783,15 +786,6 @@ at91_mci_start_cmd(struct at91_mci_softc WR4(sc, PDC_PTCR, PDC_PTCR_RXTEN); } else { len = min(BBSIZE, remaining); - /* - * If this is MCI1 revision 2xx controller, apply - * a work-around for the "Data Write Operation and - * number of bytes" erratum. - */ - if ((sc->sc_cap & CAP_MCI1_REV2XX) && len < 12) { - len = 12; - memset(sc->bbuf_vaddr[0], 0, 12); - } at91_bswap_buf(sc, sc->bbuf_vaddr[0], data->data, len); err = bus_dmamap_load(sc->dmatag, sc->bbuf_map[0], sc->bbuf_vaddr[0], len, at91_mci_getaddr, @@ -800,8 +794,13 @@ at91_mci_start_cmd(struct at91_mci_softc panic("IO write dmamap_load failed\n"); bus_dmamap_sync(sc->dmatag, sc->bbuf_map[0], BUS_DMASYNC_PREWRITE); + /* + * Erratum workaround: PDC transfer length on a write + * must not be smaller than 12 bytes (3 words); only + * blklen bytes (set above) are actually transferred. + */ WR4(sc, PDC_TPR,paddr); - WR4(sc, PDC_TCR, len / 4); + WR4(sc, PDC_TCR, (len < 12) ? 3 : len / 4); sc->bbuf_len[0] = len; remaining -= len; if (remaining == 0) { @@ -818,7 +817,7 @@ at91_mci_start_cmd(struct at91_mci_softc bus_dmamap_sync(sc->dmatag, sc->bbuf_map[1], BUS_DMASYNC_PREWRITE); WR4(sc, PDC_TNPR, paddr); - WR4(sc, PDC_TNCR, len / 4); + WR4(sc, PDC_TNCR, (len < 12) ? 3 : len / 4); sc->bbuf_len[1] = len; remaining -= len; } From owner-svn-src-all@freebsd.org Sun Jan 24 22:08:17 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2DAE4739B; Sun, 24 Jan 2016 22:08:17 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7052924; Sun, 24 Jan 2016 22:08:16 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OM8Fvx027007; Sun, 24 Jan 2016 22:08:15 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OM8Fsk027006; Sun, 24 Jan 2016 22:08:15 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601242208.u0OM8Fsk027006@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 24 Jan 2016 22:08:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294688 - head/lib/libc/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:08:17 -0000 Author: tuexen Date: Sun Jan 24 22:08:15 2016 New Revision: 294688 URL: https://svnweb.freebsd.org/changeset/base/294688 Log: sctp_sendv() needs to fill in the association id on return. MFC after: 3 days Modified: head/lib/libc/net/sctp_sys_calls.c Modified: head/lib/libc/net/sctp_sys_calls.c ============================================================================== --- head/lib/libc/net/sctp_sys_calls.c Sun Jan 24 22:06:56 2016 (r294687) +++ head/lib/libc/net/sctp_sys_calls.c Sun Jan 24 22:08:15 2016 (r294688) @@ -984,6 +984,7 @@ sctp_sendv(int sd, struct sockaddr *addr; struct sockaddr_in *addr_in; struct sockaddr_in6 *addr_in6; + sctp_assoc_t *assoc_id; if ((addrcnt < 0) || (iovcnt < 0) || @@ -1002,6 +1003,7 @@ sctp_sendv(int sd, errno = ENOMEM; return (-1); } + assoc_id = NULL; msg.msg_control = cmsgbuf; msg.msg_controllen = 0; cmsg = (struct cmsghdr *)cmsgbuf; @@ -1025,6 +1027,7 @@ sctp_sendv(int sd, memcpy(CMSG_DATA(cmsg), info, sizeof(struct sctp_sndinfo)); msg.msg_controllen += CMSG_SPACE(sizeof(struct sctp_sndinfo)); cmsg = (struct cmsghdr *)((caddr_t)cmsg + CMSG_SPACE(sizeof(struct sctp_sndinfo))); + assoc_id = &(((struct sctp_sndinfo *)info)->snd_assoc_id); break; case SCTP_SENDV_PRINFO: if ((info == NULL) || (infolen < sizeof(struct sctp_prinfo))) { @@ -1066,6 +1069,7 @@ sctp_sendv(int sd, memcpy(CMSG_DATA(cmsg), &spa_info->sendv_sndinfo, sizeof(struct sctp_sndinfo)); msg.msg_controllen += CMSG_SPACE(sizeof(struct sctp_sndinfo)); cmsg = (struct cmsghdr *)((caddr_t)cmsg + CMSG_SPACE(sizeof(struct sctp_sndinfo))); + assoc_id = &(spa_info->sendv_sndinfo.snd_assoc_id); } if (spa_info->sendv_flags & SCTP_SEND_PRINFO_VALID) { cmsg->cmsg_level = IPPROTO_SCTP; @@ -1164,6 +1168,9 @@ sctp_sendv(int sd, msg.msg_flags = 0; ret = sendmsg(sd, &msg, flags); free(cmsgbuf); + if ((ret >= 0) && (addrs != NULL) && (assoc_id != NULL)) { + *assoc_id = sctp_getassocid(sd, addrs); + } return (ret); } From owner-svn-src-all@freebsd.org Sun Jan 24 22:14:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 718D475C5; Sun, 24 Jan 2016 22:14:38 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3BE9ACBE; Sun, 24 Jan 2016 22:14:38 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OMEb6w029611; Sun, 24 Jan 2016 22:14:37 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OMEbp1029610; Sun, 24 Jan 2016 22:14:37 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601242214.u0OMEbp1029610@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 22:14:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294689 - stable/10/sys/dev/rt X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:14:38 -0000 Author: ian Date: Sun Jan 24 22:14:37 2016 New Revision: 294689 URL: https://svnweb.freebsd.org/changeset/base/294689 Log: MFC r293105: Eliminate code for walking through the early static env data. This code is called from a device attach routine, and thus cannot be called before the cutover from static to dynamic kernel env. Modified: stable/10/sys/dev/rt/if_rt.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/rt/if_rt.c ============================================================================== --- stable/10/sys/dev/rt/if_rt.c Sun Jan 24 22:08:15 2016 (r294688) +++ stable/10/sys/dev/rt/if_rt.c Sun Jan 24 22:14:37 2016 (r294689) @@ -176,20 +176,6 @@ macaddr_atoi(const char *str, uint8_t *m } #ifdef USE_GENERATED_MAC_ADDRESS -static char * -kernenv_next(char *cp) -{ - - if (cp != NULL) { - while (*cp != 0) - cp++; - cp++; - if (*cp == 0) - cp = NULL; - } - return (cp); -} - /* * generate_mac(uin8_t *mac) * This is MAC address generator for cases when real device MAC address @@ -208,14 +194,8 @@ generate_mac(uint8_t *mac) uint32_t crc = 0xffffffff; /* Generate CRC32 on kenv */ - if (dynamic_kenv) { - for (cp = kenvp[0]; cp != NULL; cp = kenvp[++i]) { - crc = calculate_crc32c(crc, cp, strlen(cp) + 1); - } - } else { - for (cp = kern_envp; cp != NULL; cp = kernenv_next(cp)) { - crc = calculate_crc32c(crc, cp, strlen(cp) + 1); - } + for (cp = kenvp[0]; cp != NULL; cp = kenvp[++i]) { + crc = calculate_crc32c(crc, cp, strlen(cp) + 1); } crc = ~crc; From owner-svn-src-all@freebsd.org Sun Jan 24 22:17:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7E51076C0; Sun, 24 Jan 2016 22:17:06 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C78FE46; Sun, 24 Jan 2016 22:17:06 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OMH5M5029749; Sun, 24 Jan 2016 22:17:05 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OMH51c029748; Sun, 24 Jan 2016 22:17:05 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601242217.u0OMH51c029748@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 24 Jan 2016 22:17:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294690 - stable/10/sys/arm/mv X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:17:06 -0000 Author: ian Date: Sun Jan 24 22:17:05 2016 New Revision: 294690 URL: https://svnweb.freebsd.org/changeset/base/294690 Log: MFC r289477: Fix a strange macro re-definition compile error. If the VM_MAXUSER_ADDRESS value is defined as a config option the definition is emitted into opt_global.h which is force-included into everything. In addition, the symbol is emitted by the genassym mechanism, but that by its nature reduces the value to a 0xnnnnnnnn number. When compiling a .S file you end up with two different definitions of the macro (they evaluate to the same number, but the text is different, upsetting the compiler). Modified: stable/10/sys/arm/mv/std-pj4b.mv Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/mv/std-pj4b.mv ============================================================================== --- stable/10/sys/arm/mv/std-pj4b.mv Sun Jan 24 22:14:37 2016 (r294689) +++ stable/10/sys/arm/mv/std-pj4b.mv Sun Jan 24 22:17:05 2016 (r294690) @@ -5,4 +5,8 @@ cpu CPU_MV_PJ4B machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" -options VM_MAXUSER_ADDRESS="(KERNBASE-(1024*1024*1024))" +# This was originally defined as "(KERNBASE-(1024*1024*1024))" but that +# (in opt_global.h) clashed with the value emitted by genassym which +# reduces the original macro text to its numeric value. The only way +# to avoid that is to define it here as the numeric value genassym emits. +options VM_MAXUSER_ADDRESS="0x80000000" From owner-svn-src-all@freebsd.org Sun Jan 24 22:20:14 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CDB1577C4; Sun, 24 Jan 2016 22:20:14 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AA967FCA; Sun, 24 Jan 2016 22:20:14 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OMKDtp029918; Sun, 24 Jan 2016 22:20:13 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OMKD5C029917; Sun, 24 Jan 2016 22:20:13 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201601242220.u0OMKD5C029917@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Sun, 24 Jan 2016 22:20:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294691 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:20:14 -0000 Author: sobomax Date: Sun Jan 24 22:20:13 2016 New Revision: 294691 URL: https://svnweb.freebsd.org/changeset/base/294691 Log: Fix bug in the readpassphrase(3) function, which can be exposed by application closing its stdin (i.e. STDIN_FILENO) prior to calling readpassphrase WITHOUT setting RPP_STDIN. What happens then is that the readpassphrase would open /dev/tty, and since file descriptors are reused, the call would return first unused fd, which is 0 which is also STDIN_FILENO. Then due to the usage of "input != STDIN_FILENO" in the code to do its logic, that would result in noecho flags not set on that file descriptor, which was original issue I've been trying to fix. In addition to that, the readpassphrase() would leak file descriptor on its way out, so fix that one as well. This problem can be tested with: $ ssh-add - < /tmp/myprivate.key The password will not be hidden as it should and ktrace will show: 53326 ssh-add CALL open(0x80142443c,0x100002,0x165f030) 53326 ssh-add NAMI "/dev/tty" 53326 ssh-add RET open 0 53326 ssh-add CALL sigprocmask(SIG_SETMASK,0x802eb1324,0x7fffffffd5e0) 53326 ssh-add RET sigprocmask 0 53326 ssh-add CALL sigaction(SIGALRM,0x7fffffffd630,0x7fffffffd610) Instead of: 57690 ssh-add CALL open(0x80142443c,0x100002,0x165f030) 57690 ssh-add NAMI "/dev/tty" 57690 ssh-add RET open 4 57690 ssh-add CALL ioctl(0x4,TIOCGETA,0x7fffffffd860) 57690 ssh-add RET ioctl 0 57690 ssh-add CALL ioctl(0x4,TIOCSETAF,0x7fffffffd680) 57690 ssh-add RET ioctl 0 57690 ssh-add CALL sigprocmask(SIG_SETMASK,0x802eb1324,0x7fffffffd620) 57690 ssh-add RET sigprocmask 0 57690 ssh-add CALL sigaction(SIGALRM,0x7fffffffd670,0x7fffffffd650) For the case when the key is read from the file. Technically this can also be workaround'ed at the application side by not closing the STDIN_FILENO in the first place, but readpassphrase(3) doesn't need to make any assumptions about that. Plus the file descriptor leak confirms that this is an oversight, rather than a deliberate behaviour. MFC after: 1 week Modified: head/lib/libc/gen/readpassphrase.c Modified: head/lib/libc/gen/readpassphrase.c ============================================================================== --- head/lib/libc/gen/readpassphrase.c Sun Jan 24 22:17:05 2016 (r294690) +++ head/lib/libc/gen/readpassphrase.c Sun Jan 24 22:20:13 2016 (r294691) @@ -46,7 +46,7 @@ char * readpassphrase(const char *prompt, char *buf, size_t bufsiz, int flags) { ssize_t nr; - int input, output, save_errno, i, need_restart; + int input, output, save_errno, i, need_restart, input_is_tty; char ch, *p, *end; struct termios term, oterm; struct sigaction sa, savealrm, saveint, savehup, savequit, saveterm; @@ -68,12 +68,20 @@ restart: * Read and write to /dev/tty if available. If not, read from * stdin and write to stderr unless a tty is required. */ - if ((flags & RPP_STDIN) || - (input = output = _open(_PATH_TTY, O_RDWR | O_CLOEXEC)) == -1) { - if (flags & RPP_REQUIRE_TTY) { - errno = ENOTTY; - return(NULL); + input_is_tty = 0; + if (!(flags & RPP_STDIN)) { + input = output = _open(_PATH_TTY, O_RDWR | O_CLOEXEC); + if (input == -1) { + if (flags & RPP_REQUIRE_TTY) { + errno = ENOTTY; + return(NULL); + } + input = STDIN_FILENO; + output = STDERR_FILENO; + } else { + input_is_tty = 1; } + } else { input = STDIN_FILENO; output = STDERR_FILENO; } @@ -83,7 +91,7 @@ restart: * If we are using a tty but are not the foreground pgrp this will * generate SIGTTOU, so do it *before* installing the signal handlers. */ - if (input != STDIN_FILENO && tcgetattr(input, &oterm) == 0) { + if (input_is_tty && tcgetattr(input, &oterm) == 0) { memcpy(&term, &oterm, sizeof(term)); if (!(flags & RPP_ECHO_ON)) term.c_lflag &= ~(ECHO | ECHONL); @@ -152,7 +160,7 @@ restart: (void)__libc_sigaction(SIGTSTP, &savetstp, NULL); (void)__libc_sigaction(SIGTTIN, &savettin, NULL); (void)__libc_sigaction(SIGTTOU, &savettou, NULL); - if (input != STDIN_FILENO) + if (input_is_tty) (void)_close(input); /* From owner-svn-src-all@freebsd.org Sun Jan 24 22:26:26 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7EA267AD8; Sun, 24 Jan 2016 22:26:26 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5440886B; Sun, 24 Jan 2016 22:26:26 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OMQPkS032849; Sun, 24 Jan 2016 22:26:25 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OMQPG6032848; Sun, 24 Jan 2016 22:26:25 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201601242226.u0OMQPG6032848@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sun, 24 Jan 2016 22:26:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294692 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:26:26 -0000 Author: jilles Date: Sun Jan 24 22:26:25 2016 New Revision: 294692 URL: https://svnweb.freebsd.org/changeset/base/294692 Log: sh: Constify internal representation in expand.c. Forbid (temporary or permanent) modifications of the strings in NARG nodes during expansion. Tilde expansion now needs to copy the username for the terminating '\0'. Modified: head/bin/sh/expand.c Modified: head/bin/sh/expand.c ============================================================================== --- head/bin/sh/expand.c Sun Jan 24 22:20:13 2016 (r294691) +++ head/bin/sh/expand.c Sun Jan 24 22:26:25 2016 (r294692) @@ -91,13 +91,13 @@ struct worddest { static char *expdest; /* output of current string */ static struct nodelist *argbackq; /* list of back quote expressions */ -static char *argstr(char *, int, struct worddest *); -static char *exptilde(char *, int); -static char *expari(char *, int, struct worddest *); +static const char *argstr(const char *, int, struct worddest *); +static const char *exptilde(const char *, int); +static const char *expari(const char *, int, struct worddest *); static void expbackq(union node *, int, int, struct worddest *); -static void subevalvar_trim(char *, int, int, int); -static int subevalvar_misc(char *, const char *, int, int, int); -static char *evalvar(char *, int, struct worddest *); +static void subevalvar_trim(const char *, int, int, int); +static int subevalvar_misc(const char *, const char *, int, int, int); +static const char *evalvar(const char *, int, struct worddest *); static int varisset(const char *, int); static void strtodest(const char *, int, int, int, struct worddest *); static void reprocess(int, int, int, int, struct worddest *); @@ -262,8 +262,8 @@ expandarg(union node *arg, struct arglis * * If EXP_SPLIT is set, dst receives any complete words produced. */ -static char * -argstr(char *p, int flag, struct worddest *dst) +static const char * +argstr(const char *p, int flag, struct worddest *dst) { char c; int quotes = flag & (EXP_GLOB | EXP_CASE); /* do CTLESC */ @@ -352,12 +352,15 @@ argstr(char *p, int flag, struct worddes * Perform tilde expansion, placing the result in the stack string and * returning the next position in the input string to process. */ -static char * -exptilde(char *p, int flag) +static const char * +exptilde(const char *p, int flag) { - char c, *startp = p; + char c; + const char *startp = p; + const char *user; struct passwd *pw; char *home; + int len; for (;;) { c = *p; @@ -377,14 +380,17 @@ exptilde(char *p, int flag) case '\0': case '/': case CTLENDVAR: - *p = '\0'; - if (*(startp+1) == '\0') { + len = p - startp - 1; + STPUTBIN(startp + 1, len, expdest); + STACKSTRNUL(expdest); + user = expdest - len; + if (*user == '\0') { home = lookupvar("HOME"); } else { - pw = getpwnam(startp+1); + pw = getpwnam(user); home = pw != NULL ? pw->pw_dir : NULL; } - *p = c; + STADJUST(-len, expdest); if (home == NULL || *home == '\0') return (startp); strtodest(home, flag, VSNORMAL, 1, NULL); @@ -398,8 +404,8 @@ exptilde(char *p, int flag) /* * Expand arithmetic expression. */ -static char * -expari(char *p, int flag, struct worddest *dst) +static const char * +expari(const char *p, int flag, struct worddest *dst) { char *q, *start; arith_t result; @@ -532,7 +538,7 @@ recordleft(const char *str, const char * } static void -subevalvar_trim(char *p, int strloc, int subtype, int startloc) +subevalvar_trim(const char *p, int strloc, int subtype, int startloc) { char *startp; char *loc = NULL; @@ -606,7 +612,7 @@ subevalvar_trim(char *p, int strloc, int static int -subevalvar_misc(char *p, const char *var, int subtype, int startloc, +subevalvar_misc(const char *p, const char *var, int subtype, int startloc, int varflags) { char *startp; @@ -645,12 +651,12 @@ subevalvar_misc(char *p, const char *var * input string. */ -static char * -evalvar(char *p, int flag, struct worddest *dst) +static const char * +evalvar(const char *p, int flag, struct worddest *dst) { int subtype; int varflags; - char *var; + const char *var; const char *val; int patloc; int c; From owner-svn-src-all@freebsd.org Sun Jan 24 22:28:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83A497BB2; Sun, 24 Jan 2016 22:28:22 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3C51A9E1; Sun, 24 Jan 2016 22:28:22 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OMSLWN032978; Sun, 24 Jan 2016 22:28:21 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OMSIn7032949; Sun, 24 Jan 2016 22:28:18 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601242228.u0OMSIn7032949@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sun, 24 Jan 2016 22:28:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294693 - in stable/10: . crypto/openssh secure/lib/libssh secure/usr.bin/ssh secure/usr.sbin/sshd share/mk tools/build/options X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:28:22 -0000 Author: des Date: Sun Jan 24 22:28:18 2016 New Revision: 294693 URL: https://svnweb.freebsd.org/changeset/base/294693 Log: MFH (r291198, r291260, r291261, r291375, r294325, r294335, r294563) Remove the HPN and None cipher patches. Deleted: stable/10/crypto/openssh/README.hpn stable/10/tools/build/options/WITH_OPENSSH_NONE_CIPHER Modified: stable/10/UPDATING stable/10/crypto/openssh/auth-pam.c (contents, props changed) stable/10/crypto/openssh/auth2-chall.c (contents, props changed) stable/10/crypto/openssh/bufaux.c (contents, props changed) stable/10/crypto/openssh/buffer.c (contents, props changed) stable/10/crypto/openssh/buffer.h (contents, props changed) stable/10/crypto/openssh/channels.c (contents, props changed) stable/10/crypto/openssh/channels.h (contents, props changed) stable/10/crypto/openssh/cipher.c (contents, props changed) stable/10/crypto/openssh/clientloop.c (contents, props changed) stable/10/crypto/openssh/compat.c (contents, props changed) stable/10/crypto/openssh/compat.h (contents, props changed) stable/10/crypto/openssh/configure.ac (contents, props changed) stable/10/crypto/openssh/digest-libc.c (contents, props changed) stable/10/crypto/openssh/freebsd-post-merge.sh (contents, props changed) stable/10/crypto/openssh/freebsd-pre-merge.sh (contents, props changed) stable/10/crypto/openssh/kex.c (contents, props changed) stable/10/crypto/openssh/kex.h (contents, props changed) stable/10/crypto/openssh/misc.c (contents, props changed) stable/10/crypto/openssh/misc.h (contents, props changed) stable/10/crypto/openssh/monitor.c (contents, props changed) stable/10/crypto/openssh/monitor_wrap.c (contents, props changed) stable/10/crypto/openssh/myproposal.h stable/10/crypto/openssh/packet.c stable/10/crypto/openssh/packet.h (contents, props changed) stable/10/crypto/openssh/readconf.c stable/10/crypto/openssh/readconf.h stable/10/crypto/openssh/servconf.c stable/10/crypto/openssh/servconf.h (contents, props changed) stable/10/crypto/openssh/serverloop.c (contents, props changed) stable/10/crypto/openssh/session.c stable/10/crypto/openssh/sftp.1 (contents, props changed) stable/10/crypto/openssh/sftp.c (contents, props changed) stable/10/crypto/openssh/ssh-agent.1 stable/10/crypto/openssh/ssh.c stable/10/crypto/openssh/ssh_config (contents, props changed) stable/10/crypto/openssh/ssh_config.5 stable/10/crypto/openssh/ssh_namespace.h stable/10/crypto/openssh/sshconnect.c stable/10/crypto/openssh/sshconnect2.c (contents, props changed) stable/10/crypto/openssh/sshd.c stable/10/crypto/openssh/sshd_config (contents, props changed) stable/10/crypto/openssh/sshd_config.5 stable/10/crypto/openssh/version.h stable/10/secure/lib/libssh/Makefile stable/10/secure/usr.bin/ssh/Makefile stable/10/secure/usr.sbin/sshd/Makefile stable/10/share/mk/bsd.own.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/UPDATING ============================================================================== --- stable/10/UPDATING Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/UPDATING Sun Jan 24 22:28:18 2016 (r294693) @@ -16,6 +16,10 @@ from older versions of FreeBSD, try WITH stable/10, and then rebuild without this option. The bootstrap process from older version of current is a bit fragile. +20160124: + The NONE and HPN patches has been removed from OpenSSH. They are + still available in the security/openssh-portable port. + 20151214: r292223 changed the internal interface between the nfsd.ko and nfscommon.ko modules. As such, they must both be upgraded to-gether. Modified: stable/10/crypto/openssh/auth-pam.c ============================================================================== --- stable/10/crypto/openssh/auth-pam.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/auth-pam.c Sun Jan 24 22:28:18 2016 (r294693) @@ -45,7 +45,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* Based on $FreeBSD$ */ +/* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */ #include "includes.h" #include Modified: stable/10/crypto/openssh/auth2-chall.c ============================================================================== --- stable/10/crypto/openssh/auth2-chall.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/auth2-chall.c Sun Jan 24 22:28:18 2016 (r294693) @@ -25,7 +25,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include Modified: stable/10/crypto/openssh/bufaux.c ============================================================================== --- stable/10/crypto/openssh/bufaux.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/bufaux.c Sun Jan 24 22:28:18 2016 (r294693) @@ -38,7 +38,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include Modified: stable/10/crypto/openssh/buffer.c ============================================================================== --- stable/10/crypto/openssh/buffer.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/buffer.c Sun Jan 24 22:28:18 2016 (r294693) @@ -13,7 +13,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include @@ -27,7 +26,7 @@ __RCSID("$FreeBSD$"); #include "log.h" #define BUFFER_MAX_CHUNK 0x100000 -#define BUFFER_MAX_LEN 0x4000000 /* 64MB */ +#define BUFFER_MAX_LEN 0xa00000 #define BUFFER_ALLOCSZ 0x008000 /* Initializes the buffer structure. */ @@ -167,13 +166,6 @@ buffer_len(const Buffer *buffer) return buffer->end - buffer->offset; } -/* Returns the maximum number of bytes of data that may be in the buffer. */ -u_int -buffer_get_max_len(void) -{ - return (BUFFER_MAX_LEN); -} - /* Gets data from the beginning of the buffer. */ int Modified: stable/10/crypto/openssh/buffer.h ============================================================================== --- stable/10/crypto/openssh/buffer.h Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/buffer.h Sun Jan 24 22:28:18 2016 (r294693) @@ -1,5 +1,4 @@ /* $OpenBSD: buffer.h,v 1.23 2014/01/12 08:13:13 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen @@ -47,8 +46,6 @@ int buffer_get_ret(Buffer *, void *, u_ int buffer_consume_ret(Buffer *, u_int); int buffer_consume_end_ret(Buffer *, u_int); -u_int buffer_get_max_len(void); - #include void buffer_put_bignum(Buffer *, const BIGNUM *); Modified: stable/10/crypto/openssh/channels.c ============================================================================== --- stable/10/crypto/openssh/channels.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/channels.c Sun Jan 24 22:28:18 2016 (r294693) @@ -40,7 +40,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include #include @@ -174,11 +173,6 @@ static void port_open_helper(Channel *c, static int connect_next(struct channel_connect *); static void channel_connect_ctx_free(struct channel_connect *); -/* -- HPN */ - -static int hpn_disabled = 0; -static u_int buffer_size = CHAN_HPN_MIN_WINDOW_DEFAULT; - /* -- channel core */ Channel * @@ -325,7 +319,6 @@ channel_new(char *ctype, int type, int r c->self = found; c->type = type; c->ctype = ctype; - c->dynamic_window = 0; c->local_window = window; c->local_window_max = window; c->local_consumed = 0; @@ -826,45 +819,10 @@ channel_pre_open_13(Channel *c, fd_set * FD_SET(c->sock, writeset); } -static u_int -channel_tcpwinsz(void) -{ - u_int32_t tcpwinsz; - socklen_t optsz; - int ret, sd; - u_int maxlen; - - /* If we are not on a socket return 128KB. */ - if (!packet_connection_is_on_socket()) - return (128 * 1024); - - tcpwinsz = 0; - optsz = sizeof(tcpwinsz); - sd = packet_get_connection_in(); - ret = getsockopt(sd, SOL_SOCKET, SO_RCVBUF, &tcpwinsz, &optsz); - - /* Return no more than the maximum buffer size. */ - maxlen = buffer_get_max_len(); - if ((ret == 0) && tcpwinsz > maxlen) - tcpwinsz = maxlen; - /* In case getsockopt() failed return a minimum. */ - if (tcpwinsz == 0) - tcpwinsz = CHAN_TCP_WINDOW_DEFAULT; - debug2("tcpwinsz: %d for connection: %d", tcpwinsz, sd); - return (tcpwinsz); -} - static void channel_pre_open(Channel *c, fd_set *readset, fd_set *writeset) { - u_int limit; - - /* Check buffer limits. */ - if (!c->tcpwinsz || c->dynamic_window > 0) - c->tcpwinsz = channel_tcpwinsz(); - - limit = MIN(compat20 ? c->remote_window : packet_get_maxsize(), - 2 * c->tcpwinsz); + u_int limit = compat20 ? c->remote_window : packet_get_maxsize(); if (c->istate == CHAN_INPUT_OPEN && limit > 0 && @@ -1857,25 +1815,14 @@ channel_check_window(Channel *c) c->local_maxpacket*3) || c->local_window < c->local_window_max/2) && c->local_consumed > 0) { - u_int addition = 0; - - /* Adjust max window size if we are in a dynamic environment. */ - if (c->dynamic_window && c->tcpwinsz > c->local_window_max) { - /* - * Grow the window somewhat aggressively to maintain - * pressure. - */ - addition = 1.5 * (c->tcpwinsz - c->local_window_max); - c->local_window_max += addition; - } packet_start(SSH2_MSG_CHANNEL_WINDOW_ADJUST); packet_put_int(c->remote_id); - packet_put_int(c->local_consumed + addition); + packet_put_int(c->local_consumed); packet_send(); debug2("channel %d: window %d sent adjust %d", c->self, c->local_window, c->local_consumed); - c->local_window += c->local_consumed + addition; + c->local_window += c->local_consumed; c->local_consumed = 0; } return 1; @@ -2739,14 +2686,6 @@ channel_set_af(int af) IPv4or6 = af; } -void -channel_set_hpn(int disabled, u_int buf_size) -{ - hpn_disabled = disabled; - buffer_size = buf_size; - debug("HPN Disabled: %d, HPN Buffer Size: %d", - hpn_disabled, buffer_size); -} /* * Determine whether or not a port forward listens to loopback, the @@ -2924,18 +2863,10 @@ channel_setup_fwd_listener(int type, con *allocated_listen_port); } - /* - * Allocate a channel number for the socket. Explicitly test - * for hpn disabled option. If true use smaller window size. - */ - if (hpn_disabled) - c = channel_new("port listener", type, sock, sock, -1, - CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, - 0, "port listener", 1); - else - c = channel_new("port listener", type, sock, sock, -1, - buffer_size, CHAN_TCP_PACKET_DEFAULT, - 0, "port listener", 1); + /* Allocate a channel number for the socket. */ + c = channel_new("port listener", type, sock, sock, -1, + CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, + 0, "port listener", 1); c->path = xstrdup(host); c->host_port = port_to_connect; c->listening_addr = addr == NULL ? NULL : xstrdup(addr); @@ -3583,16 +3514,10 @@ x11_create_display_inet(int x11_display_ *chanids = xcalloc(num_socks + 1, sizeof(**chanids)); for (n = 0; n < num_socks; n++) { sock = socks[n]; - if (hpn_disabled) - nc = channel_new("x11 listener", - SSH_CHANNEL_X11_LISTENER, sock, sock, -1, - CHAN_X11_WINDOW_DEFAULT, CHAN_X11_PACKET_DEFAULT, - 0, "X11 inet listener", 1); - else - nc = channel_new("x11 listener", - SSH_CHANNEL_X11_LISTENER, sock, sock, -1, - buffer_size, CHAN_X11_PACKET_DEFAULT, - 0, "X11 inet listener", 1); + nc = channel_new("x11 listener", + SSH_CHANNEL_X11_LISTENER, sock, sock, -1, + CHAN_X11_WINDOW_DEFAULT, CHAN_X11_PACKET_DEFAULT, + 0, "X11 inet listener", 1); nc->single_connection = single_connection; (*chanids)[n] = nc->self; } Modified: stable/10/crypto/openssh/channels.h ============================================================================== --- stable/10/crypto/openssh/channels.h Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/channels.h Sun Jan 24 22:28:18 2016 (r294693) @@ -1,5 +1,4 @@ /* $OpenBSD: channels.h,v 1.113 2013/06/07 15:37:52 dtucker Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen @@ -133,8 +132,6 @@ struct Channel { u_int local_window_max; u_int local_consumed; u_int local_maxpacket; - u_int tcpwinsz; - int dynamic_window; int extended_usage; int single_connection; @@ -176,7 +173,6 @@ struct Channel { #define CHAN_TCP_WINDOW_DEFAULT (64*CHAN_TCP_PACKET_DEFAULT) #define CHAN_X11_PACKET_DEFAULT (16*1024) #define CHAN_X11_WINDOW_DEFAULT (4*CHAN_X11_PACKET_DEFAULT) -#define CHAN_HPN_MIN_WINDOW_DEFAULT (2*1024*1024) /* possible input states */ #define CHAN_INPUT_OPEN 0 @@ -310,8 +306,4 @@ void chan_rcvd_ieof(Channel *); void chan_write_failed(Channel *); void chan_obuf_empty(Channel *); -/* hpn handler */ - -void channel_set_hpn(int, u_int); - #endif Modified: stable/10/crypto/openssh/cipher.c ============================================================================== --- stable/10/crypto/openssh/cipher.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/cipher.c Sun Jan 24 22:28:18 2016 (r294693) @@ -36,7 +36,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include @@ -225,12 +224,7 @@ ciphers_valid(const char *names) for ((p = strsep(&cp, CIPHER_SEP)); p && *p != '\0'; (p = strsep(&cp, CIPHER_SEP))) { c = cipher_by_name(p); -#ifdef NONE_CIPHER_ENABLED - if (c == NULL || (c->number != SSH_CIPHER_SSH2 && - c->number != SSH_CIPHER_NONE)) { -#else - if (c == NULL || (c->number != SSH_CIPHER_SSH2)) { -#endif + if (c == NULL || c->number != SSH_CIPHER_SSH2) { debug("bad cipher %s [%s]", p, names); free(cipher_list); return 0; @@ -485,9 +479,6 @@ cipher_get_keyiv(CipherContext *cc, u_ch } switch (c->number) { -#ifdef NONE_CIPHER_ENABLED - case SSH_CIPHER_NONE: -#endif case SSH_CIPHER_SSH2: case SSH_CIPHER_DES: case SSH_CIPHER_BLOWFISH: @@ -527,9 +518,6 @@ cipher_set_keyiv(CipherContext *cc, u_ch return; switch (c->number) { -#ifdef NONE_CIPHER_ENABLED - case SSH_CIPHER_NONE: -#endif case SSH_CIPHER_SSH2: case SSH_CIPHER_DES: case SSH_CIPHER_BLOWFISH: Modified: stable/10/crypto/openssh/clientloop.c ============================================================================== --- stable/10/crypto/openssh/clientloop.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/clientloop.c Sun Jan 24 22:28:18 2016 (r294693) @@ -60,7 +60,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include #include @@ -1892,14 +1891,9 @@ client_request_x11(const char *request_t sock = x11_connect_display(); if (sock < 0) return NULL; - if (options.hpn_disabled) - c = channel_new("x11", SSH_CHANNEL_X11_OPEN, sock, sock, -1, - CHAN_TCP_WINDOW_DEFAULT, CHAN_X11_PACKET_DEFAULT, - 0, "x11", 1); - else - c = channel_new("x11", SSH_CHANNEL_X11_OPEN, sock, sock, -1, - options.hpn_buffer_size, CHAN_X11_PACKET_DEFAULT, - 0, "x11", 1); + c = channel_new("x11", + SSH_CHANNEL_X11_OPEN, sock, sock, -1, + CHAN_TCP_WINDOW_DEFAULT, CHAN_X11_PACKET_DEFAULT, 0, "x11", 1); c->force_drain = 1; return c; } @@ -1919,16 +1913,10 @@ client_request_agent(const char *request sock = ssh_get_authentication_socket(); if (sock < 0) return NULL; - if (options.hpn_disabled) - c = channel_new("authentication agent connection", - SSH_CHANNEL_OPEN, sock, sock, -1, - CHAN_X11_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 0, - "authentication agent connection", 1); - else - c = channel_new("authentication agent connection", - SSH_CHANNEL_OPEN, sock, sock, -1, - options.hpn_buffer_size, options.hpn_buffer_size, 0, - "authentication agent connection", 1); + c = channel_new("authentication agent connection", + SSH_CHANNEL_OPEN, sock, sock, -1, + CHAN_X11_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 0, + "authentication agent connection", 1); c->force_drain = 1; return c; } @@ -1955,14 +1943,8 @@ client_request_tun_fwd(int tun_mode, int return -1; } - if (options.hpn_disabled) - c = channel_new("tun", SSH_CHANNEL_OPENING, fd, fd, -1, - CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, - 0, "tun", 1); - else - c = channel_new("tun", SSH_CHANNEL_OPENING, fd, fd, -1, - options.hpn_buffer_size, CHAN_TCP_PACKET_DEFAULT, - 0, "tun", 1); + c = channel_new("tun", SSH_CHANNEL_OPENING, fd, fd, -1, + CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 0, "tun", 1); c->datagram = 1; #if defined(SSH_TUN_FILTER) Modified: stable/10/crypto/openssh/compat.c ============================================================================== --- stable/10/crypto/openssh/compat.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/compat.c Sun Jan 24 22:28:18 2016 (r294693) @@ -24,7 +24,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include @@ -178,16 +177,6 @@ compat_datafellows(const char *version) datafellows = check[i].bugs; debug("match: %s pat %s compat 0x%08x", version, check[i].pat, datafellows); - /* - * Check to see if the remote side is OpenSSH and not - * HPN. It is utterly strange to check it from the - * version string and expose the option that way. - */ - if (strstr(version,"OpenSSH") != NULL && - strstr(version,"hpn") == NULL) { - datafellows |= SSH_BUG_LARGEWINDOW; - debug("Remote is not HPN-aware"); - } return; } } Modified: stable/10/crypto/openssh/compat.h ============================================================================== --- stable/10/crypto/openssh/compat.h Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/compat.h Sun Jan 24 22:28:18 2016 (r294693) @@ -1,5 +1,4 @@ /* $OpenBSD: compat.h,v 1.44 2013/12/30 23:52:27 djm Exp $ */ -/* $FreeBSD$ */ /* * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. @@ -62,8 +61,6 @@ #define SSH_BUG_DYNAMIC_RPORT 0x08000000 #define SSH_BUG_CURVE25519PAD 0x10000000 -#define SSH_BUG_LARGEWINDOW 0x80000000 - void enable_compat13(void); void enable_compat20(void); void compat_datafellows(const char *); Modified: stable/10/crypto/openssh/configure.ac ============================================================================== --- stable/10/crypto/openssh/configure.ac Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/configure.ac Sun Jan 24 22:28:18 2016 (r294693) @@ -1,4 +1,5 @@ # $Id: configure.ac,v 1.571 2014/02/21 17:09:34 tim Exp $ +# $FreeBSD$ # # Copyright (c) 1999-2004 Damien Miller # Modified: stable/10/crypto/openssh/digest-libc.c ============================================================================== --- stable/10/crypto/openssh/digest-libc.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/digest-libc.c Sun Jan 24 22:28:18 2016 (r294693) @@ -17,7 +17,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/freebsd-post-merge.sh ============================================================================== --- stable/10/crypto/openssh/freebsd-post-merge.sh Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/freebsd-post-merge.sh Sun Jan 24 22:28:18 2016 (r294693) @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: stable/10/crypto/openssh/freebsd-post-merge.sh 263691 2014-03-24 19:15:13Z des $ +# $FreeBSD$ # xargs perl -n -i -e ' Modified: stable/10/crypto/openssh/freebsd-pre-merge.sh ============================================================================== --- stable/10/crypto/openssh/freebsd-pre-merge.sh Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/freebsd-pre-merge.sh Sun Jan 24 22:28:18 2016 (r294693) @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: stable/10/crypto/openssh/freebsd-pre-merge.sh 263691 2014-03-24 19:15:13Z des $ +# $FreeBSD$ # :>keywords Modified: stable/10/crypto/openssh/kex.c ============================================================================== --- stable/10/crypto/openssh/kex.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/kex.c Sun Jan 24 22:28:18 2016 (r294693) @@ -24,7 +24,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include @@ -146,13 +145,8 @@ kex_names_valid(const char *names) return 1; } -/* put algorithm proposal into buffer. */ -#ifndef NONE_CIPHER_ENABLED +/* put algorithm proposal into buffer */ static void -#else -/* Also used in sshconnect2.c. */ -void -#endif kex_prop2buf(Buffer *b, char *proposal[PROPOSAL_MAX]) { u_int i; @@ -466,9 +460,6 @@ kex_choose_conf(Kex *kex) int nenc, nmac, ncomp; u_int mode, ctos, need, dh_need, authlen; int first_kex_follows, type; -#ifdef NONE_CIPHER_ENABLED - int auth_flag; -#endif my = kex_buf2prop(&kex->my, NULL); peer = kex_buf2prop(&kex->peer, &first_kex_follows); @@ -492,10 +483,6 @@ kex_choose_conf(Kex *kex) } /* Algorithm Negotiation */ -#ifdef NONE_CIPHER_ENABLED - auth_flag = packet_get_authentication_state(); - debug ("AUTH STATE is %d", auth_flag); -#endif for (mode = 0; mode < MODE_MAX; mode++) { newkeys = xcalloc(1, sizeof(*newkeys)); kex->newkeys[mode] = newkeys; @@ -510,17 +497,6 @@ kex_choose_conf(Kex *kex) if (authlen == 0) choose_mac(&newkeys->mac, cprop[nmac], sprop[nmac]); choose_comp(&newkeys->comp, cprop[ncomp], sprop[ncomp]); -#ifdef NONE_CIPHER_ENABLED - debug("REQUESTED ENC.NAME is '%s'", newkeys->enc.name); - if (strcmp(newkeys->enc.name, "none") == 0) { - debug("Requesting NONE. Authflag is %d", auth_flag); - if (auth_flag == 1) - debug("None requested post authentication."); - else - fatal("Pre-authentication none cipher requests " - "are not allowed."); - } -#endif debug("kex: %s %s %s %s", ctos ? "client->server" : "server->client", newkeys->enc.name, Modified: stable/10/crypto/openssh/kex.h ============================================================================== --- stable/10/crypto/openssh/kex.h Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/kex.h Sun Jan 24 22:28:18 2016 (r294693) @@ -1,5 +1,4 @@ /* $OpenBSD: kex.h,v 1.62 2014/01/27 18:58:14 markus Exp $ */ -/* $FreeBSD$ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -149,10 +148,6 @@ struct Kex { int kex_names_valid(const char *); char *kex_alg_list(char); -#ifdef NONE_CIPHER_ENABLED -void kex_prop2buf(Buffer *, char *[PROPOSAL_MAX]); -#endif - Kex *kex_setup(char *[PROPOSAL_MAX]); void kex_finish(Kex *); Modified: stable/10/crypto/openssh/misc.c ============================================================================== --- stable/10/crypto/openssh/misc.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/misc.c Sun Jan 24 22:28:18 2016 (r294693) @@ -25,7 +25,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include #include @@ -1037,34 +1036,3 @@ sock_set_v6only(int s) error("setsockopt IPV6_V6ONLY: %s", strerror(errno)); #endif } - -void -sock_get_rcvbuf(int *size, int rcvbuf) -{ - int sock, socksize; - socklen_t socksizelen = sizeof(socksize); - - /* - * Create a socket but do not connect it. We use it - * only to get the rcv socket size. - */ - sock = socket(AF_INET6, SOCK_STREAM, 0); - if (sock < 0) - sock = socket(AF_INET, SOCK_STREAM, 0); - if (sock < 0) - return; - - /* - * If the tcp_rcv_buf option is set and passed in, attempt to set the - * buffer size to its value. - */ - if (rcvbuf) - setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (void *)&rcvbuf, - sizeof(rcvbuf)); - - if (getsockopt(sock, SOL_SOCKET, SO_RCVBUF, - &socksize, &socksizelen) == 0) - if (size != NULL) - *size = socksize; - close(sock); -} Modified: stable/10/crypto/openssh/misc.h ============================================================================== --- stable/10/crypto/openssh/misc.h Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/misc.h Sun Jan 24 22:28:18 2016 (r294693) @@ -1,5 +1,4 @@ /* $OpenBSD: misc.h,v 1.50 2013/10/14 23:28:23 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen @@ -40,7 +39,6 @@ time_t monotime(void); void lowercase(char *s); void sock_set_v6only(int); -void sock_get_rcvbuf(int *, int); struct passwd *pwcopy(struct passwd *); const char *ssh_gai_strerror(int); Modified: stable/10/crypto/openssh/monitor.c ============================================================================== --- stable/10/crypto/openssh/monitor.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/monitor.c Sun Jan 24 22:28:18 2016 (r294693) @@ -26,7 +26,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/monitor_wrap.c ============================================================================== --- stable/10/crypto/openssh/monitor_wrap.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/monitor_wrap.c Sun Jan 24 22:28:18 2016 (r294693) @@ -26,7 +26,6 @@ */ #include "includes.h" -__RCSID("$FreeBSD$"); #include #include Modified: stable/10/crypto/openssh/myproposal.h ============================================================================== --- stable/10/crypto/openssh/myproposal.h Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/myproposal.h Sun Jan 24 22:28:18 2016 (r294693) @@ -110,10 +110,6 @@ "chacha20-poly1305@openssh.com," \ "aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc," \ "aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se" -#ifdef NONE_CIPHER_ENABLED -#define KEX_ENCRYPT_INCLUDE_NONE KEX_DEFAULT_ENCRYPT \ - ",none" -#endif #define KEX_DEFAULT_MAC \ "hmac-md5-etm@openssh.com," \ Modified: stable/10/crypto/openssh/packet.c ============================================================================== --- stable/10/crypto/openssh/packet.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/packet.c Sun Jan 24 22:28:18 2016 (r294693) @@ -202,9 +202,6 @@ struct session_state { }; static struct session_state *active_state, *backup_state; -#ifdef NONE_CIPHER_ENABLED -static int rekey_requested = 0; -#endif static struct session_state * alloc_session_state(void) @@ -1316,7 +1313,6 @@ packet_read_poll2(u_int32_t *seqnr_p) buffer_ptr(&active_state->input), block_size, 0, 0) != 0) fatal("Decryption integrity check failed"); cp = buffer_ptr(&active_state->incoming_packet); - active_state->packlen = get_u32(cp); if (active_state->packlen < 1 + 4 || active_state->packlen > PACKET_MAX_SIZE) { @@ -1943,26 +1939,12 @@ packet_send_ignore(int nbytes) } } -#ifdef NONE_CIPHER_ENABLED -void -packet_request_rekeying(void) -{ - rekey_requested = 1; -} -#endif - #define MAX_PACKETS (1U<<31) int packet_need_rekeying(void) { if (datafellows & SSH_BUG_NOREKEY) return 0; -#ifdef NONE_CIPHER_ENABLED - if (rekey_requested == 1) { - rekey_requested = 0; - return 1; - } -#endif return (active_state->p_send.packets > MAX_PACKETS) || (active_state->p_read.packets > MAX_PACKETS) || @@ -2074,11 +2056,3 @@ packet_restore_state(void) add_recv_bytes(len); } } - -#ifdef NONE_CIPHER_ENABLED -int -packet_get_authentication_state(void) -{ - return (active_state->after_authentication); -} -#endif Modified: stable/10/crypto/openssh/packet.h ============================================================================== --- stable/10/crypto/openssh/packet.h Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/packet.h Sun Jan 24 22:28:18 2016 (r294693) @@ -1,5 +1,4 @@ /* $OpenBSD: packet.h,v 1.59 2013/07/12 00:19:59 djm Exp $ */ -/* $FreeBSD$ */ /* * Author: Tatu Ylonen @@ -39,9 +38,6 @@ void packet_set_interactive(int, int int packet_is_interactive(void); void packet_set_server(void); void packet_set_authenticated(void); -#ifdef NONE_CIPHER_ENABLED -int packet_get_authentication_state(void); -#endif void packet_start(u_char); void packet_put_char(int ch); @@ -119,9 +115,6 @@ do { \ } while (0) int packet_need_rekeying(void); -#ifdef NONE_CIPHER_ENABLED -void packet_request_rekeying(void); -#endif void packet_set_rekey_limits(u_int32_t, time_t); time_t packet_get_rekey_timeout(void); Modified: stable/10/crypto/openssh/readconf.c ============================================================================== --- stable/10/crypto/openssh/readconf.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/readconf.c Sun Jan 24 22:28:18 2016 (r294693) @@ -152,12 +152,8 @@ typedef enum { oKexAlgorithms, oIPQoS, oRequestTTY, oIgnoreUnknown, oProxyUseFdpass, oCanonicalDomains, oCanonicalizeHostname, oCanonicalizeMaxDots, oCanonicalizeFallbackLocal, oCanonicalizePermittedCNAMEs, - oIgnoredUnknownOption, - oHPNDisabled, oHPNBufferSize, oTcpRcvBufPoll, oTcpRcvBuf, -#ifdef NONE_CIPHER_ENABLED - oNoneEnabled, oNoneSwitch, -#endif - oVersionAddendum, oDeprecated, oUnsupported + oVersionAddendum, + oIgnoredUnknownOption, oDeprecated, oUnsupported } OpCodes; /* Textual representations of the tokens. */ @@ -270,14 +266,10 @@ static struct { { "canonicalizemaxdots", oCanonicalizeMaxDots }, { "canonicalizepermittedcnames", oCanonicalizePermittedCNAMEs }, { "ignoreunknown", oIgnoreUnknown }, - { "hpndisabled", oHPNDisabled }, - { "hpnbuffersize", oHPNBufferSize }, - { "tcprcvbufpoll", oTcpRcvBufPoll }, - { "tcprcvbuf", oTcpRcvBuf }, -#ifdef NONE_CIPHER_ENABLED - { "noneenabled", oNoneEnabled }, - { "noneswitch", oNoneSwitch }, -#endif + { "hpndisabled", oDeprecated }, + { "hpnbuffersize", oDeprecated }, + { "tcprcvbufpoll", oDeprecated }, + { "tcprcvbuf", oDeprecated }, { "versionaddendum", oVersionAddendum }, { NULL, oBadOption } @@ -1359,47 +1351,6 @@ parse_int: multistate_ptr = multistate_requesttty; goto parse_multistate; - case oHPNDisabled: - intptr = &options->hpn_disabled; - goto parse_flag; - - case oHPNBufferSize: - intptr = &options->hpn_buffer_size; - goto parse_int; - - case oTcpRcvBufPoll: - intptr = &options->tcp_rcv_buf_poll; - goto parse_flag; - - case oTcpRcvBuf: - intptr = &options->tcp_rcv_buf; - goto parse_int; - -#ifdef NONE_CIPHER_ENABLED - case oNoneEnabled: - intptr = &options->none_enabled; - goto parse_flag; - - /* - * We check to see if the command comes from the command line or not. - * If it does then enable it otherwise fail. NONE must never be a - * default configuration. - */ - case oNoneSwitch: - if (strcmp(filename,"command-line") == 0) { - intptr = &options->none_switch; - goto parse_flag; - } else { - debug("NoneSwitch directive found in %.200s.", - filename); - error("NoneSwitch is found in %.200s.\n" - "You may only use this configuration option " - "from the command line", filename); - error("Continuing..."); - return 0; - } -#endif - case oVersionAddendum: if (s == NULL) fatal("%.200s line %d: Missing argument.", filename, @@ -1655,14 +1606,6 @@ initialize_options(Options * options) options->canonicalize_fallback_local = -1; options->canonicalize_hostname = -1; options->version_addendum = NULL; - options->hpn_disabled = -1; - options->hpn_buffer_size = -1; - options->tcp_rcv_buf_poll = -1; - options->tcp_rcv_buf = -1; -#ifdef NONE_CIPHER_ENABLED - options->none_enabled = -1; - options->none_switch = -1; -#endif } /* @@ -1857,36 +1800,6 @@ fill_default_options(Options * options) /* options->preferred_authentications will be set in ssh */ if (options->version_addendum == NULL) options->version_addendum = xstrdup(SSH_VERSION_FREEBSD); - if (options->hpn_disabled == -1) - options->hpn_disabled = 0; - if (options->hpn_buffer_size > -1) - { - u_int maxlen; - - /* If a user tries to set the size to 0 set it to 1KB. */ - if (options->hpn_buffer_size == 0) - options->hpn_buffer_size = 1024; - /* Limit the buffer to BUFFER_MAX_LEN. */ - maxlen = buffer_get_max_len(); - if (options->hpn_buffer_size > (maxlen / 1024)) { - debug("User requested buffer larger than %ub: %ub. " - "Request reverted to %ub", maxlen, - options->hpn_buffer_size * 1024, maxlen); - options->hpn_buffer_size = maxlen; - } - debug("hpn_buffer_size set to %d", options->hpn_buffer_size); - } - if (options->tcp_rcv_buf == 0) - options->tcp_rcv_buf = 1; - if (options->tcp_rcv_buf > -1) - options->tcp_rcv_buf *= 1024; - if (options->tcp_rcv_buf_poll == -1) - options->tcp_rcv_buf_poll = 1; -#ifdef NONE_CIPHER_ENABLED - /* options->none_enabled must not be set by default */ - if (options->none_switch == -1) - options->none_switch = 0; -#endif } /* Modified: stable/10/crypto/openssh/readconf.h ============================================================================== --- stable/10/crypto/openssh/readconf.h Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/readconf.h Sun Jan 24 22:28:18 2016 (r294693) @@ -154,21 +154,9 @@ typedef struct { int num_permitted_cnames; struct allowed_cname permitted_cnames[MAX_CANON_DOMAINS]; - char *ignored_unknown; /* Pattern list of unknown tokens to ignore */ - char *version_addendum; /* Appended to SSH banner */ - int hpn_disabled; /* Switch to disable HPN buffer management. */ - int hpn_buffer_size; /* User definable size for HPN buffer - * window. */ - int tcp_rcv_buf_poll; /* Option to poll recv buf every window - * transfer. */ - int tcp_rcv_buf; /* User switch to set tcp recv buffer. */ - -#ifdef NONE_CIPHER_ENABLED - int none_enabled; /* Allow none to be used */ - int none_switch; /* Use none cipher */ -#endif + char *ignored_unknown; /* Pattern list of unknown tokens to ignore */ } Options; #define SSH_CANONICALISE_NO 0 Modified: stable/10/crypto/openssh/servconf.c ============================================================================== --- stable/10/crypto/openssh/servconf.c Sun Jan 24 22:26:25 2016 (r294692) +++ stable/10/crypto/openssh/servconf.c Sun Jan 24 22:28:18 2016 (r294693) @@ -155,12 +155,6 @@ initialize_server_options(ServerOptions options->ip_qos_interactive = -1; options->ip_qos_bulk = -1; options->version_addendum = NULL; - options->hpn_disabled = -1; - options->hpn_buffer_size = -1; - options->tcp_rcv_buf_poll = -1; -#ifdef NONE_CIPHER_ENABLED - options->none_enabled = -1; -#endif } void @@ -321,38 +315,6 @@ fill_default_server_options(ServerOption } #endif - if (options->hpn_disabled == -1) - options->hpn_disabled = 0; - if (options->hpn_buffer_size == -1) { - /* - * HPN buffer size option not explicitly set. Try to figure - * out what value to use or resort to default. - */ - options->hpn_buffer_size = CHAN_SES_WINDOW_DEFAULT; - if (!options->hpn_disabled) { - sock_get_rcvbuf(&options->hpn_buffer_size, 0); - debug ("HPN Buffer Size: %d", options->hpn_buffer_size); - } - } else { - /* - * In the case that the user sets both values in a - * contradictory manner hpn_disabled overrrides hpn_buffer_size. - */ - if (options->hpn_disabled <= 0) { - u_int maxlen; - - maxlen = buffer_get_max_len(); - if (options->hpn_buffer_size == 0) - options->hpn_buffer_size = 1; - /* Limit the maximum buffer to BUFFER_MAX_LEN. */ - if (options->hpn_buffer_size > maxlen / 1024) - options->hpn_buffer_size = maxlen; - else - options->hpn_buffer_size *= 1024; - } else { - options->hpn_buffer_size = CHAN_TCP_WINDOW_DEFAULT; - } - } } /* Keyword tokens. */ @@ -388,10 +350,6 @@ typedef enum { sKexAlgorithms, sIPQoS, sVersionAddendum, sAuthorizedKeysCommand, sAuthorizedKeysCommandUser, sAuthenticationMethods, sHostKeyAgent, - sHPNDisabled, sHPNBufferSize, sTcpRcvBufPoll, -#ifdef NONE_CIPHER_ENABLED - sNoneEnabled, -#endif sDeprecated, sUnsupported } ServerOpCodes; @@ -518,12 +476,10 @@ static struct { { "authorizedkeyscommanduser", sAuthorizedKeysCommandUser, SSHCFG_ALL }, { "versionaddendum", sVersionAddendum, SSHCFG_GLOBAL }, { "authenticationmethods", sAuthenticationMethods, SSHCFG_ALL }, - { "hpndisabled", sHPNDisabled, SSHCFG_ALL }, - { "hpnbuffersize", sHPNBufferSize, SSHCFG_ALL }, - { "tcprcvbufpoll", sTcpRcvBufPoll, SSHCFG_ALL }, -#ifdef NONE_CIPHER_ENABLED - { "noneenabled", sNoneEnabled, SSHCFG_ALL }, -#endif + { "noneenabled", sUnsupported, SSHCFG_ALL }, + { "hpndisabled", sDeprecated, SSHCFG_ALL }, + { "hpnbuffersize", sDeprecated, SSHCFG_ALL }, + { "tcprcvbufpoll", sDeprecated, SSHCFG_ALL }, { NULL, sBadOption, 0 } }; @@ -1670,24 +1626,6 @@ process_server_config_line(ServerOptions } return 0; - case sHPNDisabled: - intptr = &options->hpn_disabled; - goto parse_flag; - - case sHPNBufferSize: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Jan 24 22:31:35 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D90D97CAD; Sun, 24 Jan 2016 22:31:35 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ABE4FC00; Sun, 24 Jan 2016 22:31:35 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0OMVYEg033757; Sun, 24 Jan 2016 22:31:34 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0OMVYKa033756; Sun, 24 Jan 2016 22:31:34 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601242231.u0OMVYKa033756@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 24 Jan 2016 22:31:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294694 - head/lib/libc/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 22:31:36 -0000 Author: tuexen Date: Sun Jan 24 22:31:34 2016 New Revision: 294694 URL: https://svnweb.freebsd.org/changeset/base/294694 Log: sctp_sendx() needs to provide the assoc_id back. MFC after: 3 days Modified: head/lib/libc/net/sctp_sys_calls.c Modified: head/lib/libc/net/sctp_sys_calls.c ============================================================================== --- head/lib/libc/net/sctp_sys_calls.c Sun Jan 24 22:28:18 2016 (r294693) +++ head/lib/libc/net/sctp_sys_calls.c Sun Jan 24 22:31:34 2016 (r294694) @@ -700,14 +700,19 @@ sctp_sendx(int sd, const void *msg, size #ifdef SYS_sctp_generic_sendmsg if (addrcnt == 1) { socklen_t l; + ssize_t ret; /* * Quick way, we don't need to do a connectx so lets use the * syscall directly. */ l = addrs->sa_len; - return (syscall(SYS_sctp_generic_sendmsg, sd, - msg, msg_len, addrs, l, sinfo, flags)); + ret = syscall(SYS_sctp_generic_sendmsg, sd, + msg, msg_len, addrs, l, sinfo, flags); + if ((ret >= 0) && (sinfo != NULL)) { + sinfo->sinfo_assoc_id = sctp_getassocid(sd, addrs); + } + return (ret); } #endif From owner-svn-src-all@freebsd.org Sun Jan 24 23:24:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7377A31F71; Sun, 24 Jan 2016 23:24:48 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 96AAF275; Sun, 24 Jan 2016 23:24:48 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0ONOlFI050475; Sun, 24 Jan 2016 23:24:47 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0ONOloe050474; Sun, 24 Jan 2016 23:24:47 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201601242324.u0ONOloe050474@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 24 Jan 2016 23:24:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294695 - head/sys/fs/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 23:24:48 -0000 Author: pfg Date: Sun Jan 24 23:24:47 2016 New Revision: 294695 URL: https://svnweb.freebsd.org/changeset/base/294695 Log: ext2fs: passthrough any extra timestamps to the dinode struct. In general we don't trust any of the extended timestamps unless the EXT2F_ROCOMPAT_EXTRA_ISIZE feature is set. However, in the case where we freshly allocated a new inode the information is valid and it is better to pass it along instead of leaving the value undefined. This should have no practical effect but should reduce the amount of garbage if EXT2F_ROCOMPAT_EXTRA_ISIZE is set, like in cases where the filesystem is converted from ext3 to ext4. MFC after: 4 days Modified: head/sys/fs/ext2fs/ext2_inode_cnv.c Modified: head/sys/fs/ext2fs/ext2_inode_cnv.c ============================================================================== --- head/sys/fs/ext2fs/ext2_inode_cnv.c Sun Jan 24 22:31:34 2016 (r294694) +++ head/sys/fs/ext2fs/ext2_inode_cnv.c Sun Jan 24 23:24:47 2016 (r294695) @@ -149,13 +149,11 @@ ext2_i2ei(struct inode *ip, struct ext2f ei->e2di_atime = ip->i_atime; ei->e2di_mtime = ip->i_mtime; ei->e2di_ctime = ip->i_ctime; - if (E2DI_HAS_XTIME(ip)) { - ei->e2di_ctime_extra = NSEC_TO_XTIME(ip->i_ctimensec); - ei->e2di_mtime_extra = NSEC_TO_XTIME(ip->i_mtimensec); - ei->e2di_atime_extra = NSEC_TO_XTIME(ip->i_atimensec); - ei->e2di_crtime = ip->i_birthtime; - ei->e2di_crtime_extra = NSEC_TO_XTIME(ip->i_birthnsec); - } + ei->e2di_ctime_extra = NSEC_TO_XTIME(ip->i_ctimensec); + ei->e2di_mtime_extra = NSEC_TO_XTIME(ip->i_mtimensec); + ei->e2di_atime_extra = NSEC_TO_XTIME(ip->i_atimensec); + ei->e2di_crtime = ip->i_birthtime; + ei->e2di_crtime_extra = NSEC_TO_XTIME(ip->i_birthnsec); ei->e2di_flags = 0; ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND: 0; ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE: 0; From owner-svn-src-all@freebsd.org Sun Jan 24 23:28:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A41D77071; Sun, 24 Jan 2016 23:28:15 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 77AD5664; Sun, 24 Jan 2016 23:28:15 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0ONSElr050689; Sun, 24 Jan 2016 23:28:14 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0ONSEpN050688; Sun, 24 Jan 2016 23:28:14 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201601242328.u0ONSEpN050688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 24 Jan 2016 23:28:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294696 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 23:28:15 -0000 Author: avos Date: Sun Jan 24 23:28:14 2016 New Revision: 294696 URL: https://svnweb.freebsd.org/changeset/base/294696 Log: net80211: reduce code duplication Do not duplicate code between IEEE80211_IOC_WPAIE and IEEE80211_IOC_WPAIE2 switch cases. Approved by: adrian (mentor) Differential Revision: D5041 (part) Modified: head/sys/net80211/ieee80211_ioctl.c Modified: head/sys/net80211/ieee80211_ioctl.c ============================================================================== --- head/sys/net80211/ieee80211_ioctl.c Sun Jan 24 23:24:47 2016 (r294695) +++ head/sys/net80211/ieee80211_ioctl.c Sun Jan 24 23:28:14 2016 (r294696) @@ -932,8 +932,6 @@ ieee80211_ioctl_get80211(struct ieee8021 ireq->i_len); break; case IEEE80211_IOC_WPAIE: - error = ieee80211_ioctl_getwpaie(vap, ireq, ireq->i_type); - break; case IEEE80211_IOC_WPAIE2: error = ieee80211_ioctl_getwpaie(vap, ireq, ireq->i_type); break; From owner-svn-src-all@freebsd.org Sun Jan 24 23:35:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59BB372CF; Sun, 24 Jan 2016 23:35:21 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2D6F5A3A; Sun, 24 Jan 2016 23:35:21 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0ONZKZS053627; Sun, 24 Jan 2016 23:35:20 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0ONZKwW053626; Sun, 24 Jan 2016 23:35:20 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201601242335.u0ONZKwW053626@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 24 Jan 2016 23:35:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294697 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2016 23:35:21 -0000 Author: avos Date: Sun Jan 24 23:35:20 2016 New Revision: 294697 URL: https://svnweb.freebsd.org/changeset/base/294697 Log: net80211: reduce stack usage for ieee80211_ioctl*() methods. Use malloc(9) for - struct ieee80211req_wpaie2 (518 bytes, used in ieee80211_ioctl_getwpaie()) - struct ieee80211_scan_req (128 bytes, used in setmlme_assoc_adhoc() and ieee80211_ioctl_scanreq()) Also, drop __noinline workarounds; stack overflow is not reproducible with recent compilers. Tested with Clang 3.7.1, GCC 4.2.1 (from 9.3-RELEASE) and 4.9.4 (with -fstack-usage flag) Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5041 Modified: head/sys/net80211/ieee80211_ioctl.c Modified: head/sys/net80211/ieee80211_ioctl.c ============================================================================== --- head/sys/net80211/ieee80211_ioctl.c Sun Jan 24 23:28:14 2016 (r294696) +++ head/sys/net80211/ieee80211_ioctl.c Sun Jan 24 23:35:20 2016 (r294697) @@ -68,7 +68,7 @@ static struct ieee80211_channel *findcha static int ieee80211_scanreq(struct ieee80211vap *, struct ieee80211_scan_req *); -static __noinline int +static int ieee80211_ioctl_getkey(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; @@ -124,7 +124,7 @@ ieee80211_ioctl_getkey(struct ieee80211v return copyout(&ik, ireq->i_data, sizeof(ik)); } -static __noinline int +static int ieee80211_ioctl_getchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; @@ -134,7 +134,7 @@ ieee80211_ioctl_getchanlist(struct ieee8 return copyout(&ic->ic_chan_active, ireq->i_data, ireq->i_len); } -static __noinline int +static int ieee80211_ioctl_getchaninfo(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; @@ -148,36 +148,40 @@ ieee80211_ioctl_getchaninfo(struct ieee8 return copyout(&ic->ic_nchans, ireq->i_data, space); } -static __noinline int +static int ieee80211_ioctl_getwpaie(struct ieee80211vap *vap, struct ieee80211req *ireq, int req) { struct ieee80211_node *ni; - struct ieee80211req_wpaie2 wpaie; + struct ieee80211req_wpaie2 *wpaie; int error; if (ireq->i_len < IEEE80211_ADDR_LEN) return EINVAL; - error = copyin(ireq->i_data, wpaie.wpa_macaddr, IEEE80211_ADDR_LEN); + wpaie = IEEE80211_MALLOC(sizeof(*wpaie), M_TEMP, + IEEE80211_M_NOWAIT | IEEE80211_M_ZERO); + if (wpaie == NULL) + return ENOMEM; + error = copyin(ireq->i_data, wpaie->wpa_macaddr, IEEE80211_ADDR_LEN); if (error != 0) - return error; - ni = ieee80211_find_vap_node(&vap->iv_ic->ic_sta, vap, wpaie.wpa_macaddr); - if (ni == NULL) - return ENOENT; - memset(wpaie.wpa_ie, 0, sizeof(wpaie.wpa_ie)); + goto bad; + ni = ieee80211_find_vap_node(&vap->iv_ic->ic_sta, vap, wpaie->wpa_macaddr); + if (ni == NULL) { + error = ENOENT; + goto bad; + } if (ni->ni_ies.wpa_ie != NULL) { int ielen = ni->ni_ies.wpa_ie[1] + 2; - if (ielen > sizeof(wpaie.wpa_ie)) - ielen = sizeof(wpaie.wpa_ie); - memcpy(wpaie.wpa_ie, ni->ni_ies.wpa_ie, ielen); + if (ielen > sizeof(wpaie->wpa_ie)) + ielen = sizeof(wpaie->wpa_ie); + memcpy(wpaie->wpa_ie, ni->ni_ies.wpa_ie, ielen); } if (req == IEEE80211_IOC_WPAIE2) { - memset(wpaie.rsn_ie, 0, sizeof(wpaie.rsn_ie)); if (ni->ni_ies.rsn_ie != NULL) { int ielen = ni->ni_ies.rsn_ie[1] + 2; - if (ielen > sizeof(wpaie.rsn_ie)) - ielen = sizeof(wpaie.rsn_ie); - memcpy(wpaie.rsn_ie, ni->ni_ies.rsn_ie, ielen); + if (ielen > sizeof(wpaie->rsn_ie)) + ielen = sizeof(wpaie->rsn_ie); + memcpy(wpaie->rsn_ie, ni->ni_ies.rsn_ie, ielen); } if (ireq->i_len > sizeof(struct ieee80211req_wpaie2)) ireq->i_len = sizeof(struct ieee80211req_wpaie2); @@ -186,18 +190,21 @@ ieee80211_ioctl_getwpaie(struct ieee8021 /* XXX check ic_flags? */ if (ni->ni_ies.rsn_ie != NULL) { int ielen = ni->ni_ies.rsn_ie[1] + 2; - if (ielen > sizeof(wpaie.wpa_ie)) - ielen = sizeof(wpaie.wpa_ie); - memcpy(wpaie.wpa_ie, ni->ni_ies.rsn_ie, ielen); + if (ielen > sizeof(wpaie->wpa_ie)) + ielen = sizeof(wpaie->wpa_ie); + memcpy(wpaie->wpa_ie, ni->ni_ies.rsn_ie, ielen); } if (ireq->i_len > sizeof(struct ieee80211req_wpaie)) ireq->i_len = sizeof(struct ieee80211req_wpaie); } ieee80211_free_node(ni); - return copyout(&wpaie, ireq->i_data, ireq->i_len); + error = copyout(wpaie, ireq->i_data, ireq->i_len); +bad: + IEEE80211_FREE(wpaie, M_TEMP); + return error; } -static __noinline int +static int ieee80211_ioctl_getstastats(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211_node *ni; @@ -252,7 +259,7 @@ get_scan_space(void *arg, const struct i req->space += scan_space(se, &ielen); } -static __noinline void +static void get_scan_result(void *arg, const struct ieee80211_scan_entry *se) { struct scanreq *req = arg; @@ -302,7 +309,7 @@ get_scan_result(void *arg, const struct req->sr = (struct ieee80211req_scan_result *)(((uint8_t *)sr) + len); } -static __noinline int +static int ieee80211_ioctl_getscanresults(struct ieee80211vap *vap, struct ieee80211req *ireq) { @@ -366,7 +373,7 @@ get_sta_space(void *arg, struct ieee8021 req->space += sta_space(ni, &ielen); } -static __noinline void +static void get_sta_info(void *arg, struct ieee80211_node *ni) { struct stainforeq *req = arg; @@ -452,7 +459,7 @@ get_sta_info(void *arg, struct ieee80211 req->space -= len; } -static __noinline int +static int getstainfo_common(struct ieee80211vap *vap, struct ieee80211req *ireq, struct ieee80211_node *ni, size_t off) { @@ -496,7 +503,7 @@ bad: return error; } -static __noinline int +static int ieee80211_ioctl_getstainfo(struct ieee80211vap *vap, struct ieee80211req *ireq) { uint8_t macaddr[IEEE80211_ADDR_LEN]; @@ -519,7 +526,7 @@ ieee80211_ioctl_getstainfo(struct ieee80 return getstainfo_common(vap, ireq, ni, off); } -static __noinline int +static int ieee80211_ioctl_getstatxpow(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211_node *ni; @@ -540,7 +547,7 @@ ieee80211_ioctl_getstatxpow(struct ieee8 return error; } -static __noinline int +static int ieee80211_ioctl_getwmeparam(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; @@ -583,7 +590,7 @@ ieee80211_ioctl_getwmeparam(struct ieee8 return 0; } -static __noinline int +static int ieee80211_ioctl_getmaccmd(struct ieee80211vap *vap, struct ieee80211req *ireq) { const struct ieee80211_aclator *acl = vap->iv_acl; @@ -591,7 +598,7 @@ ieee80211_ioctl_getmaccmd(struct ieee802 return (acl == NULL ? EINVAL : acl->iac_getioctl(vap, ireq)); } -static __noinline int +static int ieee80211_ioctl_getcurchan(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; @@ -648,7 +655,7 @@ ieee80211_ioctl_getappie(struct ieee8021 return EINVAL; } -static __noinline int +static int ieee80211_ioctl_getregdomain(struct ieee80211vap *vap, const struct ieee80211req *ireq) { @@ -660,7 +667,7 @@ ieee80211_ioctl_getregdomain(struct ieee sizeof(ic->ic_regdomain)); } -static __noinline int +static int ieee80211_ioctl_getroam(struct ieee80211vap *vap, const struct ieee80211req *ireq) { @@ -671,7 +678,7 @@ ieee80211_ioctl_getroam(struct ieee80211 return copyout(vap->iv_roamparms, ireq->i_data, len); } -static __noinline int +static int ieee80211_ioctl_gettxparams(struct ieee80211vap *vap, const struct ieee80211req *ireq) { @@ -682,7 +689,7 @@ ieee80211_ioctl_gettxparams(struct ieee8 return copyout(vap->iv_txparms, ireq->i_data, len); } -static __noinline int +static int ieee80211_ioctl_getdevcaps(struct ieee80211com *ic, const struct ieee80211req *ireq) { @@ -716,7 +723,7 @@ ieee80211_ioctl_getdevcaps(struct ieee80 return error; } -static __noinline int +static int ieee80211_ioctl_getstavlan(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211_node *ni; @@ -765,23 +772,7 @@ ieee80211_ioctl_getdefault(struct ieee80 return EINVAL; } -/* - * When building the kernel with -O2 on the i386 architecture, gcc - * seems to want to inline this function into ieee80211_ioctl() - * (which is the only routine that calls it). When this happens, - * ieee80211_ioctl() ends up consuming an additional 2K of stack - * space. (Exactly why it needs so much is unclear.) The problem - * is that it's possible for ieee80211_ioctl() to invoke other - * routines (including driver init functions) which could then find - * themselves perilously close to exhausting the stack. - * - * To avoid this, we deliberately prevent gcc from inlining this - * routine. Another way to avoid this is to use less agressive - * optimization when compiling this file (i.e. -O instead of -O2) - * but special-casing the compilation of this one module in the - * build system would be awkward. - */ -static __noinline int +static int ieee80211_ioctl_get80211(struct ieee80211vap *vap, u_long cmd, struct ieee80211req *ireq) { @@ -1136,7 +1127,7 @@ ieee80211_ioctl_get80211(struct ieee8021 #undef MS } -static __noinline int +static int ieee80211_ioctl_setkey(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211req_key ik; @@ -1210,7 +1201,7 @@ ieee80211_ioctl_setkey(struct ieee80211v return error; } -static __noinline int +static int ieee80211_ioctl_delkey(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211req_del_key dk; @@ -1352,7 +1343,7 @@ setmlme_dropsta(struct ieee80211vap *vap return error; } -static __noinline int +static int setmlme_common(struct ieee80211vap *vap, int op, const uint8_t mac[IEEE80211_ADDR_LEN], int reason) { @@ -1513,7 +1504,7 @@ mlmelookup(void *arg, const struct ieee8 look->se = se; } -static __noinline int +static int setmlme_assoc_sta(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], int ssid_len, const uint8_t ssid[IEEE80211_NWID_LEN]) @@ -1538,12 +1529,13 @@ setmlme_assoc_sta(struct ieee80211vap *v return 0; } -static __noinline int +static int setmlme_assoc_adhoc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], int ssid_len, const uint8_t ssid[IEEE80211_NWID_LEN]) { - struct ieee80211_scan_req sr; + struct ieee80211_scan_req *sr; + int error; KASSERT(vap->iv_opmode == IEEE80211_M_IBSS || vap->iv_opmode == IEEE80211_M_AHDEMO, @@ -1553,23 +1545,30 @@ setmlme_assoc_adhoc(struct ieee80211vap if (ssid_len == 0) return EINVAL; + sr = IEEE80211_MALLOC(sizeof(*sr), M_TEMP, + IEEE80211_M_NOWAIT | IEEE80211_M_ZERO); + if (sr == NULL) + return ENOMEM; + /* NB: IEEE80211_IOC_SSID call missing for ap_scan=2. */ memset(vap->iv_des_ssid[0].ssid, 0, IEEE80211_NWID_LEN); vap->iv_des_ssid[0].len = ssid_len; memcpy(vap->iv_des_ssid[0].ssid, ssid, ssid_len); vap->iv_des_nssid = 1; - memset(&sr, 0, sizeof(sr)); - sr.sr_flags = IEEE80211_IOC_SCAN_ACTIVE | IEEE80211_IOC_SCAN_ONCE; - sr.sr_duration = IEEE80211_IOC_SCAN_FOREVER; - memcpy(sr.sr_ssid[0].ssid, ssid, ssid_len); - sr.sr_ssid[0].len = ssid_len; - sr.sr_nssid = 1; + sr->sr_flags = IEEE80211_IOC_SCAN_ACTIVE | IEEE80211_IOC_SCAN_ONCE; + sr->sr_duration = IEEE80211_IOC_SCAN_FOREVER; + memcpy(sr->sr_ssid[0].ssid, ssid, ssid_len); + sr->sr_ssid[0].len = ssid_len; + sr->sr_nssid = 1; + + error = ieee80211_scanreq(vap, sr); - return ieee80211_scanreq(vap, &sr); + IEEE80211_FREE(sr, M_TEMP); + return error; } -static __noinline int +static int ieee80211_ioctl_setmlme(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211req_mlme mlme; @@ -1594,7 +1593,7 @@ ieee80211_ioctl_setmlme(struct ieee80211 mlme.im_macaddr, mlme.im_reason); } -static __noinline int +static int ieee80211_ioctl_macmac(struct ieee80211vap *vap, struct ieee80211req *ireq) { uint8_t mac[IEEE80211_ADDR_LEN]; @@ -1619,7 +1618,7 @@ ieee80211_ioctl_macmac(struct ieee80211v return 0; } -static __noinline int +static int ieee80211_ioctl_setmaccmd(struct ieee80211vap *vap, struct ieee80211req *ireq) { const struct ieee80211_aclator *acl = vap->iv_acl; @@ -1657,7 +1656,7 @@ ieee80211_ioctl_setmaccmd(struct ieee802 return 0; } -static __noinline int +static int ieee80211_ioctl_setchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; @@ -1703,7 +1702,7 @@ ieee80211_ioctl_setchanlist(struct ieee8 return ENETRESET; } -static __noinline int +static int ieee80211_ioctl_setstastats(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211_node *ni; @@ -1729,7 +1728,7 @@ ieee80211_ioctl_setstastats(struct ieee8 return 0; } -static __noinline int +static int ieee80211_ioctl_setstatxpow(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211_node *ni; @@ -1749,7 +1748,7 @@ ieee80211_ioctl_setstatxpow(struct ieee8 return error; } -static __noinline int +static int ieee80211_ioctl_setwmeparam(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; @@ -1975,7 +1974,7 @@ setcurchan(struct ieee80211vap *vap, str * Old api for setting the current channel; this is * deprecated because channel numbers are ambiguous. */ -static __noinline int +static int ieee80211_ioctl_setchannel(struct ieee80211vap *vap, const struct ieee80211req *ireq) { @@ -2054,7 +2053,7 @@ ieee80211_ioctl_setchannel(struct ieee80 * channel description is provide so there is no ambiguity in * identifying the channel. */ -static __noinline int +static int ieee80211_ioctl_setcurchan(struct ieee80211vap *vap, const struct ieee80211req *ireq) { @@ -2078,7 +2077,7 @@ ieee80211_ioctl_setcurchan(struct ieee80 return setcurchan(vap, c); } -static __noinline int +static int ieee80211_ioctl_setregdomain(struct ieee80211vap *vap, const struct ieee80211req *ireq) { @@ -2152,7 +2151,7 @@ checkmcs(int mcs) return (mcs & 0x7f) <= 15; /* XXX could search ht rate set */ } -static __noinline int +static int ieee80211_ioctl_settxparams(struct ieee80211vap *vap, const struct ieee80211req *ireq) { @@ -2273,7 +2272,7 @@ setwparsnie(struct ieee80211vap *vap, ui vap->iv_rsn_ie = ie; } -static __noinline int +static int ieee80211_ioctl_setappie_locked(struct ieee80211vap *vap, const struct ieee80211req *ireq, int fc0) { @@ -2351,7 +2350,7 @@ ieee80211_ioctl_setappie_locked(struct i return error; } -static __noinline int +static int ieee80211_ioctl_setappie(struct ieee80211vap *vap, const struct ieee80211req *ireq) { @@ -2369,7 +2368,7 @@ ieee80211_ioctl_setappie(struct ieee8021 return error; } -static __noinline int +static int ieee80211_ioctl_chanswitch(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; @@ -2505,21 +2504,28 @@ ieee80211_scanreq(struct ieee80211vap *v #undef IEEE80211_IOC_SCAN_FLAGS } -static __noinline int +static int ieee80211_ioctl_scanreq(struct ieee80211vap *vap, struct ieee80211req *ireq) { - struct ieee80211_scan_req sr; /* XXX off stack? */ + struct ieee80211_scan_req *sr; int error; - if (ireq->i_len != sizeof(sr)) + if (ireq->i_len != sizeof(*sr)) return EINVAL; - error = copyin(ireq->i_data, &sr, sizeof(sr)); + sr = IEEE80211_MALLOC(sizeof(*sr), M_TEMP, + IEEE80211_M_NOWAIT | IEEE80211_M_ZERO); + if (sr == NULL) + return ENOMEM; + error = copyin(ireq->i_data, sr, sizeof(*sr)); if (error != 0) - return error; - return ieee80211_scanreq(vap, &sr); + goto bad; + error = ieee80211_scanreq(vap, sr); +bad: + IEEE80211_FREE(sr, M_TEMP); + return error; } -static __noinline int +static int ieee80211_ioctl_setstavlan(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211_node *ni; @@ -2583,7 +2589,7 @@ ieee80211_ioctl_setdefault(struct ieee80 return EINVAL; } -static __noinline int +static int ieee80211_ioctl_set80211(struct ieee80211vap *vap, u_long cmd, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; From owner-svn-src-all@freebsd.org Mon Jan 25 00:24:59 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E9E5A45718; Mon, 25 Jan 2016 00:24:59 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 21739A4; Mon, 25 Jan 2016 00:24:59 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P0Ow76068311; Mon, 25 Jan 2016 00:24:58 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P0Ov2w068306; Mon, 25 Jan 2016 00:24:57 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601250024.u0P0Ov2w068306@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Mon, 25 Jan 2016 00:24:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294698 - in head/sys/arm: allwinner conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 00:24:59 -0000 Author: andrew Date: Mon Jan 25 00:24:57 2016 New Revision: 294698 URL: https://svnweb.freebsd.org/changeset/base/294698 Log: Update the Allwinner kernels: * Use the ARM PLATFORM framework * Use ARM_INTRNG on teh A20 as it has a GICv2 * Add a method to find which Allwinner SoC we are running on Differential Revision: https://reviews.freebsd.org/D5059 Added: head/sys/arm/allwinner/allwinner_machdep.c - copied, changed from r294697, head/sys/arm/allwinner/a10_machdep.c Deleted: head/sys/arm/allwinner/a10_machdep.c Modified: head/sys/arm/allwinner/a10_common.c head/sys/arm/allwinner/files.allwinner head/sys/arm/conf/A20 head/sys/arm/conf/CUBIEBOARD Modified: head/sys/arm/allwinner/a10_common.c ============================================================================== --- head/sys/arm/allwinner/a10_common.c Sun Jan 24 23:35:20 2016 (r294697) +++ head/sys/arm/allwinner/a10_common.c Mon Jan 25 00:24:57 2016 (r294698) @@ -42,6 +42,8 @@ struct fdt_fixup_entry fdt_fixup_table[] { NULL, NULL } }; +#ifndef ARM_INTRNG + static int fdt_aintc_decode_ic(phandle_t node, pcell_t *intr, int *interrupt, int *trig, int *pol) @@ -66,3 +68,5 @@ fdt_pic_decode_t fdt_pic_table[] = { &fdt_aintc_decode_ic, NULL }; + +#endif /* ARM_INTRNG */ Copied and modified: head/sys/arm/allwinner/allwinner_machdep.c (from r294697, head/sys/arm/allwinner/a10_machdep.c) ============================================================================== --- head/sys/arm/allwinner/a10_machdep.c Sun Jan 24 23:35:20 2016 (r294697, copy source) +++ head/sys/arm/allwinner/allwinner_machdep.c Mon Jan 25 00:24:57 2016 (r294698) @@ -1,5 +1,6 @@ /*- * Copyright (c) 2012 Ganbold Tsagaankhuu + * Copyright (c) 2015-2016 Emmanuel Vadot * All rights reserved. * * This code is derived from software written for Brini by Mark Brinicombe @@ -45,32 +46,41 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include +#include -vm_offset_t -platform_lastaddr(void) -{ +#include "platform_if.h" - return (arm_devmap_lastaddr()); -} +static u_int soc_type; +static u_int soc_family; -void -platform_probe_and_attach(void) +static int +a10_attach(platform_t plat) { + soc_type = ALLWINNERSOC_A10; + soc_family = ALLWINNERSOC_SUN4I; + return (0); } -void -platform_gpio_init(void) +static int +a20_attach(platform_t plat) { + soc_type = ALLWINNERSOC_A20; + soc_family = ALLWINNERSOC_SUN7I; + + return (0); } -void -platform_late_init(void) + +static vm_offset_t +allwinner_lastaddr(platform_t plat) { + + return (arm_devmap_lastaddr()); } /* @@ -83,8 +93,8 @@ platform_late_init(void) * shouldn't be device-mapped. The original code mapped a 4MB block, but * perhaps a 1MB block would be more appropriate. */ -int -platform_devmap_init(void) +static int +allwinner_devmap_init(platform_t plat) { arm_devmap_add_entry(0x01C00000, 0x00400000); /* 4MB */ @@ -111,3 +121,34 @@ cpu_reset() printf("Reset failed!\n"); while (1); } + +static platform_method_t a10_methods[] = { + PLATFORMMETHOD(platform_attach, a10_attach), + PLATFORMMETHOD(platform_lastaddr, allwinner_lastaddr), + PLATFORMMETHOD(platform_devmap_init, allwinner_devmap_init), + + PLATFORMMETHOD_END, +}; + +static platform_method_t a20_methods[] = { + PLATFORMMETHOD(platform_attach, a20_attach), + PLATFORMMETHOD(platform_lastaddr, allwinner_lastaddr), + PLATFORMMETHOD(platform_devmap_init, allwinner_devmap_init), + + PLATFORMMETHOD_END, +}; + +u_int +allwinner_soc_type(void) +{ + return (soc_type); +} + +u_int +allwinner_soc_family(void) +{ + return (soc_family); +} + +FDT_PLATFORM_DEF(a10, "a10", 0, "allwinner,sun4i-a10"); +FDT_PLATFORM_DEF(a20, "a20", 0, "allwinner,sun7i-a20"); Modified: head/sys/arm/allwinner/files.allwinner ============================================================================== --- head/sys/arm/allwinner/files.allwinner Sun Jan 24 23:35:20 2016 (r294697) +++ head/sys/arm/allwinner/files.allwinner Mon Jan 25 00:24:57 2016 (r294698) @@ -6,11 +6,11 @@ arm/allwinner/a10_clk.c standard arm/allwinner/a10_common.c standard arm/allwinner/a10_ehci.c optional ehci arm/allwinner/a10_gpio.c optional gpio -arm/allwinner/a10_machdep.c standard arm/allwinner/a10_mmc.c optional mmc arm/allwinner/a10_sramc.c standard arm/allwinner/a10_wdog.c standard arm/allwinner/a20/a20_cpu_cfg.c standard +arm/allwinner/allwinner_machdep.c standard arm/allwinner/if_emac.c optional emac arm/allwinner/timer.c standard #arm/allwinner/console.c standard Modified: head/sys/arm/conf/A20 ============================================================================== --- head/sys/arm/conf/A20 Sun Jan 24 23:35:20 2016 (r294697) +++ head/sys/arm/conf/A20 Mon Jan 25 00:24:57 2016 (r294698) @@ -23,9 +23,12 @@ ident A20 include "std.armv6" include "../allwinner/a20/std.a20" +options ARM_INTRNG + options HZ=100 options SCHED_ULE # ULE scheduler options SMP # Enable multiple cores +options PLATFORM # Debugging for use in -current makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols Modified: head/sys/arm/conf/CUBIEBOARD ============================================================================== --- head/sys/arm/conf/CUBIEBOARD Sun Jan 24 23:35:20 2016 (r294697) +++ head/sys/arm/conf/CUBIEBOARD Mon Jan 25 00:24:57 2016 (r294698) @@ -26,6 +26,7 @@ include "../allwinner/std.a10" options HZ=100 options SCHED_4BSD # 4BSD scheduler +options PLATFORM # Debugging for use in -current makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols From owner-svn-src-all@freebsd.org Mon Jan 25 00:28:09 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E990CA45804; Mon, 25 Jan 2016 00:28:09 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id BCDC2289; Mon, 25 Jan 2016 00:28:09 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from zapp.Home (97e175b7.skybroadband.com [151.225.117.183]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id 33DF5D78FE; Mon, 25 Jan 2016 00:27:38 +0000 (UTC) Date: Mon, 25 Jan 2016 00:27:36 +0000 From: Andrew Turner Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294698 - in head/sys/arm: allwinner conf Message-ID: <20160125002736.6247ad33@zapp.Home> In-Reply-To: <201601250024.u0P0Ov2w068306@repo.freebsd.org> References: <201601250024.u0P0Ov2w068306@repo.freebsd.org> X-Mailer: Claws Mail 3.13.1 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 00:28:10 -0000 On Mon, 25 Jan 2016 00:24:57 +0000 (UTC) Andrew Turner wrote: > Author: andrew > Date: Mon Jan 25 00:24:57 2016 > New Revision: 294698 > URL: https://svnweb.freebsd.org/changeset/base/294698 > > Log: > Update the Allwinner kernels: > * Use the ARM PLATFORM framework > * Use ARM_INTRNG on teh A20 as it has a GICv2 > * Add a method to find which Allwinner SoC we are running on > > Differential Revision: https://reviews.freebsd.org/D5059 I missed: Submitted by: Emmanuel Vadot From owner-svn-src-all@freebsd.org Mon Jan 25 00:38:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70A8BA45A5C; Mon, 25 Jan 2016 00:38:02 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-oi0-x235.google.com (mail-oi0-x235.google.com [IPv6:2607:f8b0:4003:c06::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3FDA68A0; Mon, 25 Jan 2016 00:38:02 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-oi0-x235.google.com with SMTP id o124so78398922oia.3; Sun, 24 Jan 2016 16:38:02 -0800 (PST) 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; bh=K7+nRTIGoRc3ALcyp/hgNyR1r0JyfuumrOEV9PZ9Vd0=; b=zSNpQxWIg0h1yp0OtEvBtlx3N4Do3jp1s9lAZ9lMBJZyYHRu4+KdBKb26NBslkPVOS aJnzVOBndMFB9D5WwLQTcQMWPFafOtlTiBtjwp7ASqeXsdShE6rR+5elSV9XGc6ZJDL0 63sBBk39So1Ay+mZgaPnBrIiTkq233bHD3d6uQZ3j+CjiG0XBQ+ZwqTmfe568bfVd6Fp MWdfj6KJpYMZhhznS0kJ9Ov0ir1YGh6a/QhEdL9BSLJdghxs/SDfknPaTzdT9zLqWY53 BF1j4et3DUldrDkDL/CERA6dDmclqwI9AYjwOdMDTlXFT1O6/zcQrK1GwV7WDib4d1Y+ a2SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=K7+nRTIGoRc3ALcyp/hgNyR1r0JyfuumrOEV9PZ9Vd0=; b=ilX0/oMAnDEo2gWEzULTIB8GEQfT27bUsQ1Trs+QAlMv2hCAfVs3BEJY1H2YH7z/g/ WmtBHDuZyflTcaWl8s0X7D42pYTlE+34vWbSRp+CFWMFUZ7RFV2oC2eHPUXcx44OVBcW wsrKb7aXCOAX0EMg80d68c4XZ9S9mjjbNGbADBlAtnui2hHTLyMAZopi3C8wQxn6c6Jp Gren1I7iQnEj15yn/bhHQXWXrYwQMjqHM1ka2AY1evFIDq5+oPiN8FVAUGMuWlTSmOO+ dbRdsA7n824C0sf3rqODPBWHLMfuexs+LUFEQJznAukr4KnW1avkr0A3PhKx2jlDsq4g d74g== X-Gm-Message-State: AG10YOQNhVJczCUgc1NHleDcen3gySRj0gxMPS7kA89VqVyu+nfvysvfBdXDBSJqbr6ffQ== X-Received: by 10.202.230.197 with SMTP id d188mr10526029oih.59.1453682281208; Sun, 24 Jan 2016 16:38:01 -0800 (PST) Received: from [33.232.102.160] (m9e5636d0.tmodns.net. [208.54.86.158]) by smtp.gmail.com with ESMTPSA id w143sm9268036oiw.16.2016.01.24.16.37.59 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 24 Jan 2016 16:37:59 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r294693 - in stable/10: . crypto/openssh secure/lib/libssh secure/usr.bin/ssh secure/usr.sbin/sshd share/mk tools/build/options From: NGie Cooper X-Mailer: iPhone Mail (13D15) In-Reply-To: <201601242228.u0OMSIn7032949@repo.freebsd.org> Date: Sun, 24 Jan 2016 16:37:58 -0800 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <187CD899-961D-4DF7-BFC4-439EF17802D4@gmail.com> References: <201601242228.u0OMSIn7032949@repo.freebsd.org> To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 00:38:02 -0000 > On Jan 24, 2016, at 14:28, Dag-Erling Sm=C3=B8rgrav wrot= e: >=20 > Author: des > Date: Sun Jan 24 22:28:18 2016 > New Revision: 294693 > URL: https://svnweb.freebsd.org/changeset/base/294693 >=20 > Log: > MFH (r291198, r291260, r291261, r291375, r294325, r294335, r294563) >=20 > Remove the HPN and None cipher patches. Relnotes: yes?= From owner-svn-src-all@freebsd.org Mon Jan 25 00:38:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1DFEDA45A93; Mon, 25 Jan 2016 00:38:06 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-yk0-f176.google.com (mail-yk0-f176.google.com [209.85.160.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DA7EA8BB; Mon, 25 Jan 2016 00:38:05 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-yk0-f176.google.com with SMTP id u68so15707595ykd.2; Sun, 24 Jan 2016 16:38:05 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=XS77FSlH9wxOaFIqLW2lU5Pp/DBms4iQkIstdnKSD78=; b=VEvQ7ak1TrzNJmIuZi1rUf1iXJsBCE/0DFOW8LOpUhQUOzijNoYywalhXrbU09Em6p wFSvAavkUplmW1pTGc7hD2ko5fP+5jc1d44Js40Zd82OkC2VSdyeCYeC4yUYjAkZhxsB 1v4S06C8A+hwwsBd+uN5no7B7MweeSbz7QpEqFUptpGnEGvT+C4VBfcc68yUwFWK9qsd LAx/yoRCMFnnfqjfNcyk/66Ii62w3R4QLZXMLqiu1QrfMq1hz4BxAUZ4HWl25MNjcsaI OkzWKKb0b+Eke4A4cDM8fn60KbuH5TAITHsvATyu/byBmjsEfmh957i0OT7jXp+960KP Rj0Q== X-Gm-Message-State: AG10YOTrxFHGfqdtt1WRYiCMV8OOLdyEdSygIilrntvQpyDr+DsfM2ZRcTS7hhnqmF9GaQ== X-Received: by 10.37.85.67 with SMTP id j64mr7681364ybb.172.1453682278971; Sun, 24 Jan 2016 16:37:58 -0800 (PST) Received: from mail-yk0-f173.google.com (mail-yk0-f173.google.com. [209.85.160.173]) by smtp.gmail.com with ESMTPSA id m188sm12449232ywe.46.2016.01.24.16.37.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 24 Jan 2016 16:37:58 -0800 (PST) Received: by mail-yk0-f173.google.com with SMTP id u68so15707381ykd.2; Sun, 24 Jan 2016 16:37:58 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.37.102.70 with SMTP id a67mr7637727ybc.89.1453682278179; Sun, 24 Jan 2016 16:37:58 -0800 (PST) Reply-To: cem@FreeBSD.org Received: by 10.37.4.69 with HTTP; Sun, 24 Jan 2016 16:37:58 -0800 (PST) In-Reply-To: References: <201511070143.tA71h13k038232@repo.freebsd.org> <563DDE73.6030307@selasky.org> <563F1A27.6030002@selasky.org> Date: Sun, 24 Jan 2016 16:37:58 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r290475 - in head: share/man/man9 sys/kern sys/sys From: Conrad Meyer To: Oliver Pinter Cc: Hans Petter Selasky , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Ed Maste Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 00:38:06 -0000 No. They break ABI. Best, Conrad On Sun, Jan 24, 2016 at 1:45 PM, Oliver Pinter wrote: > On 11/8/15, Hans Petter Selasky wrote: >> On 11/07/15 19:26, Conrad Meyer wrote: >>> Can do =E2=80=94 fixed in r290505. >>> >>> Thanks, >>> Conrad >> >> Thank you. Looks good! >> >> --HPS > > Hi All! > > Is there any way to merge back to 10-STABLE these patches? > >> >> _______________________________________________ >> svn-src-head@freebsd.org mailing list >> https://lists.freebsd.org/mailman/listinfo/svn-src-head >> To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" From owner-svn-src-all@freebsd.org Mon Jan 25 03:18:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EDBC99D9D79 for ; Mon, 25 Jan 2016 03:18:27 +0000 (UTC) (envelope-from jbeich@vfemail.net) Received: from vfemail.net (onethreetwo.vfemail.net [199.16.11.132]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AE5B7B29 for ; Mon, 25 Jan 2016 03:18:27 +0000 (UTC) (envelope-from jbeich@vfemail.net) Received: (qmail 90762 invoked by uid 89); 25 Jan 2016 03:18:20 -0000 Received: from localhost (HELO freequeue.vfemail.net) (127.0.0.1) by localhost with (DHE-RSA-AES256-SHA encrypted) SMTP; 25 Jan 2016 03:18:20 -0000 Received: (qmail 63792 invoked by uid 89); 24 Jan 2016 16:37:27 -0000 Received: by simscan 1.3.1 ppid: 63787, pid: 63790, t: 0.0024s scanners:none Received: from unknown (HELO smtp102-2.vfemail.net) (172.16.100.62) by FreeQueue with SMTP; 24 Jan 2016 16:37:27 -0000 Received: (qmail 4559 invoked by uid 89); 24 Jan 2016 16:37:27 -0000 Received: by simscan 1.4.0 ppid: 4536, pid: 4555, t: 0.9478s scanners:none Received: from unknown (HELO nil) (amJlaWNoQHZmZW1haWwubmV0@172.16.100.27) by mail.vfemail.net with ESMTPA; 24 Jan 2016 16:37:26 -0000 From: Jan Beich To: Ruslan Bukin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294665 - head/usr.bin/ldd References: <201601241515.u0OFFvhb001608@repo.freebsd.org> Date: Sun, 24 Jan 2016 17:37:14 +0100 In-Reply-To: <201601241515.u0OFFvhb001608@repo.freebsd.org> (Ruslan Bukin's message of "Sun, 24 Jan 2016 15:15:57 +0000 (UTC)") Message-ID: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 03:18:28 -0000 --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Ruslan Bukin writes: > Modified: head/usr.bin/ldd/ldd.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/usr.bin/ldd/ldd.c Sun Jan 24 15:12:49 2016 (r294664) > +++ head/usr.bin/ldd/ldd.c Sun Jan 24 15:15:57 2016 (r294665) > @@ -48,8 +48,8 @@ __FBSDID("$FreeBSD$"); >=20=20 > #include "extern.h" >=20=20 > -/* We don't support a.out executables on arm64 */ > -#ifndef __aarch64__ > +/* We don't support a.out executables on arm64 and riscv */ > +#if !defined(__aarch64__) && !defined(__riscv__) a.out in userland is only supported by i386. On amd64 it'd mean 32bit jail after |kldload aout|. r292623 maybe an example fix if you can ignore whitespace noise. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQF8BAEBCgBmBQJWpP26XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXREQjQ0MzY3NEM3RDIzNTc4NkUxNDkyQ0VF NEM3Nzg4MzQ3OURCRERCAAoJEOTHeINHnb3b4sUIAJhzcAMMqosxZV7dAfchM9OS +1dQMtX106fJ8EzqYhi1dPKUBC5B6tbq8o7JpnyRrWBtetRMSODb5rdP18dl0s2X yJaBRwFliO+7ouf1xn7Q17ARaIL1nkLPipW3eK8dSdAgArlrOYAa0e0nJn+Oldu7 PVZzJfZbvZW5KlnJ4ZfAFsg23x3auMYhSDbSfBB5r08HZRRgmRlXasW7+8QPc7NF 4XNNv7+ZbDtJjqy7/KCUk0KsCIYPiFh7zWuKdpYQ5laL4mCg+2CMTEmt1Y2vgYn4 lrwUiWXrQ++O34YhUJ4zw9+dWWaSSdkis1jakGYQ7oSpaoINADC9KRJcco5z5b0= =QSsd -----END PGP SIGNATURE----- --=-=-=-- From owner-svn-src-all@freebsd.org Mon Jan 25 04:22:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7A4A7FBA; Mon, 25 Jan 2016 04:22:02 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5E9C324C; Mon, 25 Jan 2016 04:22:02 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P4M1ke037338; Mon, 25 Jan 2016 04:22:01 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P4M1iI037337; Mon, 25 Jan 2016 04:22:01 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201601250422.u0P4M1iI037337@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 25 Jan 2016 04:22:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294699 - head/usr.bin/elfdump X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 04:22:02 -0000 Author: emaste Date: Mon Jan 25 04:22:01 2016 New Revision: 294699 URL: https://svnweb.freebsd.org/changeset/base/294699 Log: elfdump: handle STT_SPARC_REGISTER STT_SPARC_REGISTER is a SPARC-specific symbol type specified by the Sparcv9 ABI to provide some information on register use by the object. Also rework st_info type lookup to avoid out-of-bounds array access. MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/usr.bin/elfdump/elfdump.c Modified: head/usr.bin/elfdump/elfdump.c ============================================================================== --- head/usr.bin/elfdump/elfdump.c Mon Jan 25 00:24:57 2016 (r294698) +++ head/usr.bin/elfdump/elfdump.c Mon Jan 25 04:22:01 2016 (r294699) @@ -408,9 +408,27 @@ static const char *sh_flags[] = { "SHF_WRITE|SHF_ALLOC|SHF_EXECINSTR" }; -static const char *st_types[] = { - "STT_NOTYPE", "STT_OBJECT", "STT_FUNC", "STT_SECTION", "STT_FILE" -}; +static const char * +st_type(unsigned int mach, unsigned int type) +{ + static char s_type[32]; + + switch (type) { + case STT_NOTYPE: return "STT_NOTYPE"; + case STT_OBJECT: return "STT_OBJECT"; + case STT_FUNC: return "STT_FUNC"; + case STT_SECTION: return "STT_SECTION"; + case STT_FILE: return "STT_FILE"; + case STT_COMMON: return "STT_COMMON"; + case STT_TLS: return "STT_TLS"; + case 13: + if (mach == EM_SPARCV9) + return "STT_SPARC_REGISTER"; + break; + } + snprintf(s_type, sizeof(s_type), "", type); + return (s_type); +} static const char *st_bindings[] = { "STB_LOCAL", "STB_GLOBAL", "STB_WEAK" @@ -824,6 +842,7 @@ elf_print_shdr(Elf32_Ehdr *e, void *sh) static void elf_print_symtab(Elf32_Ehdr *e, void *sh, char *str) { + u_int64_t machine; u_int64_t offset; u_int64_t entsize; u_int64_t size; @@ -835,6 +854,7 @@ elf_print_symtab(Elf32_Ehdr *e, void *sh int len; int i; + machine = elf_get_quarter(e, e, E_MACHINE); offset = elf_get_off(e, sh, SH_OFFSET); entsize = elf_get_size(e, sh, SH_ENTSIZE); size = elf_get_size(e, sh, SH_SIZE); @@ -854,7 +874,7 @@ elf_print_symtab(Elf32_Ehdr *e, void *sh fprintf(out, "\tst_value: %#jx\n", value); fprintf(out, "\tst_size: %jd\n", (intmax_t)size); fprintf(out, "\tst_info: %s %s\n", - st_types[ELF32_ST_TYPE(info)], + st_type(machine, ELF32_ST_TYPE(info)), st_bindings[ELF32_ST_BIND(info)]); fprintf(out, "\tst_shndx: %jd\n", (intmax_t)shndx); } From owner-svn-src-all@freebsd.org Mon Jan 25 05:01:35 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1370DA31AB7; Mon, 25 Jan 2016 05:01:35 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9AE5DE98; Mon, 25 Jan 2016 05:01:34 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P51XB9047990; Mon, 25 Jan 2016 05:01:33 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P51XXV046894; Mon, 25 Jan 2016 05:01:33 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201601250501.u0P51XXV046894@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 25 Jan 2016 05:01:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294700 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 05:01:35 -0000 Author: sephe Date: Mon Jan 25 05:01:32 2016 New Revision: 294700 URL: https://svnweb.freebsd.org/changeset/base/294700 Log: hyperv/hn: Partly rework transmission path - Avoid unnecessary malloc/free on transmission path. - busdma(9)-fy transmission path. - Properly handle IFF_DRV_OACTIVE. This should fix the network stalls reported by many. - Properly setup TSO parameters. - Properly handle bpf(4) tapping. This 5 times the performance during TCP sending test, when there is one bpf(4) attached. - Allow size of chimney sending be tuned on a running system. Default value still needs more test to determine. Reviewed by: adrian, delphij Approved by: adrian (mentor) Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4972 Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c head/sys/dev/hyperv/netvsc/hv_rndis.h head/sys/dev/hyperv/netvsc/hv_rndis_filter.c head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Mon Jan 25 04:22:01 2016 (r294699) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Mon Jan 25 05:01:32 2016 (r294700) @@ -1028,4 +1028,6 @@ hv_nv_on_channel_callback(void *context) if (bufferlen > NETVSC_PACKET_SIZE) free(buffer, M_NETVSC); + + hv_rf_channel_rollup(net_dev); } Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Mon Jan 25 04:22:01 2016 (r294699) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Mon Jan 25 05:01:32 2016 (r294700) @@ -38,12 +38,16 @@ #ifndef __HV_NET_VSC_H__ #define __HV_NET_VSC_H__ -#include #include #include #include +#include #include +#include +#include +#include + #include #include @@ -984,6 +988,9 @@ typedef struct { hv_bool_uint8_t link_state; } netvsc_device_info; +struct hn_txdesc; +SLIST_HEAD(hn_txdesc_list, hn_txdesc); + /* * Device-specific softc structure */ @@ -1001,6 +1008,18 @@ typedef struct hn_softc { struct hv_device *hn_dev_obj; netvsc_dev *net_dev; + int hn_txdesc_cnt; + struct hn_txdesc *hn_txdesc; + bus_dma_tag_t hn_tx_data_dtag; + bus_dma_tag_t hn_tx_rndis_dtag; + int hn_tx_chimney_size; + int hn_tx_chimney_max; + + struct mtx hn_txlist_spin; + struct hn_txdesc_list hn_txlist; + int hn_txdesc_avail; + int hn_txeof; + struct lro_ctrl hn_lro; int hn_lro_hiwat; @@ -1012,6 +1031,11 @@ typedef struct hn_softc { u_long hn_csum_trusted; u_long hn_lro_tried; u_long hn_small_pkts; + u_long hn_no_txdescs; + u_long hn_send_failed; + u_long hn_txdma_failed; + u_long hn_tx_collapsed; + u_long hn_tx_chimney; } hn_softc_t; Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Jan 25 04:22:01 2016 (r294699) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Jan 25 05:01:32 2016 (r294700) @@ -129,6 +129,41 @@ __FBSDID("$FreeBSD$"); #define HV_NV_SC_PTR_OFFSET_IN_BUF 0 #define HV_NV_PACKET_OFFSET_IN_BUF 16 +/* YYY should get it from the underlying channel */ +#define HN_TX_DESC_CNT 512 + +#define HN_RNDIS_MSG_LEN \ + (sizeof(rndis_msg) + \ + RNDIS_VLAN_PPI_SIZE + \ + RNDIS_TSO_PPI_SIZE + \ + RNDIS_CSUM_PPI_SIZE) +#define HN_RNDIS_MSG_BOUNDARY PAGE_SIZE +#define HN_RNDIS_MSG_ALIGN CACHE_LINE_SIZE + +#define HN_TX_DATA_BOUNDARY PAGE_SIZE +#define HN_TX_DATA_MAXSIZE IP_MAXPACKET +#define HN_TX_DATA_SEGSIZE PAGE_SIZE +#define HN_TX_DATA_SEGCNT_MAX \ + (NETVSC_PACKET_MAXPAGE - HV_RF_NUM_TX_RESERVED_PAGE_BUFS) + +struct hn_txdesc { + SLIST_ENTRY(hn_txdesc) link; + struct mbuf *m; + struct hn_softc *sc; + int refs; + uint32_t flags; /* HN_TXD_FLAG_ */ + netvsc_packet netvsc_pkt; /* XXX to be removed */ + + bus_dmamap_t data_dmap; + + bus_addr_t rndis_msg_paddr; + rndis_msg *rndis_msg; + bus_dmamap_t rndis_msg_dmap; +}; + +#define HN_TXD_FLAG_ONLIST 0x1 +#define HN_TXD_FLAG_DMAMAP 0x2 + /* * A unified flag for all outbound check sum flags is useful, * and it helps avoiding unnecessary check sum calculation in @@ -174,6 +209,16 @@ int hv_promisc_mode = 0; /* normal mo static int hn_trust_hosttcp = 0; TUNABLE_INT("dev.hn.trust_hosttcp", &hn_trust_hosttcp); +#if __FreeBSD_version >= 1100045 +/* Limit TSO burst size */ +static int hn_tso_maxlen = 0; +TUNABLE_INT("dev.hn.tso_maxlen", &hn_tso_maxlen); +#endif + +/* Limit chimney send size */ +static int hn_tx_chimney_size = 0; +TUNABLE_INT("dev.hn.tx_chimney_size", &hn_tx_chimney_size); + /* * Forward declarations */ @@ -181,14 +226,17 @@ static void hn_stop(hn_softc_t *sc); static void hn_ifinit_locked(hn_softc_t *sc); static void hn_ifinit(void *xsc); static int hn_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data); -static int hn_start_locked(struct ifnet *ifp); +static void hn_start_locked(struct ifnet *ifp); static void hn_start(struct ifnet *ifp); static int hn_ifmedia_upd(struct ifnet *ifp); static void hn_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); #ifdef HN_LRO_HIWAT static int hn_lro_hiwat_sysctl(SYSCTL_HANDLER_ARGS); #endif +static int hn_tx_chimney_size_sysctl(SYSCTL_HANDLER_ARGS); static int hn_check_iplen(const struct mbuf *, int); +static int hn_create_tx_ring(struct hn_softc *sc); +static void hn_destroy_tx_ring(struct hn_softc *sc); static __inline void hn_set_lro_hiwat(struct hn_softc *sc, int hiwat) @@ -318,10 +366,13 @@ netvsc_attach(device_t dev) netvsc_device_info device_info; hn_softc_t *sc; int unit = device_get_unit(dev); - struct ifnet *ifp; + struct ifnet *ifp = NULL; struct sysctl_oid_list *child; struct sysctl_ctx_list *ctx; - int ret; + int error; +#if __FreeBSD_version >= 1100045 + int tso_maxlen; +#endif sc = device_get_softc(dev); if (sc == NULL) { @@ -334,6 +385,10 @@ netvsc_attach(device_t dev) sc->hn_lro_hiwat = HN_LRO_HIWAT_DEF; sc->hn_trust_hosttcp = hn_trust_hosttcp; + error = hn_create_tx_ring(sc); + if (error) + goto failed; + NV_LOCK_INIT(sc, "NetVSCLock"); sc->hn_dev_obj = device_ctx; @@ -381,12 +436,10 @@ netvsc_attach(device_t dev) else ifp->if_hwassist = CSUM_TCP | CSUM_TSO; - ret = hv_rf_on_device_add(device_ctx, &device_info); - if (ret != 0) { - if_free(ifp); + error = hv_rf_on_device_add(device_ctx, &device_info); + if (error) + goto failed; - return (ret); - } if (device_info.link_state == 0) { sc->hn_carrier = 1; } @@ -400,8 +453,30 @@ netvsc_attach(device_t dev) #endif #endif /* INET || INET6 */ +#if __FreeBSD_version >= 1100045 + tso_maxlen = hn_tso_maxlen; + if (tso_maxlen <= 0 || tso_maxlen > IP_MAXPACKET) + tso_maxlen = IP_MAXPACKET; + + ifp->if_hw_tsomaxsegcount = HN_TX_DATA_SEGCNT_MAX; + ifp->if_hw_tsomaxsegsize = PAGE_SIZE; + ifp->if_hw_tsomax = tso_maxlen - + (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN); +#endif + ether_ifattach(ifp, device_info.mac_addr); +#if __FreeBSD_version >= 1100045 + if_printf(ifp, "TSO: %u/%u/%u\n", ifp->if_hw_tsomax, + ifp->if_hw_tsomaxsegcount, ifp->if_hw_tsomaxsegsize); +#endif + + sc->hn_tx_chimney_max = sc->net_dev->send_section_size; + sc->hn_tx_chimney_size = sc->hn_tx_chimney_max; + if (hn_tx_chimney_size > 0 && + hn_tx_chimney_size < sc->hn_tx_chimney_max) + sc->hn_tx_chimney_size = hn_tx_chimney_size; + ctx = device_get_sysctl_ctx(dev); child = SYSCTL_CHILDREN(device_get_sysctl_tree(dev)); @@ -429,6 +504,26 @@ netvsc_attach(device_t dev) "# of TCP segements that we trust host's csum verification"); SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "small_pkts", CTLFLAG_RW, &sc->hn_small_pkts, "# of small packets received"); + SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "no_txdescs", + CTLFLAG_RW, &sc->hn_no_txdescs, "# of times short of TX descs"); + SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "send_failed", + CTLFLAG_RW, &sc->hn_send_failed, "# of hyper-v sending failure"); + SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "txdma_failed", + CTLFLAG_RW, &sc->hn_txdma_failed, "# of TX DMA failure"); + SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "tx_collapsed", + CTLFLAG_RW, &sc->hn_tx_collapsed, "# of TX mbuf collapsed"); + SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "tx_chimney", + CTLFLAG_RW, &sc->hn_tx_chimney, "# of chimney send"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "txdesc_cnt", + CTLFLAG_RD, &sc->hn_txdesc_cnt, 0, "# of total TX descs"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "txdesc_avail", + CTLFLAG_RD, &sc->hn_txdesc_avail, 0, "# of available TX descs"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "tx_chimney_max", + CTLFLAG_RD, &sc->hn_tx_chimney_max, 0, + "Chimney send packet size upper boundary"); + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "tx_chimney_size", + CTLTYPE_INT | CTLFLAG_RW, sc, 0, hn_tx_chimney_size_sysctl, + "I", "Chimney send packet size limit"); if (unit == 0) { struct sysctl_ctx_list *dc_ctx; @@ -446,9 +541,21 @@ netvsc_attach(device_t dev) CTLFLAG_RD, &hn_trust_hosttcp, 0, "Trust tcp segement verification on host side, " "when csum info is missing (global setting)"); + SYSCTL_ADD_INT(dc_ctx, dc_child, OID_AUTO, "tx_chimney_size", + CTLFLAG_RD, &hn_tx_chimney_size, 0, + "Chimney send packet size limit"); +#if __FreeBSD_version >= 1100045 + SYSCTL_ADD_INT(dc_ctx, dc_child, OID_AUTO, "tso_maxlen", + CTLFLAG_RD, &hn_tso_maxlen, 0, "TSO burst limit"); +#endif } return (0); +failed: + hn_destroy_tx_ring(sc); + if (ifp != NULL) + if_free(ifp); + return (error); } /* @@ -480,6 +587,7 @@ netvsc_detach(device_t dev) #if defined(INET) || defined(INET6) tcp_lro_free(&sc->hn_lro); #endif + hn_destroy_tx_ring(sc); return (0); } @@ -493,6 +601,112 @@ netvsc_shutdown(device_t dev) return (0); } +static __inline int +hn_txdesc_dmamap_load(struct hn_softc *sc, struct hn_txdesc *txd, + struct mbuf **m_head, bus_dma_segment_t *segs, int *nsegs) +{ + struct mbuf *m = *m_head; + int error; + + error = bus_dmamap_load_mbuf_sg(sc->hn_tx_data_dtag, txd->data_dmap, + m, segs, nsegs, BUS_DMA_NOWAIT); + if (error == EFBIG) { + struct mbuf *m_new; + + m_new = m_collapse(m, M_NOWAIT, HN_TX_DATA_SEGCNT_MAX); + if (m_new == NULL) + return ENOBUFS; + else + *m_head = m = m_new; + sc->hn_tx_collapsed++; + + error = bus_dmamap_load_mbuf_sg(sc->hn_tx_data_dtag, + txd->data_dmap, m, segs, nsegs, BUS_DMA_NOWAIT); + } + if (!error) { + bus_dmamap_sync(sc->hn_tx_data_dtag, txd->data_dmap, + BUS_DMASYNC_PREWRITE); + txd->flags |= HN_TXD_FLAG_DMAMAP; + } + return error; +} + +static __inline void +hn_txdesc_dmamap_unload(struct hn_softc *sc, struct hn_txdesc *txd) +{ + + if (txd->flags & HN_TXD_FLAG_DMAMAP) { + bus_dmamap_sync(sc->hn_tx_data_dtag, + txd->data_dmap, BUS_DMASYNC_POSTWRITE); + bus_dmamap_unload(sc->hn_tx_data_dtag, + txd->data_dmap); + txd->flags &= ~HN_TXD_FLAG_DMAMAP; + } +} + +static __inline int +hn_txdesc_put(struct hn_softc *sc, struct hn_txdesc *txd) +{ + + KASSERT((txd->flags & HN_TXD_FLAG_ONLIST) == 0, + ("put an onlist txd %#x", txd->flags)); + + KASSERT(txd->refs > 0, ("invalid txd refs %d", txd->refs)); + if (atomic_fetchadd_int(&txd->refs, -1) != 1) + return 0; + + hn_txdesc_dmamap_unload(sc, txd); + if (txd->m != NULL) { + m_freem(txd->m); + txd->m = NULL; + } + + txd->flags |= HN_TXD_FLAG_ONLIST; + + mtx_lock_spin(&sc->hn_txlist_spin); + KASSERT(sc->hn_txdesc_avail >= 0 && + sc->hn_txdesc_avail < sc->hn_txdesc_cnt, + ("txdesc_put: invalid txd avail %d", sc->hn_txdesc_avail)); + sc->hn_txdesc_avail++; + SLIST_INSERT_HEAD(&sc->hn_txlist, txd, link); + mtx_unlock_spin(&sc->hn_txlist_spin); + + return 1; +} + +static __inline struct hn_txdesc * +hn_txdesc_get(struct hn_softc *sc) +{ + struct hn_txdesc *txd; + + mtx_lock_spin(&sc->hn_txlist_spin); + txd = SLIST_FIRST(&sc->hn_txlist); + if (txd != NULL) { + KASSERT(sc->hn_txdesc_avail > 0, + ("txdesc_get: invalid txd avail %d", sc->hn_txdesc_avail)); + sc->hn_txdesc_avail--; + SLIST_REMOVE_HEAD(&sc->hn_txlist, link); + } + mtx_unlock_spin(&sc->hn_txlist_spin); + + if (txd != NULL) { + KASSERT(txd->m == NULL && txd->refs == 0 && + (txd->flags & HN_TXD_FLAG_ONLIST), ("invalid txd")); + txd->flags &= ~HN_TXD_FLAG_ONLIST; + txd->refs = 1; + } + return txd; +} + +static __inline void +hn_txdesc_hold(struct hn_txdesc *txd) +{ + + /* 0->1 transition will never work */ + KASSERT(txd->refs > 0, ("invalid refs %d", txd->refs)); + atomic_add_int(&txd->refs, 1); +} + /* * Send completion processing * @@ -503,34 +717,46 @@ netvsc_shutdown(device_t dev) void netvsc_xmit_completion(void *context) { - netvsc_packet *packet = (netvsc_packet *)context; - struct mbuf *mb; - uint8_t *buf; + netvsc_packet *packet = context; + struct hn_txdesc *txd; + struct hn_softc *sc; + + txd = (struct hn_txdesc *)(uintptr_t) + packet->compl.send.send_completion_tid; + + sc = txd->sc; + sc->hn_txeof = 1; + hn_txdesc_put(sc, txd); +} - mb = (struct mbuf *)(uintptr_t)packet->compl.send.send_completion_tid; - buf = ((uint8_t *)packet) - HV_NV_PACKET_OFFSET_IN_BUF; +void +netvsc_channel_rollup(struct hv_device *device_ctx) +{ + struct hn_softc *sc = device_get_softc(device_ctx->device); + struct ifnet *ifp; - free(buf, M_NETVSC); + if (!sc->hn_txeof) + return; - if (mb != NULL) { - m_freem(mb); - } + sc->hn_txeof = 0; + ifp = sc->hn_ifp; + NV_LOCK(sc); + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + hn_start_locked(ifp); + NV_UNLOCK(sc); } /* * Start a transmit of one or more packets */ -static int +static void hn_start_locked(struct ifnet *ifp) { hn_softc_t *sc = ifp->if_softc; struct hv_device *device_ctx = vmbus_get_devctx(sc->hn_dev); netvsc_dev *net_dev = sc->net_dev; - device_t dev = device_ctx->device; - uint8_t *buf; netvsc_packet *packet; struct mbuf *m_head, *m; - struct mbuf *mc_head = NULL; struct ether_vlan_header *eh; rndis_msg *rndis_mesg; rndis_packet *rndis_pkt; @@ -539,84 +765,40 @@ hn_start_locked(struct ifnet *ifp) rndis_tcp_ip_csum_info *csum_info; rndis_tcp_tso_info *tso_info; int ether_len; - int i; - int num_frags; - int len; - int retries = 0; - int ret = 0; uint32_t rndis_msg_size = 0; uint32_t trans_proto_type; uint32_t send_buf_section_idx = NVSP_1_CHIMNEY_SEND_INVALID_SECTION_INDEX; - while (!IFQ_DRV_IS_EMPTY(&sc->hn_ifp->if_snd)) { - IFQ_DRV_DEQUEUE(&sc->hn_ifp->if_snd, m_head); - if (m_head == NULL) { - break; - } - - len = 0; - num_frags = 0; - - /* Walk the mbuf list computing total length and num frags */ - for (m = m_head; m != NULL; m = m->m_next) { - if (m->m_len != 0) { - num_frags++; - len += m->m_len; - } - } + if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return; - /* - * Reserve the number of pages requested. Currently, - * one page is reserved for the message in the RNDIS - * filter packet - */ - num_frags += HV_RF_NUM_TX_RESERVED_PAGE_BUFS; + while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { + bus_dma_segment_t segs[HN_TX_DATA_SEGCNT_MAX]; + int error, nsegs, i, send_failed = 0; + struct hn_txdesc *txd; - /* If exceeds # page_buffers in netvsc_packet */ - if (num_frags > NETVSC_PACKET_MAXPAGE) { - device_printf(dev, "exceed max page buffers,%d,%d\n", - num_frags, NETVSC_PACKET_MAXPAGE); - m_freem(m_head); - if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - return (EINVAL); - } + IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head); + if (m_head == NULL) + break; - /* - * Allocate a buffer with space for a netvsc packet plus a - * number of reserved areas. First comes a (currently 16 - * bytes, currently unused) reserved data area. Second is - * the netvsc_packet. Third is an area reserved for an - * rndis_filter_packet struct. Fourth (optional) is a - * rndis_per_packet_info struct. - * Changed malloc to M_NOWAIT to avoid sleep under spin lock. - * No longer reserving extra space for page buffers, as they - * are already part of the netvsc_packet. - */ - buf = malloc(HV_NV_PACKET_OFFSET_IN_BUF + - sizeof(netvsc_packet) + - sizeof(rndis_msg) + - RNDIS_VLAN_PPI_SIZE + - RNDIS_TSO_PPI_SIZE + - RNDIS_CSUM_PPI_SIZE, - M_NETVSC, M_ZERO | M_NOWAIT); - if (buf == NULL) { - device_printf(dev, "hn:malloc packet failed\n"); - m_freem(m_head); - if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - return (ENOMEM); + txd = hn_txdesc_get(sc); + if (txd == NULL) { + sc->hn_no_txdescs++; + IF_PREPEND(&ifp->if_snd, m_head); + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + break; } - packet = (netvsc_packet *)(buf + HV_NV_PACKET_OFFSET_IN_BUF); - *(vm_offset_t *)buf = HV_NV_SC_PTR_OFFSET_IN_BUF; + packet = &txd->netvsc_pkt; + /* XXX not necessary */ + memset(packet, 0, sizeof(*packet)); packet->is_data_pkt = TRUE; - /* Set up the rndis header */ - packet->page_buf_count = num_frags; - /* Initialize it from the mbuf */ - packet->tot_data_buf_len = len; + packet->tot_data_buf_len = m_head->m_pkthdr.len; /* * extension points to the area reserved for the @@ -624,8 +806,9 @@ hn_start_locked(struct ifnet *ifp) * the netvsc_packet (and rppi struct, if present; * length is updated later). */ - packet->rndis_mesg = packet + 1; - rndis_mesg = (rndis_msg *)packet->rndis_mesg; + rndis_mesg = txd->rndis_msg; + /* XXX not necessary */ + memset(rndis_mesg, 0, HN_RNDIS_MSG_LEN); rndis_mesg->ndis_msg_type = REMOTE_NDIS_PACKET_MSG; rndis_pkt = &rndis_mesg->msg.packet; @@ -644,8 +827,6 @@ hn_start_locked(struct ifnet *ifp) * set up some additional fields so the Hyper-V infrastructure will stuff the VLAN tag * into the frame. */ - packet->vlan_tci = m_head->m_pkthdr.ether_vtag; - rndis_msg_size += RNDIS_VLAN_PPI_SIZE; rppi = hv_set_rppi_data(rndis_mesg, RNDIS_VLAN_PPI_SIZE, @@ -656,7 +837,7 @@ hn_start_locked(struct ifnet *ifp) rppi->per_packet_info_offset); /* FreeBSD does not support CFI or priority */ rppi_vlan_info->u1.s1.vlan_id = - packet->vlan_tci & 0xfff; + m_head->m_pkthdr.ether_vtag & 0xfff; } /* Only check the flags for outbound and ignore the ones for inbound */ @@ -758,7 +939,7 @@ pre_send: packet->tot_data_buf_len = rndis_mesg->msg_len; /* send packet with send buffer */ - if (packet->tot_data_buf_len < net_dev->send_section_size) { + if (packet->tot_data_buf_len < sc->hn_tx_chimney_size) { send_buf_section_idx = hv_nv_get_next_send_section(net_dev); if (send_buf_section_idx != @@ -783,33 +964,49 @@ pre_send: packet->send_buf_section_size = packet->tot_data_buf_len; packet->page_buf_count = 0; + sc->hn_tx_chimney++; goto do_send; } } + error = hn_txdesc_dmamap_load(sc, txd, &m_head, segs, &nsegs); + if (error) { + int freed; + + /* + * This mbuf is not linked w/ the txd yet, so free + * it now. + */ + m_freem(m_head); + freed = hn_txdesc_put(sc, txd); + KASSERT(freed != 0, + ("fail to free txd upon txdma error")); + + sc->hn_txdma_failed++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); + continue; + } + + packet->page_buf_count = nsegs + + HV_RF_NUM_TX_RESERVED_PAGE_BUFS; + /* send packet with page buffer */ - packet->page_buffers[0].pfn = - atop(hv_get_phys_addr(rndis_mesg)); + packet->page_buffers[0].pfn = atop(txd->rndis_msg_paddr); packet->page_buffers[0].offset = - (unsigned long)rndis_mesg & PAGE_MASK; + txd->rndis_msg_paddr & PAGE_MASK; packet->page_buffers[0].length = rndis_msg_size; /* * Fill the page buffers with mbuf info starting at index * HV_RF_NUM_TX_RESERVED_PAGE_BUFS. */ - i = HV_RF_NUM_TX_RESERVED_PAGE_BUFS; - for (m = m_head; m != NULL; m = m->m_next) { - if (m->m_len) { - vm_offset_t paddr = - vtophys(mtod(m, vm_offset_t)); - packet->page_buffers[i].pfn = - paddr >> PAGE_SHIFT; - packet->page_buffers[i].offset = - paddr & (PAGE_SIZE - 1); - packet->page_buffers[i].length = m->m_len; - i++; - } + for (i = 0; i < nsegs; ++i) { + hv_vmbus_page_buffer *pb = &packet->page_buffers[ + i + HV_RF_NUM_TX_RESERVED_PAGE_BUFS]; + + pb->pfn = atop(segs[i].ds_addr); + pb->offset = segs[i].ds_addr & PAGE_MASK; + pb->length = segs[i].ds_len; } packet->send_buf_section_idx = @@ -817,63 +1014,65 @@ pre_send: packet->send_buf_section_size = 0; do_send: + txd->m = m_head; - /* - * If bpf, copy the mbuf chain. This is less expensive than - * it appears; the mbuf clusters are not copied, only their - * reference counts are incremented. - * Needed to avoid a race condition where the completion - * callback is invoked, freeing the mbuf chain, before the - * bpf_mtap code has a chance to run. - */ - if (ifp->if_bpf) { - mc_head = m_copypacket(m_head, M_NOWAIT); - } -retry_send: /* Set the completion routine */ packet->compl.send.on_send_completion = netvsc_xmit_completion; packet->compl.send.send_completion_context = packet; - packet->compl.send.send_completion_tid = (uint64_t)(uintptr_t)m_head; + packet->compl.send.send_completion_tid = + (uint64_t)(uintptr_t)txd; - /* Removed critical_enter(), does not appear necessary */ - ret = hv_nv_on_send(device_ctx, packet); - if (ret == 0) { +again: + /* + * Make sure that txd is not freed before ETHER_BPF_MTAP. + */ + hn_txdesc_hold(txd); + error = hv_nv_on_send(device_ctx, packet); + if (!error) { + ETHER_BPF_MTAP(ifp, m_head); if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); - /* if bpf && mc_head, call bpf_mtap code */ - if (mc_head) { - ETHER_BPF_MTAP(ifp, mc_head); - } - } else { - retries++; - if (retries < 4) { - goto retry_send; - } + } + hn_txdesc_put(sc, txd); - IF_PREPEND(&ifp->if_snd, m_head); - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + if (__predict_false(error)) { + int freed; /* - * Null the mbuf pointer so the completion function - * does not free the mbuf chain. We just pushed the - * mbuf chain back on the if_snd queue. + * This should "really rarely" happen. + * + * XXX Too many RX to be acked or too many sideband + * commands to run? Ask netvsc_channel_rollup() + * to kick start later. */ - packet->compl.send.send_completion_tid = 0; + sc->hn_txeof = 1; + if (!send_failed) { + sc->hn_send_failed++; + send_failed = 1; + /* + * Try sending again after set hn_txeof; + * in case that we missed the last + * netvsc_channel_rollup(). + */ + goto again; + } + if_printf(ifp, "send failed\n"); /* - * Release the resources since we will not get any - * send completion + * This mbuf will be prepended, don't free it + * in hn_txdesc_put(); only unload it from the + * DMA map in hn_txdesc_put(), if it was loaded. */ - netvsc_xmit_completion(packet); - if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - } + txd->m = NULL; + freed = hn_txdesc_put(sc, txd); + KASSERT(freed != 0, + ("fail to free txd upon send error")); - /* if bpf && mc_head, free the mbuf chain copy */ - if (mc_head) { - m_freem(mc_head); + sc->hn_send_failed++; + IF_PREPEND(&ifp->if_snd, m_head); + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + break; } } - - return (ret); } /* @@ -1220,6 +1419,9 @@ hn_ioctl(struct ifnet *ifp, u_long cmd, break; } + sc->hn_tx_chimney_max = sc->net_dev->send_section_size; + if (sc->hn_tx_chimney_size > sc->hn_tx_chimney_max) + sc->hn_tx_chimney_size = sc->hn_tx_chimney_max; hn_ifinit_locked(sc); NV_LOCK(sc); @@ -1477,6 +1679,25 @@ hn_lro_hiwat_sysctl(SYSCTL_HANDLER_ARGS) #endif /* HN_LRO_HIWAT */ static int +hn_tx_chimney_size_sysctl(SYSCTL_HANDLER_ARGS) +{ + struct hn_softc *sc = arg1; + int chimney_size, error; + + chimney_size = sc->hn_tx_chimney_size; + error = sysctl_handle_int(oidp, &chimney_size, 0, req); + if (error || req->newptr == NULL) + return error; + + if (chimney_size > sc->hn_tx_chimney_max || chimney_size <= 0) + return EINVAL; + + if (sc->hn_tx_chimney_size != chimney_size) + sc->hn_tx_chimney_size = chimney_size; + return 0; +} + +static int hn_check_iplen(const struct mbuf *m, int hoff) { const struct ip *ip; @@ -1551,6 +1772,150 @@ hn_check_iplen(const struct mbuf *m, int return ip->ip_p; } +static void +hn_dma_map_paddr(void *arg, bus_dma_segment_t *segs, int nseg, int error) +{ + bus_addr_t *paddr = arg; + + if (error) + return; + + KASSERT(nseg == 1, ("too many segments %d!", nseg)); + *paddr = segs->ds_addr; +} + +static int +hn_create_tx_ring(struct hn_softc *sc) +{ + bus_dma_tag_t parent_dtag; + int error, i; + + sc->hn_txdesc_cnt = HN_TX_DESC_CNT; + sc->hn_txdesc = malloc(sizeof(struct hn_txdesc) * sc->hn_txdesc_cnt, + M_NETVSC, M_WAITOK | M_ZERO); + SLIST_INIT(&sc->hn_txlist); + mtx_init(&sc->hn_txlist_spin, "hn txlist", NULL, MTX_SPIN); + + parent_dtag = bus_get_dma_tag(sc->hn_dev); + + /* DMA tag for RNDIS messages. */ + error = bus_dma_tag_create(parent_dtag, /* parent */ + HN_RNDIS_MSG_ALIGN, /* alignment */ + HN_RNDIS_MSG_BOUNDARY, /* boundary */ + BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR, /* highaddr */ + NULL, NULL, /* filter, filterarg */ + HN_RNDIS_MSG_LEN, /* maxsize */ + 1, /* nsegments */ + HN_RNDIS_MSG_LEN, /* maxsegsize */ + 0, /* flags */ + NULL, /* lockfunc */ + NULL, /* lockfuncarg */ + &sc->hn_tx_rndis_dtag); + if (error) { + device_printf(sc->hn_dev, "failed to create rndis dmatag\n"); + return error; + } + + /* DMA tag for data. */ + error = bus_dma_tag_create(parent_dtag, /* parent */ + 1, /* alignment */ + HN_TX_DATA_BOUNDARY, /* boundary */ + BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR, /* highaddr */ + NULL, NULL, /* filter, filterarg */ + HN_TX_DATA_MAXSIZE, /* maxsize */ + HN_TX_DATA_SEGCNT_MAX, /* nsegments */ + HN_TX_DATA_SEGSIZE, /* maxsegsize */ + 0, /* flags */ + NULL, /* lockfunc */ + NULL, /* lockfuncarg */ + &sc->hn_tx_data_dtag); + if (error) { + device_printf(sc->hn_dev, "failed to create data dmatag\n"); + return error; + } + + for (i = 0; i < sc->hn_txdesc_cnt; ++i) { + struct hn_txdesc *txd = &sc->hn_txdesc[i]; + + txd->sc = sc; + + /* + * Allocate and load RNDIS messages. + */ + error = bus_dmamem_alloc(sc->hn_tx_rndis_dtag, + (void **)&txd->rndis_msg, + BUS_DMA_WAITOK | BUS_DMA_COHERENT, + &txd->rndis_msg_dmap); + if (error) { + device_printf(sc->hn_dev, + "failed to allocate rndis_msg, %d\n", i); + return error; + } + + error = bus_dmamap_load(sc->hn_tx_rndis_dtag, + txd->rndis_msg_dmap, + txd->rndis_msg, HN_RNDIS_MSG_LEN, + hn_dma_map_paddr, &txd->rndis_msg_paddr, + BUS_DMA_NOWAIT); + if (error) { + device_printf(sc->hn_dev, + "failed to load rndis_msg, %d\n", i); + bus_dmamem_free(sc->hn_tx_rndis_dtag, + txd->rndis_msg, txd->rndis_msg_dmap); + return error; + } + + /* DMA map for TX data. */ + error = bus_dmamap_create(sc->hn_tx_data_dtag, 0, + &txd->data_dmap); + if (error) { + device_printf(sc->hn_dev, + "failed to allocate tx data dmamap\n"); + bus_dmamap_unload(sc->hn_tx_rndis_dtag, + txd->rndis_msg_dmap); + bus_dmamem_free(sc->hn_tx_rndis_dtag, + txd->rndis_msg, txd->rndis_msg_dmap); + return error; + } + + /* All set, put it to list */ + txd->flags |= HN_TXD_FLAG_ONLIST; + SLIST_INSERT_HEAD(&sc->hn_txlist, txd, link); + } + sc->hn_txdesc_avail = sc->hn_txdesc_cnt; + + return 0; +} + +static void +hn_destroy_tx_ring(struct hn_softc *sc) +{ + struct hn_txdesc *txd; + + while ((txd = SLIST_FIRST(&sc->hn_txlist)) != NULL) { + KASSERT(txd->m == NULL, ("still has mbuf installed")); + KASSERT((txd->flags & HN_TXD_FLAG_DMAMAP) == 0, + ("still dma mapped")); + SLIST_REMOVE_HEAD(&sc->hn_txlist, link); + + bus_dmamap_unload(sc->hn_tx_rndis_dtag, + txd->rndis_msg_dmap); + bus_dmamem_free(sc->hn_tx_rndis_dtag, + txd->rndis_msg, txd->rndis_msg_dmap); + + bus_dmamap_destroy(sc->hn_tx_data_dtag, txd->data_dmap); + } + + if (sc->hn_tx_data_dtag != NULL) + bus_dma_tag_destroy(sc->hn_tx_data_dtag); + if (sc->hn_tx_rndis_dtag != NULL) + bus_dma_tag_destroy(sc->hn_tx_rndis_dtag); + free(sc->hn_txdesc, M_NETVSC); + mtx_destroy(&sc->hn_txlist_spin); +} + static device_method_t netvsc_methods[] = { /* Device interface */ DEVMETHOD(device_probe, netvsc_probe), Modified: head/sys/dev/hyperv/netvsc/hv_rndis.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis.h Mon Jan 25 04:22:01 2016 (r294699) +++ head/sys/dev/hyperv/netvsc/hv_rndis.h Mon Jan 25 05:01:32 2016 (r294700) @@ -1050,6 +1050,7 @@ int netvsc_recv(struct hv_device *device netvsc_packet *packet, rndis_tcp_ip_csum_info *csum_info); void netvsc_recv_rollup(struct hv_device *device_ctx); +void netvsc_channel_rollup(struct hv_device *device_ctx); void* hv_set_rppi_data(rndis_msg *rndis_mesg, uint32_t rppi_size, Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Mon Jan 25 04:22:01 2016 (r294699) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Mon Jan 25 05:01:32 2016 (r294700) @@ -974,3 +974,21 @@ hv_rf_receive_rollup(netvsc_dev *net_dev rndis_dev = (rndis_device *)net_dev->extension; netvsc_recv_rollup(rndis_dev->net_dev->dev); } + +void +hv_rf_channel_rollup(netvsc_dev *net_dev) +{ + rndis_device *rndis_dev; + + rndis_dev = (rndis_device *)net_dev->extension; + + /* + * This could be called pretty early, so we need + * to make sure everything has been setup. + */ + if (rndis_dev == NULL || + rndis_dev->net_dev == NULL || + rndis_dev->net_dev->dev == NULL) + return; + netvsc_channel_rollup(rndis_dev->net_dev->dev); +} Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Mon Jan 25 04:22:01 2016 (r294699) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Mon Jan 25 05:01:32 2016 (r294700) @@ -99,6 +99,7 @@ typedef struct rndis_device_ { int hv_rf_on_receive(netvsc_dev *net_dev, struct hv_device *device, netvsc_packet *pkt); void hv_rf_receive_rollup(netvsc_dev *net_dev); +void hv_rf_channel_rollup(netvsc_dev *net_dev); int hv_rf_on_device_add(struct hv_device *device, void *additl_info); int hv_rf_on_device_remove(struct hv_device *device, boolean_t destroy_channel); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Jan 25 05:12:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E457DA31F50; Mon, 25 Jan 2016 05:12:01 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9D4A814AD; Mon, 25 Jan 2016 05:12:01 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P5C0Se051181; Mon, 25 Jan 2016 05:12:00 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P5C0iF051180; Mon, 25 Jan 2016 05:12:00 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201601250512.u0P5C0iF051180@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 25 Jan 2016 05:12:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294701 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 05:12:02 -0000 Author: sephe Date: Mon Jan 25 05:12:00 2016 New Revision: 294701 URL: https://svnweb.freebsd.org/changeset/base/294701 Log: hyperv/hn: Use m_copydata for chimney sending. While I'm here, move stack variables near their usage. Reviewed by: adrian, delphij, Jun Su Approved by: adrian (mentor) Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4977 Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Jan 25 05:01:32 2016 (r294700) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Jan 25 05:12:00 2016 (r294701) @@ -756,7 +756,6 @@ hn_start_locked(struct ifnet *ifp) struct hv_device *device_ctx = vmbus_get_devctx(sc->hn_dev); netvsc_dev *net_dev = sc->net_dev; netvsc_packet *packet; - struct mbuf *m_head, *m; struct ether_vlan_header *eh; rndis_msg *rndis_mesg; rndis_packet *rndis_pkt; @@ -767,8 +766,6 @@ hn_start_locked(struct ifnet *ifp) int ether_len; uint32_t rndis_msg_size = 0; uint32_t trans_proto_type; - uint32_t send_buf_section_idx = - NVSP_1_CHIMNEY_SEND_INVALID_SECTION_INDEX; if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING) @@ -778,6 +775,7 @@ hn_start_locked(struct ifnet *ifp) bus_dma_segment_t segs[HN_TX_DATA_SEGCNT_MAX]; int error, nsegs, i, send_failed = 0; struct hn_txdesc *txd; + struct mbuf *m_head; IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head); if (m_head == NULL) @@ -940,24 +938,21 @@ pre_send: /* send packet with send buffer */ if (packet->tot_data_buf_len < sc->hn_tx_chimney_size) { + uint32_t send_buf_section_idx; + send_buf_section_idx = hv_nv_get_next_send_section(net_dev); if (send_buf_section_idx != NVSP_1_CHIMNEY_SEND_INVALID_SECTION_INDEX) { - char *dest = ((char *)net_dev->send_buf + - send_buf_section_idx * - net_dev->send_section_size); + uint8_t *dest = ((uint8_t *)net_dev->send_buf + + (send_buf_section_idx * + net_dev->send_section_size)); memcpy(dest, rndis_mesg, rndis_msg_size); dest += rndis_msg_size; - for (m = m_head; m != NULL; m = m->m_next) { - if (m->m_len) { - memcpy(dest, - (void *)mtod(m, vm_offset_t), - m->m_len); - dest += m->m_len; - } - } + + m_copydata(m_head, 0, m_head->m_pkthdr.len, + dest); packet->send_buf_section_idx = send_buf_section_idx; From owner-svn-src-all@freebsd.org Mon Jan 25 05:18:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91C92A45133; Mon, 25 Jan 2016 05:18:58 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5BB721A3D; Mon, 25 Jan 2016 05:18:58 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P5IvdK052093; Mon, 25 Jan 2016 05:18:57 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P5IvkW052092; Mon, 25 Jan 2016 05:18:57 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201601250518.u0P5IvkW052092@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 25 Jan 2016 05:18:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294702 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 05:18:58 -0000 Author: sephe Date: Mon Jan 25 05:18:57 2016 New Revision: 294702 URL: https://svnweb.freebsd.org/changeset/base/294702 Log: hyperv/hn: Remove unnecessary zeroing out the netvsc_packet All used fields are setup one by one, so there is no need to zero out this large struct. While I'm here, move the stack variable near its usage. Reviewed by: adrian, delphij, Jun Su Approved by: adrian (mentor) Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4978 Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Jan 25 05:12:00 2016 (r294701) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Jan 25 05:18:57 2016 (r294702) @@ -755,7 +755,6 @@ hn_start_locked(struct ifnet *ifp) hn_softc_t *sc = ifp->if_softc; struct hv_device *device_ctx = vmbus_get_devctx(sc->hn_dev); netvsc_dev *net_dev = sc->net_dev; - netvsc_packet *packet; struct ether_vlan_header *eh; rndis_msg *rndis_mesg; rndis_packet *rndis_pkt; @@ -775,6 +774,7 @@ hn_start_locked(struct ifnet *ifp) bus_dma_segment_t segs[HN_TX_DATA_SEGCNT_MAX]; int error, nsegs, i, send_failed = 0; struct hn_txdesc *txd; + netvsc_packet *packet; struct mbuf *m_head; IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head); @@ -790,11 +790,7 @@ hn_start_locked(struct ifnet *ifp) } packet = &txd->netvsc_pkt; - /* XXX not necessary */ - memset(packet, 0, sizeof(*packet)); - packet->is_data_pkt = TRUE; - /* Initialize it from the mbuf */ packet->tot_data_buf_len = m_head->m_pkthdr.len; From owner-svn-src-all@freebsd.org Mon Jan 25 05:25:40 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE6AEA45478; Mon, 25 Jan 2016 05:25:40 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BFA691F2D; Mon, 25 Jan 2016 05:25:40 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P5PdZV054809; Mon, 25 Jan 2016 05:25:39 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P5PdeY054808; Mon, 25 Jan 2016 05:25:39 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201601250525.u0P5PdeY054808@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 25 Jan 2016 05:25:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294703 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 05:25:41 -0000 Author: sephe Date: Mon Jan 25 05:25:39 2016 New Revision: 294703 URL: https://svnweb.freebsd.org/changeset/base/294703 Log: hyperv/hn: Trust host TCP segment checksum verification by default. According to all available information, VMSWITCH always does the TCP segment checksum verification before sending the segment to guest. Reviewed by: adrian, delphij, Hongjiang Zhang Approved by: adrian (mentor) Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4991 Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Jan 25 05:18:57 2016 (r294702) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Jan 25 05:25:39 2016 (r294703) @@ -206,7 +206,7 @@ struct hn_txdesc { int hv_promisc_mode = 0; /* normal mode by default */ /* Trust tcp segements verification on host side. */ -static int hn_trust_hosttcp = 0; +static int hn_trust_hosttcp = 1; TUNABLE_INT("dev.hn.trust_hosttcp", &hn_trust_hosttcp); #if __FreeBSD_version >= 1100045 From owner-svn-src-all@freebsd.org Mon Jan 25 05:28:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D144A45516; Mon, 25 Jan 2016 05:28:02 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 662481A1; Mon, 25 Jan 2016 05:28:01 +0000 (UTC) (envelope-from des@des.no) Received: from desk.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 3A6985BCC; Mon, 25 Jan 2016 05:28:00 +0000 (UTC) Received: by desk.des.no (Postfix, from userid 1001) id 4ECA348416; Mon, 25 Jan 2016 06:28:02 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: NGie Cooper Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: Re: svn commit: r294693 - in stable/10: . crypto/openssh secure/lib/libssh secure/usr.bin/ssh secure/usr.sbin/sshd share/mk tools/build/options References: <201601242228.u0OMSIn7032949@repo.freebsd.org> <187CD899-961D-4DF7-BFC4-439EF17802D4@gmail.com> Date: Mon, 25 Jan 2016 06:28:02 +0100 In-Reply-To: <187CD899-961D-4DF7-BFC4-439EF17802D4@gmail.com> (NGie Cooper's message of "Sun, 24 Jan 2016 16:37:58 -0800") Message-ID: <86vb6ib53x.fsf@desk.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 05:28:02 -0000 NGie Cooper writes: > Dag-Erling Sm=C3=B8rgrav writes: > > Log: > > MFH (r291198, r291260, r291261, r291375, r294325, r294335, r294563) > >=20 > > Remove the HPN and None cipher patches. > Relnotes: yes? Yes, sorry. There's a lot more coming, though. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@freebsd.org Mon Jan 25 05:28:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4CE28A4555A; Mon, 25 Jan 2016 05:28:21 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 19BE4306; Mon, 25 Jan 2016 05:28:21 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P5SKWp054955; Mon, 25 Jan 2016 05:28:20 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P5SKhp054954; Mon, 25 Jan 2016 05:28:20 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201601250528.u0P5SKhp054954@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Mon, 25 Jan 2016 05:28:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294704 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 05:28:21 -0000 Author: melifaro Date: Mon Jan 25 05:28:19 2016 New Revision: 294704 URL: https://svnweb.freebsd.org/changeset/base/294704 Log: Remove unused radix_mpath definitions. Modified: head/sys/net/radix_mpath.h Modified: head/sys/net/radix_mpath.h ============================================================================== --- head/sys/net/radix_mpath.h Mon Jan 25 05:25:39 2016 (r294703) +++ head/sys/net/radix_mpath.h Mon Jan 25 05:28:19 2016 (r294704) @@ -51,10 +51,7 @@ struct rtentry *rt_mpath_matchgate(struc int rt_mpath_conflict(struct radix_node_head *, struct rtentry *, struct sockaddr *); void rtalloc_mpath_fib(struct route *, u_int32_t, u_int); -#define rtalloc_mpath(_route, _hash) rtalloc_mpath_fib((_route), (_hash), 0) struct rtentry *rt_mpath_select(struct rtentry *, uint32_t); -struct radix_node *rn_mpath_lookup(void *, void *, - struct radix_node_head *); int rt_mpath_deldup(struct rtentry *, struct rtentry *); int rn4_mpath_inithead(void **, int); int rn6_mpath_inithead(void **, int); From owner-svn-src-all@freebsd.org Mon Jan 25 05:33:19 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83B6BA45703; Mon, 25 Jan 2016 05:33:19 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 416348DE; Mon, 25 Jan 2016 05:33:19 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P5XIGO057742; Mon, 25 Jan 2016 05:33:18 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P5XISm057741; Mon, 25 Jan 2016 05:33:18 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201601250533.u0P5XISm057741@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 25 Jan 2016 05:33:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294705 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 05:33:19 -0000 Author: sephe Date: Mon Jan 25 05:33:18 2016 New Revision: 294705 URL: https://svnweb.freebsd.org/changeset/base/294705 Log: hyperv/vmbus: Avoid extra copy of page information. The page information array could contain up to 32 elements (i.e. 512B). And on network side w/ TSO, 11+ (176B+) elements, i.e. ~44K TSO packet, in the page information array is quite common. This saves us some cpu cycles. Reviewed by: adrian, delphij Approved by: adrian (mentor) Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4992 Modified: head/sys/dev/hyperv/vmbus/hv_channel.c Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Mon Jan 25 05:28:19 2016 (r294704) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Mon Jan 25 05:33:18 2016 (r294705) @@ -665,11 +665,11 @@ hv_vmbus_channel_send_packet_pagebuffer( { int ret = 0; - int i = 0; boolean_t need_sig; uint32_t packet_len; + uint32_t page_buflen; uint32_t packetLen_aligned; - hv_vmbus_sg_buffer_list buffer_list[3]; + hv_vmbus_sg_buffer_list buffer_list[4]; hv_vmbus_channel_packet_page_buffer desc; uint32_t descSize; uint64_t alignedData = 0; @@ -681,36 +681,33 @@ hv_vmbus_channel_send_packet_pagebuffer( * Adjust the size down since hv_vmbus_channel_packet_page_buffer * is the largest size we support */ - descSize = sizeof(hv_vmbus_channel_packet_page_buffer) - - ((HV_MAX_PAGE_BUFFER_COUNT - page_count) * - sizeof(hv_vmbus_page_buffer)); - packet_len = descSize + buffer_len; + descSize = __offsetof(hv_vmbus_channel_packet_page_buffer, range); + page_buflen = sizeof(hv_vmbus_page_buffer) * page_count; + packet_len = descSize + page_buflen + buffer_len; packetLen_aligned = HV_ALIGN_UP(packet_len, sizeof(uint64_t)); /* Setup the descriptor */ desc.type = HV_VMBUS_PACKET_TYPE_DATA_USING_GPA_DIRECT; desc.flags = HV_VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED; - desc.data_offset8 = descSize >> 3; /* in 8-bytes granularity */ + /* in 8-bytes granularity */ + desc.data_offset8 = (descSize + page_buflen) >> 3; desc.length8 = (uint16_t) (packetLen_aligned >> 3); desc.transaction_id = request_id; desc.range_count = page_count; - for (i = 0; i < page_count; i++) { - desc.range[i].length = page_buffers[i].length; - desc.range[i].offset = page_buffers[i].offset; - desc.range[i].pfn = page_buffers[i].pfn; - } - buffer_list[0].data = &desc; buffer_list[0].length = descSize; - buffer_list[1].data = buffer; - buffer_list[1].length = buffer_len; + buffer_list[1].data = page_buffers; + buffer_list[1].length = page_buflen; - buffer_list[2].data = &alignedData; - buffer_list[2].length = packetLen_aligned - packet_len; + buffer_list[2].data = buffer; + buffer_list[2].length = buffer_len; - ret = hv_ring_buffer_write(&channel->outbound, buffer_list, 3, + buffer_list[3].data = &alignedData; + buffer_list[3].length = packetLen_aligned - packet_len; + + ret = hv_ring_buffer_write(&channel->outbound, buffer_list, 4, &need_sig); /* TODO: We should determine if this is optional */ From owner-svn-src-all@freebsd.org Mon Jan 25 06:33:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE68C79A8; Mon, 25 Jan 2016 06:33:17 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8EB352DE; Mon, 25 Jan 2016 06:33:17 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P6XG3w075370; Mon, 25 Jan 2016 06:33:16 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P6XGfr075362; Mon, 25 Jan 2016 06:33:16 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201601250633.u0P6XGfr075362@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Mon, 25 Jan 2016 06:33:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294706 - in head/sys: kern net netinet netinet6 netpfil/ipfw netpfil/pf nfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 06:33:18 -0000 Author: melifaro Date: Mon Jan 25 06:33:15 2016 New Revision: 294706 URL: https://svnweb.freebsd.org/changeset/base/294706 Log: MFP r287070,r287073: split radix implementation and route table structure. There are number of radix consumers in kernel land (pf,ipfw,nfs,route) with different requirements. In fact, first 3 don't have _any_ requirements and first 2 does not use radix locking. On the other hand, routing structure do have these requirements (rnh_gen, multipath, custom to-be-added control plane functions, different locking). Additionally, radix should not known anything about its consumers internals. So, radix code now uses tiny 'struct radix_head' structure along with internal 'struct radix_mask_head' instead of 'struct radix_node_head'. Existing consumers still uses the same 'struct radix_node_head' with slight modifications: they need to pass pointer to (embedded) 'struct radix_head' to all radix callbacks. Routing code now uses new 'struct rib_head' with different locking macro: RADIX_NODE_HEAD prefix was renamed to RIB_ (which stands for routing information base). New net/route_var.h header was added to hold routing subsystem internal data. 'struct rib_head' was placed there. 'struct rtentry' will also be moved there soon. Added: head/sys/net/route_var.h (contents, props changed) Modified: head/sys/kern/vfs_export.c head/sys/net/radix.c head/sys/net/radix.h head/sys/net/radix_mpath.c head/sys/net/radix_mpath.h head/sys/net/route.c head/sys/net/route.h head/sys/net/rtsock.c head/sys/netinet/in_fib.c head/sys/netinet/in_rmx.c head/sys/netinet/in_var.h head/sys/netinet6/in6_fib.c head/sys/netinet6/in6_rmx.c head/sys/netinet6/nd6_rtr.c head/sys/netpfil/ipfw/ip_fw_table_algo.c head/sys/netpfil/pf/pf_table.c head/sys/nfs/bootp_subr.c Modified: head/sys/kern/vfs_export.c ============================================================================== --- head/sys/kern/vfs_export.c Mon Jan 25 05:33:18 2016 (r294705) +++ head/sys/kern/vfs_export.c Mon Jan 25 06:33:15 2016 (r294706) @@ -199,7 +199,7 @@ vfs_hang_addrlist(struct mount *mp, stru goto out; } RADIX_NODE_HEAD_LOCK(rnh); - rn = (*rnh->rnh_addaddr)(saddr, smask, rnh, np->netc_rnodes); + rn = (*rnh->rnh_addaddr)(saddr, smask, &rnh->rh, np->netc_rnodes); RADIX_NODE_HEAD_UNLOCK(rnh); if (rn == NULL || np != (struct netcred *)rn) { /* already exists */ error = EPERM; @@ -231,7 +231,7 @@ vfs_free_netcred(struct radix_node *rn, struct radix_node_head *rnh = (struct radix_node_head *) w; struct ucred *cred; - (*rnh->rnh_deladdr) (rn->rn_key, rn->rn_mask, rnh); + (*rnh->rnh_deladdr) (rn->rn_key, rn->rn_mask, &rnh->rh); cred = ((struct netcred *)rn)->netc_anon; if (cred != NULL) crfree(cred); @@ -256,7 +256,7 @@ vfs_free_addrlist_af(struct radix_node_h rnh = *prnh; RADIX_NODE_HEAD_LOCK(rnh); - (*rnh->rnh_walktree) (rnh, vfs_free_netcred, rnh); + (*rnh->rnh_walktree)(&rnh->rh, vfs_free_netcred, &rnh->rh); RADIX_NODE_HEAD_UNLOCK(rnh); RADIX_NODE_HEAD_DESTROY(rnh); free(rnh, M_RTABLE); @@ -470,7 +470,7 @@ vfs_export_lookup(struct mount *mp, stru if (rnh != NULL) { RADIX_NODE_HEAD_RLOCK(rnh); np = (struct netcred *) - (*rnh->rnh_matchaddr)(saddr, rnh); + (*rnh->rnh_matchaddr)(saddr, &rnh->rh); RADIX_NODE_HEAD_RUNLOCK(rnh); if (np && np->netc_rnodes->rn_flags & RNF_ROOT) np = NULL; Modified: head/sys/net/radix.c ============================================================================== --- head/sys/net/radix.c Mon Jan 25 05:33:18 2016 (r294705) +++ head/sys/net/radix.c Mon Jan 25 06:33:15 2016 (r294706) @@ -56,18 +56,15 @@ #include #endif /* !_KERNEL */ -static int rn_walktree_from(struct radix_node_head *h, void *a, void *m, - walktree_f_t *f, void *w); -static int rn_walktree(struct radix_node_head *, walktree_f_t *, void *); static struct radix_node - *rn_insert(void *, struct radix_node_head *, int *, + *rn_insert(void *, struct radix_head *, int *, struct radix_node [2]), *rn_newpair(void *, int, struct radix_node[2]), *rn_search(void *, struct radix_node *), *rn_search_m(void *, struct radix_node *, void *); +static struct radix_node *rn_addmask(void *, struct radix_mask_head *, int,int); -static void rn_detachhead_internal(void **head); -static int rn_inithead_internal(void **head, int off); +static void rn_detachhead_internal(struct radix_head *); #define RADIX_MAX_KEY_LEN 32 @@ -215,7 +212,7 @@ rn_refines(void *m_arg, void *n_arg) * from host routes. */ struct radix_node * -rn_lookup(void *v_arg, void *m_arg, struct radix_node_head *head) +rn_lookup(void *v_arg, void *m_arg, struct radix_head *head) { struct radix_node *x; caddr_t netmask; @@ -277,7 +274,7 @@ rn_satisfies_leaf(char *trial, struct ra * Search for longest-prefix match in given @head */ struct radix_node * -rn_match(void *v_arg, struct radix_node_head *head) +rn_match(void *v_arg, struct radix_head *head) { caddr_t v = v_arg; struct radix_node *t = head->rnh_treetop, *x; @@ -426,7 +423,7 @@ rn_newpair(void *v, int b, struct radix_ } static struct radix_node * -rn_insert(void *v_arg, struct radix_node_head *head, int *dupentry, +rn_insert(void *v_arg, struct radix_head *head, int *dupentry, struct radix_node nodes[2]) { caddr_t v = v_arg; @@ -490,7 +487,7 @@ on1: } struct radix_node * -rn_addmask(void *n_arg, struct radix_node_head *maskhead, int search, int skip) +rn_addmask(void *n_arg, struct radix_mask_head *maskhead, int search, int skip) { unsigned char *netmask = n_arg; unsigned char *cp, *cplim; @@ -505,7 +502,7 @@ rn_addmask(void *n_arg, struct radix_nod if (skip == 0) skip = 1; if (mlen <= skip) - return (maskhead->rnh_nodes); + return (maskhead->mask_nodes); bzero(addmask_key, RADIX_MAX_KEY_LEN); if (skip > 1) @@ -518,9 +515,9 @@ rn_addmask(void *n_arg, struct radix_nod cp--; mlen = cp - addmask_key; if (mlen <= skip) - return (maskhead->rnh_nodes); + return (maskhead->mask_nodes); *addmask_key = mlen; - x = rn_search(addmask_key, maskhead->rnh_treetop); + x = rn_search(addmask_key, maskhead->head.rnh_treetop); if (bcmp(addmask_key, x->rn_key, mlen) != 0) x = 0; if (x || search) @@ -530,7 +527,7 @@ rn_addmask(void *n_arg, struct radix_nod return (0); netmask = cp = (unsigned char *)(x + 2); bcopy(addmask_key, cp, mlen); - x = rn_insert(cp, maskhead, &maskduplicated, x); + x = rn_insert(cp, &maskhead->head, &maskduplicated, x); if (maskduplicated) { log(LOG_ERR, "rn_addmask: mask impossibly already in tree"); R_Free(saved_x); @@ -598,7 +595,7 @@ rn_new_radix_mask(struct radix_node *tt, } struct radix_node * -rn_addroute(void *v_arg, void *n_arg, struct radix_node_head *head, +rn_addroute(void *v_arg, void *n_arg, struct radix_head *head, struct radix_node treenodes[2]) { caddr_t v = (caddr_t)v_arg, netmask = (caddr_t)n_arg; @@ -772,7 +769,7 @@ on2: } struct radix_node * -rn_delete(void *v_arg, void *netmask_arg, struct radix_node_head *head) +rn_delete(void *v_arg, void *netmask_arg, struct radix_head *head) { struct radix_node *t, *p, *x, *tt; struct radix_mask *m, *saved_m, **mp; @@ -959,8 +956,8 @@ out: * This is the same as rn_walktree() except for the parameters and the * exit. */ -static int -rn_walktree_from(struct radix_node_head *h, void *a, void *m, +int +rn_walktree_from(struct radix_head *h, void *a, void *m, walktree_f_t *f, void *w) { int error; @@ -1065,8 +1062,8 @@ rn_walktree_from(struct radix_node_head return (0); } -static int -rn_walktree(struct radix_node_head *h, walktree_f_t *f, void *w) +int +rn_walktree(struct radix_head *h, walktree_f_t *f, void *w) { int error; struct radix_node *base, *next; @@ -1105,75 +1102,76 @@ rn_walktree(struct radix_node_head *h, w } /* - * Allocate and initialize an empty tree. This has 3 nodes, which are - * part of the radix_node_head (in the order ) and are + * Initialize an empty tree. This has 3 nodes, which are passed + * via base_nodes (in the order ) and are * marked RNF_ROOT so they cannot be freed. * The leaves have all-zero and all-one keys, with significant * bits starting at 'off'. - * Return 1 on success, 0 on error. */ -static int -rn_inithead_internal(void **head, int off) +void +rn_inithead_internal(struct radix_head *rh, struct radix_node *base_nodes, int off) { - struct radix_node_head *rnh; struct radix_node *t, *tt, *ttt; - if (*head) - return (1); - R_Zalloc(rnh, struct radix_node_head *, sizeof (*rnh)); - if (rnh == 0) - return (0); - *head = rnh; - t = rn_newpair(rn_zeros, off, rnh->rnh_nodes); - ttt = rnh->rnh_nodes + 2; + + t = rn_newpair(rn_zeros, off, base_nodes); + ttt = base_nodes + 2; t->rn_right = ttt; t->rn_parent = t; - tt = t->rn_left; /* ... which in turn is rnh->rnh_nodes */ + tt = t->rn_left; /* ... which in turn is base_nodes */ tt->rn_flags = t->rn_flags = RNF_ROOT | RNF_ACTIVE; tt->rn_bit = -1 - off; *ttt = *tt; ttt->rn_key = rn_ones; - rnh->rnh_addaddr = rn_addroute; - rnh->rnh_deladdr = rn_delete; - rnh->rnh_matchaddr = rn_match; - rnh->rnh_lookup = rn_lookup; - rnh->rnh_walktree = rn_walktree; - rnh->rnh_walktree_from = rn_walktree_from; - rnh->rnh_treetop = t; - return (1); + + rh->rnh_treetop = t; } static void -rn_detachhead_internal(void **head) +rn_detachhead_internal(struct radix_head *head) { - struct radix_node_head *rnh; - KASSERT((head != NULL && *head != NULL), + KASSERT((head != NULL), ("%s: head already freed", __func__)); - rnh = *head; /* Free nodes. */ - R_Free(rnh); - - *head = NULL; + R_Free(head); } +/* Functions used by 'struct radix_node_head' users */ + int rn_inithead(void **head, int off) { struct radix_node_head *rnh; + struct radix_mask_head *rmh; + + rnh = *head; + rmh = NULL; if (*head != NULL) return (1); - if (rn_inithead_internal(head, off) == 0) + R_Zalloc(rnh, struct radix_node_head *, sizeof (*rnh)); + R_Zalloc(rmh, struct radix_mask_head *, sizeof (*rmh)); + if (rnh == NULL || rmh == NULL) { + if (rnh != NULL) + R_Free(rnh); return (0); + } - rnh = (struct radix_node_head *)(*head); + /* Init trees */ + rn_inithead_internal(&rnh->rh, rnh->rnh_nodes, off); + rn_inithead_internal(&rmh->head, rmh->mask_nodes, 0); + *head = rnh; + rnh->rh.rnh_masks = rmh; - if (rn_inithead_internal((void **)&rnh->rnh_masks, 0) == 0) { - rn_detachhead_internal(head); - return (0); - } + /* Finally, set base callbacks */ + rnh->rnh_addaddr = rn_addroute; + rnh->rnh_deladdr = rn_delete; + rnh->rnh_matchaddr = rn_match; + rnh->rnh_lookup = rn_lookup; + rnh->rnh_walktree = rn_walktree; + rnh->rnh_walktree_from = rn_walktree_from; return (1); } @@ -1181,7 +1179,7 @@ rn_inithead(void **head, int off) static int rn_freeentry(struct radix_node *rn, void *arg) { - struct radix_node_head * const rnh = arg; + struct radix_head * const rnh = arg; struct radix_node *x; x = (struct radix_node *)rn_delete(rn + 2, NULL, rnh); @@ -1198,11 +1196,14 @@ rn_detachhead(void **head) KASSERT((head != NULL && *head != NULL), ("%s: head already freed", __func__)); - rnh = *head; + rnh = (struct radix_node_head *)(*head); + + rn_walktree(&rnh->rh.rnh_masks->head, rn_freeentry, rnh->rh.rnh_masks); + rn_detachhead_internal(&rnh->rh.rnh_masks->head); + rn_detachhead_internal(&rnh->rh); + + *head = NULL; - rn_walktree(rnh->rnh_masks, rn_freeentry, rnh->rnh_masks); - rn_detachhead_internal((void **)&rnh->rnh_masks); - rn_detachhead_internal(head); return (1); } Modified: head/sys/net/radix.h ============================================================================== --- head/sys/net/radix.h Mon Jan 25 05:33:18 2016 (r294705) +++ head/sys/net/radix.h Mon Jan 25 06:33:15 2016 (r294706) @@ -101,35 +101,53 @@ struct radix_mask { #define rm_mask rm_rmu.rmu_mask #define rm_leaf rm_rmu.rmu_leaf /* extra field would make 32 bytes */ +struct radix_head; + typedef int walktree_f_t(struct radix_node *, void *); +typedef struct radix_node *rn_matchaddr_f_t(void *v, + struct radix_head *head); +typedef struct radix_node *rn_addaddr_f_t(void *v, void *mask, + struct radix_head *head, struct radix_node nodes[]); +typedef struct radix_node *rn_deladdr_f_t(void *v, void *mask, + struct radix_head *head); +typedef struct radix_node *rn_lookup_f_t(void *v, void *mask, + struct radix_head *head); +typedef int rn_walktree_t(struct radix_head *head, walktree_f_t *f, + void *w); +typedef int rn_walktree_from_t(struct radix_head *head, + void *a, void *m, walktree_f_t *f, void *w); +typedef void rn_close_t(struct radix_node *rn, struct radix_head *head); -struct radix_node_head { +struct radix_mask_head; + +struct radix_head { struct radix_node *rnh_treetop; - u_int rnh_gen; /* generation counter */ - int rnh_multipath; /* multipath capable ? */ - struct radix_node *(*rnh_addaddr) /* add based on sockaddr */ - (void *v, void *mask, - struct radix_node_head *head, struct radix_node nodes[]); - struct radix_node *(*rnh_deladdr) /* remove based on sockaddr */ - (void *v, void *mask, struct radix_node_head *head); - struct radix_node *(*rnh_matchaddr) /* longest match for sockaddr */ - (void *v, struct radix_node_head *head); - struct radix_node *(*rnh_lookup) /*exact match for sockaddr*/ - (void *v, void *mask, struct radix_node_head *head); - int (*rnh_walktree) /* traverse tree */ - (struct radix_node_head *head, walktree_f_t *f, void *w); - int (*rnh_walktree_from) /* traverse tree below a */ - (struct radix_node_head *head, void *a, void *m, - walktree_f_t *f, void *w); - void (*rnh_close) /* do something when the last ref drops */ - (struct radix_node *rn, struct radix_node_head *head); + struct radix_mask_head *rnh_masks; /* Storage for our masks */ +}; + +struct radix_node_head { + struct radix_head rh; + rn_matchaddr_f_t *rnh_matchaddr; /* longest match for sockaddr */ + rn_addaddr_f_t *rnh_addaddr; /* add based on sockaddr*/ + rn_deladdr_f_t *rnh_deladdr; /* remove based on sockaddr */ + rn_lookup_f_t *rnh_lookup; /* exact match for sockaddr */ + rn_walktree_t *rnh_walktree; /* traverse tree */ + rn_walktree_from_t *rnh_walktree_from; /* traverse tree below a */ + rn_close_t *rnh_close; /*do something when the last ref drops*/ struct radix_node rnh_nodes[3]; /* empty tree for common case */ - struct radix_node_head *rnh_masks; /* Storage for our masks */ #ifdef _KERNEL struct rwlock rnh_lock; /* locks entire radix tree */ #endif }; +struct radix_mask_head { + struct radix_head head; + struct radix_node mask_nodes[3]; +}; + +void rn_inithead_internal(struct radix_head *rh, struct radix_node *base_nodes, + int off); + #ifndef _KERNEL #define R_Malloc(p, t, n) (p = (t) malloc((unsigned int)(n))) #define R_Zalloc(p, t, n) (p = (t) calloc(1,(unsigned int)(n))) @@ -156,13 +174,14 @@ struct radix_node_head { int rn_inithead(void **, int); int rn_detachhead(void **); int rn_refines(void *, void *); -struct radix_node - *rn_addmask(void *, struct radix_node_head *, int, int), - *rn_addroute (void *, void *, struct radix_node_head *, - struct radix_node [2]), - *rn_delete(void *, void *, struct radix_node_head *), - *rn_lookup (void *v_arg, void *m_arg, - struct radix_node_head *head), - *rn_match(void *, struct radix_node_head *); +struct radix_node *rn_addroute(void *, void *, struct radix_head *, + struct radix_node[2]); +struct radix_node *rn_delete(void *, void *, struct radix_head *); +struct radix_node *rn_lookup (void *v_arg, void *m_arg, + struct radix_head *head); +struct radix_node *rn_match(void *, struct radix_head *); +int rn_walktree_from(struct radix_head *h, void *a, void *m, + walktree_f_t *f, void *w); +int rn_walktree(struct radix_head *, walktree_f_t *, void *); #endif /* _RADIX_H_ */ Modified: head/sys/net/radix_mpath.c ============================================================================== --- head/sys/net/radix_mpath.c Mon Jan 25 05:33:18 2016 (r294705) +++ head/sys/net/radix_mpath.c Mon Jan 25 06:33:15 2016 (r294706) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -57,12 +58,19 @@ __FBSDID("$FreeBSD$"); static uint32_t hashjitter; int -rn_mpath_capable(struct radix_node_head *rnh) +rt_mpath_capable(struct rib_head *rnh) { return rnh->rnh_multipath; } +int +rn_mpath_capable(struct radix_head *rh) +{ + + return (rt_mpath_capable((struct rib_head *)rh)); +} + struct radix_node * rn_mpath_next(struct radix_node *rn) { @@ -159,14 +167,14 @@ rt_mpath_deldup(struct rtentry *headrt, * Assume @rt rt_key host bits are cleared according to @netmask */ int -rt_mpath_conflict(struct radix_node_head *rnh, struct rtentry *rt, +rt_mpath_conflict(struct rib_head *rnh, struct rtentry *rt, struct sockaddr *netmask) { struct radix_node *rn, *rn1; struct rtentry *rt1; rn = (struct radix_node *)rt; - rn1 = rnh->rnh_lookup(rt_key(rt), netmask, rnh); + rn1 = rnh->rnh_lookup(rt_key(rt), netmask, &rnh->head); if (!rn1 || rn1->rn_flags & RNF_ROOT) return (0); @@ -284,11 +292,11 @@ extern int in_inithead(void **head, int int rn4_mpath_inithead(void **head, int off) { - struct radix_node_head *rnh; + struct rib_head *rnh; hashjitter = arc4random(); if (in_inithead(head, off) == 1) { - rnh = (struct radix_node_head *)*head; + rnh = (struct rib_head *)*head; rnh->rnh_multipath = 1; return 1; } else @@ -300,11 +308,11 @@ rn4_mpath_inithead(void **head, int off) int rn6_mpath_inithead(void **head, int off) { - struct radix_node_head *rnh; + struct rib_head *rnh; hashjitter = arc4random(); if (in6_inithead(head, off) == 1) { - rnh = (struct radix_node_head *)*head; + rnh = (struct rib_head *)*head; rnh->rnh_multipath = 1; return 1; } else Modified: head/sys/net/radix_mpath.h ============================================================================== --- head/sys/net/radix_mpath.h Mon Jan 25 05:33:18 2016 (r294705) +++ head/sys/net/radix_mpath.h Mon Jan 25 06:33:15 2016 (r294706) @@ -44,11 +44,13 @@ struct route; struct rtentry; struct sockaddr; -int rn_mpath_capable(struct radix_node_head *); +struct rib_head; +int rt_mpath_capable(struct rib_head *); +int rn_mpath_capable(struct radix_head *); struct radix_node *rn_mpath_next(struct radix_node *); u_int32_t rn_mpath_count(struct radix_node *); struct rtentry *rt_mpath_matchgate(struct rtentry *, struct sockaddr *); -int rt_mpath_conflict(struct radix_node_head *, struct rtentry *, +int rt_mpath_conflict(struct rib_head *, struct rtentry *, struct sockaddr *); void rtalloc_mpath_fib(struct route *, u_int32_t, u_int); struct rtentry *rt_mpath_select(struct rtentry *, uint32_t); Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Mon Jan 25 05:33:18 2016 (r294705) +++ head/sys/net/route.c Mon Jan 25 06:33:15 2016 (r294706) @@ -57,6 +57,7 @@ #include #include #include +#include #include #include @@ -114,7 +115,7 @@ SYSCTL_UINT(_net, OID_AUTO, add_addr_all VNET_DEFINE(struct rtstat, rtstat); #define V_rtstat VNET(rtstat) -VNET_DEFINE(struct radix_node_head *, rt_tables); +VNET_DEFINE(struct rib_head *, rt_tables); #define V_rt_tables VNET(rt_tables) VNET_DEFINE(int, rttrash); /* routes not in table but not freed */ @@ -136,15 +137,15 @@ VNET_DEFINE(int, rttrash); /* routes no static VNET_DEFINE(uma_zone_t, rtzone); /* Routing table UMA zone. */ #define V_rtzone VNET(rtzone) -static int rtrequest1_fib_change(struct radix_node_head *, struct rt_addrinfo *, +static int rtrequest1_fib_change(struct rib_head *, struct rt_addrinfo *, struct rtentry **, u_int); static void rt_setmetrics(const struct rt_addrinfo *, struct rtentry *); static int rt_ifdelroute(const struct rtentry *rt, void *arg); -static struct rtentry *rt_unlinkrte(struct radix_node_head *rnh, +static struct rtentry *rt_unlinkrte(struct rib_head *rnh, struct rt_addrinfo *info, int *perror); static void rt_notifydelete(struct rtentry *rt, struct rt_addrinfo *info); #ifdef RADIX_MPATH -static struct radix_node *rt_mpath_unlink(struct radix_node_head *rnh, +static struct radix_node *rt_mpath_unlink(struct rib_head *rnh, struct rt_addrinfo *info, struct rtentry *rto, int *perror); #endif static int rt_exportinfo(struct rtentry *rt, struct rt_addrinfo *info, @@ -175,10 +176,10 @@ sysctl_my_fibnum(SYSCTL_HANDLER_ARGS) SYSCTL_PROC(_net, OID_AUTO, my_fibnum, CTLTYPE_INT|CTLFLAG_RD, NULL, 0, &sysctl_my_fibnum, "I", "default FIB of caller"); -static __inline struct radix_node_head ** +static __inline struct rib_head ** rt_tables_get_rnh_ptr(int table, int fam) { - struct radix_node_head **rnh; + struct rib_head **rnh; KASSERT(table >= 0 && table < rt_numfibs, ("%s: table out of bounds.", __func__)); @@ -186,14 +187,14 @@ rt_tables_get_rnh_ptr(int table, int fam __func__)); /* rnh is [fib=0][af=0]. */ - rnh = (struct radix_node_head **)V_rt_tables; + rnh = (struct rib_head **)V_rt_tables; /* Get the offset to the requested table and fam. */ rnh += table * (AF_MAX+1) + fam; return (rnh); } -struct radix_node_head * +struct rib_head * rt_tables_get_rnh(int table, int fam) { @@ -263,12 +264,12 @@ static void vnet_route_init(const void *unused __unused) { struct domain *dom; - struct radix_node_head **rnh; + struct rib_head **rnh; int table; int fam; V_rt_tables = malloc(rt_numfibs * (AF_MAX+1) * - sizeof(struct radix_node_head *), M_RTABLE, M_WAITOK|M_ZERO); + sizeof(struct rib_head *), M_RTABLE, M_WAITOK|M_ZERO); V_rtzone = uma_zcreate("rtentry", sizeof(struct rtentry), rtentry_ctor, rtentry_dtor, @@ -299,7 +300,7 @@ vnet_route_uninit(const void *unused __u int table; int fam; struct domain *dom; - struct radix_node_head **rnh; + struct rib_head **rnh; for (dom = domains; dom; dom = dom->dom_next) { if (dom->dom_rtdetach == NULL) @@ -325,6 +326,43 @@ VNET_SYSUNINIT(vnet_route_uninit, SI_SUB vnet_route_uninit, 0); #endif +struct rib_head * +rt_table_init(int offset) +{ + struct rib_head *rh; + + rh = malloc(sizeof(struct rib_head), M_RTABLE, M_WAITOK | M_ZERO); + + /* TODO: These details should be hidded inside radix.c */ + /* Init masks tree */ + rn_inithead_internal(&rh->head, rh->rnh_nodes, offset); + rn_inithead_internal(&rh->rmhead.head, rh->rmhead.mask_nodes, 0); + rh->head.rnh_masks = &rh->rmhead; + + /* Init locks */ + rw_init(&rh->rib_lock, "rib head lock"); + + /* Finally, set base callbacks */ + rh->rnh_addaddr = rn_addroute; + rh->rnh_deladdr = rn_delete; + rh->rnh_matchaddr = rn_match; + rh->rnh_lookup = rn_lookup; + rh->rnh_walktree = rn_walktree; + rh->rnh_walktree_from = rn_walktree_from; + + return (rh); +} + +void +rt_table_destroy(struct rib_head *rh) +{ + + /* Assume table is already empty */ + rw_destroy(&rh->rib_lock); + free(rh, M_RTABLE); +} + + #ifndef _SYS_SYSPROTO_H_ struct setfib_args { int fibnum; @@ -375,32 +413,32 @@ struct rtentry * rtalloc1_fib(struct sockaddr *dst, int report, u_long ignflags, u_int fibnum) { - struct radix_node_head *rnh; + struct rib_head *rh; struct radix_node *rn; struct rtentry *newrt; struct rt_addrinfo info; int err = 0, msgtype = RTM_MISS; KASSERT((fibnum < rt_numfibs), ("rtalloc1_fib: bad fibnum")); - rnh = rt_tables_get_rnh(fibnum, dst->sa_family); + rh = rt_tables_get_rnh(fibnum, dst->sa_family); newrt = NULL; - if (rnh == NULL) + if (rh == NULL) goto miss; /* * Look up the address in the table for that Address Family */ - RADIX_NODE_HEAD_RLOCK(rnh); - rn = rnh->rnh_matchaddr(dst, rnh); + RIB_RLOCK(rh); + rn = rh->rnh_matchaddr(dst, &rh->head); if (rn && ((rn->rn_flags & RNF_ROOT) == 0)) { newrt = RNTORT(rn); RT_LOCK(newrt); RT_ADDREF(newrt); - RADIX_NODE_HEAD_RUNLOCK(rnh); + RIB_RUNLOCK(rh); return (newrt); } else - RADIX_NODE_HEAD_RUNLOCK(rnh); + RIB_RUNLOCK(rh); /* * Either we hit the root or couldn't find any match, @@ -430,7 +468,7 @@ miss: void rtfree(struct rtentry *rt) { - struct radix_node_head *rnh; + struct rib_head *rnh; KASSERT(rt != NULL,("%s: NULL rt", __func__)); rnh = rt_tables_get_rnh(rt->rt_fibnum, rt_key(rt)->sa_family); @@ -458,7 +496,7 @@ rtfree(struct rtentry *rt) * on the entry so that the code below reclaims the storage. */ if (rt->rt_refcnt == 0 && rnh->rnh_close) - rnh->rnh_close((struct radix_node *)rt, rnh); + rnh->rnh_close((struct radix_node *)rt, &rnh->head); /* * If we are no longer "up" (and ref == 0) @@ -522,7 +560,7 @@ rtredirect_fib(struct sockaddr *dst, short *stat = NULL; struct rt_addrinfo info; struct ifaddr *ifa; - struct radix_node_head *rnh; + struct rib_head *rnh; ifa = NULL; rnh = rt_tables_get_rnh(fibnum, dst->sa_family); @@ -608,10 +646,10 @@ rtredirect_fib(struct sockaddr *dst, * add the key and gateway (in one malloc'd chunk). */ RT_UNLOCK(rt); - RADIX_NODE_HEAD_LOCK(rnh); + RIB_WLOCK(rnh); RT_LOCK(rt); rt_setgate(rt, rt_key(rt), gateway); - RADIX_NODE_HEAD_UNLOCK(rnh); + RIB_WUNLOCK(rnh); } } else error = EHOSTUNREACH; @@ -853,7 +891,7 @@ int rib_lookup_info(uint32_t fibnum, const struct sockaddr *dst, uint32_t flags, uint32_t flowid, struct rt_addrinfo *info) { - struct radix_node_head *rh; + struct rib_head *rh; struct radix_node *rn; struct rtentry *rt; int error; @@ -863,20 +901,20 @@ rib_lookup_info(uint32_t fibnum, const s if (rh == NULL) return (ENOENT); - RADIX_NODE_HEAD_RLOCK(rh); - rn = rh->rnh_matchaddr(__DECONST(void *, dst), rh); + RIB_RLOCK(rh); + rn = rh->rnh_matchaddr(__DECONST(void *, dst), &rh->head); if (rn != NULL && ((rn->rn_flags & RNF_ROOT) == 0)) { rt = RNTORT(rn); /* Ensure route & ifp is UP */ if (RT_LINK_IS_UP(rt->rt_ifp)) { flags = (flags & NHR_REF) | NHR_COPY; error = rt_exportinfo(rt, info, flags); - RADIX_NODE_HEAD_RUNLOCK(rh); + RIB_RUNLOCK(rh); return (error); } } - RADIX_NODE_HEAD_RUNLOCK(rh); + RIB_RUNLOCK(rh); return (ENOENT); } @@ -903,7 +941,7 @@ void rt_foreach_fib_walk(int af, rt_setwarg_t *setwa_f, rt_walktree_f_t *wa_f, void *arg) { - struct radix_node_head *rnh; + struct rib_head *rnh; uint32_t fibnum; int i; @@ -916,9 +954,9 @@ rt_foreach_fib_walk(int af, rt_setwarg_t if (setwa_f != NULL) setwa_f(rnh, fibnum, af, arg); - RADIX_NODE_HEAD_LOCK(rnh); - rnh->rnh_walktree(rnh, (walktree_f_t *)wa_f, arg); - RADIX_NODE_HEAD_UNLOCK(rnh); + RIB_WLOCK(rnh); + rnh->rnh_walktree(&rnh->head, (walktree_f_t *)wa_f,arg); + RIB_WUNLOCK(rnh); continue; } @@ -929,9 +967,9 @@ rt_foreach_fib_walk(int af, rt_setwarg_t if (setwa_f != NULL) setwa_f(rnh, fibnum, i, arg); - RADIX_NODE_HEAD_LOCK(rnh); - rnh->rnh_walktree(rnh, (walktree_f_t *)wa_f, arg); - RADIX_NODE_HEAD_UNLOCK(rnh); + RIB_WLOCK(rnh); + rnh->rnh_walktree(&rnh->head, (walktree_f_t *)wa_f,arg); + RIB_WUNLOCK(rnh); } } } @@ -939,7 +977,7 @@ rt_foreach_fib_walk(int af, rt_setwarg_t struct rt_delinfo { struct rt_addrinfo info; - struct radix_node_head *rnh; + struct rib_head *rnh; struct rtentry *head; }; @@ -987,7 +1025,7 @@ rt_checkdelroute(struct radix_node *rn, void rt_foreach_fib_walk_del(int af, rt_filter_f_t *filter_f, void *arg) { - struct radix_node_head *rnh; + struct rib_head *rnh; struct rt_delinfo di; struct rtentry *rt; uint32_t fibnum; @@ -1013,9 +1051,9 @@ rt_foreach_fib_walk_del(int af, rt_filte continue; di.rnh = rnh; - RADIX_NODE_HEAD_LOCK(rnh); - rnh->rnh_walktree(rnh, rt_checkdelroute, &di); - RADIX_NODE_HEAD_UNLOCK(rnh); + RIB_WLOCK(rnh); + rnh->rnh_walktree(&rnh->head, rt_checkdelroute, &di); + RIB_WUNLOCK(rnh); if (di.head == NULL) continue; @@ -1092,7 +1130,7 @@ rt_flushifroutes(struct ifnet *ifp) * ENOENT - if supplied filter function returned 0 (not matched). */ static struct rtentry * -rt_unlinkrte(struct radix_node_head *rnh, struct rt_addrinfo *info, int *perror) +rt_unlinkrte(struct rib_head *rnh, struct rt_addrinfo *info, int *perror) { struct sockaddr *dst, *netmask; struct rtentry *rt; @@ -1101,7 +1139,7 @@ rt_unlinkrte(struct radix_node_head *rnh dst = info->rti_info[RTAX_DST]; netmask = info->rti_info[RTAX_NETMASK]; - rt = (struct rtentry *)rnh->rnh_lookup(dst, netmask, rnh); + rt = (struct rtentry *)rnh->rnh_lookup(dst, netmask, &rnh->head); if (rt == NULL) { *perror = ESRCH; return (NULL); @@ -1136,11 +1174,11 @@ rt_unlinkrte(struct radix_node_head *rnh */ *perror = ESRCH; #ifdef RADIX_MPATH - if (rn_mpath_capable(rnh)) + if (rt_mpath_capable(rnh)) rn = rt_mpath_unlink(rnh, info, rt, perror); else #endif - rn = rnh->rnh_deladdr(dst, netmask, rnh); + rn = rnh->rnh_deladdr(dst, netmask, &rnh->head); if (rn == NULL) return (NULL); @@ -1273,7 +1311,7 @@ void rt_updatemtu(struct ifnet *ifp) { struct if_mtuinfo ifmtu; - struct radix_node_head *rnh; + struct rib_head *rnh; int i, j; ifmtu.ifp = ifp; @@ -1289,9 +1327,9 @@ rt_updatemtu(struct ifnet *ifp) rnh = rt_tables_get_rnh(j, i); if (rnh == NULL) continue; - RADIX_NODE_HEAD_LOCK(rnh); - rnh->rnh_walktree(rnh, if_updatemtu_cb, &ifmtu); - RADIX_NODE_HEAD_UNLOCK(rnh); + RIB_WLOCK(rnh); + rnh->rnh_walktree(&rnh->head, if_updatemtu_cb, &ifmtu); + RIB_WUNLOCK(rnh); } } } @@ -1357,7 +1395,7 @@ rt_print(char *buf, int buflen, struct r * and sets @perror to ESRCH. */ static struct radix_node * -rt_mpath_unlink(struct radix_node_head *rnh, struct rt_addrinfo *info, +rt_mpath_unlink(struct rib_head *rnh, struct rt_addrinfo *info, struct rtentry *rto, int *perror) { /* @@ -1409,7 +1447,7 @@ rt_mpath_unlink(struct radix_node_head * * use the normal delete code to remove * the first entry */ - rn = rnh->rnh_deladdr(dst, netmask, rnh); + rn = rnh->rnh_deladdr(dst, netmask, &rnh->head); *perror = 0; return (rn); } @@ -1427,7 +1465,7 @@ rt_mpath_unlink(struct radix_node_head * #ifdef FLOWTABLE static struct rtentry * -rt_flowtable_check_route(struct radix_node_head *rnh, struct rt_addrinfo *info) +rt_flowtable_check_route(struct rib_head *rnh, struct rt_addrinfo *info) { #if defined(INET6) || defined(INET) struct radix_node *rn; @@ -1499,7 +1537,7 @@ rtrequest1_fib(int req, struct rt_addrin struct rtentry *rt0; #endif struct radix_node *rn; - struct radix_node_head *rnh; + struct rib_head *rnh; struct ifaddr *ifa; struct sockaddr *ndst; struct sockaddr_storage mdst; @@ -1537,9 +1575,9 @@ rtrequest1_fib(int req, struct rt_addrin dst = (struct sockaddr *)&mdst; } - RADIX_NODE_HEAD_LOCK(rnh); + RIB_WLOCK(rnh); rt = rt_unlinkrte(rnh, info, &error); - RADIX_NODE_HEAD_UNLOCK(rnh); + RIB_WUNLOCK(rnh); if (error != 0) return (error); @@ -1616,13 +1654,13 @@ rtrequest1_fib(int req, struct rt_addrin rt_setmetrics(info, rt); - RADIX_NODE_HEAD_LOCK(rnh); + RIB_WLOCK(rnh); RT_LOCK(rt); #ifdef RADIX_MPATH /* do not permit exactly the same dst/mask/gw pair */ - if (rn_mpath_capable(rnh) && + if (rt_mpath_capable(rnh) && rt_mpath_conflict(rnh, rt, netmask)) { - RADIX_NODE_HEAD_UNLOCK(rnh); + RIB_WUNLOCK(rnh); ifa_free(rt->rt_ifa); R_Free(rt_key(rt)); @@ -1636,7 +1674,7 @@ rtrequest1_fib(int req, struct rt_addrin #endif /* FLOWTABLE */ /* XXX mtu manipulation will be done in rnh_addaddr -- itojun */ - rn = rnh->rnh_addaddr(ndst, netmask, rnh, rt->rt_nodes); + rn = rnh->rnh_addaddr(ndst, netmask, &rnh->head, rt->rt_nodes); rt_old = NULL; if (rn == NULL && (info->rti_flags & RTF_PINNED) != 0) { @@ -1653,10 +1691,10 @@ rtrequest1_fib(int req, struct rt_addrin info->rti_flags |= RTF_PINNED; info->rti_info[RTAX_DST] = info_dst; if (rt_old != NULL) - rn = rnh->rnh_addaddr(ndst, netmask, rnh, + rn = rnh->rnh_addaddr(ndst, netmask, &rnh->head, rt->rt_nodes); } - RADIX_NODE_HEAD_UNLOCK(rnh); + RIB_WUNLOCK(rnh); if (rt_old != NULL) RT_UNLOCK(rt_old); @@ -1705,9 +1743,9 @@ rtrequest1_fib(int req, struct rt_addrin RT_UNLOCK(rt); break; case RTM_CHANGE: - RADIX_NODE_HEAD_LOCK(rnh); + RIB_WLOCK(rnh); error = rtrequest1_fib_change(rnh, info, ret_nrt, fibnum); - RADIX_NODE_HEAD_UNLOCK(rnh); + RIB_WUNLOCK(rnh); break; default: error = EOPNOTSUPP; @@ -1724,7 +1762,7 @@ rtrequest1_fib(int req, struct rt_addrin #undef flags static int -rtrequest1_fib_change(struct radix_node_head *rnh, struct rt_addrinfo *info, +rtrequest1_fib_change(struct rib_head *rnh, struct rt_addrinfo *info, struct rtentry **ret_nrt, u_int fibnum) { struct rtentry *rt = NULL; @@ -1734,7 +1772,7 @@ rtrequest1_fib_change(struct radix_node_ struct if_mtuinfo ifmtu; rt = (struct rtentry *)rnh->rnh_lookup(info->rti_info[RTAX_DST], - info->rti_info[RTAX_NETMASK], rnh); + info->rti_info[RTAX_NETMASK], &rnh->head); if (rt == NULL) return (ESRCH); @@ -1744,7 +1782,7 @@ rtrequest1_fib_change(struct radix_node_ * If we got multipath routes, * we require users to specify a matching RTAX_GATEWAY. */ - if (rn_mpath_capable(rnh)) { + if (rt_mpath_capable(rnh)) { rt = rt_mpath_matchgate(rt, info->rti_info[RTAX_GATEWAY]); if (rt == NULL) return (ESRCH); @@ -1935,7 +1973,7 @@ rtinit1(struct ifaddr *ifa, int cmd, int int didwork = 0; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Jan 25 06:58:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D75FA450E4; Mon, 25 Jan 2016 06:58:43 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: from mail-ob0-x22c.google.com (mail-ob0-x22c.google.com [IPv6:2607:f8b0:4003:c01::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 01DBEE54; Mon, 25 Jan 2016 06:58:43 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: by mail-ob0-x22c.google.com with SMTP id zv1so7544425obb.2; Sun, 24 Jan 2016 22:58:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=2/hslY4Lv1WVqeE4ojQaNfI0D9ABCaHbl26faoBCjx8=; b=d+yeBLpCkmHd2mMdim4OrPNTLz7QRyxX6n0ng4jKKbToaVe5odFACqSMkzL10Dzdii I+hkFkaKi+j2wdPbONFOaocA8FRdRPdkv507JbtE2PPRqIbaNkBZgRKnhQ6QmHLYFZZ5 /rLTuoypB1UiEW9tkBTzuzUfjRiRaCLptHCgb9g/2AGlZFDGG7MDnOf6DOctWlJWbA8n N7A2qqXKCw2SDTgVvc8RnhEUyn9t7dS15JzGrPdBuclBgt/z9/pw9Kf0US4uH0vzLM3S pyK7c/Fwcm4qimO17EUx4n3sV3dZX+sLbixjWUbApLEGmm/WCSSS61brhyewLTWxrqkN 5xvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=2/hslY4Lv1WVqeE4ojQaNfI0D9ABCaHbl26faoBCjx8=; b=gCIMJv/VT2kY3exIIlk9t7lE1O4ik2C3CW0IDzgCKxHelQN0le69PgudGkwNq0SuPs liepvhp612wrAEeYvNsxi40pDZGCXNb+Zt3c9lBWUYT8kXFZThnaSC093oQYBRacLlQU cHz+5eXUANP2coRrT4w18sDpRKN/VLGRVDLb+VQ0evwt3zwMiH4GFsRyAD6YJAe4w+xH wUUBWe8GrX4RylTqRT9dBHB3r4Gwm1SDfXsy+D7f0Fj5vyihTWRSv1NUXUQI1JlzANhl UZozP2hWVj8aDv9uLLFkuXkpNLckfHk6NteKXQua/YuUHL/8IE9jraczBL1a867G8iMq O0kA== X-Gm-Message-State: AG10YOSOHIVy3itwesoL697URIDVlLLzDB6fJv2UZJLqEGgjcY4N/hky1ure/QPN5e0f3NI5vfVH0hzmCfP/MQ== MIME-Version: 1.0 X-Received: by 10.60.81.103 with SMTP id z7mr12276463oex.59.1453705122207; Sun, 24 Jan 2016 22:58:42 -0800 (PST) Received: by 10.182.40.194 with HTTP; Sun, 24 Jan 2016 22:58:42 -0800 (PST) Reply-To: araujo@FreeBSD.org In-Reply-To: References: <201601130149.u0D1nZmI053966@repo.freebsd.org> Date: Mon, 25 Jan 2016 14:58:42 +0800 Message-ID: Subject: Re: svn commit: r293801 - in head: . etc share/examples/ypldap usr.sbin/ypldap From: Marcelo Araujo To: Antoine Brodin Cc: "src-committers@freebsd.org" , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 06:58:43 -0000 Thanks to point it out! I have sent a patch for review and approve. Best, 2016-01-24 21:58 GMT+08:00 Antoine Brodin : > > On Jan 13, 2016 2:49 AM, "Marcelo Araujo" wrote: > > > > Author: araujo > > Date: Wed Jan 13 01:49:35 2016 > > New Revision: 293801 > > URL: https://svnweb.freebsd.org/changeset/base/293801 > > > > Log: > > ypldap(8) is a feature ready to be used to translate nis(8) database > to ldap(3). > > > > This commit, fix a core dump on ypldap(8) related with memory > allocation. > > Also an example of how to set the ypldap.conf(5) properly is added to > > examples files. > > > > A new user _ypldap is required to be able to run ypldap(8) as well as > > in a chroot mode. > > > > Reviewed by: rodrigc (mentor), bjk > > Approved by: bapt (mentor) > > Relnotes: Yes > > Sponsored by: gandi.net > > Differential Revision: https://reviews.freebsd.org/D4744 > > > > Hi, > > Uid 93 is already used in the ports tree by jabber. (/usr/ports/UIDs) > > Cheers, > > Antoine > > > Added: > > head/share/examples/ypldap/ > > head/share/examples/ypldap/ypldap.conf (contents, props changed) > > Modified: > > head/UPDATING > > head/etc/master.passwd > > head/usr.sbin/ypldap/yp.c > > head/usr.sbin/ypldap/ypldap.conf.5 > > > > Modified: head/UPDATING > > > ============================================================================== > > --- head/UPDATING Wed Jan 13 01:32:04 2016 (r293800) > > +++ head/UPDATING Wed Jan 13 01:49:35 2016 (r293801) > > @@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 > > disable the most expensive debugging functionality run > > "ln -s 'abort:false,junk:false' /etc/malloc.conf".) > > > > +20160113: > > + With the addition of ypldap(8), a new _ypldap user is now > required > > + during installworld. "mergemaster -p" can be used to add the user > > + prior to installworld, as documented in the handbook. > > + > > 20151216: > > The tftp loader (pxeboot) now uses the option root-path > directive. As a > > consequence it no longer looks for a pxeboot.4th file on the tftp > > > > Modified: head/etc/master.passwd > > > ============================================================================== > > --- head/etc/master.passwd Wed Jan 13 01:32:04 2016 (r293800) > > +++ head/etc/master.passwd Wed Jan 13 01:49:35 2016 (r293801) > > @@ -22,5 +22,6 @@ uucp:*:66:66::0:0:UUCP pseudo-user:/var/ > > pop:*:68:6::0:0:Post Office Owner:/nonexistent:/usr/sbin/nologin > > auditdistd:*:78:77::0:0:Auditdistd unprivileged > user:/var/empty:/usr/sbin/nologin > > www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin > > +_ypldap:*:93:93::0:0:YP Ldap unprivileged > user:/var/empty:/usr/sbin/nologin > > hast:*:845:845::0:0:HAST unprivileged user:/var/empty:/usr/sbin/nologin > > nobody:*:65534:65534::0:0:Unprivileged > user:/nonexistent:/usr/sbin/nologin > > > > Added: head/share/examples/ypldap/ypldap.conf > > > ============================================================================== > > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > > +++ head/share/examples/ypldap/ypldap.conf Wed Jan 13 01:49:35 > 2016 (r293801) > > @@ -0,0 +1,40 @@ > > +$FreeBSD$ > > +domain "freebsd.org" > > +interval 60 > > +provide map "passwd.byname" > > +provide map "passwd.byuid" > > +provide map "group.byname" > > +provide map "group.bygid" > > +provide map "netid.byname" > > + > > +directory "127.0.0.1" { > > + # directory options > > + binddn "cn=ldap,dc=freebsd,dc=org" > > + bindcred "secret" > > + basedn "dc=freebsd.,dc=org" > > + # starting point for groups directory search, default to basedn > > + groupdn "ou=Groups,dc=freebsd,dc=org" > > + > > + # passwd maps configuration (RFC 2307 posixAccount object class) > > + passwd filter "(objectClass=posixAccount)" > > + > > + attribute name maps to "uid" > > + fixed attribute passwd "*" > > + attribute uid maps to "uidNumber" > > + attribute gid maps to "gidNumber" > > + attribute gecos maps to "cn" > > + attribute home maps to "homeDirectory" > > + attribute shell maps to "loginShell" > > + fixed attribute change "0" > > + fixed attribute expire "0" > > + fixed attribute class "" > > + > > + # group maps configuration (RFC 2307 posixGroup object class) > > + group filter "(objectClass=posixGroup)" > > + > > + attribute groupname maps to "cn" > > + fixed attribute grouppasswd "*" > > + attribute groupgid maps to "gidNumber" > > + # memberUid returns multiple group members > > + list groupmembers maps to "memberUid" > > +} > > > > Modified: head/usr.sbin/ypldap/yp.c > > > ============================================================================== > > --- head/usr.sbin/ypldap/yp.c Wed Jan 13 01:32:04 2016 (r293800) > > +++ head/usr.sbin/ypldap/yp.c Wed Jan 13 01:49:35 2016 (r293801) > > @@ -83,10 +83,10 @@ void > > yp_enable_events(void) > > { > > int i; > > - extern fd_set svc_fdset; > > + extern fd_set svc_fdset; > > struct yp_event *ye; > > > > - for (i = 0; i < getdtablesize(); i++) { > > + for (i = 0; i < FD_SETSIZE; i++) { > > if (FD_ISSET(i, &svc_fdset)) { > > if ((ye = calloc(1, sizeof(*ye))) == NULL) > > fatal(NULL); > > > > Modified: head/usr.sbin/ypldap/ypldap.conf.5 > > > ============================================================================== > > --- head/usr.sbin/ypldap/ypldap.conf.5 Wed Jan 13 01:32:04 2016 > (r293800) > > +++ head/usr.sbin/ypldap/ypldap.conf.5 Wed Jan 13 01:49:35 2016 > (r293801) > > @@ -15,7 +15,7 @@ > > .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING > OUT OF > > .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. > > .\" > > -.Dd $Mdocdate: April 30 2012 $ > > +.Dd $Mdocdate: January 13 2016 $ > > .Dt YPLDAP.CONF 5 > > .Os > > .Sh NAME > > @@ -155,6 +155,9 @@ Use the supplied LDAP filter to retrieve > > .It Pa /etc/ypldap.conf > > .Xr ypldap 8 > > configuration file. > > +.It Pa /usr/share/example/ypldap/ypldap.conf > > +.Xr ypldap 8 > > +configuration file example. > > .El > > .Sh SEE ALSO > > .Xr ypbind 8 , > > > -- -- Marcelo Araujo (__)araujo@FreeBSD.org \\\'',)http://www.FreeBSD.org \/ \ ^ Power To Server. .\. /_) From owner-svn-src-all@freebsd.org Mon Jan 25 07:15:30 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92F80A455FC; Mon, 25 Jan 2016 07:15:30 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id 5C183A46; Mon, 25 Jan 2016 07:15:29 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id C86A3782913; Mon, 25 Jan 2016 17:43:44 +1100 (AEDT) Date: Mon, 25 Jan 2016 17:43:43 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Andriy Voskoboinyk cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294697 - head/sys/net80211 In-Reply-To: <201601242335.u0ONZKwW053626@repo.freebsd.org> Message-ID: <20160125170231.H986@besplex.bde.org> References: <201601242335.u0ONZKwW053626@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=R4L+YolX c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=s9b9jv-nJyFL7ZVnhwEA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 07:15:30 -0000 On Sun, 24 Jan 2016, Andriy Voskoboinyk wrote: > Log: > net80211: reduce stack usage for ieee80211_ioctl*() methods. > > Use malloc(9) for > - struct ieee80211req_wpaie2 (518 bytes, used in > ieee80211_ioctl_getwpaie()) > - struct ieee80211_scan_req (128 bytes, used in setmlme_assoc_adhoc() > and ieee80211_ioctl_scanreq()) > > Also, drop __noinline workarounds; stack overflow is not reproducible > with recent compilers. > > Tested with Clang 3.7.1, GCC 4.2.1 (from 9.3-RELEASE) and 4.9.4 > (with -fstack-usage flag) Inlining also breaks debugging. It is best avoided generally using gcc -fnon-inline-functions-called-once. This flag is broken (not supported) in clang. > Modified: head/sys/net80211/ieee80211_ioctl.c > ============================================================================== > --- head/sys/net80211/ieee80211_ioctl.c Sun Jan 24 23:28:14 2016 (r294696) > +++ head/sys/net80211/ieee80211_ioctl.c Sun Jan 24 23:35:20 2016 (r294697) > -/* > - * When building the kernel with -O2 on the i386 architecture, gcc > - * seems to want to inline this function into ieee80211_ioctl() > - * (which is the only routine that calls it). When this happens, > - * ieee80211_ioctl() ends up consuming an additional 2K of stack > - * space. (Exactly why it needs so much is unclear.) The problem > - * is that it's possible for ieee80211_ioctl() to invoke other > - * routines (including driver init functions) which could then find > - * themselves perilously close to exhausting the stack. > - * > - * To avoid this, we deliberately prevent gcc from inlining this > - * routine. Another way to avoid this is to use less agressive > - * optimization when compiling this file (i.e. -O instead of -O2) > - * but special-casing the compilation of this one module in the > - * build system would be awkward. > - */ Even with -O1 -mtune=i386 -fno-inline-functions-called-once, gcc-4.2.1 still breaks debugging of static functions by using a different calling convention for them. The first couple of args are passed in registers. This breaks ddb stack traces on i386 not quite as badly as they have always been broken on amd64. (ddb cannot determine the number of args or where they are on amd64, and used to print 5 words of stack garbage. On i386, the args list is still printed and is almost as confusing as garbage, since it is correct for extern functions but for static functions it starts at about the third arg). I use __attribute__((__regparm(0))) to unbreak the ABI for a few functions designed to be called from within ddb as well as the main code. Some older functions like inb_() with this desgn still work accidentally because they are extern. I haven't figured out the command-line flag to fix this yet. Maybe just -mregparm. I didn't try hard to fix this since I was working on optimizations more than debugging when I added the attribute. Inlining really should reduce stack usage and thus be an optimization that is actually useful for kernels. Compilers are clueless about optimizations that are useful for kernels. -Os should help, but is very broken in gcc-4.2.1 (it fails to compile some files due to hitting inlining limits, and after working around this, gives a negative optimization for space of about 30%). -Os works OK for clang -- it reduces the space a little and the time by almost as much as -O2. But optimizations like clang -O2 -march=native are less than 10% faster than pessimizations like gcc-old -O1 -mtune=i386 -fno-inline-functions-called-once -fno-unit-at-a-time in kernels, in micro-benchmarks that are favourable to the optimizations. More like 1% for normal use. (-fno-unit-at-a-time should reduce opportunities for inlining static functions if -fno-inline-functions-called-once doesn't work, but is also broken (not supported) in clang.) Optimizations larger than 1% can possibly be obtained by using compiler builtins, but compiler builtins are turned off by -ffreestanding. I no longer bother to turn some like __builtin_memcpy() back on. Bruce From owner-svn-src-all@freebsd.org Mon Jan 25 08:12:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 43D8EA45A33; Mon, 25 Jan 2016 08:12:45 +0000 (UTC) (envelope-from kevlo@ns.kevlo.org) Received: from ns.kevlo.org (220-135-115-6.HINET-IP.hinet.net [220.135.115.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "ns.kevlo.org", Issuer "ns.kevlo.org" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id E8D8B69A; Mon, 25 Jan 2016 08:12:44 +0000 (UTC) (envelope-from kevlo@ns.kevlo.org) Received: from ns.kevlo.org (localhost [127.0.0.1]) by ns.kevlo.org (8.14.9/8.14.9) with ESMTP id u0P8BRne075016 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 25 Jan 2016 16:11:27 +0800 (CST) (envelope-from kevlo@ns.kevlo.org) Received: (from kevlo@localhost) by ns.kevlo.org (8.14.9/8.14.9/Submit) id u0P8BRxm075015; Mon, 25 Jan 2016 16:11:27 +0800 (CST) (envelope-from kevlo) Date: Mon, 25 Jan 2016 16:11:26 +0800 From: Kevin Lo To: Andrew Turner Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294698 - in head/sys/arm: allwinner conf Message-ID: <20160125081126.GA74995@ns.kevlo.org> References: <201601250024.u0P0Ov2w068306@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201601250024.u0P0Ov2w068306@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 08:12:45 -0000 Hi Andrew, The allwinner_machdep.h file seems to be missing. On Mon, Jan 25, 2016 at 12:24:57AM +0000, Andrew Turner wrote: > > Author: andrew > Date: Mon Jan 25 00:24:57 2016 > New Revision: 294698 > URL: https://svnweb.freebsd.org/changeset/base/294698 > > Log: > Update the Allwinner kernels: > * Use the ARM PLATFORM framework > * Use ARM_INTRNG on teh A20 as it has a GICv2 > * Add a method to find which Allwinner SoC we are running on > > Differential Revision: https://reviews.freebsd.org/D5059 > > Added: > head/sys/arm/allwinner/allwinner_machdep.c > - copied, changed from r294697, head/sys/arm/allwinner/a10_machdep.c > Deleted: > head/sys/arm/allwinner/a10_machdep.c > Modified: > head/sys/arm/allwinner/a10_common.c > head/sys/arm/allwinner/files.allwinner > head/sys/arm/conf/A20 > head/sys/arm/conf/CUBIEBOARD > > Modified: head/sys/arm/allwinner/a10_common.c > ============================================================================== > --- head/sys/arm/allwinner/a10_common.c Sun Jan 24 23:35:20 2016 (r294697) > +++ head/sys/arm/allwinner/a10_common.c Mon Jan 25 00:24:57 2016 (r294698) > @@ -42,6 +42,8 @@ struct fdt_fixup_entry fdt_fixup_table[] > { NULL, NULL } > }; > > +#ifndef ARM_INTRNG > + > static int > fdt_aintc_decode_ic(phandle_t node, pcell_t *intr, int *interrupt, int *trig, > int *pol) > @@ -66,3 +68,5 @@ fdt_pic_decode_t fdt_pic_table[] = { > &fdt_aintc_decode_ic, > NULL > }; > + > +#endif /* ARM_INTRNG */ > > Copied and modified: head/sys/arm/allwinner/allwinner_machdep.c (from r294697, head/sys/arm/allwinner/a10_machdep.c) > ============================================================================== > --- head/sys/arm/allwinner/a10_machdep.c Sun Jan 24 23:35:20 2016 (r294697, copy source) > +++ head/sys/arm/allwinner/allwinner_machdep.c Mon Jan 25 00:24:57 2016 (r294698) > @@ -1,5 +1,6 @@ > /*- > * Copyright (c) 2012 Ganbold Tsagaankhuu > + * Copyright (c) 2015-2016 Emmanuel Vadot > * All rights reserved. > * > * This code is derived from software written for Brini by Mark Brinicombe > @@ -45,32 +46,41 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > +#include > > #include > > #include > +#include > > -vm_offset_t > -platform_lastaddr(void) > -{ > +#include "platform_if.h" > > - return (arm_devmap_lastaddr()); > -} > +static u_int soc_type; > +static u_int soc_family; > > -void > -platform_probe_and_attach(void) > +static int > +a10_attach(platform_t plat) > { > + soc_type = ALLWINNERSOC_A10; > + soc_family = ALLWINNERSOC_SUN4I; > + return (0); > } > > -void > -platform_gpio_init(void) > +static int > +a20_attach(platform_t plat) > { > + soc_type = ALLWINNERSOC_A20; > + soc_family = ALLWINNERSOC_SUN7I; > + > + return (0); > } > > -void > -platform_late_init(void) > + > +static vm_offset_t > +allwinner_lastaddr(platform_t plat) > { > + > + return (arm_devmap_lastaddr()); > } > > /* > @@ -83,8 +93,8 @@ platform_late_init(void) > * shouldn't be device-mapped. The original code mapped a 4MB block, but > * perhaps a 1MB block would be more appropriate. > */ > -int > -platform_devmap_init(void) > +static int > +allwinner_devmap_init(platform_t plat) > { > > arm_devmap_add_entry(0x01C00000, 0x00400000); /* 4MB */ > @@ -111,3 +121,34 @@ cpu_reset() > printf("Reset failed!\n"); > while (1); > } > + > +static platform_method_t a10_methods[] = { > + PLATFORMMETHOD(platform_attach, a10_attach), > + PLATFORMMETHOD(platform_lastaddr, allwinner_lastaddr), > + PLATFORMMETHOD(platform_devmap_init, allwinner_devmap_init), > + > + PLATFORMMETHOD_END, > +}; > + > +static platform_method_t a20_methods[] = { > + PLATFORMMETHOD(platform_attach, a20_attach), > + PLATFORMMETHOD(platform_lastaddr, allwinner_lastaddr), > + PLATFORMMETHOD(platform_devmap_init, allwinner_devmap_init), > + > + PLATFORMMETHOD_END, > +}; > + > +u_int > +allwinner_soc_type(void) > +{ > + return (soc_type); > +} > + > +u_int > +allwinner_soc_family(void) > +{ > + return (soc_family); > +} > + > +FDT_PLATFORM_DEF(a10, "a10", 0, "allwinner,sun4i-a10"); > +FDT_PLATFORM_DEF(a20, "a20", 0, "allwinner,sun7i-a20"); > > Modified: head/sys/arm/allwinner/files.allwinner > ============================================================================== > --- head/sys/arm/allwinner/files.allwinner Sun Jan 24 23:35:20 2016 (r294697) > +++ head/sys/arm/allwinner/files.allwinner Mon Jan 25 00:24:57 2016 (r294698) > @@ -6,11 +6,11 @@ arm/allwinner/a10_clk.c standard > arm/allwinner/a10_common.c standard > arm/allwinner/a10_ehci.c optional ehci > arm/allwinner/a10_gpio.c optional gpio > -arm/allwinner/a10_machdep.c standard > arm/allwinner/a10_mmc.c optional mmc > arm/allwinner/a10_sramc.c standard > arm/allwinner/a10_wdog.c standard > arm/allwinner/a20/a20_cpu_cfg.c standard > +arm/allwinner/allwinner_machdep.c standard > arm/allwinner/if_emac.c optional emac > arm/allwinner/timer.c standard > #arm/allwinner/console.c standard > > Modified: head/sys/arm/conf/A20 > ============================================================================== > --- head/sys/arm/conf/A20 Sun Jan 24 23:35:20 2016 (r294697) > +++ head/sys/arm/conf/A20 Mon Jan 25 00:24:57 2016 (r294698) > @@ -23,9 +23,12 @@ ident A20 > include "std.armv6" > include "../allwinner/a20/std.a20" > > +options ARM_INTRNG > + > options HZ=100 > options SCHED_ULE # ULE scheduler > options SMP # Enable multiple cores > +options PLATFORM > > # Debugging for use in -current > makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols > > Modified: head/sys/arm/conf/CUBIEBOARD > ============================================================================== > --- head/sys/arm/conf/CUBIEBOARD Sun Jan 24 23:35:20 2016 (r294697) > +++ head/sys/arm/conf/CUBIEBOARD Mon Jan 25 00:24:57 2016 (r294698) > @@ -26,6 +26,7 @@ include "../allwinner/std.a10" > > options HZ=100 > options SCHED_4BSD # 4BSD scheduler > +options PLATFORM > > # Debugging for use in -current > makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols > > From owner-svn-src-all@freebsd.org Mon Jan 25 08:19:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D760A45D7B; Mon, 25 Jan 2016 08:19:18 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 12B14A34; Mon, 25 Jan 2016 08:19:17 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P8JHo0005940; Mon, 25 Jan 2016 08:19:17 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P8JHO6005939; Mon, 25 Jan 2016 08:19:17 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601250819.u0P8JHO6005939@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Mon, 25 Jan 2016 08:19:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294707 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 08:19:18 -0000 Author: andrew Date: Mon Jan 25 08:19:16 2016 New Revision: 294707 URL: https://svnweb.freebsd.org/changeset/base/294707 Log: Add allwinner_machdep.h, it was missed in r294698. Added: head/sys/arm/allwinner/allwinner_machdep.h (contents, props changed) Added: head/sys/arm/allwinner/allwinner_machdep.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/allwinner/allwinner_machdep.h Mon Jan 25 08:19:16 2016 (r294707) @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2015 Emmanuel Vadot + * All rights reserved. + * + * This code is derived from software written for Brini by Mark Brinicombe + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + * + */ + +#ifndef AW_MACHDEP_H +#define AW_MACHDEP_H + +#define ALLWINNERSOC_A10 0x10000000 +#define ALLWINNERSOC_A13 0x13000000 +#define ALLWINNERSOC_A10S 0x10000001 +#define ALLWINNERSOC_A20 0x20000000 + +#define ALLWINNERSOC_SUN4I 0x40000000 +#define ALLWINNERSOC_SUN5I 0x50000000 +#define ALLWINNERSOC_SUN7I 0x70000000 + +u_int allwinner_soc_type(void); +u_int allwinner_soc_family(void); + +#endif /* AW_MACHDEP_H */ From owner-svn-src-all@freebsd.org Mon Jan 25 08:21:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A578A45F11; Mon, 25 Jan 2016 08:21:33 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id 59A14CF9; Mon, 25 Jan 2016 08:21:33 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from zapp.Home (97e175b7.skybroadband.com [151.225.117.183]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id F0702D78FE; Mon, 25 Jan 2016 08:21:31 +0000 (UTC) Date: Mon, 25 Jan 2016 08:20:44 +0000 From: Andrew Turner To: Kevin Lo Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294698 - in head/sys/arm: allwinner conf Message-ID: <20160125082044.118f8a2b@zapp.Home> In-Reply-To: <20160125081126.GA74995@ns.kevlo.org> References: <201601250024.u0P0Ov2w068306@repo.freebsd.org> <20160125081126.GA74995@ns.kevlo.org> X-Mailer: Claws Mail 3.13.1 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 08:21:33 -0000 On Mon, 25 Jan 2016 16:11:26 +0800 Kevin Lo wrote: > Hi Andrew, > > The allwinner_machdep.h file seems to be missing. > Fixed in r294707. Andrew From owner-svn-src-all@freebsd.org Mon Jan 25 09:19:30 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 856ECA310FF; Mon, 25 Jan 2016 09:19:30 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from mail.made4.biz (mail.made4.biz [IPv6:2001:41d0:2:c018::1:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 522C97B6; Mon, 25 Jan 2016 09:19:30 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from [176.158.145.63] (helo=magellan.dumbbell.fr) by mail.made4.biz with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aNdJ1-000AJs-Kg; Mon, 25 Jan 2016 10:19:27 +0100 Subject: Re: svn commit: r293857 - stable/10/sys/dev/drm2/i915 To: Slawa Olhovchenkov References: <201601132156.u0DLunQs020854@repo.freebsd.org> <20160123162617.GL37895@zxy.spb.ru> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org From: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= Message-ID: <56A5E89A.3050106@FreeBSD.org> Date: Mon, 25 Jan 2016 10:19:22 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160123162617.GL37895@zxy.spb.ru> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="fAcmc9DEHNLsEeVB82mCLLgC0eBN5cOdi" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 09:19:30 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --fAcmc9DEHNLsEeVB82mCLLgC0eBN5cOdi Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 23/01/2016 17:26, Slawa Olhovchenkov wrote: > Accelerating still not workin on 915GM. Hi! Is this a regression? Ie. was it working a year ago? Unfortunately, I won't have time to work on this. I need to focus on the i915 update. Hopefully, it will fix this issue at the same time. Speaking of it, could you please test it? https://wiki.freebsd.org/Graphics/Update%20i915%20GPU%20driver%20to%20Lin= ux%203.8 --=20 Jean-S=C3=A9bastien P=C3=A9dron --fAcmc9DEHNLsEeVB82mCLLgC0eBN5cOdi Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJWpeiaXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2NzA4N0ZEMUFFQUUwRTEyREJDNkE2RjAz OUU5OTc2MUE1RkQ5NENDAAoJEDnpl2Gl/ZTMG5AP/RK1YX3O2hVhWHMLOaw4tQ4Y sruGOeqAlw5LBXLBPATUDnO8ALJyWnVkmEULAg9BlAdAmDlREGK01bYOy9YF/5mT PKo6SwKes0gRVs0f1X7bjup+ZsvE+oOdQabu86U/IWvh4+RJ+MWHDK4Yu3fUolZl ynO/Z2KIhnECCfBwlnRVGULW3gWzrkUYdu4Cr3FIuE6cCJIp9WXXvwZr3F+TFCuE iA3e+RqzveTXKqu08SXuXkH3DvQUrG4STkaYYRaZTxWlAtblhK7cfusJd25NBPjY cwX+0KtKi3tHj08AExrdQjsfZwu5JRkj+cL1/zE3czvmMugB8IG7A58c33LiAylQ kEiB4xTl1kqMBBuexmoTIKNuQFds3qc8DKFBcmu4rmVDkZMBc8n8LuoZyp0s6Nxx 1Wptk6MadiK2qsaXOnY7n68QoIzpE+stlOAcRFTZ9DGg5gxA4UG7DxKUxzuofp3r 3ChKWo4urDNdC5a/MmOjBJKTSNvKP19KZIXfL05/t4CQRfkcShK585P0w1rIE9Wg nWz6A7LRRLvSq7IHewG8zdyOemz19m8MmpWpJ9PxVbgV1TqE+X55hpw+Lo623IwI 71b28wN20ujU1jHsQ4qnM5xgsxMH9bi2TptE0v65EM/qcyVFfEq46MV2VCSgKssw 0UJwFUKUo/DSEgd05+Rc =YdH/ -----END PGP SIGNATURE----- --fAcmc9DEHNLsEeVB82mCLLgC0eBN5cOdi-- From owner-svn-src-all@freebsd.org Mon Jan 25 09:26:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59CBFA3163A; Mon, 25 Jan 2016 09:26:25 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31253C89; Mon, 25 Jan 2016 09:26:25 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P9QO7W026536; Mon, 25 Jan 2016 09:26:24 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P9QODW026534; Mon, 25 Jan 2016 09:26:24 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601250926.u0P9QODW026534@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 09:26:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294708 - stable/10/sys/dev/iscsi X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 09:26:25 -0000 Author: smh Date: Mon Jan 25 09:26:23 2016 New Revision: 294708 URL: https://svnweb.freebsd.org/changeset/base/294708 Log: MFC r291911, r293659: Fix panic on shutdown due to iscsi event priority. Close iSCSI sessions on shutdown. Sponsored by: Multiplay Modified: stable/10/sys/dev/iscsi/iscsi.c stable/10/sys/dev/iscsi/iscsi.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/iscsi/iscsi.c ============================================================================== --- stable/10/sys/dev/iscsi/iscsi.c Mon Jan 25 08:19:16 2016 (r294707) +++ stable/10/sys/dev/iscsi/iscsi.c Mon Jan 25 09:26:23 2016 (r294708) @@ -102,6 +102,9 @@ static int fail_on_disconnection = 0; TUNABLE_INT("kern.iscsi.fail_on_disconnection", &fail_on_disconnection); SYSCTL_INT(_kern_iscsi, OID_AUTO, fail_on_disconnection, CTLFLAG_RWTUN, &fail_on_disconnection, 0, "Destroy CAM SIM on connection failure"); +static int fail_on_shutdown = 1; +SYSCTL_INT(_kern_iscsi, OID_AUTO, fail_on_shutdown, CTLFLAG_RWTUN, + &fail_on_shutdown, 0, "Fail disconnected sessions on shutdown"); static MALLOC_DEFINE(M_ISCSI, "iSCSI", "iSCSI initiator"); static uma_zone_t iscsi_outstanding_zone; @@ -421,8 +424,6 @@ iscsi_maintenance_thread_terminate(struc sc = is->is_softc; sx_xlock(&sc->sc_lock); - TAILQ_REMOVE(&sc->sc_sessions, is, is_next); - sx_xunlock(&sc->sc_lock); icl_conn_close(is->is_conn); callout_drain(&is->is_callout); @@ -454,6 +455,9 @@ iscsi_maintenance_thread_terminate(struc #ifdef ICL_KERNEL_PROXY cv_destroy(&is->is_login_cv); #endif + TAILQ_REMOVE(&sc->sc_sessions, is, is_next); + sx_xunlock(&sc->sc_lock); + ISCSI_SESSION_DEBUG(is, "terminated"); free(is, M_ISCSI); @@ -477,12 +481,7 @@ iscsi_maintenance_thread(void *arg) STAILQ_EMPTY(&is->is_postponed)) cv_wait(&is->is_maintenance_cv, &is->is_lock); - if (is->is_reconnecting) { - ISCSI_SESSION_UNLOCK(is); - iscsi_maintenance_thread_reconnect(is); - continue; - } - + /* Terminate supersedes reconnect. */ if (is->is_terminating) { ISCSI_SESSION_UNLOCK(is); iscsi_maintenance_thread_terminate(is); @@ -490,6 +489,12 @@ iscsi_maintenance_thread(void *arg) return; } + if (is->is_reconnecting) { + ISCSI_SESSION_UNLOCK(is); + iscsi_maintenance_thread_reconnect(is); + continue; + } + iscsi_session_send_postponed(is); ISCSI_SESSION_UNLOCK(is); } @@ -609,6 +614,11 @@ iscsi_callout(void *context) return; out: + if (is->is_terminating) { + ISCSI_SESSION_UNLOCK(is); + return; + } + ISCSI_SESSION_UNLOCK(is); if (reconnect_needed) @@ -2320,30 +2330,62 @@ iscsi_poll(struct cam_sim *sim) } static void -iscsi_shutdown(struct iscsi_softc *sc) +iscsi_terminate_sessions(struct iscsi_softc *sc) { struct iscsi_session *is; - /* - * Trying to reconnect during system shutdown would lead to hang. - */ - fail_on_disconnection = 1; + sx_slock(&sc->sc_lock); + TAILQ_FOREACH(is, &sc->sc_sessions, is_next) + iscsi_session_terminate(is); + while(!TAILQ_EMPTY(&sc->sc_sessions)) { + ISCSI_DEBUG("waiting for sessions to terminate"); + cv_wait(&sc->sc_cv, &sc->sc_lock); + } + ISCSI_DEBUG("all sessions terminated"); + sx_sunlock(&sc->sc_lock); +} + +static void +iscsi_shutdown_pre(struct iscsi_softc *sc) +{ + struct iscsi_session *is; + + if (!fail_on_shutdown) + return; /* * If we have any sessions waiting for reconnection, request * maintenance thread to fail them immediately instead of waiting * for reconnect timeout. + * + * This prevents LUNs with mounted filesystems that are supported + * by disconnected iSCSI sessions from hanging, however it will + * fail all queued BIOs. */ + ISCSI_DEBUG("forcing failing all disconnected sessions due to shutdown"); + + fail_on_disconnection = 1; + sx_slock(&sc->sc_lock); TAILQ_FOREACH(is, &sc->sc_sessions, is_next) { ISCSI_SESSION_LOCK(is); - if (is->is_waiting_for_iscsid) + if (!is->is_connected) { + ISCSI_SESSION_DEBUG(is, "force failing disconnected session early"); iscsi_session_reconnect(is); + } ISCSI_SESSION_UNLOCK(is); } sx_sunlock(&sc->sc_lock); } +static void +iscsi_shutdown_post(struct iscsi_softc *sc) +{ + + ISCSI_DEBUG("removing all sessions due to shutdown"); + iscsi_terminate_sessions(sc); +} + static int iscsi_load(void) { @@ -2366,8 +2408,16 @@ iscsi_load(void) } sc->sc_cdev->si_drv1 = sc; - sc->sc_shutdown_eh = EVENTHANDLER_REGISTER(shutdown_pre_sync, - iscsi_shutdown, sc, SHUTDOWN_PRI_FIRST); + sc->sc_shutdown_pre_eh = EVENTHANDLER_REGISTER(shutdown_pre_sync, + iscsi_shutdown_pre, sc, SHUTDOWN_PRI_FIRST); + /* + * shutdown_post_sync needs to run after filesystem shutdown and before + * CAM shutdown - otherwise when rebooting with an iSCSI session that is + * disconnected but has outstanding requests, dashutdown() will hang on + * cam_periph_runccb(). + */ + sc->sc_shutdown_post_eh = EVENTHANDLER_REGISTER(shutdown_post_sync, + iscsi_shutdown_post, sc, SHUTDOWN_PRI_DEFAULT - 1); return (0); } @@ -2375,7 +2425,6 @@ iscsi_load(void) static int iscsi_unload(void) { - struct iscsi_session *is, *tmp; if (sc->sc_cdev != NULL) { ISCSI_DEBUG("removing device node"); @@ -2383,18 +2432,12 @@ iscsi_unload(void) ISCSI_DEBUG("device node removed"); } - if (sc->sc_shutdown_eh != NULL) - EVENTHANDLER_DEREGISTER(shutdown_pre_sync, sc->sc_shutdown_eh); + if (sc->sc_shutdown_pre_eh != NULL) + EVENTHANDLER_DEREGISTER(shutdown_pre_sync, sc->sc_shutdown_pre_eh); + if (sc->sc_shutdown_post_eh != NULL) + EVENTHANDLER_DEREGISTER(shutdown_post_sync, sc->sc_shutdown_post_eh); - sx_slock(&sc->sc_lock); - TAILQ_FOREACH_SAFE(is, &sc->sc_sessions, is_next, tmp) - iscsi_session_terminate(is); - while(!TAILQ_EMPTY(&sc->sc_sessions)) { - ISCSI_DEBUG("waiting for sessions to terminate"); - cv_wait(&sc->sc_cv, &sc->sc_lock); - } - ISCSI_DEBUG("all sessions terminated"); - sx_sunlock(&sc->sc_lock); + iscsi_terminate_sessions(sc); uma_zdestroy(iscsi_outstanding_zone); sx_destroy(&sc->sc_lock); Modified: stable/10/sys/dev/iscsi/iscsi.h ============================================================================== --- stable/10/sys/dev/iscsi/iscsi.h Mon Jan 25 08:19:16 2016 (r294707) +++ stable/10/sys/dev/iscsi/iscsi.h Mon Jan 25 09:26:23 2016 (r294708) @@ -130,7 +130,8 @@ struct iscsi_softc { TAILQ_HEAD(, iscsi_session) sc_sessions; struct cv sc_cv; unsigned int sc_last_session_id; - eventhandler_tag sc_shutdown_eh; + eventhandler_tag sc_shutdown_pre_eh; + eventhandler_tag sc_shutdown_post_eh; }; #endif /* !ISCSI_H */ From owner-svn-src-all@freebsd.org Mon Jan 25 09:29:30 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DEE87A31752; Mon, 25 Jan 2016 09:29:30 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95153E12; Mon, 25 Jan 2016 09:29:30 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P9TTce026684; Mon, 25 Jan 2016 09:29:29 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P9TTZH026683; Mon, 25 Jan 2016 09:29:29 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601250929.u0P9TTZH026683@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 09:29:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294709 - stable/10/sys/geom/multipath X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 09:29:31 -0000 Author: smh Date: Mon Jan 25 09:29:29 2016 New Revision: 294709 URL: https://svnweb.freebsd.org/changeset/base/294709 Log: MFC r292289: Prevent g_access calls to bad multipath members Sponsored by: Multiplay Modified: stable/10/sys/geom/multipath/g_multipath.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/geom/multipath/g_multipath.c ============================================================================== --- stable/10/sys/geom/multipath/g_multipath.c Mon Jan 25 09:26:23 2016 (r294708) +++ stable/10/sys/geom/multipath/g_multipath.c Mon Jan 25 09:29:29 2016 (r294709) @@ -107,8 +107,9 @@ struct g_class g_multipath_class = { #define MP_NEW 0x00000004 #define MP_POSTED 0x00000008 #define MP_BAD (MP_FAIL | MP_LOST | MP_NEW) -#define MP_IDLE 0x00000010 -#define MP_IDLE_MASK 0xfffffff0 +#define MP_WITHER 0x00000010 +#define MP_IDLE 0x00000020 +#define MP_IDLE_MASK 0xffffffe0 static int g_multipath_good(struct g_geom *gp) @@ -204,6 +205,7 @@ g_mpd(void *arg, int flags __unused) g_access(cp, -cp->acr, -cp->acw, -cp->ace); if (w > 0 && cp->provider != NULL && (cp->provider->geom->flags & G_GEOM_WITHER) == 0) { + cp->index |= MP_WITHER; g_post_event(g_mpd, cp, M_WAITOK, NULL); return; } @@ -467,23 +469,37 @@ g_multipath_access(struct g_provider *pp gp = pp->geom; + /* Error used if we have no valid consumers. */ + error = ENXIO; + LIST_FOREACH(cp, &gp->consumer, consumer) { + if (cp->index & MP_WITHER) + continue; + error = g_access(cp, dr, dw, de); if (error) { badcp = cp; goto fail; } } + + if (error != 0) + return (error); + sc = gp->softc; sc->sc_opened += dr + dw + de; if (sc->sc_stopping && sc->sc_opened == 0) g_multipath_destroy(gp); + return (0); fail: LIST_FOREACH(cp, &gp->consumer, consumer) { if (cp == badcp) break; + if (cp->index & MP_WITHER) + continue; + (void) g_access(cp, -dr, -dw, -de); } return (error); From owner-svn-src-all@freebsd.org Mon Jan 25 09:31:34 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C96EA31A90; Mon, 25 Jan 2016 09:31:34 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DEAA2F7; Mon, 25 Jan 2016 09:31:33 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P9VWBU028756; Mon, 25 Jan 2016 09:31:32 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P9VWD1028755; Mon, 25 Jan 2016 09:31:32 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201601250931.u0P9VWD1028755@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Mon, 25 Jan 2016 09:31:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294710 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 09:31:34 -0000 Author: melifaro Date: Mon Jan 25 09:31:32 2016 New Revision: 294710 URL: https://svnweb.freebsd.org/changeset/base/294710 Log: Fix flowtable part missed in r294706. Modified: head/sys/net/route.c Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Mon Jan 25 09:29:29 2016 (r294709) +++ head/sys/net/route.c Mon Jan 25 09:31:32 2016 (r294710) @@ -1482,7 +1482,7 @@ rt_flowtable_check_route(struct rib_head case AF_INET: #endif #if defined(INET6) || defined(INET) - rn = rnh->rnh_matchaddr(dst, rnh); + rn = rnh->rnh_matchaddr(dst, &rnh->head); if (rn && ((rn->rn_flags & RNF_ROOT) == 0)) { struct sockaddr *mask; u_char *m, *n; From owner-svn-src-all@freebsd.org Mon Jan 25 09:40:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D7ECA31D0C; Mon, 25 Jan 2016 09:40:27 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7167C770; Mon, 25 Jan 2016 09:40:27 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0P9eQUj029828; Mon, 25 Jan 2016 09:40:26 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0P9eQTj029824; Mon, 25 Jan 2016 09:40:26 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601250940.u0P9eQTj029824@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 09:40:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294711 - in stable/10/sys/dev: nvd nvme X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 09:40:27 -0000 Author: smh Date: Mon Jan 25 09:40:25 2016 New Revision: 294711 URL: https://svnweb.freebsd.org/changeset/base/294711 Log: MFC r292074: Limit stripesize reported from nvd(4) to 4K Sponsored by: Multiplay Modified: stable/10/sys/dev/nvd/nvd.c stable/10/sys/dev/nvme/nvme.h stable/10/sys/dev/nvme/nvme_ns.c stable/10/sys/dev/nvme/nvme_sysctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/nvd/nvd.c ============================================================================== --- stable/10/sys/dev/nvd/nvd.c Mon Jan 25 09:31:32 2016 (r294710) +++ stable/10/sys/dev/nvd/nvd.c Mon Jan 25 09:40:25 2016 (r294711) @@ -295,7 +295,7 @@ nvd_new_disk(struct nvme_namespace *ns, disk->d_sectorsize = nvme_ns_get_sector_size(ns); disk->d_mediasize = (off_t)nvme_ns_get_size(ns); disk->d_delmaxsize = (off_t)nvme_ns_get_size(ns); - disk->d_stripesize = nvme_ns_get_stripesize(ns); + disk->d_stripesize = nvme_ns_get_optimal_sector_size(ns); if (TAILQ_EMPTY(&disk_head)) disk->d_unit = 0; Modified: stable/10/sys/dev/nvme/nvme.h ============================================================================== --- stable/10/sys/dev/nvme/nvme.h Mon Jan 25 09:31:32 2016 (r294710) +++ stable/10/sys/dev/nvme/nvme.h Mon Jan 25 09:40:25 2016 (r294711) @@ -870,6 +870,7 @@ const char * nvme_ns_get_serial_number(s const char * nvme_ns_get_model_number(struct nvme_namespace *ns); const struct nvme_namespace_data * nvme_ns_get_data(struct nvme_namespace *ns); +uint32_t nvme_ns_get_optimal_sector_size(struct nvme_namespace *ns); uint32_t nvme_ns_get_stripesize(struct nvme_namespace *ns); int nvme_ns_bio_process(struct nvme_namespace *ns, struct bio *bp, Modified: stable/10/sys/dev/nvme/nvme_ns.c ============================================================================== --- stable/10/sys/dev/nvme/nvme_ns.c Mon Jan 25 09:31:32 2016 (r294710) +++ stable/10/sys/dev/nvme/nvme_ns.c Mon Jan 25 09:40:25 2016 (r294711) @@ -45,6 +45,8 @@ __FBSDID("$FreeBSD$"); #include "nvme_private.h" +extern int nvme_max_optimal_sectorsize; + static void nvme_bio_child_inbed(struct bio *parent, int bio_error); static void nvme_bio_child_done(void *arg, const struct nvme_completion *cpl); @@ -217,6 +219,22 @@ nvme_ns_get_stripesize(struct nvme_names return (ns->stripesize); } +uint32_t +nvme_ns_get_optimal_sector_size(struct nvme_namespace *ns) +{ + uint32_t stripesize; + + stripesize = nvme_ns_get_stripesize(ns); + + if (stripesize == 0) + return nvme_ns_get_sector_size(ns); + + if (nvme_max_optimal_sectorsize == 0) + return (stripesize); + + return (MIN(stripesize, nvme_max_optimal_sectorsize)); +} + static void nvme_ns_bio_done(void *arg, const struct nvme_completion *status) { Modified: stable/10/sys/dev/nvme/nvme_sysctl.c ============================================================================== --- stable/10/sys/dev/nvme/nvme_sysctl.c Mon Jan 25 09:31:32 2016 (r294710) +++ stable/10/sys/dev/nvme/nvme_sysctl.c Mon Jan 25 09:40:25 2016 (r294711) @@ -33,6 +33,22 @@ __FBSDID("$FreeBSD$"); #include "nvme_private.h" +SYSCTL_NODE(_kern, OID_AUTO, nvme, CTLFLAG_RD, 0, "NVM Express"); +/* + * Intel NVMe controllers have a slow path for I/Os that span a 128KB + * stripe boundary but ZFS limits ashift, which is derived from + * d_stripesize, to 13 (8KB) so we limit the stripesize reported to + * geom(8) to 4KB by default. + * + * This may result in a small number of additional I/Os to require + * splitting in nvme(4), however the NVMe I/O path is very efficient + * so these additional I/Os will cause very minimal (if any) difference + * in performance or CPU utilisation. + */ +int nvme_max_optimal_sectorsize = 1<<12; +SYSCTL_INT(_kern_nvme, OID_AUTO, max_optimal_sectorsize, CTLFLAG_RWTUN, + &nvme_max_optimal_sectorsize, 0, "The maximum optimal sectorsize reported"); + /* * CTLTYPE_S64 and sysctl_handle_64 were added in r217616. Define these * explicitly here for older kernels that don't include the r217616 From owner-svn-src-all@freebsd.org Mon Jan 25 10:06:51 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2924AA458DA; Mon, 25 Jan 2016 10:06:51 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 057C4390; Mon, 25 Jan 2016 10:06:50 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PA6ohf038732; Mon, 25 Jan 2016 10:06:50 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PA6ovK038731; Mon, 25 Jan 2016 10:06:50 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201601251006.u0PA6ovK038731@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Mon, 25 Jan 2016 10:06:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294712 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:06:51 -0000 Author: melifaro Date: Mon Jan 25 10:06:49 2016 New Revision: 294712 URL: https://svnweb.freebsd.org/changeset/base/294712 Log: Convert TCP mtu checks to the new routing KPI. Modified: head/sys/netinet/tcp_subr.c Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Mon Jan 25 09:40:25 2016 (r294711) +++ head/sys/netinet/tcp_subr.c Mon Jan 25 10:06:49 2016 (r294712) @@ -69,6 +69,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -78,6 +79,7 @@ __FBSDID("$FreeBSD$"); #include #ifdef INET6 #include +#include #include #include #include @@ -2205,27 +2207,20 @@ tcp_mtudisc(struct inpcb *inp, int mtuof u_long tcp_maxmtu(struct in_conninfo *inc, struct tcp_ifcap *cap) { - struct route sro; - struct sockaddr_in *dst; + struct nhop4_extended nh4; struct ifnet *ifp; u_long maxmtu = 0; KASSERT(inc != NULL, ("tcp_maxmtu with NULL in_conninfo pointer")); - bzero(&sro, sizeof(sro)); if (inc->inc_faddr.s_addr != INADDR_ANY) { - dst = (struct sockaddr_in *)&sro.ro_dst; - dst->sin_family = AF_INET; - dst->sin_len = sizeof(*dst); - dst->sin_addr = inc->inc_faddr; - in_rtalloc_ign(&sro, 0, inc->inc_fibnum); - } - if (sro.ro_rt != NULL) { - ifp = sro.ro_rt->rt_ifp; - if (sro.ro_rt->rt_mtu == 0) - maxmtu = ifp->if_mtu; - else - maxmtu = min(sro.ro_rt->rt_mtu, ifp->if_mtu); + + if (fib4_lookup_nh_ext(inc->inc_fibnum, inc->inc_faddr, + NHR_REF, 0, &nh4) != 0) + return (0); + + ifp = nh4.nh_ifp; + maxmtu = nh4.nh_mtu; /* Report additional interface capabilities. */ if (cap != NULL) { @@ -2237,7 +2232,7 @@ tcp_maxmtu(struct in_conninfo *inc, stru cap->tsomaxsegsize = ifp->if_hw_tsomaxsegsize; } } - RTFREE(sro.ro_rt); + fib4_free_nh_ext(inc->inc_fibnum, &nh4); } return (maxmtu); } @@ -2247,26 +2242,22 @@ tcp_maxmtu(struct in_conninfo *inc, stru u_long tcp_maxmtu6(struct in_conninfo *inc, struct tcp_ifcap *cap) { - struct route_in6 sro6; + struct nhop6_extended nh6; + struct in6_addr dst6; + uint32_t scopeid; struct ifnet *ifp; u_long maxmtu = 0; KASSERT(inc != NULL, ("tcp_maxmtu6 with NULL in_conninfo pointer")); - bzero(&sro6, sizeof(sro6)); if (!IN6_IS_ADDR_UNSPECIFIED(&inc->inc6_faddr)) { - sro6.ro_dst.sin6_family = AF_INET6; - sro6.ro_dst.sin6_len = sizeof(struct sockaddr_in6); - sro6.ro_dst.sin6_addr = inc->inc6_faddr; - in6_rtalloc_ign(&sro6, 0, inc->inc_fibnum); - } - if (sro6.ro_rt != NULL) { - ifp = sro6.ro_rt->rt_ifp; - if (sro6.ro_rt->rt_mtu == 0) - maxmtu = IN6_LINKMTU(sro6.ro_rt->rt_ifp); - else - maxmtu = min(sro6.ro_rt->rt_mtu, - IN6_LINKMTU(sro6.ro_rt->rt_ifp)); + in6_splitscope(&inc->inc6_faddr, &dst6, &scopeid); + if (fib6_lookup_nh_ext(inc->inc_fibnum, &dst6, scopeid, 0, + 0, &nh6) != 0) + return (0); + + ifp = nh6.nh_ifp; + maxmtu = nh6.nh_mtu; /* Report additional interface capabilities. */ if (cap != NULL) { @@ -2278,7 +2269,7 @@ tcp_maxmtu6(struct in_conninfo *inc, str cap->tsomaxsegsize = ifp->if_hw_tsomaxsegsize; } } - RTFREE(sro6.ro_rt); + fib6_free_nh_ext(inc->inc_fibnum, &nh6); } return (maxmtu); From owner-svn-src-all@freebsd.org Mon Jan 25 10:18:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 02908A45E0E; Mon, 25 Jan 2016 10:18:43 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C905DD77; Mon, 25 Jan 2016 10:18:42 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PAIfVg041964; Mon, 25 Jan 2016 10:18:41 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PAIfIn041963; Mon, 25 Jan 2016 10:18:41 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601251018.u0PAIfIn041963@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Mon, 25 Jan 2016 10:18:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294713 - head/cddl/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:18:43 -0000 Author: br Date: Mon Jan 25 10:18:41 2016 New Revision: 294713 URL: https://svnweb.freebsd.org/changeset/base/294713 Log: We don't support libdtrace for RISC-V yet. Modified: head/cddl/lib/Makefile Modified: head/cddl/lib/Makefile ============================================================================== --- head/cddl/lib/Makefile Mon Jan 25 10:06:49 2016 (r294712) +++ head/cddl/lib/Makefile Mon Jan 25 10:18:41 2016 (r294713) @@ -26,7 +26,7 @@ _libzpool= libzpool .endif .endif -.if ${MACHINE_CPUARCH} != "sparc64" +.if ${MACHINE_CPUARCH} != "sparc64" && ${MACHINE_CPUARCH} != "riscv" _drti= drti _libdtrace= libdtrace .endif From owner-svn-src-all@freebsd.org Mon Jan 25 10:23:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2EECCA451AA; Mon, 25 Jan 2016 10:23:38 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F3D78319; Mon, 25 Jan 2016 10:23:37 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PANadL044733; Mon, 25 Jan 2016 10:23:36 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PANa80044732; Mon, 25 Jan 2016 10:23:36 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601251023.u0PANa80044732@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Mon, 25 Jan 2016 10:23:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294714 - head/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:23:38 -0000 Author: br Date: Mon Jan 25 10:23:36 2016 New Revision: 294714 URL: https://svnweb.freebsd.org/changeset/base/294714 Log: Do build libproc and librtld_db for RISC-V as well. Modified: head/lib/Makefile Modified: head/lib/Makefile ============================================================================== --- head/lib/Makefile Mon Jan 25 10:18:41 2016 (r294713) +++ head/lib/Makefile Mon Jan 25 10:23:36 2016 (r294714) @@ -264,7 +264,7 @@ _libproc= libproc _librtld_db= librtld_db .endif -.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" +.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "riscv" _libproc= libproc _librtld_db= librtld_db .endif From owner-svn-src-all@freebsd.org Mon Jan 25 10:41:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2BF1FA457E1; Mon, 25 Jan 2016 10:41:25 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 043B0B18; Mon, 25 Jan 2016 10:41:24 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PAfOCT047948; Mon, 25 Jan 2016 10:41:24 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PAfN0V047945; Mon, 25 Jan 2016 10:41:23 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601251041.u0PAfN0V047945@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 10:41:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294715 - in stable/10/sys/boot/efi/include: amd64 i386 ia64 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:41:25 -0000 Author: smh Date: Mon Jan 25 10:41:23 2016 New Revision: 294715 URL: https://svnweb.freebsd.org/changeset/base/294715 Log: MFC r293268: Fix _MSC_EXTENSIONS checks Sponsored by: Multiplay Modified: stable/10/sys/boot/efi/include/amd64/efibind.h stable/10/sys/boot/efi/include/i386/efibind.h stable/10/sys/boot/efi/include/ia64/efibind.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/efi/include/amd64/efibind.h ============================================================================== --- stable/10/sys/boot/efi/include/amd64/efibind.h Mon Jan 25 10:23:36 2016 (r294714) +++ stable/10/sys/boot/efi/include/amd64/efibind.h Mon Jan 25 10:41:23 2016 (r294715) @@ -39,7 +39,7 @@ Revision History // No ANSI C 1999/2000 stdint.h integer width declarations - #if _MSC_EXTENSIONS + #ifdef _MSC_EXTENSIONS // Use Microsoft C compiler integer width declarations @@ -160,7 +160,7 @@ typedef uint64_t UINTN; #endif #ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options - #if _MSC_EXTENSIONS + #ifdef _MSC_EXTENSIONS #define EFIAPI __cdecl // Force C calling convention for Microsoft C compiler #else #define EFIAPI // Substitute expresion to force C calling convention @@ -261,7 +261,7 @@ typedef uint64_t UINTN; #endif #endif /* __FreeBSD__ */ -#if _MSC_EXTENSIONS +#ifdef _MSC_EXTENSIONS #pragma warning ( disable : 4731 ) // Suppress warnings about modification of EBP #endif Modified: stable/10/sys/boot/efi/include/i386/efibind.h ============================================================================== --- stable/10/sys/boot/efi/include/i386/efibind.h Mon Jan 25 10:23:36 2016 (r294714) +++ stable/10/sys/boot/efi/include/i386/efibind.h Mon Jan 25 10:41:23 2016 (r294715) @@ -39,7 +39,7 @@ Revision History // No ANSI C 1999/2000 stdint.h integer width declarations - #if _MSC_EXTENSIONS + #ifdef _MSC_EXTENSIONS // Use Microsoft C compiler integer width declarations @@ -156,7 +156,7 @@ typedef uint32_t UINTN; // #ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options - #if _MSC_EXTENSIONS + #ifdef _MSC_EXTENSIONS #define EFIAPI __cdecl // Force C calling convention for Microsoft C compiler #else #define EFIAPI // Substitute expresion to force C calling convention @@ -257,7 +257,7 @@ typedef uint32_t UINTN; #endif #endif /* __FreeBSD__ */ -#if _MSC_EXTENSIONS +#ifdef _MSC_EXTENSIONS #pragma warning ( disable : 4731 ) // Suppress warnings about modification of EBP #endif Modified: stable/10/sys/boot/efi/include/ia64/efibind.h ============================================================================== --- stable/10/sys/boot/efi/include/ia64/efibind.h Mon Jan 25 10:23:36 2016 (r294714) +++ stable/10/sys/boot/efi/include/ia64/efibind.h Mon Jan 25 10:41:23 2016 (r294715) @@ -39,7 +39,7 @@ Revision History // No ANSI C 1999/2000 stdint.h integer width declarations - #if _MSC_EXTENSIONS + #ifdef _MSC_EXTENSIONS // Use Microsoft C compiler integer width declarations @@ -159,7 +159,7 @@ typedef uint64_t UINTN; // #ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options - #if _MSC_EXTENSIONS + #ifdef _MSC_EXTENSIONS #define EFIAPI __cdecl // Force C calling convention for Microsoft C compiler #else #define EFIAPI // Substitute expresion to force C calling convention From owner-svn-src-all@freebsd.org Mon Jan 25 10:43:46 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1282EA4588C; Mon, 25 Jan 2016 10:43:46 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D3D0CDF7; Mon, 25 Jan 2016 10:43:45 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PAhiOi050627; Mon, 25 Jan 2016 10:43:44 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PAhiHM050626; Mon, 25 Jan 2016 10:43:44 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601251043.u0PAhiHM050626@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 10:43:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294716 - stable/10/sys/boot/zfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:43:46 -0000 Author: smh Date: Mon Jan 25 10:43:44 2016 New Revision: 294716 URL: https://svnweb.freebsd.org/changeset/base/294716 Log: MFC r293269: Fix return from zfs_probe_dev Sponsored by: Multiplay Modified: stable/10/sys/boot/zfs/zfs.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/zfs/zfs.c ============================================================================== --- stable/10/sys/boot/zfs/zfs.c Mon Jan 25 10:41:23 2016 (r294715) +++ stable/10/sys/boot/zfs/zfs.c Mon Jan 25 10:43:44 2016 (r294716) @@ -154,7 +154,7 @@ zfs_read(struct open_file *f, void *star n = size; if (fp->f_seekp + n > sb.st_size) n = sb.st_size - fp->f_seekp; - + rc = dnode_read(spa, &fp->f_dnode, fp->f_seekp, start, n); if (rc) return (rc); @@ -507,7 +507,7 @@ zfs_probe_dev(const char *devname, uint6 } } close(pa.fd); - return (0); + return (ret); } /* From owner-svn-src-all@freebsd.org Mon Jan 25 10:44:11 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 87462A458F3; Mon, 25 Jan 2016 10:44:11 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 597C4F45; Mon, 25 Jan 2016 10:44:11 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PAiAwJ050709; Mon, 25 Jan 2016 10:44:10 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PAiAon050708; Mon, 25 Jan 2016 10:44:10 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601251044.u0PAiAon050708@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Mon, 25 Jan 2016 10:44:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294717 - head/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:44:11 -0000 Author: br Date: Mon Jan 25 10:44:10 2016 New Revision: 294717 URL: https://svnweb.freebsd.org/changeset/base/294717 Log: Style. Modified: head/lib/Makefile Modified: head/lib/Makefile ============================================================================== --- head/lib/Makefile Mon Jan 25 10:43:44 2016 (r294716) +++ head/lib/Makefile Mon Jan 25 10:44:10 2016 (r294717) @@ -264,7 +264,8 @@ _libproc= libproc _librtld_db= librtld_db .endif -.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "riscv" +.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" || \ + ${MACHINE_CPUARCH} == "riscv" _libproc= libproc _librtld_db= librtld_db .endif From owner-svn-src-all@freebsd.org Mon Jan 25 10:45:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E7BA2A45982; Mon, 25 Jan 2016 10:45:10 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A723D179; Mon, 25 Jan 2016 10:45:10 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aNedu-0009lS-KY; Mon, 25 Jan 2016 13:45:06 +0300 Date: Mon, 25 Jan 2016 13:45:06 +0300 From: Slawa Olhovchenkov To: =?utf-8?Q?Jean-S=C3=A9bastien_P=C3=A9dron?= Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: Re: svn commit: r293857 - stable/10/sys/dev/drm2/i915 Message-ID: <20160125104506.GV88527@zxy.spb.ru> References: <201601132156.u0DLunQs020854@repo.freebsd.org> <20160123162617.GL37895@zxy.spb.ru> <56A5E89A.3050106@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <56A5E89A.3050106@FreeBSD.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:45:11 -0000 On Mon, Jan 25, 2016 at 10:19:22AM +0100, Jean-Sébastien Pédron wrote: > On 23/01/2016 17:26, Slawa Olhovchenkov wrote: > > Accelerating still not workin on 915GM. > > Hi! > > Is this a regression? Ie. was it working a year ago? Yes. In stable this is break by r282199. > Unfortunately, I won't have time to work on this. I need to focus on the > i915 update. Hopefully, it will fix this issue at the same time. > > Speaking of it, could you please test it? > https://wiki.freebsd.org/Graphics/Update%20i915%20GPU%20driver%20to%20Linux%203.8 This is for -current? From owner-svn-src-all@freebsd.org Mon Jan 25 10:45:20 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 314BBA459B6; Mon, 25 Jan 2016 10:45:20 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 038772E5; Mon, 25 Jan 2016 10:45:19 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PAjJ78050805; Mon, 25 Jan 2016 10:45:19 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PAjJEm050804; Mon, 25 Jan 2016 10:45:19 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601251045.u0PAjJEm050804@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 10:45:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294718 - stable/10/sys/cddl/boot/zfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:45:20 -0000 Author: smh Date: Mon Jan 25 10:45:18 2016 New Revision: 294718 URL: https://svnweb.freebsd.org/changeset/base/294718 Log: MFC r293271: Fix const conversion warning in lz4_decompress Sponsored by: Multiplay Modified: stable/10/sys/cddl/boot/zfs/lz4.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cddl/boot/zfs/lz4.c ============================================================================== --- stable/10/sys/cddl/boot/zfs/lz4.c Mon Jan 25 10:44:10 2016 (r294717) +++ stable/10/sys/cddl/boot/zfs/lz4.c Mon Jan 25 10:45:18 2016 (r294718) @@ -52,7 +52,7 @@ lz4_decompress(void *s_start, void *d_st * Returns 0 on success (decompression function returned non-negative) * and non-zero on failure (decompression function returned negative). */ - return (LZ4_uncompress_unknownOutputSize(s_start + 4, d_start, bufsiz, + return (LZ4_uncompress_unknownOutputSize((const char *)s_start + 4, d_start, bufsiz, d_len) < 0); } From owner-svn-src-all@freebsd.org Mon Jan 25 10:48:59 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4986A45AA0; Mon, 25 Jan 2016 10:48:59 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 759F16C6; Mon, 25 Jan 2016 10:48:59 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PAmw5e050981; Mon, 25 Jan 2016 10:48:58 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PAmwB7050980; Mon, 25 Jan 2016 10:48:58 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601251048.u0PAmwB7050980@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 10:48:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294719 - stable/10/sys/boot/efi/boot1 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:48:59 -0000 Author: smh Date: Mon Jan 25 10:48:58 2016 New Revision: 294719 URL: https://svnweb.freebsd.org/changeset/base/294719 Log: MFC r281059 (by rpaulo): boot1 EFI: reset the screen and select the best mode. Sponsored by: Multiplay Modified: stable/10/sys/boot/efi/boot1/boot1.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/efi/boot1/boot1.c ============================================================================== --- stable/10/sys/boot/efi/boot1/boot1.c Mon Jan 25 10:45:18 2016 (r294718) +++ stable/10/sys/boot/efi/boot1/boot1.c Mon Jan 25 10:48:58 2016 (r294719) @@ -108,11 +108,12 @@ EFI_STATUS efi_main(EFI_HANDLE Ximage, E { EFI_HANDLE handles[128]; EFI_BLOCK_IO *blkio; - UINTN i, nparts = sizeof(handles); + UINTN i, nparts = sizeof(handles), cols, rows, max_dim, best_mode; EFI_STATUS status; EFI_DEVICE_PATH *devpath; EFI_BOOT_SERVICES *BS; EFI_CONSOLE_CONTROL_PROTOCOL *ConsoleControl = NULL; + SIMPLE_TEXT_OUTPUT_INTERFACE *conout = NULL; char *path = _PATH_LOADER; systab = Xsystab; @@ -124,6 +125,26 @@ EFI_STATUS efi_main(EFI_HANDLE Ximage, E if (status == EFI_SUCCESS) (void)ConsoleControl->SetMode(ConsoleControl, EfiConsoleControlScreenText); + /* + * Reset the console and find the best text mode. + */ + conout = systab->ConOut; + conout->Reset(conout, TRUE); + max_dim = best_mode = 0; + for (i = 0; ; i++) { + status = conout->QueryMode(conout, i, + &cols, &rows); + if (EFI_ERROR(status)) + break; + if (cols * rows > max_dim) { + max_dim = cols * rows; + best_mode = i; + } + } + if (max_dim > 0) + conout->SetMode(conout, best_mode); + conout->EnableCursor(conout, TRUE); + conout->ClearScreen(conout); printf(" \n>> FreeBSD EFI boot block\n"); printf(" Loader path: %s\n", path); From owner-svn-src-all@freebsd.org Mon Jan 25 10:50:12 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF9FBA45B42; Mon, 25 Jan 2016 10:50:12 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9CDA3881; Mon, 25 Jan 2016 10:50:12 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PAoBch051094; Mon, 25 Jan 2016 10:50:11 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PAoBvP051092; Mon, 25 Jan 2016 10:50:11 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601251050.u0PAoBvP051092@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 10:50:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294720 - in stable/10/sys/boot/efi: boot1 loader X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:50:12 -0000 Author: smh Date: Mon Jan 25 10:50:11 2016 New Revision: 294720 URL: https://svnweb.freebsd.org/changeset/base/294720 Log: MFC r293274: style(9) fixes for EFI boot Sponsored by: Multiplay Modified: stable/10/sys/boot/efi/boot1/boot1.c stable/10/sys/boot/efi/loader/devicename.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/efi/boot1/boot1.c ============================================================================== --- stable/10/sys/boot/efi/boot1/boot1.c Mon Jan 25 10:48:58 2016 (r294719) +++ stable/10/sys/boot/efi/boot1/boot1.c Mon Jan 25 10:50:11 2016 (r294720) @@ -132,8 +132,7 @@ EFI_STATUS efi_main(EFI_HANDLE Ximage, E conout->Reset(conout, TRUE); max_dim = best_mode = 0; for (i = 0; ; i++) { - status = conout->QueryMode(conout, i, - &cols, &rows); + status = conout->QueryMode(conout, i, &cols, &rows); if (EFI_ERROR(status)) break; if (cols * rows > max_dim) { Modified: stable/10/sys/boot/efi/loader/devicename.c ============================================================================== --- stable/10/sys/boot/efi/loader/devicename.c Mon Jan 25 10:48:58 2016 (r294719) +++ stable/10/sys/boot/efi/loader/devicename.c Mon Jan 25 10:50:11 2016 (r294720) @@ -147,7 +147,7 @@ efi_fmtdev(void *vdev) break; } - return(buf); + return (buf); } /* @@ -161,7 +161,7 @@ efi_setcurrdev(struct env_var *ev, int f rv = efi_parsedev(&ncurr, value, NULL); if (rv != 0) - return(rv); + return (rv); free(ncurr); env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL); From owner-svn-src-all@freebsd.org Mon Jan 25 10:55:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75E77A45D64; Mon, 25 Jan 2016 10:55:42 +0000 (UTC) (envelope-from andriyvos@gmail.com) Received: from mail-lf0-f54.google.com (mail-lf0-f54.google.com [209.85.215.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 08D3BC43; Mon, 25 Jan 2016 10:55:41 +0000 (UTC) (envelope-from andriyvos@gmail.com) Received: by mail-lf0-f54.google.com with SMTP id h129so82720126lfh.3; Mon, 25 Jan 2016 02:55:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:to:subject:references:date:cc :mime-version:content-transfer-encoding:from:message-id:in-reply-to :user-agent; bh=Hhye4qxy2OOfwUz7hRgyWM0NxzYrdZ1eQF7CztFDXXY=; b=Rdd6XbXtzs26bs4paRZItK9qVHuvk8+56PzCe7M+fNogEYdvcktz8EQAeOJoPLqDss pjB3kJ6kZoeIxubhRG1bXIN3D7zdDIXRVPAfRXvSiBjydCe8pCl4nCdPodrm7uESQTO4 lZQyvre8HEjeRyNAN3RCIUQS/n5uokaYhwkOFL4b17CeUbvGM3maH0wdBU6hGT5ZL1Zp vKfNwwj/1rth87rnWg58NF5/CkmCTrn1NvjUSDjxvCL9VMFa3vZTP7hNebS7bdZskEKz te7UKi8XYMN2Ygj2GK6uT4wepPbpTjAi30tOO9QVtAIB4UhKZ/ybRUE0vCzft2F7rDcF Hd/Q== X-Gm-Message-State: AG10YOScHZTz8Hs4NAOF/PPyqpEZkU9QuPkQKd4WzJpdHJadOT1GpaeayllULUUN3AUwbA== X-Received: by 10.25.28.80 with SMTP id c77mr6451236lfc.74.1453719014338; Mon, 25 Jan 2016 02:50:14 -0800 (PST) Received: from localhost ([77.91.171.160]) by smtp.gmail.com with ESMTPSA id mj4sm2643326lbc.19.2016.01.25.02.50.13 (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 25 Jan 2016 02:50:13 -0800 (PST) Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: "Slawa Olhovchenkov" Subject: Re: svn commit: r293857 - stable/10/sys/dev/drm2/i915 References: <201601132156.u0DLunQs020854@repo.freebsd.org> <20160123162617.GL37895@zxy.spb.ru> <56A5E89A.3050106@FreeBSD.org> <20160125104506.GV88527@zxy.spb.ru> Date: Mon, 25 Jan 2016 12:50:12 +0200 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org MIME-Version: 1.0 Content-Transfer-Encoding: Quoted-Printable From: "Andriy Voskoboinyk" Message-ID: In-Reply-To: <20160125104506.GV88527@zxy.spb.ru> User-Agent: Opera Mail/12.16 (FreeBSD) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:55:42 -0000 Mon, 25 Jan 2016 12:45:06 +0200 =D0=B1=D1=83=D0=BB=D0=BE =D0=BD=D0=B0=D0= =BF=D0=B8=D1=81=D0=B0=D0=BD=D0=BE Slawa Olhovchenkov = : Hi! Try to apply https://svnweb.freebsd.org/base?view=3Drevision&revision=3D= 288653 (as for me, head/sys/dev/drm2/i915/i915_dma.c change fixes this) > On Mon, Jan 25, 2016 at 10:19:22AM +0100, Jean-S=C3=A9bastien P=C3=A9d= ron wrote: > >> On 23/01/2016 17:26, Slawa Olhovchenkov wrote: >> > Accelerating still not workin on 915GM. >> >> Hi! >> >> Is this a regression? Ie. was it working a year ago? > > Yes. In stable this is break by r282199. > >> Unfortunately, I won't have time to work on this. I need to focus on = the >> i915 update. Hopefully, it will fix this issue at the same time. >> >> Speaking of it, could you please test it? >> https://wiki.freebsd.org/Graphics/Update%20i915%20GPU%20driver%20to%2= 0Linux%203.8 > > This is for -current? From owner-svn-src-all@freebsd.org Mon Jan 25 10:55:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E85DA45DA3; Mon, 25 Jan 2016 10:55:54 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DFEE3D7E; Mon, 25 Jan 2016 10:55:53 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PAtqtj053916; Mon, 25 Jan 2016 10:55:52 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PAtqtM053913; Mon, 25 Jan 2016 10:55:52 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601251055.u0PAtqtM053913@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 10:55:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294721 - in stable/10/sys/boot: common efi/boot1 powerpc/boot1.chrp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 10:55:54 -0000 Author: smh Date: Mon Jan 25 10:55:52 2016 New Revision: 294721 URL: https://svnweb.freebsd.org/changeset/base/294721 Log: MFC r293461: Remove hidden "Not ufs" printfs from boot code Sponsored by: Multiplay Modified: stable/10/sys/boot/common/ufsread.c stable/10/sys/boot/efi/boot1/boot1.c stable/10/sys/boot/powerpc/boot1.chrp/boot1.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/common/ufsread.c ============================================================================== --- stable/10/sys/boot/common/ufsread.c Mon Jan 25 10:50:11 2016 (r294720) +++ stable/10/sys/boot/common/ufsread.c Mon Jan 25 10:55:52 2016 (r294721) @@ -211,7 +211,6 @@ fsread(ufs_ino_t inode, void *buf, size_ break; } if (sblock_try[n] == -1) { - printf("Not ufs\n"); return -1; } dsk_meta++; Modified: stable/10/sys/boot/efi/boot1/boot1.c ============================================================================== --- stable/10/sys/boot/efi/boot1/boot1.c Mon Jan 25 10:50:11 2016 (r294720) +++ stable/10/sys/boot/efi/boot1/boot1.c Mon Jan 25 10:55:52 2016 (r294721) @@ -249,7 +249,6 @@ fsstat(ufs_ino_t inode) break; } if (sblock_try[n] == -1) { - printf("Not ufs\n"); return -1; } dsk_meta++; Modified: stable/10/sys/boot/powerpc/boot1.chrp/boot1.c ============================================================================== --- stable/10/sys/boot/powerpc/boot1.chrp/boot1.c Mon Jan 25 10:50:11 2016 (r294720) +++ stable/10/sys/boot/powerpc/boot1.chrp/boot1.c Mon Jan 25 10:55:52 2016 (r294721) @@ -564,10 +564,6 @@ printf(const char *fmt, ...) va_list ap; int ret; - /* Don't annoy the user as we probe for partitions */ - if (strcmp(fmt,"Not ufs\n") == 0) - return 0; - va_start(ap, fmt); ret = vprintf(fmt, ap); va_end(ap); From owner-svn-src-all@freebsd.org Mon Jan 25 12:43:09 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0947DA45129; Mon, 25 Jan 2016 12:43:09 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7BBF264; Mon, 25 Jan 2016 12:43:08 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PCh76T089063; Mon, 25 Jan 2016 12:43:07 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PCh7Tw089056; Mon, 25 Jan 2016 12:43:07 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601251243.u0PCh7Tw089056@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Mon, 25 Jan 2016 12:43:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294722 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 12:43:09 -0000 Author: skra Date: Mon Jan 25 12:43:07 2016 New Revision: 294722 URL: https://svnweb.freebsd.org/changeset/base/294722 Log: Create new pmap dump interface for minidump and use it for existing pmap implementations on ARM. This way minidump code can be used without any platform specific modification. Also, this is the last piece missing for ARM_NEW_PMAP. Differential Revision: https://reviews.freebsd.org/D5023 Modified: head/sys/arm/arm/minidump_machdep.c head/sys/arm/arm/pmap-v6-new.c head/sys/arm/arm/pmap-v6.c head/sys/arm/arm/pmap.c head/sys/arm/include/pmap-v6.h head/sys/arm/include/pmap.h head/sys/arm/include/pte.h Modified: head/sys/arm/arm/minidump_machdep.c ============================================================================== --- head/sys/arm/arm/minidump_machdep.c Mon Jan 25 10:55:52 2016 (r294721) +++ head/sys/arm/arm/minidump_machdep.c Mon Jan 25 12:43:07 2016 (r294722) @@ -61,8 +61,6 @@ CTASSERT(sizeof(struct kerneldumpheader) uint32_t *vm_page_dump; int vm_page_dump_size; -#ifndef ARM_NEW_PMAP - static struct kerneldumpheader kdh; static off_t dumplo; @@ -196,8 +194,9 @@ blk_write_cont(struct dumperinfo *di, vm return (0); } -/* A fake page table page, to avoid having to handle both 4K and 2M pages */ -static pt_entry_t fakept[NPTEPG]; +/* A buffer for general use. Its size must be one page at least. */ +static char dumpbuf[PAGE_SIZE]; +CTASSERT(sizeof(dumpbuf) % sizeof(pt2_entry_t) == 0); int minidumpsys(struct dumperinfo *di) @@ -208,9 +207,7 @@ minidumpsys(struct dumperinfo *di) uint32_t bits; uint32_t pa, prev_pa = 0, count = 0; vm_offset_t va; - pd_entry_t *pdp; - pt_entry_t *pt, *ptp; - int i, k, bit, error; + int i, bit, error; char *addr; /* @@ -228,48 +225,11 @@ minidumpsys(struct dumperinfo *di) counter = 0; /* Walk page table pages, set bits in vm_page_dump */ ptesize = 0; - for (va = KERNBASE; va < kernel_vm_end; va += NBPDR) { - /* - * We always write a page, even if it is zero. Each - * page written corresponds to 2MB of space - */ - ptesize += L2_TABLE_SIZE_REAL; - pmap_get_pde_pte(pmap_kernel(), va, &pdp, &ptp); - if (pmap_pde_v(pdp) && pmap_pde_section(pdp)) { - /* This is a section mapping 1M page. */ - pa = (*pdp & L1_S_ADDR_MASK) | (va & ~L1_S_ADDR_MASK); - for (k = 0; k < (L1_S_SIZE / PAGE_SIZE); k++) { - if (is_dumpable(pa)) - dump_add_page(pa); - pa += PAGE_SIZE; - } - continue; - } - if (pmap_pde_v(pdp) && pmap_pde_page(pdp)) { - /* Set bit for each valid page in this 1MB block */ - addr = pmap_kenter_temporary(*pdp & L1_C_ADDR_MASK, 0); - pt = (pt_entry_t*)(addr + - (((uint32_t)*pdp & L1_C_ADDR_MASK) & PAGE_MASK)); - for (k = 0; k < 256; k++) { - if ((pt[k] & L2_TYPE_MASK) == L2_TYPE_L) { - pa = (pt[k] & L2_L_FRAME) | - (va & L2_L_OFFSET); - for (i = 0; i < 16; i++) { - if (is_dumpable(pa)) - dump_add_page(pa); - k++; - pa += PAGE_SIZE; - } - } else if ((pt[k] & L2_TYPE_MASK) == L2_TYPE_S) { - pa = (pt[k] & L2_S_FRAME) | - (va & L2_S_OFFSET); - if (is_dumpable(pa)) - dump_add_page(pa); - } - } - } else { - /* Nothing, we're going to dump a null page */ - } + for (va = KERNBASE; va < kernel_vm_end; va += PAGE_SIZE) { + pa = pmap_dump_kextract(va, NULL); + if (pa != 0 && is_dumpable(pa)) + dump_add_page(pa); + ptesize += sizeof(pt2_entry_t); } /* Calculate dump size. */ @@ -331,9 +291,9 @@ minidumpsys(struct dumperinfo *di) dumplo += sizeof(kdh); /* Dump my header */ - bzero(&fakept, sizeof(fakept)); - bcopy(&mdhdr, &fakept, sizeof(mdhdr)); - error = blk_write(di, (char *)&fakept, 0, PAGE_SIZE); + bzero(dumpbuf, sizeof(dumpbuf)); + bcopy(&mdhdr, dumpbuf, sizeof(mdhdr)); + error = blk_write(di, dumpbuf, 0, PAGE_SIZE); if (error) goto fail; @@ -349,81 +309,21 @@ minidumpsys(struct dumperinfo *di) goto fail; /* Dump kernel page table pages */ - for (va = KERNBASE; va < kernel_vm_end; va += NBPDR) { - /* We always write a page, even if it is zero */ - pmap_get_pde_pte(pmap_kernel(), va, &pdp, &ptp); - - if (pmap_pde_v(pdp) && pmap_pde_section(pdp)) { - if (count) { - error = blk_write_cont(di, prev_pa, - count * L2_TABLE_SIZE_REAL); - if (error) - goto fail; - count = 0; - prev_pa = 0; - } - /* This is a single 2M block. Generate a fake PTP */ - pa = (*pdp & L1_S_ADDR_MASK) | (va & ~L1_S_ADDR_MASK); - for (k = 0; k < (L1_S_SIZE / PAGE_SIZE); k++) { - fakept[k] = L2_S_PROTO | (pa + (k * PAGE_SIZE)) | - L2_S_PROT(PTE_KERNEL, - VM_PROT_READ | VM_PROT_WRITE); - } - error = blk_write(di, (char *)&fakept, 0, - L2_TABLE_SIZE_REAL); - if (error) - goto fail; - /* Flush, in case we reuse fakept in the same block */ - error = blk_flush(di); - if (error) - goto fail; - continue; - } - if (pmap_pde_v(pdp) && pmap_pde_page(pdp)) { - pa = *pdp & L1_C_ADDR_MASK; - if (!count) { - prev_pa = pa; - count++; - } - else { - if (pa == (prev_pa + count * L2_TABLE_SIZE_REAL)) - count++; - else { - error = blk_write_cont(di, prev_pa, - count * L2_TABLE_SIZE_REAL); - if (error) - goto fail; - count = 1; - prev_pa = pa; - } - } - } else { - if (count) { - error = blk_write_cont(di, prev_pa, - count * L2_TABLE_SIZE_REAL); - if (error) - goto fail; - count = 0; - prev_pa = 0; - } - bzero(fakept, sizeof(fakept)); - error = blk_write(di, (char *)&fakept, 0, - L2_TABLE_SIZE_REAL); - if (error) - goto fail; - /* Flush, in case we reuse fakept in the same block */ - error = blk_flush(di); - if (error) + addr = dumpbuf; + for (va = KERNBASE; va < kernel_vm_end; va += PAGE_SIZE) { + pmap_dump_kextract(va, (pt2_entry_t *)addr); + addr += sizeof(pt2_entry_t); + if (addr == dumpbuf + sizeof(dumpbuf)) { + error = blk_write(di, dumpbuf, 0, sizeof(dumpbuf)); + if (error != 0) goto fail; + addr = dumpbuf; } } - - if (count) { - error = blk_write_cont(di, prev_pa, count * L2_TABLE_SIZE_REAL); - if (error) + if (addr != dumpbuf) { + error = blk_write(di, dumpbuf, 0, addr - dumpbuf); + if (error != 0) goto fail; - count = 0; - prev_pa = 0; } /* Dump memory chunks */ @@ -484,17 +384,6 @@ fail: return (0); } -#else /* ARM_NEW_PMAP */ - -int -minidumpsys(struct dumperinfo *di) -{ - - return (0); -} - -#endif - void dump_add_page(vm_paddr_t pa) { Modified: head/sys/arm/arm/pmap-v6-new.c ============================================================================== --- head/sys/arm/arm/pmap-v6-new.c Mon Jan 25 10:55:52 2016 (r294721) +++ head/sys/arm/arm/pmap-v6-new.c Mon Jan 25 12:43:07 2016 (r294722) @@ -1049,6 +1049,36 @@ pmap_kextract(vm_offset_t va) return (pa); } +/* + * Extract from the kernel page table the physical address + * that is mapped by the given virtual address "va". Also + * return L2 page table entry which maps the address. + * + * This is only intended to be used for panic dumps. + */ +vm_paddr_t +pmap_dump_kextract(vm_offset_t va, pt2_entry_t *pte2p) +{ + vm_paddr_t pa; + pt1_entry_t pte1; + pt2_entry_t pte2; + + pte1 = pte1_load(kern_pte1(va)); + if (pte1_is_section(pte1)) { + pa = pte1_pa(pte1) | (va & PTE1_OFFSET); + pte2 = pa | ATTR_TO_L2(pte1) | PTE2_V; + } else if (pte1_is_link(pte1)) { + pte2 = pte2_load(pt2map_entry(va)); + pa = pte2_pa(pte2); + } else { + pte2 = 0; + pa = 0; + } + if (pte2p != NULL) + *pte2p = pte2; + return (pa); +} + /***************************************************************************** * * PMAP second stage initialization and utility functions Modified: head/sys/arm/arm/pmap-v6.c ============================================================================== --- head/sys/arm/arm/pmap-v6.c Mon Jan 25 10:55:52 2016 (r294721) +++ head/sys/arm/arm/pmap-v6.c Mon Jan 25 12:43:07 2016 (r294722) @@ -3536,6 +3536,52 @@ retry: return (m); } +vm_paddr_t +pmap_dump_kextract(vm_offset_t va, pt2_entry_t *pte2p) +{ + struct l2_dtable *l2; + pd_entry_t l1pd; + pt_entry_t *ptep, pte; + vm_paddr_t pa; + u_int l1idx; + + l1idx = L1_IDX(va); + l1pd = kernel_pmap->pm_l1->l1_kva[l1idx]; + if (l1pte_section_p(l1pd)) { + if (l1pd & L1_S_SUPERSEC) + pa = (l1pd & L1_SUP_FRAME) | (va & L1_SUP_OFFSET); + else + pa = (l1pd & L1_S_FRAME) | (va & L1_S_OFFSET); + pte = L2_S_PROTO | pa | + L2_S_PROT(PTE_KERNEL, VM_PROT_READ | VM_PROT_WRITE); + } else { + l2 = kernel_pmap->pm_l2[L2_IDX(l1idx)]; + if (l2 == NULL || + (ptep = l2->l2_bucket[L2_BUCKET(l1idx)].l2b_kva) == NULL) { + pte = 0; + pa = 0; + goto out; + } + pte = ptep[l2pte_index(va)]; + if (pte == 0) { + pa = 0; + goto out; + } + switch (pte & L2_TYPE_MASK) { + case L2_TYPE_L: + pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET); + break; + default: + pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET); + break; + } + } +out: + if (pte2p != NULL) + *pte2p = pte; + return (pa); +} + /* * Initialize a preallocated and zeroed pmap structure, * such as one in a vmspace structure. Modified: head/sys/arm/arm/pmap.c ============================================================================== --- head/sys/arm/arm/pmap.c Mon Jan 25 10:55:52 2016 (r294721) +++ head/sys/arm/arm/pmap.c Mon Jan 25 12:43:07 2016 (r294722) @@ -3738,6 +3738,52 @@ retry: return (m); } +vm_paddr_t +pmap_dump_kextract(vm_offset_t va, pt2_entry_t *pte2p) +{ + struct l2_dtable *l2; + pd_entry_t l1pd; + pt_entry_t *ptep, pte; + vm_paddr_t pa; + u_int l1idx; + + l1idx = L1_IDX(va); + l1pd = kernel_pmap->pm_l1->l1_kva[l1idx]; + if (l1pte_section_p(l1pd)) { + if (l1pd & L1_S_SUPERSEC) + pa = (l1pd & L1_SUP_FRAME) | (va & L1_SUP_OFFSET); + else + pa = (l1pd & L1_S_FRAME) | (va & L1_S_OFFSET); + pte = L2_S_PROTO | pa | + L2_S_PROT(PTE_KERNEL, VM_PROT_READ | VM_PROT_WRITE); + } else { + l2 = kernel_pmap->pm_l2[L2_IDX(l1idx)]; + if (l2 == NULL || + (ptep = l2->l2_bucket[L2_BUCKET(l1idx)].l2b_kva) == NULL) { + pte = 0; + pa = 0; + goto out; + } + pte = ptep[l2pte_index(va)]; + if (pte == 0) { + pa = 0; + goto out; + } + switch (pte & L2_TYPE_MASK) { + case L2_TYPE_L: + pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET); + break; + default: + pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET); + break; + } + } +out: + if (pte2p != NULL) + *pte2p = pte; + return (pa); +} + /* * Initialize a preallocated and zeroed pmap structure, * such as one in a vmspace structure. Modified: head/sys/arm/include/pmap-v6.h ============================================================================== --- head/sys/arm/include/pmap-v6.h Mon Jan 25 10:55:52 2016 (r294721) +++ head/sys/arm/include/pmap-v6.h Mon Jan 25 12:43:07 2016 (r294722) @@ -200,6 +200,8 @@ void pmap_tlb_flush_range(pmap_t , vm_of void pmap_dcache_wb_range(vm_paddr_t , vm_size_t , vm_memattr_t ); vm_paddr_t pmap_kextract(vm_offset_t ); +vm_paddr_t pmap_dump_kextract(vm_offset_t, pt2_entry_t *); + int pmap_fault(pmap_t , vm_offset_t , uint32_t , int , bool); #define vtophys(va) pmap_kextract((vm_offset_t)(va)) Modified: head/sys/arm/include/pmap.h ============================================================================== --- head/sys/arm/include/pmap.h Mon Jan 25 10:55:52 2016 (r294721) +++ head/sys/arm/include/pmap.h Mon Jan 25 12:43:07 2016 (r294722) @@ -263,6 +263,7 @@ void pmap_kremove_device(vm_offset_t, vm void *pmap_kenter_temporary(vm_paddr_t pa, int i); void pmap_kenter_user(vm_offset_t va, vm_paddr_t pa); vm_paddr_t pmap_kextract(vm_offset_t va); +vm_paddr_t pmap_dump_kextract(vm_offset_t, pt2_entry_t *); void pmap_kremove(vm_offset_t); void *pmap_mapdev(vm_offset_t, vm_size_t); void pmap_unmapdev(vm_offset_t, vm_size_t); Modified: head/sys/arm/include/pte.h ============================================================================== --- head/sys/arm/include/pte.h Mon Jan 25 10:55:52 2016 (r294721) +++ head/sys/arm/include/pte.h Mon Jan 25 12:43:07 2016 (r294722) @@ -43,6 +43,7 @@ #ifndef LOCORE typedef uint32_t pd_entry_t; /* page directory entry */ typedef uint32_t pt_entry_t; /* page table entry */ +typedef pt_entry_t pt2_entry_t; /* compatibility with v6 */ #endif #define PG_FRAME 0xfffff000 From owner-svn-src-all@freebsd.org Mon Jan 25 12:49:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60B1FA452CE; Mon, 25 Jan 2016 12:49:10 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1498E783; Mon, 25 Jan 2016 12:49:10 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PCn9gP089309; Mon, 25 Jan 2016 12:49:09 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PCn9Nw089308; Mon, 25 Jan 2016 12:49:09 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601251249.u0PCn9Nw089308@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Mon, 25 Jan 2016 12:49:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294723 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 12:49:10 -0000 Author: skra Date: Mon Jan 25 12:49:08 2016 New Revision: 294723 URL: https://svnweb.freebsd.org/changeset/base/294723 Log: Make minidump more like its i386 original back as with new pmap dump interface all used physical addresses are PAGE_SIZE aligned. Add missing copyright. This is a follow up to r294722. Modified: head/sys/arm/arm/minidump_machdep.c Modified: head/sys/arm/arm/minidump_machdep.c ============================================================================== --- head/sys/arm/arm/minidump_machdep.c Mon Jan 25 12:43:07 2016 (r294722) +++ head/sys/arm/arm/minidump_machdep.c Mon Jan 25 12:49:08 2016 (r294723) @@ -1,4 +1,5 @@ /*- + * Copyright (c) 2006 Peter Wemm * Copyright (c) 2008 Semihalf, Grzegorz Bernacki * All rights reserved. * @@ -66,7 +67,7 @@ static struct kerneldumpheader kdh; static off_t dumplo; /* Handle chunked writes. */ -static size_t fragsz, offset; +static size_t fragsz; static void *dump_va; static uint64_t counter, progress; @@ -94,10 +95,9 @@ blk_flush(struct dumperinfo *di) if (fragsz == 0) return (0); - error = dump_write(di, (char*)dump_va + offset, 0, dumplo, fragsz - offset); - dumplo += (fragsz - offset); + error = dump_write(di, dump_va, 0, dumplo, fragsz); + dumplo += fragsz; fragsz = 0; - offset = 0; return (error); } @@ -108,36 +108,36 @@ blk_write(struct dumperinfo *di, char *p int error, i, c; u_int maxdumpsz; - maxdumpsz = di->maxiosize; - + maxdumpsz = min(di->maxiosize, MAXDUMPPGS * PAGE_SIZE); if (maxdumpsz == 0) /* seatbelt */ maxdumpsz = PAGE_SIZE; - error = 0; - if (ptr != NULL && pa != 0) { printf("cant have both va and pa!\n"); return (EINVAL); } - + if (pa != 0) { + if ((sz % PAGE_SIZE) != 0) { + printf("size not page aligned\n"); + return (EINVAL); + } + if ((pa & PAGE_MASK) != 0) { + printf("address not page aligned\n"); + return (EINVAL); + } + } if (ptr != NULL) { /* If we're doing a virtual dump, flush any pre-existing pa pages */ error = blk_flush(di); if (error) return (error); } - while (sz) { - if (fragsz == 0) { - offset = pa & PAGE_MASK; - fragsz += offset; - } len = maxdumpsz - fragsz; if (len > sz) len = sz; counter += len; progress -= len; - if (counter >> 22) { printf(" %lld", PG2MB(progress >> PAGE_SHIFT)); counter &= (1<<22) - 1; From owner-svn-src-all@freebsd.org Mon Jan 25 12:49:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 418ADA45319; Mon, 25 Jan 2016 12:49:16 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from mail.made4.biz (mail.made4.biz [IPv6:2001:41d0:2:c018::1:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EAEFA89A; Mon, 25 Jan 2016 12:49:15 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from [176.158.145.63] (helo=magellan.dumbbell.fr) by mail.made4.biz with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aNga1-000DNj-Nd; Mon, 25 Jan 2016 13:49:13 +0100 Subject: Re: svn commit: r293857 - stable/10/sys/dev/drm2/i915 To: Andriy Voskoboinyk , Slawa Olhovchenkov References: <201601132156.u0DLunQs020854@repo.freebsd.org> <20160123162617.GL37895@zxy.spb.ru> <56A5E89A.3050106@FreeBSD.org> <20160125104506.GV88527@zxy.spb.ru> Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org From: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= Message-ID: <56A619C5.6070109@FreeBSD.org> Date: Mon, 25 Jan 2016 13:49:09 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="liumSIgRClWorUh2f7p621NKSk8mFDEpx" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 12:49:16 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --liumSIgRClWorUh2f7p621NKSk8mFDEpx Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 25/01/2016 11:50, Andriy Voskoboinyk wrote: > Try to apply https://svnweb.freebsd.org/base?view=3Drevision&revision=3D= 288653 > (as for me, head/sys/dev/drm2/i915/i915_dma.c change fixes this) If this fixes the problem, perfect, I will merge it. --=20 Jean-S=C3=A9bastien P=C3=A9dron --liumSIgRClWorUh2f7p621NKSk8mFDEpx Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJWphnFXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2NzA4N0ZEMUFFQUUwRTEyREJDNkE2RjAz OUU5OTc2MUE1RkQ5NENDAAoJEDnpl2Gl/ZTM+0EQAMjKsvk/ZESt+TgoS3S52FNI cG0JnLEcOnFVZZN9XZqRsF5LX5BlgoSdlQ9rQlk+xAW3LdWcKc4ccPmlh4Xf8zMp ZgssUj0B4G2BGbbGrlQBKFvnGXQ5YbdyeDY19mq3on05ce8/06jF7SGtTE2DRm1g CDcRm0W4ERqUYd09+sNRmI6gAj17Du8AatEHDpqoA+uHWqHmTjj50WqW+lgVXpUW 7AlYCunTDjTfltk1Sh/ztynxW5G28IeCa1x0O3Dod3nz00bR0cHTzMEDmFcCFrdW sEsyIhMujPzt/v3MfYjiq8/PQljfbgG0X6kkyn/KwuUb29JhgbIRTIexXkpG69zF VKL/GHHxCuwpIuXqQNw+r4r1YY4PdNRdeCu5cWMxzQnUh1IdxRUj7na8GOZcDxgN FM8YNRLIhU515nOlSCgpFEQ7I6tVAuzoQOEN54sYlhx2FPnAENn9TptGzcwnc3OF 3ZTPKTj+n9P/7iLuTgRrWP1/GP00kDrycvkPnmLIkn6h9EYdP9oWmOMILkaLR12a a/JPaFvEn2TNUwwh0a2KktqkRHL8Q948arRaeI5AFfXssMyzd6MloT5fw/FCyXqQ /K7asA0Wk9MTD57RoH1HvoqjEaYRCoNjiZRzH6Upa6ajcMvvZco0GVOFIgHedOXI wnRYJ4SXOuTYJBj4KEI3 =wbRO -----END PGP SIGNATURE----- --liumSIgRClWorUh2f7p621NKSk8mFDEpx-- From owner-svn-src-all@freebsd.org Mon Jan 25 12:55:26 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D7C8A4574A; Mon, 25 Jan 2016 12:55:26 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DA46BFF3; Mon, 25 Jan 2016 12:55:25 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PCtOei092286; Mon, 25 Jan 2016 12:55:24 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PCtO69092285; Mon, 25 Jan 2016 12:55:24 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601251255.u0PCtO69092285@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Mon, 25 Jan 2016 12:55:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294724 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 12:55:26 -0000 Author: skra Date: Mon Jan 25 12:55:24 2016 New Revision: 294724 URL: https://svnweb.freebsd.org/changeset/base/294724 Log: Do not use blk_write_cont() and remove it. There si no need to call blk_flush() between two writes by physical address when these are PAGE_SIZE aligned. Fix some style nits. Modified: head/sys/arm/arm/minidump_machdep.c Modified: head/sys/arm/arm/minidump_machdep.c ============================================================================== --- head/sys/arm/arm/minidump_machdep.c Mon Jan 25 12:49:08 2016 (r294723) +++ head/sys/arm/arm/minidump_machdep.c Mon Jan 25 12:55:24 2016 (r294724) @@ -127,7 +127,7 @@ blk_write(struct dumperinfo *di, char *p } } if (ptr != NULL) { - /* If we're doing a virtual dump, flush any pre-existing pa pages */ + /* Flush any pre-existing pa pages before a virtual dump. */ error = blk_flush(di); if (error) return (error); @@ -178,22 +178,6 @@ blk_write(struct dumperinfo *di, char *p return (0); } -static int -blk_write_cont(struct dumperinfo *di, vm_paddr_t pa, size_t sz) -{ - int error; - - error = blk_write(di, 0, pa, sz); - if (error) - return (error); - - error = blk_flush(di); - if (error) - return (error); - - return (0); -} - /* A buffer for general use. Its size must be one page at least. */ static char dumpbuf[PAGE_SIZE]; CTASSERT(sizeof(dumpbuf) % sizeof(pt2_entry_t) == 0); @@ -298,7 +282,8 @@ minidumpsys(struct dumperinfo *di) goto fail; /* Dump msgbuf up front */ - error = blk_write(di, (char *)msgbufp->msg_ptr, 0, round_page(msgbufp->msg_size)); + error = blk_write(di, (char *)msgbufp->msg_ptr, 0, + round_page(msgbufp->msg_size)); if (error) goto fail; @@ -340,7 +325,7 @@ minidumpsys(struct dumperinfo *di) if (pa == (prev_pa + count * PAGE_SIZE)) count++; else { - error = blk_write_cont(di, prev_pa, + error = blk_write(di, NULL, prev_pa, count * PAGE_SIZE); if (error) goto fail; @@ -352,13 +337,17 @@ minidumpsys(struct dumperinfo *di) } } if (count) { - error = blk_write_cont(di, prev_pa, count * PAGE_SIZE); + error = blk_write(di, NULL, prev_pa, count * PAGE_SIZE); if (error) goto fail; count = 0; prev_pa = 0; } + error = blk_flush(di); + if (error) + goto fail; + /* Dump trailer */ error = dump_write(di, &kdh, 0, dumplo, sizeof(kdh)); if (error) From owner-svn-src-all@freebsd.org Mon Jan 25 13:27:50 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3C7EA45302; Mon, 25 Jan 2016 13:27:50 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 65D44ECA; Mon, 25 Jan 2016 13:27:50 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PDRnG3001205; Mon, 25 Jan 2016 13:27:49 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PDRnIe001204; Mon, 25 Jan 2016 13:27:49 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601251327.u0PDRnIe001204@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 13:27:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294725 - stable/10/sys/boot/efi/boot1 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 13:27:50 -0000 Author: smh Date: Mon Jan 25 13:27:49 2016 New Revision: 294725 URL: https://svnweb.freebsd.org/changeset/base/294725 Log: MFC r293422 (partial): Update generated EFI boot image templates. This is a partial MFC as stable/10 only has EFI boot support for amd64, and there are no plans to change this, so the other platform images aren't included. Sponsored by: Multiplay Modified: stable/10/sys/boot/efi/boot1/fat-amd64.tmpl.bz2.uu Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/efi/boot1/fat-amd64.tmpl.bz2.uu ============================================================================== --- stable/10/sys/boot/efi/boot1/fat-amd64.tmpl.bz2.uu Mon Jan 25 12:55:24 2016 (r294724) +++ stable/10/sys/boot/efi/boot1/fat-amd64.tmpl.bz2.uu Mon Jan 25 13:27:49 2016 (r294725) @@ -2,19 +2,25 @@ FAT template boot filesystem created by DO NOT EDIT $FreeBSD$ begin 644 fat-amd64.tmpl.bz2 -M0EIH.3%!629362AK*D(`&I+____[ZZKJZ_^N_ZO^Z_Z_OJ[L`4`!7I0$#&$" -M0$!$3&(I-DTU,)ZAZ0VA-!M0T'J`>H#"9 -M'I#0-H&HQI&0&3&FH>H>*`JHHU3V]1%/4/2``T#0`!H``#0`````#1H,@``6 -M'1&G'&@?$6[T#A)?X8$A160"20BO#")0J4TB1*4GXF$B4I,&>43+=_?K=#3* -M6]R"ZNKJZI,9*68E8*E2Q -M4J5*E3'(1830A"$(12A-"<(0A#]VD)H0A"$,>I0FA"$(0I\>P^=F5:M6K5JU -M:DI3:64UN;[7%5B]Y-^\]@_K@B:N\/,5F%&H<\G#IXQXAEFC&D?![6%0'6MR -MX1@@%FC"FD`M7,/SXFNG:2`'-0<-C$8^+$N.7M1B,^6)9,DV9,0A\OL<:C"L -ML1V&,<\9YRB>XV#BG")'6NKRK^("UF2XO?_L!#29">MGDF$R3).!PX&%E,4C -M''=(FL1.`_3?CN@-IB2PI3!FF\<8X.X@D,>CA90I)#M$XRPNDFJELL<3=1?8 -M2B7\5Z64,!7Z;EEBW-MXN-4IJ@W$462]-*\YCR,-B,5[W?=3&L/U>SX,WV#\ -M\B`:I"'0Z)5"$1B.E)(K[5I4RS`%R$>Y\D0NR*,;<9CZ:^V3P(I?D0`&T#_____ZZKJ[_^N_^O^Z_Z[OJ_NJ^JK^KZNKNNJ +MZ^KNZOJ^P`+\&$`!D#0T:`80&@T#`@`-`:9`:`P"`R::```:8)II@@,FC(-& +M$`!D,(:9`E5%&3_]*J?ZHC(--&@::#3)HQ#0`&C330,"9,F$::9!D#`F30#3 +M3)H9-&1DTR`R:,3"`&0-#1H!A`:#0,"``T!ID!H#`(#)IH``!I@FFF"`R:,@ +MT80`&0PAID!5)$)Y0@R&HQ#3U-I--,@-&0R-&@T-`&FF@9-!IIIH-&1ILHTT +M&ADQ#-$\B;1-/2-H93$\4\34Q9ZDM*M:U49"2K6F0C'21$(GD$1$085)7RB( +M00A7Q'^3"!"&CM$T+&UM5A49]7/"3^:EK7GMDVS9MRWK=+E>.(OG-?ZZMDA: +MR74C/HR\T0"$,Y+,YBA.JO&6C*K-DV26*@S24I%*E-2I4J5*JH43)*%"A0H4 +M*5-"E)2E2I4J5+!RPP]&&&&&&,P(9X]&&&&&&.IMKISQPX<.'#AP@0A"$(0A +M"$(0A"(MX]&&&&&&&$(0A"$(0(0A"$(?ME2N'#APX<.'"+EZ,,,,,,,($(0A +M"$0>NEGIM!8-(Y6FM$:.>9*3D219:RJKD^H2>1%9\LD8O.X4EIVM=.HDTT1'B:J=8;[A9NLU +M"OX%C.X>0U/WZ^E74T&IHJ3EG))(^U[S\6_?HX;B.,Y*]7SGN@PV*_(O+^9# +M+^Q,N_S1'42+=METV+CK9;+US'.8#H,%B,9Y*RD-/)TYXB8XQHI(RLF')')< +MI>OZ Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A729A45790; Mon, 25 Jan 2016 13:35:29 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C377669; Mon, 25 Jan 2016 13:35:29 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PDZSPC004223; Mon, 25 Jan 2016 13:35:28 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PDZSpm004221; Mon, 25 Jan 2016 13:35:28 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601251335.u0PDZSpm004221@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 13:35:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294726 - stable/10/sys/boot/efi/boot1 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 13:35:29 -0000 Author: smh Date: Mon Jan 25 13:35:28 2016 New Revision: 294726 URL: https://svnweb.freebsd.org/changeset/base/294726 Log: MFC r293460: Switch EFT boot1 to use libstand This includes a change to the Makefile comment to correct it due to the lack of arm and i386 support in 10.x. Sponsored by: Multiplay Modified: stable/10/sys/boot/efi/boot1/Makefile stable/10/sys/boot/efi/boot1/boot1.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/efi/boot1/Makefile ============================================================================== --- stable/10/sys/boot/efi/boot1/Makefile Mon Jan 25 13:27:49 2016 (r294725) +++ stable/10/sys/boot/efi/boot1/Makefile Mon Jan 25 13:35:28 2016 (r294726) @@ -38,6 +38,12 @@ LDFLAGS= -Wl,-T${LDSCRIPT} -Wl,-Bsymboli LDFLAGS+= -Wl,-znocombreloc .endif +# +# Add libstand for required string and memory functions for all platforms. +# +DPADD+= ${LIBSTAND} +LDADD+= -lstand + DPADD+= ${LDSCRIPT} OBJCOPY?= objcopy Modified: stable/10/sys/boot/efi/boot1/boot1.c ============================================================================== --- stable/10/sys/boot/efi/boot1/boot1.c Mon Jan 25 13:27:49 2016 (r294725) +++ stable/10/sys/boot/efi/boot1/boot1.c Mon Jan 25 13:35:28 2016 (r294726) @@ -24,6 +24,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -33,28 +34,8 @@ __FBSDID("$FreeBSD$"); #define BSIZEMAX 16384 -typedef int putc_func_t(char c, void *arg); - -struct sp_data { - char *sp_buf; - u_int sp_len; - u_int sp_size; -}; - -static const char digits[] = "0123456789abcdef"; - -static void panic(const char *fmt, ...) __dead2; -static int printf(const char *fmt, ...); -static int putchar(char c, void *arg); -static int vprintf(const char *fmt, va_list ap); -static int vsnprintf(char *str, size_t sz, const char *fmt, va_list ap); - -static int __printf(const char *fmt, putc_func_t *putc, void *arg, va_list ap); -static int __putc(char c, void *arg); -static int __puts(const char *s, putc_func_t *putc, void *arg); -static int __sputc(char c, void *arg); -static char *__uitoa(char *buf, u_int val, int base); -static char *__ultoa(char *buf, u_long val, int base); +void panic(const char *fmt, ...) __dead2; +void putchar(int c); static int domount(EFI_DEVICE_PATH *device, EFI_BLOCK_IO *blkio, int quiet); static void load(const char *fname); @@ -62,39 +43,6 @@ static void load(const char *fname); EFI_SYSTEM_TABLE *systab; EFI_HANDLE *image; -static void -bcopy(const void *src, void *dst, size_t len) -{ - const char *s = src; - char *d = dst; - - while (len-- != 0) - *d++ = *s++; -} - -static void -memcpy(void *dst, const void *src, size_t len) -{ - bcopy(src, dst, len); -} - -static void -bzero(void *b, size_t len) -{ - char *p = b; - - while (len-- != 0) - *p++ = 0; -} - -static int -strcmp(const char *s1, const char *s2) -{ - for (; *s1 == *s2 && *s1; s1++, s2++) - ; - return ((u_char)*s1 - (u_char)*s2); -} - static EFI_GUID BlockIoProtocolGUID = BLOCK_IO_PROTOCOL; static EFI_GUID DevicePathGUID = DEVICE_PATH_PROTOCOL; static EFI_GUID LoadedImageGUID = LOADED_IMAGE_PROTOCOL; @@ -344,38 +292,22 @@ load(const char *fname) EFI_ERROR_CODE(status)); } -static void +void panic(const char *fmt, ...) { - char buf[128]; va_list ap; + printf("panic: "); va_start(ap, fmt); - vsnprintf(buf, sizeof buf, fmt, ap); - printf("panic: %s\n", buf); + vprintf(fmt, ap); va_end(ap); + printf("\n"); while (1) {} } -static int -printf(const char *fmt, ...) -{ - va_list ap; - int ret; - - /* Don't annoy the user as we probe for partitions */ - if (strcmp(fmt,"Not ufs\n") == 0) - return 0; - - va_start(ap, fmt); - ret = vprintf(fmt, ap); - va_end(ap); - return (ret); -} - -static int -putchar(char c, void *arg) +void +putchar(int c) { CHAR16 buf[2]; @@ -387,187 +319,4 @@ putchar(char c, void *arg) buf[0] = c; buf[1] = 0; systab->ConOut->OutputString(systab->ConOut, buf); - return (1); -} - -static int -vprintf(const char *fmt, va_list ap) -{ - int ret; - - ret = __printf(fmt, putchar, 0, ap); - return (ret); -} - -static int -vsnprintf(char *str, size_t sz, const char *fmt, va_list ap) -{ - struct sp_data sp; - int ret; - - sp.sp_buf = str; - sp.sp_len = 0; - sp.sp_size = sz; - ret = __printf(fmt, __sputc, &sp, ap); - return (ret); -} - -static int -__printf(const char *fmt, putc_func_t *putc, void *arg, va_list ap) -{ - char buf[(sizeof(long) * 8) + 1]; - char *nbuf; - u_long ul; - u_int ui; - int lflag; - int sflag; - char *s; - int pad; - int ret; - int c; - - nbuf = &buf[sizeof buf - 1]; - ret = 0; - while ((c = *fmt++) != 0) { - if (c != '%') { - ret += putc(c, arg); - continue; - } - lflag = 0; - sflag = 0; - pad = 0; -reswitch: c = *fmt++; - switch (c) { - case '#': - sflag = 1; - goto reswitch; - case '%': - ret += putc('%', arg); - break; - case 'c': - c = va_arg(ap, int); - ret += putc(c, arg); - break; - case 'd': - if (lflag == 0) { - ui = (u_int)va_arg(ap, int); - if (ui < (int)ui) { - ui = -ui; - ret += putc('-', arg); - } - s = __uitoa(nbuf, ui, 10); - } else { - ul = (u_long)va_arg(ap, long); - if (ul < (long)ul) { - ul = -ul; - ret += putc('-', arg); - } - s = __ultoa(nbuf, ul, 10); - } - ret += __puts(s, putc, arg); - break; - case 'l': - lflag = 1; - goto reswitch; - case 'o': - if (lflag == 0) { - ui = (u_int)va_arg(ap, u_int); - s = __uitoa(nbuf, ui, 8); - } else { - ul = (u_long)va_arg(ap, u_long); - s = __ultoa(nbuf, ul, 8); - } - ret += __puts(s, putc, arg); - break; - case 'p': - ul = (u_long)va_arg(ap, void *); - s = __ultoa(nbuf, ul, 16); - ret += __puts("0x", putc, arg); - ret += __puts(s, putc, arg); - break; - case 's': - s = va_arg(ap, char *); - ret += __puts(s, putc, arg); - break; - case 'u': - if (lflag == 0) { - ui = va_arg(ap, u_int); - s = __uitoa(nbuf, ui, 10); - } else { - ul = va_arg(ap, u_long); - s = __ultoa(nbuf, ul, 10); - } - ret += __puts(s, putc, arg); - break; - case 'x': - if (lflag == 0) { - ui = va_arg(ap, u_int); - s = __uitoa(nbuf, ui, 16); - } else { - ul = va_arg(ap, u_long); - s = __ultoa(nbuf, ul, 16); - } - if (sflag) - ret += __puts("0x", putc, arg); - ret += __puts(s, putc, arg); - break; - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - pad = pad * 10 + c - '0'; - goto reswitch; - default: - break; - } - } - return (ret); -} - -static int -__sputc(char c, void *arg) -{ - struct sp_data *sp; - - sp = arg; - if (sp->sp_len < sp->sp_size) - sp->sp_buf[sp->sp_len++] = c; - sp->sp_buf[sp->sp_len] = '\0'; - return (1); -} - -static int -__puts(const char *s, putc_func_t *putc, void *arg) -{ - const char *p; - int ret; - - ret = 0; - for (p = s; *p != '\0'; p++) - ret += putc(*p, arg); - return (ret); -} - -static char * -__uitoa(char *buf, u_int ui, int base) -{ - char *p; - - p = buf; - *p = '\0'; - do - *--p = digits[ui % base]; - while ((ui /= base) != 0); - return (p); -} - -static char * -__ultoa(char *buf, u_long ul, int base) -{ - char *p; - - p = buf; - *p = '\0'; - do - *--p = digits[ul % base]; - while ((ul /= base) != 0); - return (p); } From owner-svn-src-all@freebsd.org Mon Jan 25 14:09:37 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8882AA462F4; Mon, 25 Jan 2016 14:09:37 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3DF1BB59; Mon, 25 Jan 2016 14:09:37 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PE9aCV013307; Mon, 25 Jan 2016 14:09:36 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PE9abE013306; Mon, 25 Jan 2016 14:09:36 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601251409.u0PE9abE013306@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Mon, 25 Jan 2016 14:09:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294727 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 14:09:37 -0000 Author: skra Date: Mon Jan 25 14:09:35 2016 New Revision: 294727 URL: https://svnweb.freebsd.org/changeset/base/294727 Log: Fix an occasional undefined instruction abort during module loading. Even if data cache maintenance was done by IO code, the relocation fixup process creates dirty cache entries that we must write back before doing icache sync. Reported by: Thiagarajan Venkatasubramanian Reviewed by: ian Modified: head/sys/arm/arm/elf_machdep.c Modified: head/sys/arm/arm/elf_machdep.c ============================================================================== --- head/sys/arm/arm/elf_machdep.c Mon Jan 25 13:35:28 2016 (r294726) +++ head/sys/arm/arm/elf_machdep.c Mon Jan 25 14:09:35 2016 (r294727) @@ -256,7 +256,7 @@ elf_reloc_local(linker_file_t lf, Elf_Ad } int -elf_cpu_load_file(linker_file_t lf __unused) +elf_cpu_load_file(linker_file_t lf) { /* @@ -265,13 +265,25 @@ elf_cpu_load_file(linker_file_t lf __unu * that kernel memory allocations always have EXECUTABLE protection even * when the memory isn't going to hold executable code. The only time * kernel memory holding instructions does need a sync is after loading - * a kernel module, and that's when this function gets called. Normal - * data cache maintenance has already been done by the IO code, and TLB - * maintenance has been done by the pmap code, so all we have to do here - * is invalidate the instruction cache (which also invalidates the - * branch predictor cache on platforms that have one). + * a kernel module, and that's when this function gets called. + * + * This syncs data and instruction caches after loading a module. We + * don't worry about the kernel itself (lf->id is 1) as locore.S did + * that on entry. Even if data cache maintenance was done by IO code, + * the relocation fixup process creates dirty cache entries that we must + * write back before doing icache sync. The instruction cache sync also + * invalidates the branch predictor cache on platforms that have one. */ + if (lf->id == 1) + return (0); +#if __ARM_ARCH >= 6 + dcache_wb_pou((vm_offset_t)lf->address, (vm_size_t)lf->size); + icache_inv_all(); +#else + cpu_dcache_wb_range((vm_offset_t)lf->address, (vm_size_t)lf->size); + cpu_l2cache_wb_range((vm_offset_t)lf->address, (vm_size_t)lf->size); cpu_icache_sync_all(); +#endif return (0); } From owner-svn-src-all@freebsd.org Mon Jan 25 14:42:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 943C8A46E02; Mon, 25 Jan 2016 14:42:45 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6536E30F; Mon, 25 Jan 2016 14:42:45 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PEgiqx025217; Mon, 25 Jan 2016 14:42:44 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PEgi2t025216; Mon, 25 Jan 2016 14:42:44 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601251442.u0PEgi2t025216@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Mon, 25 Jan 2016 14:42:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294729 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 14:42:45 -0000 Author: zbb Date: Mon Jan 25 14:42:44 2016 New Revision: 294729 URL: https://svnweb.freebsd.org/changeset/base/294729 Log: Do not destroy input buffer of the OF_getencprop() function on error Currently when the OF_getprop() function returns with error, the caller (OF_getencprop()) still changes the buffer endiannes. This may destroy the default value passed in the input buffer if used on a Little Endian platform. Reviewed by: mmel Submitted by: Zbigniew Bodek Obtained from: Semihalf Sponsored by: Cavium Modified: head/sys/dev/ofw/openfirm.c Modified: head/sys/dev/ofw/openfirm.c ============================================================================== --- head/sys/dev/ofw/openfirm.c Mon Jan 25 14:13:28 2016 (r294728) +++ head/sys/dev/ofw/openfirm.c Mon Jan 25 14:42:44 2016 (r294729) @@ -394,6 +394,9 @@ OF_getencprop(phandle_t node, const char KASSERT(len % 4 == 0, ("Need a multiple of 4 bytes")); retval = OF_getprop(node, propname, buf, len); + if (retval <= 0) + return (retval); + for (i = 0; i < len/4; i++) buf[i] = be32toh(buf[i]); From owner-svn-src-all@freebsd.org Mon Jan 25 14:59:30 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 64844A45236 for ; Mon, 25 Jan 2016 14:59:30 +0000 (UTC) (envelope-from zbb@semihalf.com) Received: from mail-lf0-x232.google.com (mail-lf0-x232.google.com [IPv6:2a00:1450:4010:c07::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C9A48B99 for ; Mon, 25 Jan 2016 14:59:29 +0000 (UTC) (envelope-from zbb@semihalf.com) Received: by mail-lf0-x232.google.com with SMTP id h129so86939857lfh.3 for ; Mon, 25 Jan 2016 06:59:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=I+7ZeBLKMsPBynLFxtulq5YQ9oWedNd8APiHeBDic0E=; b=dxHU4ULMmrys99GocOQvJHxtONuAyVjET8fLO1CPVLgdV8rrCkGd9jPcNt4IstxSZJ hkQBib4Oult5sW2j9VHWoYS0azq/pKzd2kFH6Rqs4mRyp5kCMb9DleUwCdqXKLsJa7HE btO5dWTKpOF7o6NNHbDCdEhl0ZDJa9ZxbbJ7Rfa4k5qxVpRlB83DZS4EWUBNXieak4i/ qldsdYpOtsF80LRrgkKFZuFqyS696vf5ZKXhiRqHs79MtaYqiLkL+rixvQ6pzGRJYwlV DDRWttoo9r0EpMwi45qLUEtWKtBxVh4UCavsp3udVUjcwwLeK1aygFhHhqAVxfldUGt5 8DnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=I+7ZeBLKMsPBynLFxtulq5YQ9oWedNd8APiHeBDic0E=; b=R+inMpdMskjtSjMk76TJRZrV/HJoVqX/EufMhZlbOxIQ/oplE3kEzs8KTTz9uBrX9X Bt95kAAWTTgMx2cOTGsqVeRTHgWLkMHTixjw9yyKozATLSwdIW9oR922fnaDAnG63d3J TRImH+u7gEimZvbzoBtZ6tJwILFSYm2yJvJimbFAcVCOqpViyVXZkxukeGy4ZxC/ngMD xZmb97yHkB2jMVUwvP1e+QaBZ02f/BiCpzuWeImWJ1cjYw9i9K7SOk6mrGVzgqkMgM9J sdDBXxq9yJ6Bk/gMorVCJtvhhG0WxCP097MLPhRFFPPkLWVPwLi7QHkBW8RGNN1LO/2F jVVQ== X-Gm-Message-State: AG10YOSJiP/Hz3wRtaGdPypP0ZD9d4Qyb8nZ4oSJ4ZQYK4lGz0GFM+IWYnbNW/LwuPnQv2xHCZMRwvQSxbbVhA== X-Received: by 10.25.205.81 with SMTP id d78mr6948928lfg.15.1453733967755; Mon, 25 Jan 2016 06:59:27 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.24.93 with HTTP; Mon, 25 Jan 2016 06:59:08 -0800 (PST) In-Reply-To: <201601251442.u0PEgi2t025216@repo.freebsd.org> References: <201601251442.u0PEgi2t025216@repo.freebsd.org> From: Zbigniew Bodek Date: Mon, 25 Jan 2016 15:59:08 +0100 Message-ID: Subject: Re: svn commit: r294729 - head/sys/dev/ofw To: Zbigniew Bodek Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 14:59:30 -0000 I forgot Differential Revision: https://reviews.freebsd.org/D5065 2016-01-25 15:42 GMT+01:00 Zbigniew Bodek : > Author: zbb > Date: Mon Jan 25 14:42:44 2016 > New Revision: 294729 > URL: https://svnweb.freebsd.org/changeset/base/294729 > > Log: > Do not destroy input buffer of the OF_getencprop() function on error > > Currently when the OF_getprop() function returns with error, > the caller (OF_getencprop()) still changes the buffer endiannes. > This may destroy the default value passed in the input buffer if > used on a Little Endian platform. > > Reviewed by: mmel > Submitted by: Zbigniew Bodek > Obtained from: Semihalf > Sponsored by: Cavium > > Modified: > head/sys/dev/ofw/openfirm.c > > Modified: head/sys/dev/ofw/openfirm.c > > ============================================================================== > --- head/sys/dev/ofw/openfirm.c Mon Jan 25 14:13:28 2016 (r294728) > +++ head/sys/dev/ofw/openfirm.c Mon Jan 25 14:42:44 2016 (r294729) > @@ -394,6 +394,9 @@ OF_getencprop(phandle_t node, const char > KASSERT(len % 4 == 0, ("Need a multiple of 4 bytes")); > > retval = OF_getprop(node, propname, buf, len); > + if (retval <= 0) > + return (retval); > + > for (i = 0; i < len/4; i++) > buf[i] = be32toh(buf[i]); > > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" > From owner-svn-src-all@freebsd.org Mon Jan 25 15:10:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6618FA45656; Mon, 25 Jan 2016 15:10:45 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3D214226; Mon, 25 Jan 2016 15:10:45 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PFAiZO031246; Mon, 25 Jan 2016 15:10:44 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PFAhdP031242; Mon, 25 Jan 2016 15:10:43 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601251510.u0PFAhdP031242@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Mon, 25 Jan 2016 15:10:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294730 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 15:10:45 -0000 Author: zbb Date: Mon Jan 25 15:10:43 2016 New Revision: 294730 URL: https://svnweb.freebsd.org/changeset/base/294730 Log: Create proper FDT attachment for GICv2m Avoid probing GICv2m to any parent bus/driver. Instead, match GICv2m driver with FDT complatible strings as not every GIC has a MSI controller in the form of GICv2m extension. Submitted by: Zbigniew Bodek Obtained from: Semihalf Sponsored by: Cavium Differential Revision: https://reviews.freebsd.org/D5015 Modified: head/sys/arm64/arm64/gic.c head/sys/arm64/arm64/gic.h head/sys/arm64/arm64/gic_fdt.c Modified: head/sys/arm64/arm64/gic.c ============================================================================== --- head/sys/arm64/arm64/gic.c Mon Jan 25 14:42:44 2016 (r294729) +++ head/sys/arm64/arm64/gic.c Mon Jan 25 15:10:43 2016 (r294730) @@ -355,22 +355,6 @@ DEFINE_CLASS_0(gic, arm_gic_driver, arm_ #define GICv2M_MSI_SETSPI_NS 0x040 #define GICV2M_MSI_IIDR 0xFCC -struct gicv2m_softc { - struct resource *sc_mem; - struct mtx sc_mutex; - u_int sc_spi_start; - u_int sc_spi_count; - u_int sc_spi_offset; -}; - -static int -gicv2m_probe(device_t dev) -{ - - device_set_desc(dev, "ARM Generic Interrupt Controller MSI/MSIX"); - return (BUS_PROBE_DEFAULT); -} - static int gicv2m_attach(device_t dev) { @@ -478,7 +462,6 @@ gicv2m_map_msi(device_t dev, device_t pc static device_method_t arm_gicv2m_methods[] = { /* Device interface */ - DEVMETHOD(device_probe, gicv2m_probe), DEVMETHOD(device_attach, gicv2m_attach), /* MSI/MSI-X */ @@ -489,9 +472,5 @@ static device_method_t arm_gicv2m_method { 0, 0 } }; -static devclass_t arm_gicv2m_devclass; - DEFINE_CLASS_0(gicv2m, arm_gicv2m_driver, arm_gicv2m_methods, sizeof(struct gicv2m_softc)); -EARLY_DRIVER_MODULE(gicv2m, gic, arm_gicv2m_driver, arm_gicv2m_devclass, - 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); Modified: head/sys/arm64/arm64/gic.h ============================================================================== --- head/sys/arm64/arm64/gic.h Mon Jan 25 14:42:44 2016 (r294729) +++ head/sys/arm64/arm64/gic.h Mon Jan 25 15:10:43 2016 (r294730) @@ -51,6 +51,16 @@ struct arm_gic_softc { uint32_t nirqs; }; +DECLARE_CLASS(arm_gicv2m_driver); + +struct gicv2m_softc { + struct resource *sc_mem; + struct mtx sc_mutex; + u_int sc_spi_start; + u_int sc_spi_count; + u_int sc_spi_offset; +}; + int arm_gic_attach(device_t); #endif Modified: head/sys/arm64/arm64/gic_fdt.c ============================================================================== --- head/sys/arm64/arm64/gic_fdt.c Mon Jan 25 14:42:44 2016 (r294729) +++ head/sys/arm64/arm64/gic_fdt.c Mon Jan 25 15:10:43 2016 (r294730) @@ -290,3 +290,38 @@ EARLY_DRIVER_MODULE(gic, simplebus, arm_ arm_gic_fdt_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); EARLY_DRIVER_MODULE(gic, ofwbus, arm_gic_fdt_driver, arm_gic_fdt_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); + +static struct ofw_compat_data gicv2m_compat_data[] = { + {"arm,gic-v2m-frame", true}, + {NULL, false} +}; + +static int +arm_gicv2m_fdt_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_search_compatible(dev, gicv2m_compat_data)->ocd_data) + return (ENXIO); + + device_set_desc(dev, "ARM Generic Interrupt Controller MSI/MSIX"); + return (BUS_PROBE_DEFAULT); +} + +static device_method_t arm_gicv2m_fdt_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, arm_gicv2m_fdt_probe), + + /* End */ + DEVMETHOD_END +}; + +DEFINE_CLASS_1(gicv2m, arm_gicv2m_fdt_driver, arm_gicv2m_fdt_methods, + sizeof(struct gicv2m_softc), arm_gicv2m_driver); + +static devclass_t arm_gicv2m_fdt_devclass; + +EARLY_DRIVER_MODULE(gicv2m, gic, arm_gicv2m_fdt_driver, + arm_gicv2m_fdt_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); From owner-svn-src-all@freebsd.org Mon Jan 25 15:18:34 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9CA31A45A9F; Mon, 25 Jan 2016 15:18:34 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5E59AD48; Mon, 25 Jan 2016 15:18:34 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PFIXSk034386; Mon, 25 Jan 2016 15:18:33 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PFIXYB034383; Mon, 25 Jan 2016 15:18:33 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601251518.u0PFIXYB034383@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Mon, 25 Jan 2016 15:18:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294731 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 15:18:34 -0000 Author: zbb Date: Mon Jan 25 15:18:32 2016 New Revision: 294731 URL: https://svnweb.freebsd.org/changeset/base/294731 Log: Simplify GICv3 related drivers' naming Rename gic_v3_ instances to simply use 'gic' and 'its'. The information about the controller's revision is printed in the device announcement during boot anyway. The intention behind this change is to avoid somewhat misleading GIC instances naming such as: gic_v30 gic_v31 ... etc. Submitted by: Zbigniew Bodek Obtained from: Semihalf Sponsored by: Cavium Differential Revision: https://reviews.freebsd.org/D5016 Modified: head/sys/arm64/arm64/gic_v3.c head/sys/arm64/arm64/gic_v3_fdt.c head/sys/arm64/arm64/gic_v3_its.c Modified: head/sys/arm64/arm64/gic_v3.c ============================================================================== --- head/sys/arm64/arm64/gic_v3.c Mon Jan 25 15:10:43 2016 (r294730) +++ head/sys/arm64/arm64/gic_v3.c Mon Jan 25 15:18:32 2016 (r294731) @@ -84,7 +84,7 @@ static device_method_t gic_v3_methods[] DEVMETHOD_END }; -DEFINE_CLASS_0(gic_v3, gic_v3_driver, gic_v3_methods, +DEFINE_CLASS_0(gic, gic_v3_driver, gic_v3_methods, sizeof(struct gic_v3_softc)); /* Modified: head/sys/arm64/arm64/gic_v3_fdt.c ============================================================================== --- head/sys/arm64/arm64/gic_v3_fdt.c Mon Jan 25 15:10:43 2016 (r294730) +++ head/sys/arm64/arm64/gic_v3_fdt.c Mon Jan 25 15:18:32 2016 (r294731) @@ -78,7 +78,7 @@ static device_method_t gic_v3_fdt_method DEVMETHOD_END }; -DEFINE_CLASS_1(gic_v3, gic_v3_fdt_driver, gic_v3_fdt_methods, +DEFINE_CLASS_1(gic, gic_v3_fdt_driver, gic_v3_fdt_methods, sizeof(struct gic_v3_softc), gic_v3_driver); static devclass_t gic_v3_fdt_devclass; @@ -287,12 +287,12 @@ static device_method_t gic_v3_its_fdt_me DEVMETHOD_END }; -DEFINE_CLASS_1(gic_v3_its, gic_v3_its_fdt_driver, gic_v3_its_fdt_methods, +DEFINE_CLASS_1(its, gic_v3_its_fdt_driver, gic_v3_its_fdt_methods, sizeof(struct gic_v3_its_softc), gic_v3_its_driver); static devclass_t gic_v3_its_fdt_devclass; -EARLY_DRIVER_MODULE(gic_v3_its, gic_v3, gic_v3_its_fdt_driver, +EARLY_DRIVER_MODULE(its, gic, gic_v3_its_fdt_driver, gic_v3_its_fdt_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); static int Modified: head/sys/arm64/arm64/gic_v3_its.c ============================================================================== --- head/sys/arm64/arm64/gic_v3_its.c Mon Jan 25 15:10:43 2016 (r294730) +++ head/sys/arm64/arm64/gic_v3_its.c Mon Jan 25 15:18:32 2016 (r294731) @@ -82,7 +82,7 @@ static device_method_t gic_v3_its_method DEVMETHOD_END }; -DEFINE_CLASS_0(gic_v3_its, gic_v3_its_driver, gic_v3_its_methods, +DEFINE_CLASS_0(its, gic_v3_its_driver, gic_v3_its_methods, sizeof(struct gic_v3_its_softc)); MALLOC_DEFINE(M_GIC_V3_ITS, "GICv3 ITS", GIC_V3_ITS_DEVSTR); From owner-svn-src-all@freebsd.org Mon Jan 25 15:37:03 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0238CA461D4; Mon, 25 Jan 2016 15:37:03 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ADB98AFC; Mon, 25 Jan 2016 15:37:02 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PFb1xI040273; Mon, 25 Jan 2016 15:37:01 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PFb1Av040272; Mon, 25 Jan 2016 15:37:01 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601251537.u0PFb1Av040272@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 25 Jan 2016 15:37:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294732 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 15:37:03 -0000 Author: kib Date: Mon Jan 25 15:37:01 2016 New Revision: 294732 URL: https://svnweb.freebsd.org/changeset/base/294732 Log: Fix the %b flags string for ddb. All bits above the 5th (TF_OPENED_CONS) were broken in r188147 by adding TF_OPENED_CONS without updating the string. It was especially confusing to display OPENED_CONS as GONE and BYPASS as ZOMBIE. 2 flags at the end were not updated in r188487. Don't print an extra 0x prefix for %p in a ddb command. In the rest of the kernel there are more than 6000 lines with %p and only about 40 with this bug. Print a non-extra 0x prefix for %b in a ddb command. In the rest of the kernel, there are approx. 180 lines with %b and 2/3 of them have this bug. Submitted by: bde MFC after: 2 weeks Modified: head/sys/kern/tty.c Modified: head/sys/kern/tty.c ============================================================================== --- head/sys/kern/tty.c Mon Jan 25 15:18:32 2016 (r294731) +++ head/sys/kern/tty.c Mon Jan 25 15:37:01 2016 (r294732) @@ -2109,9 +2109,11 @@ static struct { }; #define TTY_FLAG_BITS \ - "\20\1NOPREFIX\2INITLOCK\3CALLOUT\4OPENED_IN\5OPENED_OUT\6GONE" \ - "\7OPENCLOSE\10ASYNC\11LITERAL\12HIWAT_IN\13HIWAT_OUT\14STOPPED" \ - "\15EXCLUDE\16BYPASS\17ZOMBIE\20HOOK" + "\20\1NOPREFIX\2INITLOCK\3CALLOUT\4OPENED_IN" \ + "\5OPENED_OUT\6OPENED_CONS\7GONE\10OPENCLOSE" \ + "\11ASYNC\12LITERAL\13HIWAT_IN\14HIWAT_OUT" \ + "\15STOPPED\16EXCLUDE\17BYPASS\20ZOMBIE" \ + "\21HOOK\22BUSY_IN\23BUSY_OUT" #define DB_PRINTSYM(name, addr) \ db_printf("%s " #name ": ", sep); \ @@ -2174,9 +2176,9 @@ DB_SHOW_COMMAND(tty, db_show_tty) } tp = (struct tty *)addr; - db_printf("0x%p: %s\n", tp, tty_devname(tp)); + db_printf("%p: %s\n", tp, tty_devname(tp)); db_printf("\tmtx: %p\n", tp->t_mtx); - db_printf("\tflags: %b\n", tp->t_flags, TTY_FLAG_BITS); + db_printf("\tflags: 0x%b\n", tp->t_flags, TTY_FLAG_BITS); db_printf("\trevokecnt: %u\n", tp->t_revokecnt); /* Buffering mechanisms. */ From owner-svn-src-all@freebsd.org Mon Jan 25 15:45:07 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 56A75A4652F; Mon, 25 Jan 2016 15:45:07 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E526534A; Mon, 25 Jan 2016 15:45:06 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id u0PFirLQ067099 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Mon, 25 Jan 2016 17:44:53 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua u0PFirLQ067099 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id u0PFirrt067098; Mon, 25 Jan 2016 17:44:53 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 25 Jan 2016 17:44:53 +0200 From: Konstantin Belousov To: Svatopluk Kraus , Andrew Turner Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294727 - head/sys/arm/arm Message-ID: <20160125154453.GA3942@kib.kiev.ua> References: <201601251409.u0PE9abE013306@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201601251409.u0PE9abE013306@repo.freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 15:45:07 -0000 On Mon, Jan 25, 2016 at 02:09:36PM +0000, Svatopluk Kraus wrote: > Author: skra > Date: Mon Jan 25 14:09:35 2016 > New Revision: 294727 > URL: https://svnweb.freebsd.org/changeset/base/294727 > > Log: > Fix an occasional undefined instruction abort during module loading. > > Even if data cache maintenance was done by IO code, the relocation > fixup process creates dirty cache entries that we must write back > before doing icache sync. Does arm64 need the same fix ? From owner-svn-src-all@freebsd.org Mon Jan 25 16:18:55 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B08AA45146; Mon, 25 Jan 2016 16:18:55 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 14DD9C26; Mon, 25 Jan 2016 16:18:55 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PGIsRh052581; Mon, 25 Jan 2016 16:18:54 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PGIsQ4052580; Mon, 25 Jan 2016 16:18:54 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601251618.u0PGIsQ4052580@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Mon, 25 Jan 2016 16:18:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294734 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 16:18:55 -0000 Author: smh Date: Mon Jan 25 16:18:53 2016 New Revision: 294734 URL: https://svnweb.freebsd.org/changeset/base/294734 Log: Fix ixgbe compliation with DBG 1 Fixed ERROR_REPORTXX macros so that ixgbe compiles with #define DBG 1 MFC after: 1 week Sponsored by: Multiplay Differential Revision: https://reviews.freebsd.org/D5061 Modified: head/sys/dev/ixgbe/ixgbe_osdep.h Modified: head/sys/dev/ixgbe/ixgbe_osdep.h ============================================================================== --- head/sys/dev/ixgbe/ixgbe_osdep.h Mon Jan 25 16:18:08 2016 (r294733) +++ head/sys/dev/ixgbe/ixgbe_osdep.h Mon Jan 25 16:18:53 2016 (r294734) @@ -57,6 +57,15 @@ #define ASSERT(x) if(!(x)) panic("IXGBE: x") #define EWARN(H, W, S) printf(W) +enum { + IXGBE_ERROR_SOFTWARE, + IXGBE_ERROR_POLLING, + IXGBE_ERROR_INVALID_STATE, + IXGBE_ERROR_UNSUPPORTED, + IXGBE_ERROR_ARGUMENT, + IXGBE_ERROR_CAUTION, +}; + /* The happy-fun DELAY macro is defined in /usr/src/sys/i386/include/clock.h */ #define usec_delay(x) DELAY(x) #define msec_delay(x) DELAY(1000*(x)) @@ -73,9 +82,23 @@ #define DEBUGOUT5(S,A,B,C,D,E) printf(S "\n",A,B,C,D,E) #define DEBUGOUT6(S,A,B,C,D,E,F) printf(S "\n",A,B,C,D,E,F) #define DEBUGOUT7(S,A,B,C,D,E,F,G) printf(S "\n",A,B,C,D,E,F,G) - #define ERROR_REPORT1(S,A) printf(S "\n",A) - #define ERROR_REPORT2(S,A,B) printf(S "\n",A,B) - #define ERROR_REPORT3(S,A,B,C) printf(S "\n",A,B,C) + #define ERROR_REPORT1 ERROR_REPORT + #define ERROR_REPORT2 ERROR_REPORT + #define ERROR_REPORT3 ERROR_REPORT + #define ERROR_REPORT(level, format, arg...) do { \ + switch (level) { \ + case IXGBE_ERROR_SOFTWARE: \ + case IXGBE_ERROR_CAUTION: \ + case IXGBE_ERROR_POLLING: \ + case IXGBE_ERROR_INVALID_STATE: \ + case IXGBE_ERROR_UNSUPPORTED: \ + case IXGBE_ERROR_ARGUMENT: \ + device_printf(ixgbe_dev_from_hw(hw), format, ## arg); \ + break; \ + default: \ + break; \ + } \ + } while (0) #else #define DEBUGOUT(S) #define DEBUGOUT1(S,A) From owner-svn-src-all@freebsd.org Mon Jan 25 16:47:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1A2D3A45FB2; Mon, 25 Jan 2016 16:47:22 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E2310350; Mon, 25 Jan 2016 16:47:21 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PGlKYD061942; Mon, 25 Jan 2016 16:47:20 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PGlKRA061941; Mon, 25 Jan 2016 16:47:20 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601251647.u0PGlKRA061941@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 25 Jan 2016 16:47:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294735 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 16:47:22 -0000 Author: kib Date: Mon Jan 25 16:47:20 2016 New Revision: 294735 URL: https://svnweb.freebsd.org/changeset/base/294735 Log: Don't allow opening the callout device when the callin device is already open (in disguise as the console device). The only allowed combination was supposed to be the callin device with the console. Fix the assertion in ttydev_close() that was meant to detect this (it only detected all 3 devices being open). Assert this in ttydev_open() too. Submitted by: bde MFC after: 2 weeks Modified: head/sys/kern/tty.c Modified: head/sys/kern/tty.c ============================================================================== --- head/sys/kern/tty.c Mon Jan 25 16:18:53 2016 (r294734) +++ head/sys/kern/tty.c Mon Jan 25 16:47:20 2016 (r294735) @@ -263,10 +263,10 @@ ttydev_open(struct cdev *dev, int oflags /* * Make sure the "tty" and "cua" device cannot be opened at the - * same time. + * same time. The console is a "tty" device. */ if (TTY_CALLOUT(tp, dev)) { - if (tp->t_flags & TF_OPENED_IN) { + if (tp->t_flags & (TF_OPENED_CONS | TF_OPENED_IN)) { error = EBUSY; goto done; } @@ -319,6 +319,8 @@ ttydev_open(struct cdev *dev, int oflags tp->t_flags |= TF_OPENED_OUT; else tp->t_flags |= TF_OPENED_IN; + MPASS((tp->t_flags & (TF_OPENED_CONS | TF_OPENED_IN)) == 0 || + (tp->t_flags & TF_OPENED_OUT) == 0); done: tp->t_flags &= ~TF_OPENCLOSE; cv_broadcast(&tp->t_dcdwait); @@ -338,7 +340,8 @@ ttydev_close(struct cdev *dev, int fflag * Don't actually close the device if it is being used as the * console. */ - MPASS((tp->t_flags & TF_OPENED) != TF_OPENED); + MPASS((tp->t_flags & (TF_OPENED_CONS | TF_OPENED_IN)) == 0 || + (tp->t_flags & TF_OPENED_OUT) == 0); if (dev == dev_console) tp->t_flags &= ~TF_OPENED_CONS; else From owner-svn-src-all@freebsd.org Mon Jan 25 16:49:41 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E42AA46091; Mon, 25 Jan 2016 16:49:41 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0C745765; Mon, 25 Jan 2016 16:49:40 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PGnd6m062061; Mon, 25 Jan 2016 16:49:39 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PGndk2062060; Mon, 25 Jan 2016 16:49:39 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601251649.u0PGndk2062060@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Mon, 25 Jan 2016 16:49:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294736 - head/usr.bin X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 16:49:41 -0000 Author: br Date: Mon Jan 25 16:49:39 2016 New Revision: 294736 URL: https://svnweb.freebsd.org/changeset/base/294736 Log: Disable gprof and users on RISC-V, they don't build. Modified: head/usr.bin/Makefile Modified: head/usr.bin/Makefile ============================================================================== --- head/usr.bin/Makefile Mon Jan 25 16:47:20 2016 (r294735) +++ head/usr.bin/Makefile Mon Jan 25 16:49:39 2016 (r294736) @@ -268,7 +268,8 @@ SUBDIR.${MK_TOOLCHAIN}+= ctags SUBDIR.${MK_TOOLCHAIN}+= cxxfilt SUBDIR.${MK_TOOLCHAIN}+= elfcopy SUBDIR.${MK_TOOLCHAIN}+= file2c -.if ${MACHINE_ARCH} != "aarch64" # ARM64TODO gprof does not build +.if ${MACHINE_ARCH} != "aarch64" && \ # ARM64TODO gprof does not build + ${MACHINE_CPUARCH} != "riscv" # RISCVTODO gprof does not build SUBDIR.${MK_TOOLCHAIN}+= gprof .endif SUBDIR.${MK_TOOLCHAIN}+= indent @@ -290,7 +291,9 @@ SUBDIR.${MK_VT}+= vtfontcvt SUBDIR.${MK_USB}+= usbhidaction SUBDIR.${MK_USB}+= usbhidctl SUBDIR.${MK_UTMPX}+= last +.if ${MACHINE_CPUARCH} != "riscv" # RISCVTODO users does not build SUBDIR.${MK_UTMPX}+= users +.endif SUBDIR.${MK_UTMPX}+= who SUBDIR.${MK_SVN}+= svn SUBDIR.${MK_SVNLITE}+= svn From owner-svn-src-all@freebsd.org Mon Jan 25 17:01:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98B00A4651C; Mon, 25 Jan 2016 17:01:01 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id 69EE8FD6; Mon, 25 Jan 2016 17:01:01 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from zapp.Home (97e175b7.skybroadband.com [151.225.117.183]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id ACEA7D78FE; Mon, 25 Jan 2016 17:00:54 +0000 (UTC) Date: Mon, 25 Jan 2016 17:00:53 +0000 From: Andrew Turner To: Konstantin Belousov Cc: Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294727 - head/sys/arm/arm Message-ID: <20160125170053.7ae20536@zapp.Home> In-Reply-To: <20160125154453.GA3942@kib.kiev.ua> References: <201601251409.u0PE9abE013306@repo.freebsd.org> <20160125154453.GA3942@kib.kiev.ua> X-Mailer: Claws Mail 3.13.1 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 17:01:01 -0000 On Mon, 25 Jan 2016 17:44:53 +0200 Konstantin Belousov wrote: > On Mon, Jan 25, 2016 at 02:09:36PM +0000, Svatopluk Kraus wrote: > > Author: skra > > Date: Mon Jan 25 14:09:35 2016 > > New Revision: 294727 > > URL: https://svnweb.freebsd.org/changeset/base/294727 > > > > Log: > > Fix an occasional undefined instruction abort during module > > loading. > > Even if data cache maintenance was done by IO code, the relocation > > fixup process creates dirty cache entries that we must write back > > before doing icache sync. > Does arm64 need the same fix ? > I don't think so. On arm64 we call cpu_icache_sync_range to sync the I and D cache. This will clean the D-Cache to the Point of Coherency, then invalidate the I-Cache. I think this is slightly wrong as we only need to clean to the Point of Unification. Looking at the ARMv7 implementation of cpu_icache_sync_all is wrong, it only invalidates the I-Cache. cpu_icache_sync_range is almost correct, it will clean the D-Cache, with the same issue as arm64, but it is missing a barrier after this operation, and is missing a branch predictor invalidation. This change seems to be working around the brokenness of the existing cache sync operations rather than fixing them, however I don't know the details on why this approach to fixing the issue was taken. Andrew From owner-svn-src-all@freebsd.org Mon Jan 25 17:28:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E364DA46FE2 for ; Mon, 25 Jan 2016 17:28:54 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ACDD01C2 for ; Mon, 25 Jan 2016 17:28:54 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound2.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Mon, 25 Jan 2016 17:29:44 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.14.9) with ESMTP id u0PHSkbc025993; Mon, 25 Jan 2016 10:28:46 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1453742926.42081.8.camel@freebsd.org> Subject: Re: svn commit: r294727 - head/sys/arm/arm From: Ian Lepore To: Andrew Turner , Konstantin Belousov Cc: Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Mon, 25 Jan 2016 10:28:46 -0700 In-Reply-To: <20160125170053.7ae20536@zapp.Home> References: <201601251409.u0PE9abE013306@repo.freebsd.org> <20160125154453.GA3942@kib.kiev.ua> <20160125170053.7ae20536@zapp.Home> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 17:28:55 -0000 On Mon, 2016-01-25 at 17:00 +0000, Andrew Turner wrote: > On Mon, 25 Jan 2016 17:44:53 +0200 > Konstantin Belousov wrote: > > > On Mon, Jan 25, 2016 at 02:09:36PM +0000, Svatopluk Kraus wrote: > > > Author: skra > > > Date: Mon Jan 25 14:09:35 2016 > > > New Revision: 294727 > > > URL: https://svnweb.freebsd.org/changeset/base/294727 > > > > > > Log: > > > Fix an occasional undefined instruction abort during module > > > loading. > > > Even if data cache maintenance was done by IO code, the > > > relocation > > > fixup process creates dirty cache entries that we must write > > > back > > > before doing icache sync. > > Does arm64 need the same fix ? > > > > I don't think so. On arm64 we call cpu_icache_sync_range to sync the > I > and D cache. This will clean the D-Cache to the Point of Coherency, > then invalidate the I-Cache. I think this is slightly wrong as we > only > need to clean to the Point of Unification. > > Looking at the ARMv7 implementation of cpu_icache_sync_all is wrong, > it > only invalidates the I-Cache. cpu_icache_sync_range is almost > correct, > it will clean the D-Cache, with the same issue as arm64, but it is > missing a barrier after this operation, and is missing a branch > predictor invalidation. > > This change seems to be working around the brokenness of the existing > cache sync operations rather than fixing them, however I don't know > the > details on why this approach to fixing the issue was taken. > > Andrew > I disagree that the fact that icache_sync only cleans the icache means it's broken. It means that the callers have to do the right thing with the data cache before calling the icache ops depending on the situation, and that's what arm code has always done. In this case, we weren't failing to do the right thing because of broken code, we were failing due to my flawed analysis of the situation. As the original comment indicated, I believed the data caches were already clean due to the IO code cache operations. I negle cted to take into account the relocation fixup activity after the IO which re-dirtied some of the cache lines. -- Ian From owner-svn-src-all@freebsd.org Mon Jan 25 17:38:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 207B1A454F9; Mon, 25 Jan 2016 17:38:22 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E1950A2C; Mon, 25 Jan 2016 17:38:21 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PHcKMv076709; Mon, 25 Jan 2016 17:38:20 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PHcKlH076708; Mon, 25 Jan 2016 17:38:20 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601251738.u0PHcKlH076708@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 17:38:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294737 - stable/10/share/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 17:38:22 -0000 Author: bdrewery Date: Mon Jan 25 17:38:20 2016 New Revision: 294737 URL: https://svnweb.freebsd.org/changeset/base/294737 Log: MFC r294370: mkdep: Fix -include not being added for .depend tracking. Modified: stable/10/share/mk/bsd.dep.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/share/mk/bsd.dep.mk ============================================================================== --- stable/10/share/mk/bsd.dep.mk Mon Jan 25 16:49:39 2016 (r294736) +++ stable/10/share/mk/bsd.dep.mk Mon Jan 25 17:38:20 2016 (r294737) @@ -160,12 +160,25 @@ depend: beforedepend ${DEPENDFILE} after # Tell bmake not to look for generated files via .PATH .NOPATH: ${DEPENDFILE} +# Capture -include from CFLAGS. +# This could be simpler with bmake :tW but needs to support fmake for MFC. +_CFLAGS_INCLUDES= ${CFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g} +_CXXFLAGS_INCLUDES= ${CXXFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g} +# XXX: Temporary hack to workaround .depend files not tracking -include +.if !empty(_CFLAGS_INCLUDES) +${OBJS} ${POBJS} ${SOBJS}: ${_CFLAGS_INCLUDES:M*.h} +.endif +.if !empty(_CXXFLAGS_INCLUDES) +${OBJS} ${POBJS} ${SOBJS}: ${_CXXFLAGS_INCLUDES:M*.h} +.endif + # Different types of sources are compiled with slightly different flags. # Split up the sources, and filter out headers and non-applicable flags. MKDEP_CFLAGS= ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BIDU]*} ${CFLAGS:M-std=*} \ - ${CFLAGS:M-ansi} + ${CFLAGS:M-ansi} ${_CFLAGS_INCLUDES} MKDEP_CXXFLAGS= ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BIDU]*} \ - ${CXXFLAGS:M-std=*} ${CXXFLAGS:M-ansi} ${CXXFLAGS:M-stdlib=*} + ${CXXFLAGS:M-std=*} ${CXXFLAGS:M-ansi} ${CXXFLAGS:M-stdlib=*} \ + ${_CXXFLAGS_INCLUDES} DPSRCS+= ${SRCS} ${DEPENDFILE}: ${DPSRCS} From owner-svn-src-all@freebsd.org Mon Jan 25 17:40:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 995E2A455F3; Mon, 25 Jan 2016 17:40:00 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 52E0FBE8; Mon, 25 Jan 2016 17:40:00 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PHdxJ0076802; Mon, 25 Jan 2016 17:39:59 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PHdxnw076801; Mon, 25 Jan 2016 17:39:59 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601251739.u0PHdxnw076801@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 17:39:59 +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: r294738 - stable/9/share/mk X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 17:40:00 -0000 Author: bdrewery Date: Mon Jan 25 17:39:59 2016 New Revision: 294738 URL: https://svnweb.freebsd.org/changeset/base/294738 Log: MFC r294370: mkdep: Fix -include not being added for .depend tracking. Modified: stable/9/share/mk/bsd.dep.mk Directory Properties: stable/9/share/mk/ (props changed) Modified: stable/9/share/mk/bsd.dep.mk ============================================================================== --- stable/9/share/mk/bsd.dep.mk Mon Jan 25 17:38:20 2016 (r294737) +++ stable/9/share/mk/bsd.dep.mk Mon Jan 25 17:39:59 2016 (r294738) @@ -126,12 +126,27 @@ depend: beforedepend ${DEPENDFILE} after # Tell bmake not to look for generated files via .PATH .NOPATH: ${DEPENDFILE} +.if ${MK_FAST_DEPEND} == "no" +# Capture -include from CFLAGS. +# This could be simpler with bmake :tW but needs to support fmake for MFC. +_CFLAGS_INCLUDES= ${CFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g} +_CXXFLAGS_INCLUDES= ${CXXFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g} +# XXX: Temporary hack to workaround .depend files not tracking -include +.if !empty(_CFLAGS_INCLUDES) +${OBJS} ${POBJS} ${SOBJS}: ${_CFLAGS_INCLUDES:M*.h} +.endif +.if !empty(_CXXFLAGS_INCLUDES) +${OBJS} ${POBJS} ${SOBJS}: ${_CXXFLAGS_INCLUDES:M*.h} +.endif + # Different types of sources are compiled with slightly different flags. # Split up the sources, and filter out headers and non-applicable flags. MKDEP_CFLAGS= ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BIDU]*} ${CFLAGS:M-std=*} \ - ${CFLAGS:M-ansi} + ${CFLAGS:M-ansi} ${_CFLAGS_INCLUDES} MKDEP_CXXFLAGS= ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BIDU]*} \ - ${CXXFLAGS:M-std=*} ${CXXFLAGS:M-ansi} ${CXXFLAGS:M-stdlib=*} + ${CXXFLAGS:M-std=*} ${CXXFLAGS:M-ansi} ${CXXFLAGS:M-stdlib=*} \ + ${_CXXFLAGS_INCLUDES} +.endif # ${MK_FAST_DEPEND} == "no" DPSRCS+= ${SRCS} ${DEPENDFILE}: ${DPSRCS} From owner-svn-src-all@freebsd.org Mon Jan 25 17:40:55 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B284A45683; Mon, 25 Jan 2016 17:40:55 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F09D1E28; Mon, 25 Jan 2016 17:40:54 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PHeroQ076889; Mon, 25 Jan 2016 17:40:53 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PHerKt076888; Mon, 25 Jan 2016 17:40:53 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601251740.u0PHerKt076888@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 17:40:53 +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: r294739 - stable/9/share/mk X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 17:40:55 -0000 Author: bdrewery Date: Mon Jan 25 17:40:53 2016 New Revision: 294739 URL: https://svnweb.freebsd.org/changeset/base/294739 Log: Fix mismerge in r294738. No MK_FAST_DEPEND on stable/9 Modified: stable/9/share/mk/bsd.dep.mk Modified: stable/9/share/mk/bsd.dep.mk ============================================================================== --- stable/9/share/mk/bsd.dep.mk Mon Jan 25 17:39:59 2016 (r294738) +++ stable/9/share/mk/bsd.dep.mk Mon Jan 25 17:40:53 2016 (r294739) @@ -126,7 +126,6 @@ depend: beforedepend ${DEPENDFILE} after # Tell bmake not to look for generated files via .PATH .NOPATH: ${DEPENDFILE} -.if ${MK_FAST_DEPEND} == "no" # Capture -include from CFLAGS. # This could be simpler with bmake :tW but needs to support fmake for MFC. _CFLAGS_INCLUDES= ${CFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g} @@ -146,7 +145,6 @@ MKDEP_CFLAGS= ${CFLAGS:M-nostdinc*} ${CF MKDEP_CXXFLAGS= ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BIDU]*} \ ${CXXFLAGS:M-std=*} ${CXXFLAGS:M-ansi} ${CXXFLAGS:M-stdlib=*} \ ${_CXXFLAGS_INCLUDES} -.endif # ${MK_FAST_DEPEND} == "no" DPSRCS+= ${SRCS} ${DEPENDFILE}: ${DPSRCS} From owner-svn-src-all@freebsd.org Mon Jan 25 17:44:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81C60A45900; Mon, 25 Jan 2016 17:44:10 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id 51E8F22F; Mon, 25 Jan 2016 17:44:09 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from zapp.Home (97e175b7.skybroadband.com [151.225.117.183]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id 85819D78FE; Mon, 25 Jan 2016 17:43:39 +0000 (UTC) Date: Mon, 25 Jan 2016 17:43:38 +0000 From: Andrew Turner To: Ian Lepore Cc: Konstantin Belousov , Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294727 - head/sys/arm/arm Message-ID: <20160125174338.29103e6b@zapp.Home> In-Reply-To: <1453742926.42081.8.camel@freebsd.org> References: <201601251409.u0PE9abE013306@repo.freebsd.org> <20160125154453.GA3942@kib.kiev.ua> <20160125170053.7ae20536@zapp.Home> <1453742926.42081.8.camel@freebsd.org> X-Mailer: Claws Mail 3.13.1 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 17:44:10 -0000 On Mon, 25 Jan 2016 10:28:46 -0700 Ian Lepore wrote: > On Mon, 2016-01-25 at 17:00 +0000, Andrew Turner wrote: > > On Mon, 25 Jan 2016 17:44:53 +0200 > > Konstantin Belousov wrote: > > > > > On Mon, Jan 25, 2016 at 02:09:36PM +0000, Svatopluk Kraus wrote: > > > > Author: skra > > > > Date: Mon Jan 25 14:09:35 2016 > > > > New Revision: 294727 > > > > URL: https://svnweb.freebsd.org/changeset/base/294727 > > > > > > > > Log: > > > > Fix an occasional undefined instruction abort during module > > > > loading. > > > > Even if data cache maintenance was done by IO code, the > > > > relocation > > > > fixup process creates dirty cache entries that we must write > > > > back > > > > before doing icache sync. > > > Does arm64 need the same fix ? > > > > > > > I don't think so. On arm64 we call cpu_icache_sync_range to sync the > > I > > and D cache. This will clean the D-Cache to the Point of Coherency, > > then invalidate the I-Cache. I think this is slightly wrong as we > > only > > need to clean to the Point of Unification. > > > > Looking at the ARMv7 implementation of cpu_icache_sync_all is wrong, > > it > > only invalidates the I-Cache. cpu_icache_sync_range is almost > > correct, > > it will clean the D-Cache, with the same issue as arm64, but it is > > missing a barrier after this operation, and is missing a branch > > predictor invalidation. > > > > This change seems to be working around the brokenness of the > > existing cache sync operations rather than fixing them, however I > > don't know the > > details on why this approach to fixing the issue was taken. > > > > Andrew > > > > I disagree that the fact that icache_sync only cleans the icache means > it's broken. It means that the callers have to do the right thing > with the data cache before calling the icache ops depending on the > situation, and that's what arm code has always done. If it's not broken then we are needlessly issuing extra cache handling operations in other places. If we expect these function to sync the icache with an already clean dcache then armv7_icache_sync_all looks correct (other than a missing branch predictor invalidation). However in this case why are we cleaning the dcache in armv7_icache_sync_range? In arm9_icache_sync_all and arm9_icache_sync_range we flush the icache before cleaning the dcache. This also seems wrong given the above, however I'm unsure on the details of cache handling on these older CPUs. Andrew From owner-svn-src-all@freebsd.org Mon Jan 25 18:02:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D8D05A45F92; Mon, 25 Jan 2016 18:02:29 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A5C24D24; Mon, 25 Jan 2016 18:02:29 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PI2Svw085223; Mon, 25 Jan 2016 18:02:28 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PI2S8N085219; Mon, 25 Jan 2016 18:02:28 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601251802.u0PI2S8N085219@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Mon, 25 Jan 2016 18:02:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294740 - in head/sys: arm/arm arm/include conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 18:02:29 -0000 Author: zbb Date: Mon Jan 25 18:02:28 2016 New Revision: 294740 URL: https://svnweb.freebsd.org/changeset/base/294740 Log: Introduce support for HW watchpoints and single stepping for ARMv6/v7 Allows for using hardware watchpoints for 1, 2, 4, 8 byte long addresses. The default configuration of watchpoint is RW but code allows to select RO or WO and X. Since debugging registers are per-CPU (CP14) the watchpoint is set on the CPU that was lucky (or not) to enter DDB. HW breakpoints are used to perform single step in KDB. When HW breakpoint is enabled all watchpoints are temporary disabled to avoid recursive abort on both watchpoint and breakpoint. In case of branch, the breakpoint is set to both - next instruction and possible branch address. This requires at least 2 breakpoints supported in the CPU however this is a must for ARMv6/v7 CPUs. Reviewed by: imp Submitted by: Zbigniew Bodek Obtained from: Semihalf Sponsored by: Juniper Networks Inc. Differential Revision: https://reviews.freebsd.org/D4037 Added: head/sys/arm/arm/debug_monitor.c (contents, props changed) head/sys/arm/include/debug_monitor.h (contents, props changed) Modified: head/sys/arm/arm/db_trace.c head/sys/arm/arm/machdep.c head/sys/arm/arm/trap-v6.c head/sys/arm/include/cpu-v6.h head/sys/arm/include/db_machdep.h head/sys/arm/include/kdb.h head/sys/arm/include/sysreg.h head/sys/conf/files.arm Modified: head/sys/arm/arm/db_trace.c ============================================================================== --- head/sys/arm/arm/db_trace.c Mon Jan 25 17:40:53 2016 (r294739) +++ head/sys/arm/arm/db_trace.c Mon Jan 25 18:02:28 2016 (r294740) @@ -28,6 +28,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. */ +#include "opt_ddb.h" #include __FBSDID("$FreeBSD$"); @@ -43,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -127,22 +129,25 @@ db_stack_trace_cmd(struct unwind_state * } } -/* XXX stubs */ void db_md_list_watchpoints() { + + dbg_show_watchpoint(); } int db_md_clr_watchpoint(db_expr_t addr, db_expr_t size) { - return (0); + + return (dbg_remove_watchpoint(addr, size)); } int db_md_set_watchpoint(db_expr_t addr, db_expr_t size) { - return (0); + + return (dbg_setup_watchpoint(addr, size, HW_WATCHPOINT_RW)); } int Added: head/sys/arm/arm/debug_monitor.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/arm/debug_monitor.c Mon Jan 25 18:02:28 2016 (r294740) @@ -0,0 +1,943 @@ +/* + * Copyright (c) 2015 Juniper Networks Inc. + * All rights reserved. + * + * Developed by Semihalf. + * + * 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 "opt_ddb.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +enum dbg_t { + DBG_TYPE_BREAKPOINT = 0, + DBG_TYPE_WATCHPOINT = 1, +}; + +struct dbg_wb_conf { + enum dbg_t type; + enum dbg_access_t access; + db_addr_t address; + db_expr_t size; + u_int slot; +}; + +static int dbg_reset_state(void); +static int dbg_setup_breakpoint(db_expr_t, db_expr_t, u_int); +static int dbg_remove_breakpoint(u_int); +static u_int dbg_find_slot(enum dbg_t, db_expr_t); +static boolean_t dbg_check_slot_free(enum dbg_t, u_int); + +static int dbg_remove_xpoint(struct dbg_wb_conf *); +static int dbg_setup_xpoint(struct dbg_wb_conf *); + +static boolean_t dbg_capable; /* Indicates that machine is capable of using + HW watchpoints/breakpoints */ +static boolean_t dbg_ready[MAXCPU]; /* Debug arch. reset performed on this CPU */ + +static uint32_t dbg_model; /* Debug Arch. Model */ +static boolean_t dbg_ossr; /* OS Save and Restore implemented */ + +static uint32_t dbg_watchpoint_num; +static uint32_t dbg_breakpoint_num; + +static int dbg_ref_count_mme[MAXCPU]; /* Times monitor mode was enabled */ + +/* ID_DFR0 - Debug Feature Register 0 */ +#define ID_DFR0_CP_DEBUG_M_SHIFT 0 +#define ID_DFR0_CP_DEBUG_M_MASK (0xF << ID_DFR0_CP_DEBUG_M_SHIFT) +#define ID_DFR0_CP_DEBUG_M_NS (0x0) /* Not supported */ +#define ID_DFR0_CP_DEBUG_M_V6 (0x2) /* v6 Debug arch. CP14 access */ +#define ID_DFR0_CP_DEBUG_M_V6_1 (0x3) /* v6.1 Debug arch. CP14 access */ +#define ID_DFR0_CP_DEBUG_M_V7 (0x4) /* v7 Debug arch. CP14 access */ +#define ID_DFR0_CP_DEBUG_M_V7_1 (0x5) /* v7.1 Debug arch. CP14 access */ + +/* DBGDIDR - Debug ID Register */ +#define DBGDIDR_WRPS_SHIFT 28 +#define DBGDIDR_WRPS_MASK (0xF << DBGDIDR_WRPS_SHIFT) +#define DBGDIDR_WRPS_NUM(reg) \ + ((((reg) & DBGDIDR_WRPS_MASK) >> DBGDIDR_WRPS_SHIFT) + 1) + +#define DBGDIDR_BRPS_SHIFT 24 +#define DBGDIDR_BRPS_MASK (0xF << DBGDIDR_BRPS_SHIFT) +#define DBGDIDR_BRPS_NUM(reg) \ + ((((reg) & DBGDIDR_BRPS_MASK) >> DBGDIDR_BRPS_SHIFT) + 1) + +/* DBGPRSR - Device Powerdown and Reset Status Register */ +#define DBGPRSR_PU (1 << 0) /* Powerup status */ + +/* DBGOSLSR - OS Lock Status Register */ +#define DBGOSLSR_OSLM0 (1 << 0) + +/* DBGOSDLR - OS Double Lock Register */ +#define DBGPRSR_DLK (1 << 0) /* OS Double Lock set */ + +/* DBGDSCR - Debug Status and Control Register */ +#define DBGSCR_MDBG_EN (1 << 15) /* Monitor debug-mode enable */ + +/* DBGWVR - Watchpoint Value Register */ +#define DBGWVR_ADDR_MASK (~0x3U) + +/* Watchpoints/breakpoints control register bitfields */ +#define DBG_WB_CTRL_LEN_1 (0x1 << 5) +#define DBG_WB_CTRL_LEN_2 (0x3 << 5) +#define DBG_WB_CTRL_LEN_4 (0xf << 5) +#define DBG_WB_CTRL_LEN_8 (0xff << 5) +#define DBG_WB_CTRL_LEN_MASK(x) ((x) & (0xff << 5)) +#define DBG_WB_CTRL_EXEC (0x0 << 3) +#define DBG_WB_CTRL_LOAD (0x1 << 3) +#define DBG_WB_CTRL_STORE (0x2 << 3) +#define DBG_WB_CTRL_ACCESS_MASK(x) ((x) & (0x3 << 3)) + +/* Common for breakpoint and watchpoint */ +#define DBG_WB_CTRL_PL1 (0x1 << 1) +#define DBG_WB_CTRL_PL0 (0x2 << 1) +#define DBG_WB_CTRL_PLX_MASK(x) ((x) & (0x3 << 1)) +#define DBG_WB_CTRL_E (0x1 << 0) + +/* + * Watchpoint/breakpoint helpers + */ +#define DBG_BKPT_BT_SLOT 0 /* Slot for branch taken */ +#define DBG_BKPT_BNT_SLOT 1 /* Slot for branch not taken */ + +#define OP2_SHIFT 4 + +/* Opc2 numbers for coprocessor instructions */ +#define DBG_WB_BVR 4 +#define DBG_WB_BCR 5 +#define DBG_WB_WVR 6 +#define DBG_WB_WCR 7 + +#define DBG_REG_BASE_BVR (DBG_WB_BVR << OP2_SHIFT) +#define DBG_REG_BASE_BCR (DBG_WB_BCR << OP2_SHIFT) +#define DBG_REG_BASE_WVR (DBG_WB_WVR << OP2_SHIFT) +#define DBG_REG_BASE_WCR (DBG_WB_WCR << OP2_SHIFT) + +#define DBG_WB_READ(cn, cm, op2, val) do { \ + __asm __volatile("mrc p14, 0, %0, " #cn "," #cm "," #op2 : "=r" (val)); \ +} while (0) + +#define DBG_WB_WRITE(cn, cm, op2, val) do { \ + __asm __volatile("mcr p14, 0, %0, " #cn "," #cm "," #op2 :: "r" (val)); \ +} while (0) + +#define READ_WB_REG_CASE(op2, m, val) \ + case (((op2) << OP2_SHIFT) + m): \ + DBG_WB_READ(c0, c ## m, op2, val); \ + break + +#define WRITE_WB_REG_CASE(op2, m, val) \ + case (((op2) << OP2_SHIFT) + m): \ + DBG_WB_WRITE(c0, c ## m, op2, val); \ + break + +#define SWITCH_CASES_READ_WB_REG(op2, val) \ + READ_WB_REG_CASE(op2, 0, val); \ + READ_WB_REG_CASE(op2, 1, val); \ + READ_WB_REG_CASE(op2, 2, val); \ + READ_WB_REG_CASE(op2, 3, val); \ + READ_WB_REG_CASE(op2, 4, val); \ + READ_WB_REG_CASE(op2, 5, val); \ + READ_WB_REG_CASE(op2, 6, val); \ + READ_WB_REG_CASE(op2, 7, val); \ + READ_WB_REG_CASE(op2, 8, val); \ + READ_WB_REG_CASE(op2, 9, val); \ + READ_WB_REG_CASE(op2, 10, val); \ + READ_WB_REG_CASE(op2, 11, val); \ + READ_WB_REG_CASE(op2, 12, val); \ + READ_WB_REG_CASE(op2, 13, val); \ + READ_WB_REG_CASE(op2, 14, val); \ + READ_WB_REG_CASE(op2, 15, val) + +#define SWITCH_CASES_WRITE_WB_REG(op2, val) \ + WRITE_WB_REG_CASE(op2, 0, val); \ + WRITE_WB_REG_CASE(op2, 1, val); \ + WRITE_WB_REG_CASE(op2, 2, val); \ + WRITE_WB_REG_CASE(op2, 3, val); \ + WRITE_WB_REG_CASE(op2, 4, val); \ + WRITE_WB_REG_CASE(op2, 5, val); \ + WRITE_WB_REG_CASE(op2, 6, val); \ + WRITE_WB_REG_CASE(op2, 7, val); \ + WRITE_WB_REG_CASE(op2, 8, val); \ + WRITE_WB_REG_CASE(op2, 9, val); \ + WRITE_WB_REG_CASE(op2, 10, val); \ + WRITE_WB_REG_CASE(op2, 11, val); \ + WRITE_WB_REG_CASE(op2, 12, val); \ + WRITE_WB_REG_CASE(op2, 13, val); \ + WRITE_WB_REG_CASE(op2, 14, val); \ + WRITE_WB_REG_CASE(op2, 15, val) + +static uint32_t +dbg_wb_read_reg(int reg, int n) +{ + uint32_t val; + + val = 0; + + switch (reg + n) { + SWITCH_CASES_READ_WB_REG(DBG_WB_WVR, val); + SWITCH_CASES_READ_WB_REG(DBG_WB_WCR, val); + SWITCH_CASES_READ_WB_REG(DBG_WB_BVR, val); + SWITCH_CASES_READ_WB_REG(DBG_WB_BCR, val); + default: + db_printf( + "trying to read from CP14 reg. using wrong opc2 %d\n", + reg >> OP2_SHIFT); + } + + return (val); +} + +static void +dbg_wb_write_reg(int reg, int n, uint32_t val) +{ + + switch (reg + n) { + SWITCH_CASES_WRITE_WB_REG(DBG_WB_WVR, val); + SWITCH_CASES_WRITE_WB_REG(DBG_WB_WCR, val); + SWITCH_CASES_WRITE_WB_REG(DBG_WB_BVR, val); + SWITCH_CASES_WRITE_WB_REG(DBG_WB_BCR, val); + default: + db_printf( + "trying to write to CP14 reg. using wrong opc2 %d\n", + reg >> OP2_SHIFT); + } + isb(); +} + +boolean_t +kdb_cpu_pc_is_singlestep(db_addr_t pc) +{ + + if (dbg_find_slot(DBG_TYPE_BREAKPOINT, pc) != ~0U) + return (TRUE); + + return (FALSE); +} + +void +kdb_cpu_set_singlestep(void) +{ + db_expr_t inst; + db_addr_t pc, brpc; + uint32_t wcr; + u_int i; + + /* + * Disable watchpoints, e.g. stepping over watched instruction will + * trigger break exception instead of single-step exception and locks + * CPU on that instruction for ever. + */ + for (i = 0; i < dbg_watchpoint_num; i++) { + wcr = dbg_wb_read_reg(DBG_REG_BASE_WCR, i); + if ((wcr & DBG_WB_CTRL_E) != 0) { + dbg_wb_write_reg(DBG_REG_BASE_WCR, i, + (wcr & ~DBG_WB_CTRL_E)); + } + } + + pc = PC_REGS(); + + inst = db_get_value(pc, sizeof(pc), FALSE); + if (inst_branch(inst) || inst_call(inst) || inst_return(inst)) { + brpc = branch_taken(inst, pc); + dbg_setup_breakpoint(brpc, INSN_SIZE, DBG_BKPT_BT_SLOT); + } + pc = next_instr_address(pc, 0); + dbg_setup_breakpoint(pc, INSN_SIZE, DBG_BKPT_BNT_SLOT); +} + +void +kdb_cpu_clear_singlestep(void) +{ + uint32_t wvr, wcr; + u_int i; + + dbg_remove_breakpoint(DBG_BKPT_BT_SLOT); + dbg_remove_breakpoint(DBG_BKPT_BNT_SLOT); + + /* Restore all watchpoints */ + for (i = 0; i < dbg_watchpoint_num; i++) { + wcr = dbg_wb_read_reg(DBG_REG_BASE_WCR, i); + wvr = dbg_wb_read_reg(DBG_REG_BASE_WVR, i); + /* Watchpoint considered not empty if address value is not 0 */ + if ((wvr & DBGWVR_ADDR_MASK) != 0) { + dbg_wb_write_reg(DBG_REG_BASE_WCR, i, + (wcr | DBG_WB_CTRL_E)); + } + } +} + +int +dbg_setup_watchpoint(db_expr_t addr, db_expr_t size, enum dbg_access_t access) +{ + struct dbg_wb_conf conf; + + if (access == HW_BREAKPOINT_X) { + db_printf("Invalid access type for watchpoint: %d\n", access); + return (EINVAL); + } + + conf.address = addr; + conf.size = size; + conf.access = access; + conf.type = DBG_TYPE_WATCHPOINT; + + return (dbg_setup_xpoint(&conf)); +} + +int +dbg_remove_watchpoint(db_expr_t addr, db_expr_t size __unused) +{ + struct dbg_wb_conf conf; + + conf.address = addr; + conf.type = DBG_TYPE_WATCHPOINT; + + return (dbg_remove_xpoint(&conf)); +} + +static int +dbg_setup_breakpoint(db_expr_t addr, db_expr_t size, u_int slot) +{ + struct dbg_wb_conf conf; + + conf.address = addr; + conf.size = size; + conf.access = HW_BREAKPOINT_X; + conf.type = DBG_TYPE_BREAKPOINT; + conf.slot = slot; + + return (dbg_setup_xpoint(&conf)); +} + +static int +dbg_remove_breakpoint(u_int slot) +{ + struct dbg_wb_conf conf; + + /* Slot already cleared. Don't recurse */ + if (dbg_check_slot_free(DBG_TYPE_BREAKPOINT, slot)) + return (0); + + conf.slot = slot; + conf.type = DBG_TYPE_BREAKPOINT; + + return (dbg_remove_xpoint(&conf)); +} + +static const char * +dbg_watchtype_str(uint32_t type) +{ + + switch (type) { + case DBG_WB_CTRL_EXEC: + return ("execute"); + case DBG_WB_CTRL_STORE: + return ("write"); + case DBG_WB_CTRL_LOAD: + return ("read"); + case DBG_WB_CTRL_LOAD | DBG_WB_CTRL_STORE: + return ("read/write"); + default: + return ("invalid"); + } +} + +static int +dbg_watchtype_len(uint32_t len) +{ + + switch (len) { + case DBG_WB_CTRL_LEN_1: + return (1); + case DBG_WB_CTRL_LEN_2: + return (2); + case DBG_WB_CTRL_LEN_4: + return (4); + case DBG_WB_CTRL_LEN_8: + return (8); + default: + return (0); + } +} + +void +dbg_show_watchpoint(void) +{ + uint32_t wcr, len, type; + uint32_t addr; + boolean_t is_enabled; + int i; + + if (!dbg_capable) { + db_printf("Architecture does not support HW " + "breakpoints/watchpoints\n"); + return; + } + + db_printf("\nhardware watchpoints:\n"); + db_printf(" watch status type len address symbol\n"); + db_printf(" ----- -------- ---------- --- ---------- ------------------\n"); + for (i = 0; i < dbg_watchpoint_num; i++) { + wcr = dbg_wb_read_reg(DBG_REG_BASE_WCR, i); + if ((wcr & DBG_WB_CTRL_E) != 0) + is_enabled = TRUE; + else + is_enabled = FALSE; + + type = DBG_WB_CTRL_ACCESS_MASK(wcr); + len = DBG_WB_CTRL_LEN_MASK(wcr); + addr = dbg_wb_read_reg(DBG_REG_BASE_WVR, i) & DBGWVR_ADDR_MASK; + db_printf(" %-5d %-8s %10s %3d 0x%08x ", i, + is_enabled ? "enabled" : "disabled", + is_enabled ? dbg_watchtype_str(type) : "", + is_enabled ? dbg_watchtype_len(len) : 0, + addr); + db_printsym((db_addr_t)addr, DB_STGY_ANY); + db_printf("\n"); + } +} + +static boolean_t +dbg_check_slot_free(enum dbg_t type, u_int slot) +{ + uint32_t cr, vr; + uint32_t max; + + switch(type) { + case DBG_TYPE_BREAKPOINT: + max = dbg_breakpoint_num; + cr = DBG_REG_BASE_BCR; + vr = DBG_REG_BASE_BVR; + break; + case DBG_TYPE_WATCHPOINT: + max = dbg_watchpoint_num; + cr = DBG_REG_BASE_WCR; + vr = DBG_REG_BASE_WVR; + break; + default: + db_printf("%s: Unsupported event type %d\n", __func__, type); + return (FALSE); + } + + if (slot >= max) { + db_printf("%s: Invalid slot number %d, max %d\n", + __func__, slot, max - 1); + return (FALSE); + } + + if ((dbg_wb_read_reg(cr, slot) & DBG_WB_CTRL_E) == 0 && + (dbg_wb_read_reg(vr, slot) & DBGWVR_ADDR_MASK) == 0) + return (TRUE); + + return (FALSE); +} + +static u_int +dbg_find_free_slot(enum dbg_t type) +{ + u_int max, i; + + switch(type) { + case DBG_TYPE_BREAKPOINT: + max = dbg_breakpoint_num; + break; + case DBG_TYPE_WATCHPOINT: + max = dbg_watchpoint_num; + break; + default: + db_printf("Unsupported debug type\n"); + return (~0U); + } + + for (i = 0; i < max; i++) { + if (dbg_check_slot_free(type, i)) + return (i); + } + + return (~0U); +} + +static u_int +dbg_find_slot(enum dbg_t type, db_expr_t addr) +{ + uint32_t reg_addr, reg_ctrl; + u_int max, i; + + switch(type) { + case DBG_TYPE_BREAKPOINT: + max = dbg_breakpoint_num; + reg_addr = DBG_REG_BASE_BVR; + reg_ctrl = DBG_REG_BASE_BCR; + break; + case DBG_TYPE_WATCHPOINT: + max = dbg_watchpoint_num; + reg_addr = DBG_REG_BASE_WVR; + reg_ctrl = DBG_REG_BASE_WCR; + break; + default: + db_printf("Unsupported debug type\n"); + return (~0U); + } + + for (i = 0; i < max; i++) { + if ((dbg_wb_read_reg(reg_addr, i) == addr) && + ((dbg_wb_read_reg(reg_ctrl, i) & DBG_WB_CTRL_E) != 0)) + return (i); + } + + return (~0U); +} + +static __inline boolean_t +dbg_monitor_is_enabled(void) +{ + + return ((cp14_dbgdscrint_get() & DBGSCR_MDBG_EN) != 0); +} + +static int +dbg_enable_monitor(void) +{ + uint32_t dbg_dscr; + + /* Already enabled? Just increment reference counter and return */ + if (dbg_monitor_is_enabled()) { + dbg_ref_count_mme[PCPU_GET(cpuid)]++; + return (0); + } + + dbg_dscr = cp14_dbgdscrint_get(); + + switch (dbg_model) { + case ID_DFR0_CP_DEBUG_M_V6: + case ID_DFR0_CP_DEBUG_M_V6_1: /* fall through */ + cp14_dbgdscr_v6_set(dbg_dscr | DBGSCR_MDBG_EN); + break; + case ID_DFR0_CP_DEBUG_M_V7: /* fall through */ + case ID_DFR0_CP_DEBUG_M_V7_1: + cp14_dbgdscr_v7_set(dbg_dscr | DBGSCR_MDBG_EN); + break; + default: + break; + } + isb(); + + /* Verify that Monitor mode is set */ + if (dbg_monitor_is_enabled()) { + dbg_ref_count_mme[PCPU_GET(cpuid)]++; + return (0); + } + + return (ENXIO); +} + +static int +dbg_disable_monitor(void) +{ + uint32_t dbg_dscr; + + if (!dbg_monitor_is_enabled()) + return (0); + + if (--dbg_ref_count_mme[PCPU_GET(cpuid)] > 0) + return (0); + + dbg_dscr = cp14_dbgdscrint_get(); + switch (dbg_model) { + case ID_DFR0_CP_DEBUG_M_V6: + case ID_DFR0_CP_DEBUG_M_V6_1: /* fall through */ + dbg_dscr &= ~DBGSCR_MDBG_EN; + cp14_dbgdscr_v6_set(dbg_dscr); + break; + case ID_DFR0_CP_DEBUG_M_V7: /* fall through */ + case ID_DFR0_CP_DEBUG_M_V7_1: + dbg_dscr &= ~DBGSCR_MDBG_EN; + cp14_dbgdscr_v7_set(dbg_dscr); + break; + default: + return (ENXIO); + } + isb(); + + return (0); +} + +static int +dbg_setup_xpoint(struct dbg_wb_conf *conf) +{ + const char *typestr; + uint32_t cr_size, cr_priv, cr_access; + uint32_t reg_ctrl, reg_addr, ctrl, addr; + boolean_t is_bkpt; + u_int cpuid; + u_int i; + int err; + + if (!dbg_capable) + return (ENXIO); + + is_bkpt = (conf->type == DBG_TYPE_BREAKPOINT); + typestr = is_bkpt ? "breakpoint" : "watchpoint"; + + cpuid = PCPU_GET(cpuid); + if (!dbg_ready[cpuid]) { + err = dbg_reset_state(); + if (err != 0) + return (err); + dbg_ready[cpuid] = TRUE; + } + + if (is_bkpt) { + if (dbg_breakpoint_num == 0) { + db_printf("Breakpoints not supported on this architecture\n"); + return (ENXIO); + } + i = conf->slot; + if (!dbg_check_slot_free(DBG_TYPE_BREAKPOINT, i)) { + /* + * This should never happen. If it does it means that + * there is an erroneus scenario somewhere. Still, it can + * be done but let's inform the user. + */ + db_printf("ERROR: Breakpoint already set. Replacing...\n"); + } + } else { + i = dbg_find_free_slot(DBG_TYPE_WATCHPOINT); + if (i == ~0U) { + db_printf("Can not find slot for %s, max %d slots supported\n", + typestr, dbg_watchpoint_num); + return (ENXIO); + } + } + + /* Kernel access only */ + cr_priv = DBG_WB_CTRL_PL1; + + switch(conf->size) { + case 1: + cr_size = DBG_WB_CTRL_LEN_1; + break; + case 2: + cr_size = DBG_WB_CTRL_LEN_2; + break; + case 4: + cr_size = DBG_WB_CTRL_LEN_4; + break; + case 8: + cr_size = DBG_WB_CTRL_LEN_8; + break; + default: + db_printf("Unsupported address size for %s\n", typestr); + return (EINVAL); + } + + if (is_bkpt) { + cr_access = DBG_WB_CTRL_EXEC; + reg_ctrl = DBG_REG_BASE_BCR; + reg_addr = DBG_REG_BASE_BVR; + /* Always unlinked BKPT */ + ctrl = (cr_size | cr_access | cr_priv | DBG_WB_CTRL_E); + } else { + switch(conf->access) { + case HW_WATCHPOINT_R: + cr_access = DBG_WB_CTRL_LOAD; + break; + case HW_WATCHPOINT_W: + cr_access = DBG_WB_CTRL_STORE; + break; + case HW_WATCHPOINT_RW: + cr_access = DBG_WB_CTRL_LOAD | DBG_WB_CTRL_STORE; + break; + default: + db_printf("Unsupported exception level for %s\n", typestr); + return (EINVAL); + } + + reg_ctrl = DBG_REG_BASE_WCR; + reg_addr = DBG_REG_BASE_WVR; + ctrl = (cr_size | cr_access | cr_priv | DBG_WB_CTRL_E); + } + + addr = conf->address; + + dbg_wb_write_reg(reg_addr, i, addr); + dbg_wb_write_reg(reg_ctrl, i, ctrl); + + return (dbg_enable_monitor()); +} + +static int +dbg_remove_xpoint(struct dbg_wb_conf *conf) +{ + uint32_t reg_ctrl, reg_addr, addr; + u_int cpuid; + u_int i; + int err; + + if (!dbg_capable) + return (ENXIO); + + cpuid = PCPU_GET(cpuid); + if (!dbg_ready[cpuid]) { + err = dbg_reset_state(); + if (err != 0) + return (err); + dbg_ready[cpuid] = TRUE; + } + + addr = conf->address; + + if (conf->type == DBG_TYPE_BREAKPOINT) { + i = conf->slot; + reg_ctrl = DBG_REG_BASE_BCR; + reg_addr = DBG_REG_BASE_BVR; + } else { + i = dbg_find_slot(DBG_TYPE_WATCHPOINT, addr); + if (i == ~0U) { + db_printf("Can not find watchpoint for address 0%x\n", addr); + return (EINVAL); + } + reg_ctrl = DBG_REG_BASE_WCR; + reg_addr = DBG_REG_BASE_WVR; + } + + dbg_wb_write_reg(reg_ctrl, i, 0); + dbg_wb_write_reg(reg_addr, i, 0); + + return (dbg_disable_monitor()); +} + +static __inline uint32_t +dbg_get_debug_model(void) +{ + uint32_t dbg_m; + + dbg_m = ((cpuinfo.id_dfr0 & ID_DFR0_CP_DEBUG_M_MASK) >> + ID_DFR0_CP_DEBUG_M_SHIFT); + + return (dbg_m); +} + +static __inline boolean_t +dbg_get_ossr(void) +{ + + switch (dbg_model) { + case ID_DFR0_CP_DEBUG_M_V6_1: + if ((cp14_dbgoslsr_get() & DBGOSLSR_OSLM0) != 0) + return (TRUE); + + return (FALSE); + case ID_DFR0_CP_DEBUG_M_V7_1: + return (TRUE); + default: + return (FALSE); + } +} + +static __inline boolean_t +dbg_arch_supported(void) +{ + + switch (dbg_model) { + case ID_DFR0_CP_DEBUG_M_V6: + case ID_DFR0_CP_DEBUG_M_V6_1: + case ID_DFR0_CP_DEBUG_M_V7: + case ID_DFR0_CP_DEBUG_M_V7_1: /* fall through */ + return (TRUE); + default: + /* We only support valid v6.x/v7.x modes through CP14 */ + return (FALSE); + } +} + +static __inline uint32_t +dbg_get_wrp_num(void) +{ + uint32_t dbg_didr; + + dbg_didr = cp14_dbgdidr_get(); + + return (DBGDIDR_WRPS_NUM(dbg_didr)); +} + +static __inline uint32_t +dgb_get_brp_num(void) +{ + uint32_t dbg_didr; + + dbg_didr = cp14_dbgdidr_get(); + + return (DBGDIDR_BRPS_NUM(dbg_didr)); +} + +static int +dbg_reset_state(void) +{ + u_int cpuid; + size_t i; + int err; + + cpuid = PCPU_GET(cpuid); + err = 0; + + switch (dbg_model) { + case ID_DFR0_CP_DEBUG_M_V6: + /* v6 Debug logic reset upon power-up */ + return (0); + case ID_DFR0_CP_DEBUG_M_V6_1: + /* Is core power domain powered up? */ + if ((cp14_dbgprsr_get() & DBGPRSR_PU) == 0) + err = ENXIO; + + if (err != 0) + break; + + if (dbg_ossr) + goto vectr_clr; + break; + case ID_DFR0_CP_DEBUG_M_V7: + break; + case ID_DFR0_CP_DEBUG_M_V7_1: + /* Is double lock set? */ + if ((cp14_dbgosdlr_get() & DBGPRSR_DLK) != 0) + err = ENXIO; + + break; + default: + break; + } + + if (err != 0) { + db_printf("Debug facility locked (CPU%d)\n", cpuid); + return (err); + } + + /* + * DBGOSLAR is always implemented for v7.1 Debug Arch. however is + * optional for v7 (depends on OS save and restore support). + */ + if (((dbg_model & ID_DFR0_CP_DEBUG_M_V7_1) != 0) || dbg_ossr) { + /* + * Clear OS lock. + * Writing any other value than 0xC5ACCESS will unlock. + */ + cp14_dbgoslar_set(0); + isb(); + } + +vectr_clr: + /* + * After reset we must ensure that DBGVCR has a defined value. + * Disable all vector catch events. Safe to use - required in all + * implementations. + */ + cp14_dbgvcr_set(0); + isb(); + + /* + * We have limited number of {watch,break}points, each consists of + * two registers: + * - wcr/bcr regsiter configurates corresponding {watch,break}point + * behaviour + * - wvr/bvr register keeps address we are hunting for + * + * Reset all breakpoints and watchpoints. + */ + for (i = 0; i < dbg_watchpoint_num; ++i) { + dbg_wb_write_reg(DBG_REG_BASE_WCR, i, 0); + dbg_wb_write_reg(DBG_REG_BASE_WVR, i, 0); + } + + for (i = 0; i < dbg_breakpoint_num; ++i) { + dbg_wb_write_reg(DBG_REG_BASE_BCR, i, 0); + dbg_wb_write_reg(DBG_REG_BASE_BVR, i, 0); + } + + return (0); +} + +void +dbg_monitor_init(void) +{ + int err; + + /* Fetch ARM Debug Architecture model */ + dbg_model = dbg_get_debug_model(); + + if (!dbg_arch_supported()) { + db_printf("ARM Debug Architecture not supported\n"); + return; + } + + if (bootverbose) { + db_printf("ARM Debug Architecture %s\n", + (dbg_model == ID_DFR0_CP_DEBUG_M_V6) ? "v6" : + (dbg_model == ID_DFR0_CP_DEBUG_M_V6_1) ? "v6.1" : + (dbg_model == ID_DFR0_CP_DEBUG_M_V7) ? "v7" : + (dbg_model == ID_DFR0_CP_DEBUG_M_V7_1) ? "v7.1" : "unknown"); + } + + /* Do we have OS Save and Restore mechanism? */ + dbg_ossr = dbg_get_ossr(); + + /* Find out many breakpoints and watchpoints we can use */ + dbg_watchpoint_num = dbg_get_wrp_num(); + dbg_breakpoint_num = dgb_get_brp_num(); + + if (bootverbose) { + db_printf("%d watchpoints and %d breakpoints supported\n", + dbg_watchpoint_num, dbg_breakpoint_num); + } + + err = dbg_reset_state(); + if (err == 0) { + dbg_capable = TRUE; + return; + } + + db_printf("HW Breakpoints/Watchpoints not enabled on CPU%d\n", + PCPU_GET(cpuid)); +} Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Mon Jan 25 17:40:53 2016 (r294739) +++ head/sys/arm/arm/machdep.c Mon Jan 25 18:02:28 2016 (r294740) @@ -96,6 +96,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Jan 25 18:16:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6A11F7718; Mon, 25 Jan 2016 18:16:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 357F28C1; Mon, 25 Jan 2016 18:16:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PIGgcd088407; Mon, 25 Jan 2016 18:16:42 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PIGgBd088406; Mon, 25 Jan 2016 18:16:42 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601251816.u0PIGgBd088406@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 18:16:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294741 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 18:16:43 -0000 Author: bdrewery Date: Mon Jan 25 18:16:41 2016 New Revision: 294741 URL: https://svnweb.freebsd.org/changeset/base/294741 Log: Import latest auto.obj.mk 1.12 from contrib/bmake/mk. Modified: head/share/mk/auto.obj.mk Modified: head/share/mk/auto.obj.mk ============================================================================== --- head/share/mk/auto.obj.mk Mon Jan 25 18:02:28 2016 (r294740) +++ head/share/mk/auto.obj.mk Mon Jan 25 18:16:41 2016 (r294741) @@ -1,5 +1,5 @@ # $FreeBSD$ -# $Id: auto.obj.mk,v 1.10 2015/04/16 16:59:00 sjg Exp $ +# $Id: auto.obj.mk,v 1.12 2015/12/16 01:57:06 sjg Exp $ # # @(#) Copyright (c) 2004, Simon J. Gerraty # @@ -41,12 +41,12 @@ MKOBJDIRS= auto .if !defined(NOOBJ) && !defined(NO_OBJ) && ${MKOBJDIRS:Uno} == auto # Use __objdir here so it is easier to tweak without impacting # the logic. -.if !empty(MAKEOBJDIRPREFIX) && exists(${MAKEOBJDIRPREFIX}) +.if !empty(MAKEOBJDIRPREFIX) __objdir?= ${MAKEOBJDIRPREFIX}${.CURDIR} .endif __objdir?= ${MAKEOBJDIR:Uobj} -__objdir:= ${__objdir:tA} -.if ${.OBJDIR} != ${__objdir} +__objdir:= ${__objdir} +.if ${.OBJDIR:tA} != ${__objdir:tA} # We need to chdir, make the directory if needed .if !exists(${__objdir}/) && \ (${.TARGETS} == "" || ${.TARGETS:Nclean*:N*clean:Ndestroy*} != "") @@ -54,11 +54,10 @@ __objdir:= ${__objdir:tA} __objdir_made != echo ${__objdir}/; umask ${OBJDIR_UMASK:U002}; \ ${ECHO_TRACE} "[Creating objdir ${__objdir}...]" >&2; \ ${Mkdirs}; Mkdirs ${__objdir} -__objdir:= ${__objdir:tA} .endif # This causes make to use the specified directory as .OBJDIR .OBJDIR: ${__objdir} -.if ${.OBJDIR} != ${__objdir} && ${__objdir_made:Uno:M${__objdir}/*} != "" +.if ${.OBJDIR:tA} != ${__objdir:tA} && ${__objdir_made:Uno:M${__objdir}/*} != "" .error could not use ${__objdir}: .OBJDIR=${.OBJDIR} .endif .endif From owner-svn-src-all@freebsd.org Mon Jan 25 18:18:20 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5BEF07800; Mon, 25 Jan 2016 18:18:20 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3D76DA32; Mon, 25 Jan 2016 18:18:20 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 5169AB945; Mon, 25 Jan 2016 13:18:19 -0500 (EST) From: John Baldwin To: Steven Hartland Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: Re: svn commit: r294719 - stable/10/sys/boot/efi/boot1 Date: Mon, 25 Jan 2016 10:16:49 -0800 Message-ID: <4954368.cJavQLNNVz@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201601251048.u0PAmwB7050980@repo.freebsd.org> References: <201601251048.u0PAmwB7050980@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 25 Jan 2016 13:18:19 -0500 (EST) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 18:18:20 -0000 On Monday, January 25, 2016 10:48:58 AM Steven Hartland wrote: > Author: smh > Date: Mon Jan 25 10:48:58 2016 > New Revision: 294719 > URL: https://svnweb.freebsd.org/changeset/base/294719 > > Log: > MFC r281059 (by rpaulo): > > boot1 EFI: reset the screen and select the best mode. > > Sponsored by: Multiplay Note that this breaks the console on certain HP laptops. There was an earlier thread on hackers@. I will forward it to you. -- John Baldwin From owner-svn-src-all@freebsd.org Mon Jan 25 18:34:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6DDE77E0A; Mon, 25 Jan 2016 18:34:16 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3EFBE250; Mon, 25 Jan 2016 18:34:16 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PIYFHh094106; Mon, 25 Jan 2016 18:34:15 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PIYFFE094105; Mon, 25 Jan 2016 18:34:15 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601251834.u0PIYFFE094105@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 18:34:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294742 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 18:34:16 -0000 Author: bdrewery Date: Mon Jan 25 18:34:15 2016 New Revision: 294742 URL: https://svnweb.freebsd.org/changeset/base/294742 Log: Import latest meta.subdir.mk 1.11 from contrib/bmake/mk Modified: head/share/mk/meta.subdir.mk Modified: head/share/mk/meta.subdir.mk ============================================================================== --- head/share/mk/meta.subdir.mk Mon Jan 25 18:16:41 2016 (r294741) +++ head/share/mk/meta.subdir.mk Mon Jan 25 18:34:15 2016 (r294742) @@ -1,5 +1,5 @@ # $FreeBSD$ -# $Id: meta.subdir.mk,v 1.10 2012/07/03 05:26:46 sjg Exp $ +# $Id: meta.subdir.mk,v 1.11 2015/11/24 22:26:51 sjg Exp $ # # @(#) Copyright (c) 2010, Simon J. Gerraty @@ -63,7 +63,7 @@ _subdeps != cd ${.CURDIR} && \ DIRDEPS = .else # clean up if needed -DIRDEPS := ${DIRDEPS:S,^./,,:S,/./,/,g:${SUBDIREPS_FILTER:Uu}} +DIRDEPS := ${DIRDEPS:S,^./,,:S,/./,/,g:${SUBDIRDEPS_FILTER:Uu}} .endif # we just dealt with it, if we leave it defined, # dirdeps.mk will compute some interesting combinations. From owner-svn-src-all@freebsd.org Mon Jan 25 18:40:26 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 733FDA45098; Mon, 25 Jan 2016 18:40:26 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4135E6CE; Mon, 25 Jan 2016 18:40:26 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PIePeq094352; Mon, 25 Jan 2016 18:40:25 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PIePbQ094351; Mon, 25 Jan 2016 18:40:25 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601251840.u0PIePbQ094351@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 18:40:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294743 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 18:40:26 -0000 Author: bdrewery Date: Mon Jan 25 18:40:25 2016 New Revision: 294743 URL: https://svnweb.freebsd.org/changeset/base/294743 Log: Import latest gendirdeps.mk 1.29 from contrib/bmake/mk Modified: head/share/mk/gendirdeps.mk Modified: head/share/mk/gendirdeps.mk ============================================================================== --- head/share/mk/gendirdeps.mk Mon Jan 25 18:34:15 2016 (r294742) +++ head/share/mk/gendirdeps.mk Mon Jan 25 18:40:25 2016 (r294743) @@ -1,5 +1,5 @@ # $FreeBSD$ -# $Id: gendirdeps.mk,v 1.27 2015/06/08 20:55:11 sjg Exp $ +# $Id: gendirdeps.mk,v 1.29 2015/10/03 05:00:46 sjg Exp $ # Copyright (c) 2010-2013, Juniper Networks, Inc. # All rights reserved. @@ -158,7 +158,7 @@ M2D_OBJROOTS += ${SB_BACKING_SB}/${SB_OB .endif # we are only interested in the dirs -# sepecifically those we read something from. +# specifically those we read something from. # we canonicalize them to keep things simple # if we are using a split-fs sandbox, it gets a little messier. _objtop := ${_OBJTOP:tA} From owner-svn-src-all@freebsd.org Mon Jan 25 18:43:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54D7CA452EC; Mon, 25 Jan 2016 18:43:23 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0C366BF6; Mon, 25 Jan 2016 18:43:22 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PIhMDh097057; Mon, 25 Jan 2016 18:43:22 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PIhMa0097056; Mon, 25 Jan 2016 18:43:22 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601251843.u0PIhMa0097056@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 18:43:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294744 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 18:43:23 -0000 Author: bdrewery Date: Mon Jan 25 18:43:21 2016 New Revision: 294744 URL: https://svnweb.freebsd.org/changeset/base/294744 Log: Import latest host-target.mk 1.11 from contrib/bmake/mk Modified: head/share/mk/host-target.mk Modified: head/share/mk/host-target.mk ============================================================================== --- head/share/mk/host-target.mk Mon Jan 25 18:40:25 2016 (r294743) +++ head/share/mk/host-target.mk Mon Jan 25 18:43:21 2016 (r294744) @@ -1,6 +1,6 @@ # $FreeBSD$ # RCSid: -# $Id: host-target.mk,v 1.7 2014/05/16 17:54:52 sjg Exp $ +# $Id: host-target.mk,v 1.11 2015/10/25 00:07:20 sjg Exp $ # Host platform information; may be overridden .if !defined(_HOST_OSNAME) @@ -11,24 +11,33 @@ _HOST_OSNAME != uname -s _HOST_OSREL != uname -r .export _HOST_OSREL .endif +.if !defined(_HOST_MACHINE) +_HOST_MACHINE != uname -m +.export _HOST_MACHINE +.endif .if !defined(_HOST_ARCH) -_HOST_ARCH != uname -p 2>/dev/null || uname -m +# for NetBSD prefer $MACHINE (amd64 rather than x86_64) +.if ${_HOST_OSNAME:NNetBSD} == "" +_HOST_ARCH := ${_HOST_MACHINE} +.else +_HOST_ARCH != uname -p 2> /dev/null || uname -m # uname -p may produce garbage on linux -.if ${_HOST_ARCH:[\#]} > 1 -_HOST_ARCH != uname -m +.if ${_HOST_ARCH:[\#]} > 1 || ${_HOST_ARCH:Nunknown} == "" +_HOST_ARCH := ${_HOST_MACHINE} +.endif .endif .export _HOST_ARCH .endif .if !defined(HOST_MACHINE) -HOST_MACHINE != uname -m +HOST_MACHINE := ${_HOST_MACHINE} .export HOST_MACHINE .endif HOST_OSMAJOR := ${_HOST_OSREL:C/[^0-9].*//} -HOST_OSTYPE := ${_HOST_OSNAME}-${_HOST_OSREL:C/\([^\)]*\)//}-${_HOST_ARCH} +HOST_OSTYPE := ${_HOST_OSNAME:S,/,,g}-${_HOST_OSREL:C/\([^\)]*\)//}-${_HOST_ARCH} HOST_OS := ${_HOST_OSNAME} host_os := ${_HOST_OSNAME:tl} -HOST_TARGET := ${host_os}${HOST_OSMAJOR}-${_HOST_ARCH} +HOST_TARGET := ${host_os:S,/,,g}${HOST_OSMAJOR}-${_HOST_ARCH} # tr is insanely non-portable, accommodate the lowest common denominator TR ?= tr From owner-svn-src-all@freebsd.org Mon Jan 25 18:47:11 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F0863A45455; Mon, 25 Jan 2016 18:47:11 +0000 (UTC) (envelope-from onwahe@gmail.com) Received: from mail-ig0-x22c.google.com (mail-ig0-x22c.google.com [IPv6:2607:f8b0:4001:c05::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BC806F5F; Mon, 25 Jan 2016 18:47:11 +0000 (UTC) (envelope-from onwahe@gmail.com) Received: by mail-ig0-x22c.google.com with SMTP id ik10so40775830igb.1; Mon, 25 Jan 2016 10:47:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=wcRDTreqRtVIVyFGRRD5USfrUaVbh9p99/J9Hq6zxqM=; b=euPwLnJRy6xl8cCzApbwRtUS9pxKSPQhF197X+n1ttv7Xz8gICrFws35wfmwc5sdfI jmjGtWDLjcKNX+HyiDN6qI3fMUdyxpab9Y2R6Pb4j+sPE4+U12TzlL/gsi7PdLKPoZcD giHpEMmyI0WGgmbCGRMlZX4kzXCUE7q/qQkN4vc5xT1vg0gKJP8R1faERO1t/gu46M1A ro3ih0tly5CPPHfXeXMePRzVgdYYEXCDlB32iKRePu/rciB0Kbr4nlxyHJWHwuxNZ4gR kMlHdRB6q82HgtGnV+BKet0ZAbP2c3YhGErzPikLBPxQOhXghxOLrpTpwfeohNdaloEe hwOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=wcRDTreqRtVIVyFGRRD5USfrUaVbh9p99/J9Hq6zxqM=; b=cRT6DnLRRYaVccCgwpUPdrOusMout4wRZ2PCic78vEw0W2bMWZ+68hiSgVBtETrtmL 96gtbbmX1WNbNayaXV1pNNuAef0Ft5pUMcZTfmjh2BYYZ6jaTUA0Xs0jMzn8fR5+12MQ JeWV+Pua8X+ouCAJJWyM0qoYomGfMRAtPl0Dj/qA2uSUJnoTKTiBbXKTy91pkG/AfXWW z00P5EKt5DNzMQNbHmGYa2b3p+QmRQCPY6tih7R2sRHJoWt3m8EcQs5jYwCdDOeBqHB0 V/zTxXV8LlXwxxSd2yq+xzAhlsx3iTCWxxs3KrT8KHfM3fX8wYUgZ3DHioNFmKl9FZyP zEDA== X-Gm-Message-State: AG10YORgaKYr5zIEGpffoq8r7gzLmnkJCnRGvji1PB5hRVmbYriAy5vKdlnqkXKVK4Hnu0DA9h68sujsBhoKVg== MIME-Version: 1.0 X-Received: by 10.50.40.8 with SMTP id t8mr19436418igk.26.1453747631217; Mon, 25 Jan 2016 10:47:11 -0800 (PST) Received: by 10.64.55.97 with HTTP; Mon, 25 Jan 2016 10:47:11 -0800 (PST) In-Reply-To: <20160125174338.29103e6b@zapp.Home> References: <201601251409.u0PE9abE013306@repo.freebsd.org> <20160125154453.GA3942@kib.kiev.ua> <20160125170053.7ae20536@zapp.Home> <1453742926.42081.8.camel@freebsd.org> <20160125174338.29103e6b@zapp.Home> Date: Mon, 25 Jan 2016 19:47:11 +0100 Message-ID: Subject: Re: svn commit: r294727 - head/sys/arm/arm From: Svatopluk Kraus To: Andrew Turner Cc: Ian Lepore , Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 18:47:12 -0000 On Mon, Jan 25, 2016 at 6:43 PM, Andrew Turner wrote: > On Mon, 25 Jan 2016 10:28:46 -0700 > Ian Lepore wrote: > >> On Mon, 2016-01-25 at 17:00 +0000, Andrew Turner wrote: >> > On Mon, 25 Jan 2016 17:44:53 +0200 >> > Konstantin Belousov wrote: >> > >> > > On Mon, Jan 25, 2016 at 02:09:36PM +0000, Svatopluk Kraus wrote: >> > > > Author: skra >> > > > Date: Mon Jan 25 14:09:35 2016 >> > > > New Revision: 294727 >> > > > URL: https://svnweb.freebsd.org/changeset/base/294727 >> > > > >> > > > Log: >> > > > Fix an occasional undefined instruction abort during module >> > > > loading. >> > > > Even if data cache maintenance was done by IO code, the >> > > > relocation >> > > > fixup process creates dirty cache entries that we must write >> > > > back >> > > > before doing icache sync. >> > > Does arm64 need the same fix ? >> > > >> > >> > I don't think so. On arm64 we call cpu_icache_sync_range to sync the >> > I >> > and D cache. This will clean the D-Cache to the Point of Coherency, >> > then invalidate the I-Cache. I think this is slightly wrong as we >> > only >> > need to clean to the Point of Unification. >> > >> > Looking at the ARMv7 implementation of cpu_icache_sync_all is wrong, >> > it >> > only invalidates the I-Cache. cpu_icache_sync_range is almost >> > correct, >> > it will clean the D-Cache, with the same issue as arm64, but it is >> > missing a barrier after this operation, and is missing a branch >> > predictor invalidation. >> > >> > This change seems to be working around the brokenness of the >> > existing cache sync operations rather than fixing them, however I >> > don't know the >> > details on why this approach to fixing the issue was taken. >> > >> > Andrew >> > >> >> I disagree that the fact that icache_sync only cleans the icache means >> it's broken. It means that the callers have to do the right thing >> with the data cache before calling the icache ops depending on the >> situation, and that's what arm code has always done. > > If it's not broken then we are needlessly issuing extra cache handling > operations in other places. > > If we expect these function to sync the icache with an already clean > dcache then armv7_icache_sync_all looks correct (other than a missing > branch predictor invalidation). However in this case why are we > cleaning the dcache in armv7_icache_sync_range? > > In arm9_icache_sync_all and arm9_icache_sync_range we flush the icache > before cleaning the dcache. This also seems wrong given the above, > however I'm unsure on the details of cache handling on these older CPUs. > > Andrew Well, looking at patch, there is #if __ARM_ARCH >= 6 in the patch. For armv6/v7, the patch is perfectly correct. It does dcache_wb_pou() and then icache_inv_all(). According to arm arm manual, icache-invalidate-all does invalidate branch predictor cache too. I believe that cpu specific function (like armv7_icache_sync_all) are not used anymore for ARM_NEW_PMAP, which means armv6/v7. WRT armv4, I'm not familiar with their implementation, but the function calling sequence should be okay too. Svata From owner-svn-src-all@freebsd.org Mon Jan 25 19:11:35 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E5F9CA45F3A; Mon, 25 Jan 2016 19:11:35 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B83441F33; Mon, 25 Jan 2016 19:11:35 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PJBYYn006008; Mon, 25 Jan 2016 19:11:34 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PJBYo8006007; Mon, 25 Jan 2016 19:11:34 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601251911.u0PJBYo8006007@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 19:11:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294745 - head/lib/libc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 19:11:36 -0000 Author: bdrewery Date: Mon Jan 25 19:11:34 2016 New Revision: 294745 URL: https://svnweb.freebsd.org/changeset/base/294745 Log: Replace .CURDIR with SRCTOP to respect LIBC_SRCTOP feature. Modified: head/lib/libc/Makefile Modified: head/lib/libc/Makefile ============================================================================== --- head/lib/libc/Makefile Mon Jan 25 18:43:21 2016 (r294744) +++ head/lib/libc/Makefile Mon Jan 25 19:11:34 2016 (r294745) @@ -169,15 +169,15 @@ SUBDIR+= tests .if !defined(_SKIP_BUILD) # We need libutil.h, get it directly to avoid # recording a build dependency -CFLAGS+= -I${.CURDIR:H}/libutil +CFLAGS+= -I${SRCTOP}/lib/libutil # Same issue with libm -MSUN_ARCH_SUBDIR != ${MAKE} -B -C ${.CURDIR:H}/msun -V ARCH_SUBDIR +MSUN_ARCH_SUBDIR != ${MAKE} -B -C ${SRCTOP}/lib/msun -V ARCH_SUBDIR # unfortunately msun/src contains both private and public headers -CFLAGS+= -I${.CURDIR:H}/msun/${MSUN_ARCH_SUBDIR} +CFLAGS+= -I${SRCTOP}/lib/msun/${MSUN_ARCH_SUBDIR} .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" -CFLAGS+= -I${.CURDIR:H}/msun/x86 +CFLAGS+= -I${SRCTOP}/lib/msun/x86 .endif -CFLAGS+= -I${.CURDIR:H}/msun/src +CFLAGS+= -I${SRCTOP}/lib/msun/src # and we do not want to record a dependency on msun .if ${.MAKE.LEVEL} > 0 GENDIRDEPS_FILTER+= N${RELDIR:H}/msun From owner-svn-src-all@freebsd.org Mon Jan 25 20:04:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C405A46FAA; Mon, 25 Jan 2016 20:04:08 +0000 (UTC) (envelope-from jgh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F3C41C21; Mon, 25 Jan 2016 20:04:07 +0000 (UTC) (envelope-from jgh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PK47c9020603; Mon, 25 Jan 2016 20:04:07 GMT (envelope-from jgh@FreeBSD.org) Received: (from jgh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PK47e0020602; Mon, 25 Jan 2016 20:04:07 GMT (envelope-from jgh@FreeBSD.org) Message-Id: <201601252004.u0PK47e0020602@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jgh set sender to jgh@FreeBSD.org using -f From: Jason Helfman Date: Mon, 25 Jan 2016 20:04:07 +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: r294746 - stable/9/lib/libc/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-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 20:04:08 -0000 Author: jgh (doc,ports committer) Date: Mon Jan 25 20:04:06 2016 New Revision: 294746 URL: https://svnweb.freebsd.org/changeset/base/294746 Log: MFC 288833: PR: 203440 (based on) Submitted by: ceratv@rpi.edu Approved by: wblock@ (mentor) Differential Revision: https://reviews.freebsd.org/D3813 - address grammar Modified: stable/9/lib/libc/net/getaddrinfo.3 Modified: stable/9/lib/libc/net/getaddrinfo.3 ============================================================================== --- stable/9/lib/libc/net/getaddrinfo.3 Mon Jan 25 19:11:34 2016 (r294745) +++ stable/9/lib/libc/net/getaddrinfo.3 Mon Jan 25 20:04:06 2016 (r294746) @@ -276,15 +276,14 @@ The list can be traversed by following t pointer in each .Li addrinfo structure until a null pointer is encountered. -The three members +Each returned +.Li addrinfo +structure contains three members that are suitable for a call to +.Xr socket 2 : .Fa ai_family, .Fa ai_socktype, and -.Fa ai_protocol -in each returned -.Li addrinfo -structure are suitable for a call to -.Xr socket 2 . +.Fa ai_protocol . For each .Li addrinfo structure in the list, the From owner-svn-src-all@freebsd.org Mon Jan 25 20:35:17 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E417A45E01; Mon, 25 Jan 2016 20:35:17 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D5AC7D76; Mon, 25 Jan 2016 20:35:16 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PKZFMR029653; Mon, 25 Jan 2016 20:35:15 GMT (envelope-from zec@FreeBSD.org) Received: (from zec@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PKZFb7029652; Mon, 25 Jan 2016 20:35:15 GMT (envelope-from zec@FreeBSD.org) Message-Id: <201601252035.u0PKZFb7029652@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zec set sender to zec@FreeBSD.org using -f From: Marko Zec Date: Mon, 25 Jan 2016 20:35:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294747 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 20:35:17 -0000 Author: zec Date: Mon Jan 25 20:35:15 2016 New Revision: 294747 URL: https://svnweb.freebsd.org/changeset/base/294747 Log: Prune a definition which is / was never used. Modified: head/sys/net/vnet.c Modified: head/sys/net/vnet.c ============================================================================== --- head/sys/net/vnet.c Mon Jan 25 20:04:06 2016 (r294746) +++ head/sys/net/vnet.c Mon Jan 25 20:35:15 2016 (r294747) @@ -171,7 +171,6 @@ static MALLOC_DEFINE(M_VNET_DATA, "vnet_ */ #define VNET_MODMIN 8192 #define VNET_SIZE roundup2(VNET_BYTES, PAGE_SIZE) -#define VNET_MODSIZE (VNET_SIZE - (VNET_BYTES - VNET_MODMIN)) /* * Space to store virtualized global variables from loadable kernel modules, From owner-svn-src-all@freebsd.org Mon Jan 25 20:57:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3B50EA464D5; Mon, 25 Jan 2016 20:57:15 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-lf0-x22c.google.com (mail-lf0-x22c.google.com [IPv6:2a00:1450:4010:c07::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DE1829D0; Mon, 25 Jan 2016 20:57:14 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-lf0-x22c.google.com with SMTP id h129so93583727lfh.3; Mon, 25 Jan 2016 12:57:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=wTVIdoa5iQ9utHaPFm12CsksOqDAaxEnRWClUxL59Do=; b=o5+4Ac30Znsu/9NvQG5aSDBUjL59K7K9ImSpZF5bA6SyfpaubmFdKcPlZ/rMKtKJX8 +7UlskpouMeg5AvDE9+o54/7ESsqHUojM3Hg7EH+Ri4H4CaLYnMUzBigBoRoUDDojYAH +aQoAi8HO8G08Y3TvzyPHH1qins8ZagVWnMhivECnkre54lCkp2ensROLa1u6FVZfZdA ULRzi/K6zKhqx1jn0Frajx939WvN0JxKh8APiAySi+05SkQpGuA1TAjOA8uxxxmNw/K8 8FrirWd9AbchDXJCrECVEhCZiBDHsXH2qFVYnY390nlQ3xt3vzLHVQ8eCeJbopIEEc1n eF/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=wTVIdoa5iQ9utHaPFm12CsksOqDAaxEnRWClUxL59Do=; b=cqw4QmNE3awbrH9zq8ARjxEMpb5h/crz4hEuby8NF93SpGfxV8sqMZo7EA0TeLl2tq VTWuwIJRcoAmGxHZmaURLbCxOVggTi+hrDhXqWtugxbWEh/6UiFVicbRiN5uXzykwM3p EQKdKXWhhuWU17XPw5+W2lT3BQXBZKsI9kmlnDVq5MyRz25N+92QsF+SaOigVAKKuJ2n XMBHwAoyuCkHXpLJL4t7KY6ytiOdsrmQcz9/UVBPm4sgO+MT8NyB+RaAajNbAcqoQVy4 TI2vElr/fTzZEXoibYWg9fqfnsScqPRcFe1iKEmfCvPv8O6vtpHQNKNRRYZESU/h21zW pjpA== X-Gm-Message-State: AG10YOSNKONP36gWFS6OFrU39vNRC7KmbbrRBwbAiZFqNXkDVt3B4sMpGf2m5m4mW67Mxp2gLy98oP5rNM9f7w== MIME-Version: 1.0 X-Received: by 10.25.208.213 with SMTP id h204mr7645155lfg.112.1453755433027; Mon, 25 Jan 2016 12:57:13 -0800 (PST) Received: by 10.112.160.133 with HTTP; Mon, 25 Jan 2016 12:57:12 -0800 (PST) In-Reply-To: <201601251843.u0PIhMa0097056@repo.freebsd.org> References: <201601251843.u0PIhMa0097056@repo.freebsd.org> Date: Mon, 25 Jan 2016 12:57:12 -0800 Message-ID: Subject: Re: svn commit: r294744 - head/share/mk From: NGie Cooper To: Bryan Drewery Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 20:57:15 -0000 On Mon, Jan 25, 2016 at 10:43 AM, Bryan Drewery wrote: > Author: bdrewery > Date: Mon Jan 25 18:43:21 2016 > New Revision: 294744 > URL: https://svnweb.freebsd.org/changeset/base/294744 > > Log: > Import latest host-target.mk 1.11 from contrib/bmake/mk Could this please be de-duped by using `.PATH: ${.CURDIR} ${SRCTOP}/contrib/bmake/mk` to find the copy in contrib/bmake/mk ? Thanks! -NGie From owner-svn-src-all@freebsd.org Mon Jan 25 20:58:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E0DEA46534; Mon, 25 Jan 2016 20:58:29 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 1E2F6B34; Mon, 25 Jan 2016 20:58:29 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id 177491246; Mon, 25 Jan 2016 20:58:29 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id C4D95198EE; Mon, 25 Jan 2016 20:58:28 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id QcbjFNU0bxxh; Mon, 25 Jan 2016 20:58:26 +0000 (UTC) Subject: Re: svn commit: r294744 - head/share/mk DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com C57C8198E5 To: NGie Cooper References: <201601251843.u0PIhMa0097056@repo.freebsd.org> Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" From: Bryan Drewery Organization: FreeBSD Message-ID: <56A68C6F.90808@FreeBSD.org> Date: Mon, 25 Jan 2016 12:58:23 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 20:58:29 -0000 On 1/25/16 12:57 PM, NGie Cooper wrote: > On Mon, Jan 25, 2016 at 10:43 AM, Bryan Drewery wrote: >> Author: bdrewery >> Date: Mon Jan 25 18:43:21 2016 >> New Revision: 294744 >> URL: https://svnweb.freebsd.org/changeset/base/294744 >> >> Log: >> Import latest host-target.mk 1.11 from contrib/bmake/mk > > Could this please be de-duped by using `.PATH: ${.CURDIR} > ${SRCTOP}/contrib/bmake/mk` to find the copy in contrib/bmake/mk ? > Thanks! > -NGie > Ours does not match that version in all cases. -- Regards, Bryan Drewery From owner-svn-src-all@freebsd.org Mon Jan 25 21:28:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79EFFA46EA6; Mon, 25 Jan 2016 21:28:13 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A5B0A69; Mon, 25 Jan 2016 21:28:13 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aNogD-000PKa-JP; Tue, 26 Jan 2016 00:28:09 +0300 Date: Tue, 26 Jan 2016 00:28:09 +0300 From: Slawa Olhovchenkov To: =?utf-8?Q?Jean-S=C3=A9bastien_P=C3=A9dron?= Cc: Andriy Voskoboinyk , svn-src-stable@freebsd.org, "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , svn-src-stable-10@freebsd.org Subject: Re: svn commit: r293857 - stable/10/sys/dev/drm2/i915 Message-ID: <20160125212809.GO37895@zxy.spb.ru> References: <201601132156.u0DLunQs020854@repo.freebsd.org> <20160123162617.GL37895@zxy.spb.ru> <56A5E89A.3050106@FreeBSD.org> <20160125104506.GV88527@zxy.spb.ru> <56A619C5.6070109@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <56A619C5.6070109@FreeBSD.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 21:28:13 -0000 On Mon, Jan 25, 2016 at 01:49:09PM +0100, Jean-Sébastien Pédron wrote: > On 25/01/2016 11:50, Andriy Voskoboinyk wrote: > > Try to apply https://svnweb.freebsd.org/base?view=revision&revision=288653 > > (as for me, head/sys/dev/drm2/i915/i915_dma.c change fixes this) > > If this fixes the problem, perfect, I will merge it. At least partially for me: mplayer now playback, but I am got message (from mplayer) '[VD_FFMPEG] DRI failure'. May be need something rebuild? PS: Can you check other driver too? As I see this is lost transition of pci_enable_busmaster from sys/dev/drm2/drm_drv.c:drm_load to individual drivers. From owner-svn-src-all@freebsd.org Mon Jan 25 22:14:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1105A46102; Mon, 25 Jan 2016 22:14:32 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A2CAC623; Mon, 25 Jan 2016 22:14:32 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PMEVoc058980; Mon, 25 Jan 2016 22:14:31 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PMEVn4058979; Mon, 25 Jan 2016 22:14:31 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201601252214.u0PMEVn4058979@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Mon, 25 Jan 2016 22:14:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294749 - head/etc/rc.d X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 22:14:32 -0000 Author: jamie Date: Mon Jan 25 22:14:31 2016 New Revision: 294749 URL: https://svnweb.freebsd.org/changeset/base/294749 Log: Allow the (old rc-style) exec_afterstart jail parameters to start numbering at 0, like exec_prestart and the others do. Make param0 optional, i.e. still look for param1. PR: 142973 MFC after: 3 days Modified: head/etc/rc.d/jail Modified: head/etc/rc.d/jail ============================================================================== --- head/etc/rc.d/jail Mon Jan 25 22:12:03 2016 (r294748) +++ head/etc/rc.d/jail Mon Jan 25 22:14:31 2016 (r294749) @@ -32,7 +32,7 @@ need_dad_wait= # Extract value from ${jail_$jv_$name} or ${jail_$name} and # set it to $param. If not defined, $defval is used. # When $num is [0-9]*, ${jail_$jv_$name$num} are looked up and -# $param is set by using +=. +# $param is set by using +=. $num=0 is optional (params may start at 1). # When $num is YN or NY, the value is interpret as boolean. extract_var() { @@ -72,7 +72,7 @@ extract_var() eval _tmpargs=\"\${$_name1:-\${$_name2:-$_def}}\" if [ -n "$_tmpargs" ]; then echo " $_param += \"$_tmpargs\";" - else + elif [ $i != 0 ]; then break; fi i=$(($i + 1)) @@ -202,7 +202,7 @@ parse_options() extract_var $_jv exec_poststop exec.poststop 0 "" echo " exec.start += \"$_exec_start\";" - extract_var $_jv exec_afterstart exec.start 1 "" + extract_var $_jv exec_afterstart exec.start 0 "" echo " exec.stop = \"$_exec_stop\";" extract_var $_jv consolelog exec.consolelog - \ From owner-svn-src-all@freebsd.org Mon Jan 25 22:29:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E8153A46576; Mon, 25 Jan 2016 22:29:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9FD43C52; Mon, 25 Jan 2016 22:29:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PMTWfQ062084; Mon, 25 Jan 2016 22:29:32 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PMTWYr062083; Mon, 25 Jan 2016 22:29:32 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601252229.u0PMTWYr062083@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 22:29:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294750 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 22:29:34 -0000 Author: bdrewery Date: Mon Jan 25 22:29:32 2016 New Revision: 294750 URL: https://svnweb.freebsd.org/changeset/base/294750 Log: Fix incremental build of dtrace probes. Currently dtrace(1) -Go does not properly rebuild the target if it exists. It results in missing symbols. dtrace -C -x nolibs -G -o usdt.o -s /root/git/freebsd/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/usdt.d tst.usdt.o dtrace: target object (usdt.o) already exists. Please remove the target dtrace: object and rebuild all the source objects if you wish to run the DTrace dtrace: linking process again cc -O2 -pipe -O0 -g -I/root/git/freebsd/cddl/usr.sbin/dtrace/tests/common/json -std=gnu99 -fstack-protector-strong -Qunused-arguments -o tst.usdt.exe.full tst.usdt.o usdt.o tst.usdt.o: In function `main': /root/git/freebsd/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c:56: undefined reference to `__dtrace_bunyan_fake___log__debug' /root/git/freebsd/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c:60: undefined reference to `__dtrace_bunyan_fake___log__debug' cc: error: linker command failed with exit code 1 (use -v to see invocation) *** [tst.usdt.exe.full] Error code 1 This is a consequence of r212358. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.dep.mk Modified: head/share/mk/bsd.dep.mk ============================================================================== --- head/share/mk/bsd.dep.mk Mon Jan 25 22:14:31 2016 (r294749) +++ head/share/mk/bsd.dep.mk Mon Jan 25 22:29:32 2016 (r294750) @@ -136,12 +136,15 @@ SRCS:= ${SRCS:S/^${_DSRC}$//} OBJS+= ${_D}.o CLEANFILES+= ${_D}.h ${_D}.o ${_D}.o: ${_DSRC} ${OBJS:S/^${_D}.o$//} + @rm -f ${.TARGET} ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC} .if defined(LIB) CLEANFILES+= ${_D}.So ${_D}.po ${_D}.So: ${_DSRC} ${SOBJS:S/^${_D}.So$//} + @rm -f ${.TARGET} ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC} ${_D}.po: ${_DSRC} ${POBJS:S/^${_D}.po$//} + @rm -f ${.TARGET} ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC} .endif .endfor From owner-svn-src-all@freebsd.org Mon Jan 25 22:29:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0ED7BA4659D; Mon, 25 Jan 2016 22:29:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D1711D9C; Mon, 25 Jan 2016 22:29:42 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PMTfPE062132; Mon, 25 Jan 2016 22:29:41 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PMTfaY062131; Mon, 25 Jan 2016 22:29:41 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601252229.u0PMTfaY062131@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 22:29:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294751 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 22:29:43 -0000 Author: bdrewery Date: Mon Jan 25 22:29:41 2016 New Revision: 294751 URL: https://svnweb.freebsd.org/changeset/base/294751 Log: Remove unneeded beforebuild hacks for dtrace probes. This still allows skipping 'make depend'. Headers in SRCS generate properly. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.dep.mk Modified: head/share/mk/bsd.dep.mk ============================================================================== --- head/share/mk/bsd.dep.mk Mon Jan 25 22:29:32 2016 (r294750) +++ head/share/mk/bsd.dep.mk Mon Jan 25 22:29:41 2016 (r294751) @@ -129,7 +129,7 @@ CFLAGS+= -I${.OBJDIR} .endif .for _DSRC in ${SRCS:M*.d:N*/*} .for _D in ${_DSRC:R} -DHDRS+= ${_D}.h +SRCS+= ${_D}.h ${_D}.h: ${_DSRC} ${DTRACE} ${DTRACEFLAGS} -h -s ${.ALLSRC} SRCS:= ${SRCS:S/^${_DSRC}$//} @@ -137,20 +137,18 @@ OBJS+= ${_D}.o CLEANFILES+= ${_D}.h ${_D}.o ${_D}.o: ${_DSRC} ${OBJS:S/^${_D}.o$//} @rm -f ${.TARGET} - ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC} + ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} .if defined(LIB) CLEANFILES+= ${_D}.So ${_D}.po ${_D}.So: ${_DSRC} ${SOBJS:S/^${_D}.So$//} @rm -f ${.TARGET} - ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC} + ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} ${_D}.po: ${_DSRC} ${POBJS:S/^${_D}.po$//} @rm -f ${.TARGET} - ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC} + ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} .endif .endfor .endfor -beforedepend: ${DHDRS} -beforebuild: ${DHDRS} .if ${MK_FAST_DEPEND} == "yes" && \ From owner-svn-src-all@freebsd.org Mon Jan 25 22:29:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EB549A465B2; Mon, 25 Jan 2016 22:29:45 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BDB2ADA2; Mon, 25 Jan 2016 22:29:45 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PMTiDS062178; Mon, 25 Jan 2016 22:29:44 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PMTiJU062177; Mon, 25 Jan 2016 22:29:44 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601252229.u0PMTiJU062177@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 25 Jan 2016 22:29:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294752 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 22:29:46 -0000 Author: bdrewery Date: Mon Jan 25 22:29:44 2016 New Revision: 294752 URL: https://svnweb.freebsd.org/changeset/base/294752 Log: Fix PROGS not reading .depend files after r284288 by making DEPENDFILE work. We have had this user-modifable DEPENDFILE variable forever that does nothing relevant for the user since fmake always used '.depend'. Bmake introduced the .MAKE.DEPENDFILE variable that can be modified to change the name of '.depend'. Prior to r284288, bsd.progs.mk was setting .MAKE.DEPENDFILE to allow working incremental builds. This was modified most likely to not conflict with the META MODE handling of .MAKE.DEPENDFILE as it has a lot more special logic for that variable. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.dep.mk Modified: head/share/mk/bsd.dep.mk ============================================================================== --- head/share/mk/bsd.dep.mk Mon Jan 25 22:29:41 2016 (r294751) +++ head/share/mk/bsd.dep.mk Mon Jan 25 22:29:44 2016 (r294752) @@ -56,6 +56,7 @@ _MKDEPCC+= ${DEPFLAGS} .endif MKDEPCMD?= CC='${_MKDEPCC}' mkdep DEPENDFILE?= .depend +.MAKE.DEPENDFILE= ${DEPENDFILE} DEPENDFILES= ${DEPENDFILE} # Keep `tags' here, before SRCS are mangled below for `depend'. From owner-svn-src-all@freebsd.org Mon Jan 25 22:58:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 43500A46E2E; Mon, 25 Jan 2016 22:58:08 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 14FDA1BED; Mon, 25 Jan 2016 22:58:08 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PMw7Mn070769; Mon, 25 Jan 2016 22:58:07 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PMw6o5070766; Mon, 25 Jan 2016 22:58:06 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201601252258.u0PMw6o5070766@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Mon, 25 Jan 2016 22:58:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294753 - in head/sys: dev/uart kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 22:58:08 -0000 Author: marius Date: Mon Jan 25 22:58:06 2016 New Revision: 294753 URL: https://svnweb.freebsd.org/changeset/base/294753 Log: - Make the code consistent with itself style-wise and bring it closer to style(9). - Mark unused arguments as such. - Make the ttystates table const. Modified: head/sys/dev/uart/uart_tty.c head/sys/kern/tty.c head/sys/sys/ttydevsw.h Modified: head/sys/dev/uart/uart_tty.c ============================================================================== --- head/sys/dev/uart/uart_tty.c Mon Jan 25 22:29:44 2016 (r294752) +++ head/sys/dev/uart/uart_tty.c Mon Jan 25 22:58:06 2016 (r294753) @@ -57,6 +57,16 @@ static cn_putc_t uart_cnputc; static cn_grab_t uart_cngrab; static cn_ungrab_t uart_cnungrab; +static tsw_open_t uart_tty_open; +static tsw_close_t uart_tty_close; +static tsw_outwakeup_t uart_tty_outwakeup; +static tsw_inwakeup_t uart_tty_inwakeup; +static tsw_ioctl_t uart_tty_ioctl; +static tsw_param_t uart_tty_param; +static tsw_modem_t uart_tty_modem; +static tsw_free_t uart_tty_free; +static tsw_busy_t uart_tty_busy; + CONSOLE_DRIVER(uart); static struct uart_devinfo uart_console; @@ -157,7 +167,7 @@ uart_tty_close(struct tty *tp) struct uart_softc *sc; sc = tty_softc(tp); - if (sc == NULL || sc->sc_leaving || !sc->sc_opened) + if (sc == NULL || sc->sc_leaving || !sc->sc_opened) return; if (sc->sc_hwiflow) @@ -169,7 +179,6 @@ uart_tty_close(struct tty *tp) wakeup(sc); sc->sc_opened = 0; - return; } static void @@ -215,7 +224,8 @@ uart_tty_inwakeup(struct tty *tp) } static int -uart_tty_ioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) +uart_tty_ioctl(struct tty *tp, u_long cmd, caddr_t data, + struct thread *td __unused) { struct uart_softc *sc; @@ -256,8 +266,8 @@ uart_tty_param(struct tty *tp, struct te } stopbits = (t->c_cflag & CSTOPB) ? 2 : 1; if (t->c_cflag & PARENB) - parity = (t->c_cflag & PARODD) ? UART_PARITY_ODD - : UART_PARITY_EVEN; + parity = (t->c_cflag & PARODD) ? UART_PARITY_ODD : + UART_PARITY_EVEN; else parity = UART_PARITY_NONE; if (UART_PARAM(sc, t->c_ospeed, databits, stopbits, parity) != 0) @@ -285,7 +295,7 @@ uart_tty_modem(struct tty *tp, int biton sc = tty_softc(tp); if (biton != 0 || bitoff != 0) - UART_SETSIG(sc, SER_DELTA(bitoff|biton) | biton); + UART_SETSIG(sc, SER_DELTA(bitoff | biton) | biton); return (sc->sc_hwsig); } @@ -344,7 +354,7 @@ uart_tty_intr(void *arg) } static void -uart_tty_free(void *arg) +uart_tty_free(void *arg __unused) { /* @@ -359,7 +369,7 @@ static bool uart_tty_busy(struct tty *tp) { struct uart_softc *sc; - + sc = tty_softc(tp); if (sc == NULL || sc->sc_leaving) return (FALSE); Modified: head/sys/kern/tty.c ============================================================================== --- head/sys/kern/tty.c Mon Jan 25 22:29:44 2016 (r294752) +++ head/sys/kern/tty.c Mon Jan 25 22:58:06 2016 (r294753) @@ -175,6 +175,7 @@ tty_drain(struct tty *tp, int leaving) static __inline int ttydev_enter(struct tty *tp) { + tty_lock(tp); if (tty_gone(tp) || !tty_opened(tp)) { @@ -189,6 +190,7 @@ ttydev_enter(struct tty *tp) static void ttydev_leave(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); if (tty_opened(tp) || tp->t_flags & TF_OPENCLOSE) { @@ -234,7 +236,8 @@ ttydev_leave(struct tty *tp) * Operations that are exposed through the character device in /dev. */ static int -ttydev_open(struct cdev *dev, int oflags, int devtype, struct thread *td) +ttydev_open(struct cdev *dev, int oflags, int devtype __unused, + struct thread *td) { struct tty *tp; int error; @@ -330,7 +333,8 @@ done: tp->t_flags &= ~TF_OPENCLOSE; } static int -ttydev_close(struct cdev *dev, int fflag, int devtype, struct thread *td) +ttydev_close(struct cdev *dev, int fflag, int devtype __unused, + struct thread *td __unused) { struct tty *tp = dev->si_drv1; @@ -372,6 +376,7 @@ ttydev_close(struct cdev *dev, int fflag static __inline int tty_is_ctty(struct tty *tp, struct proc *p) { + tty_lock_assert(tp, MA_OWNED); return (p->p_session == tp->t_session && p->p_flag & P_CONTROLT); @@ -652,7 +657,7 @@ tty_kqops_read_detach(struct knote *kn) } static int -tty_kqops_read_event(struct knote *kn, long hint) +tty_kqops_read_event(struct knote *kn, long hint __unused) { struct tty *tp = kn->kn_hook; @@ -676,7 +681,7 @@ tty_kqops_write_detach(struct knote *kn) } static int -tty_kqops_write_event(struct knote *kn, long hint) +tty_kqops_write_event(struct knote *kn, long hint __unused) { struct tty *tp = kn->kn_hook; @@ -696,6 +701,7 @@ static struct filterops tty_kqops_read = .f_detach = tty_kqops_read_detach, .f_event = tty_kqops_read_event, }; + static struct filterops tty_kqops_write = { .f_isfd = 1, .f_detach = tty_kqops_write_detach, @@ -751,7 +757,8 @@ static struct cdevsw ttydev_cdevsw = { */ static int -ttyil_open(struct cdev *dev, int oflags, int devtype, struct thread *td) +ttyil_open(struct cdev *dev, int oflags __unused, int devtype __unused, + struct thread *td) { struct tty *tp; int error; @@ -767,14 +774,18 @@ ttyil_open(struct cdev *dev, int oflags, } static int -ttyil_close(struct cdev *dev, int flag, int mode, struct thread *td) +ttyil_close(struct cdev *dev __unused, int flag __unused, int mode __unused, + struct thread *td __unused) { + return (0); } static int -ttyil_rdwr(struct cdev *dev, struct uio *uio, int ioflag) +ttyil_rdwr(struct cdev *dev __unused, struct uio *uio __unused, + int ioflag __unused) { + return (ENODEV); } @@ -871,45 +882,49 @@ tty_init_console(struct tty *tp, speed_t */ static int -ttydevsw_defopen(struct tty *tp) +ttydevsw_defopen(struct tty *tp __unused) { return (0); } static void -ttydevsw_defclose(struct tty *tp) +ttydevsw_defclose(struct tty *tp __unused) { + } static void -ttydevsw_defoutwakeup(struct tty *tp) +ttydevsw_defoutwakeup(struct tty *tp __unused) { panic("Terminal device has output, while not implemented"); } static void -ttydevsw_definwakeup(struct tty *tp) +ttydevsw_definwakeup(struct tty *tp __unused) { + } static int -ttydevsw_defioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) +ttydevsw_defioctl(struct tty *tp __unused, u_long cmd __unused, + caddr_t data __unused, struct thread *td __unused) { return (ENOIOCTL); } static int -ttydevsw_defcioctl(struct tty *tp, int unit, u_long cmd, caddr_t data, struct thread *td) +ttydevsw_defcioctl(struct tty *tp __unused, int unit __unused, + u_long cmd __unused, caddr_t data __unused, struct thread *td __unused) { return (ENOIOCTL); } static int -ttydevsw_defparam(struct tty *tp, struct termios *t) +ttydevsw_defparam(struct tty *tp __unused, struct termios *t) { /* @@ -931,7 +946,8 @@ ttydevsw_defparam(struct tty *tp, struct } static int -ttydevsw_defmodem(struct tty *tp, int sigon, int sigoff) +ttydevsw_defmodem(struct tty *tp __unused, int sigon __unused, + int sigoff __unused) { /* Simulate a carrier to make the TTY layer happy. */ @@ -939,20 +955,22 @@ ttydevsw_defmodem(struct tty *tp, int si } static int -ttydevsw_defmmap(struct tty *tp, vm_ooffset_t offset, vm_paddr_t *paddr, - int nprot, vm_memattr_t *memattr) +ttydevsw_defmmap(struct tty *tp __unused, vm_ooffset_t offset __unused, + vm_paddr_t *paddr __unused, int nprot __unused, + vm_memattr_t *memattr __unused) { return (-1); } static void -ttydevsw_defpktnotify(struct tty *tp, char event) +ttydevsw_defpktnotify(struct tty *tp __unused, char event __unused) { + } static void -ttydevsw_deffree(void *softc) +ttydevsw_deffree(void *softc __unused) { panic("Terminal device freed without a free-handler"); @@ -1091,6 +1109,7 @@ tty_rel_free(struct tty *tp) void tty_rel_pgrp(struct tty *tp, struct pgrp *pg) { + MPASS(tp->t_sessioncnt > 0); tty_lock_assert(tp, MA_OWNED); @@ -1103,6 +1122,7 @@ tty_rel_pgrp(struct tty *tp, struct pgrp void tty_rel_sess(struct tty *tp, struct session *sess) { + MPASS(tp->t_sessioncnt > 0); /* Current session has left. */ @@ -1117,6 +1137,7 @@ tty_rel_sess(struct tty *tp, struct sess void tty_rel_gone(struct tty *tp) { + MPASS(!tty_gone(tp)); /* Simulate carrier removal. */ @@ -1138,6 +1159,7 @@ tty_rel_gone(struct tty *tp) static void tty_to_xtty(struct tty *tp, struct xtty *xt) { + tty_lock_assert(tp, MA_OWNED); xt->xt_size = sizeof(struct xtty); @@ -1370,6 +1392,7 @@ tty_signal_pgrp(struct tty *tp, int sig) void tty_wakeup(struct tty *tp, int flags) { + if (tp->t_flags & TF_ASYNC && tp->t_sigio != NULL) pgsigio(&tp->t_sigio, SIGIO, (tp->t_session != NULL)); @@ -1432,6 +1455,7 @@ tty_timedwait(struct tty *tp, struct cv void tty_flush(struct tty *tp, int flags) { + if (flags & FWRITE) { tp->t_flags &= ~TF_HIWAT_OUT; ttyoutq_flush(&tp->t_outq); @@ -1822,10 +1846,11 @@ tty_ioctl(struct tty *tp, u_long cmd, vo dev_t tty_udev(struct tty *tp) { + if (tp->t_dev) - return dev2udev(tp->t_dev); + return (dev2udev(tp->t_dev)); else - return NODEV; + return (NODEV); } int @@ -1894,8 +1919,8 @@ ttyhook_defrint(struct tty *tp, char c, } int -ttyhook_register(struct tty **rtp, struct proc *p, int fd, - struct ttyhook *th, void *softc) +ttyhook_register(struct tty **rtp, struct proc *p, int fd, struct ttyhook *th, + void *softc) { struct tty *tp; struct file *fp; @@ -2046,7 +2071,7 @@ static struct cdevsw ttyconsdev_cdevsw = }; static void -ttyconsdev_init(void *unused) +ttyconsdev_init(void *unused __unused) { dev_console = make_dev_credf(MAKEDEV_ETERNAL, &ttyconsdev_cdevsw, 0, @@ -2071,7 +2096,7 @@ ttyconsdev_select(const char *name) #include #include -static struct { +static const struct { int flag; char val; } ttystates[] = { @@ -2126,6 +2151,7 @@ static struct { static void _db_show_devsw(const char *sep, const struct ttydevsw *tsw) { + db_printf("%sdevsw: ", sep); db_printsym((db_addr_t)tsw, DB_STGY_ANY); db_printf(" (%p)\n", tsw); @@ -2140,9 +2166,11 @@ _db_show_devsw(const char *sep, const st DB_PRINTSYM(pktnotify, tsw->tsw_pktnotify); DB_PRINTSYM(free, tsw->tsw_free); } + static void _db_show_hooks(const char *sep, const struct ttyhook *th) { + db_printf("%shook: ", sep); db_printsym((db_addr_t)th, DB_STGY_ANY); db_printf(" (%p)\n", th); @@ -2248,17 +2276,13 @@ DB_SHOW_ALL_COMMAND(ttys, db_show_all_tt isiz = tp->t_inq.ti_nblocks * TTYINQ_DATASIZE; osiz = tp->t_outq.to_nblocks * TTYOUTQ_DATASIZE; - db_printf("%p %10s %5zu %4u %4u %4zu %5zu %4u %4zu %5u %5d %5d ", - tp, - tty_devname(tp), - isiz, + db_printf("%p %10s %5zu %4u %4u %4zu %5zu %4u %4zu %5u %5d " + "%5d ", tp, tty_devname(tp), isiz, tp->t_inq.ti_linestart - tp->t_inq.ti_begin, tp->t_inq.ti_end - tp->t_inq.ti_linestart, - isiz - tp->t_inlow, - osiz, + isiz - tp->t_inlow, osiz, tp->t_outq.to_end - tp->t_outq.to_begin, - osiz - tp->t_outlow, - MIN(tp->t_column, 99999), + osiz - tp->t_outlow, MIN(tp->t_column, 99999), tp->t_session ? tp->t_session->s_sid : 0, tp->t_pgrp ? tp->t_pgrp->pg_id : 0); Modified: head/sys/sys/ttydevsw.h ============================================================================== --- head/sys/sys/ttydevsw.h Mon Jan 25 22:29:44 2016 (r294752) +++ head/sys/sys/ttydevsw.h Mon Jan 25 22:58:06 2016 (r294753) @@ -83,15 +83,17 @@ struct ttydevsw { static __inline int ttydevsw_open(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_open(tp); + return (tp->t_devsw->tsw_open(tp)); } static __inline void ttydevsw_close(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); @@ -101,6 +103,7 @@ ttydevsw_close(struct tty *tp) static __inline void ttydevsw_outwakeup(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); @@ -114,6 +117,7 @@ ttydevsw_outwakeup(struct tty *tp) static __inline void ttydevsw_inwakeup(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); @@ -127,49 +131,56 @@ ttydevsw_inwakeup(struct tty *tp) static __inline int ttydevsw_ioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_ioctl(tp, cmd, data, td); + return (tp->t_devsw->tsw_ioctl(tp, cmd, data, td)); } static __inline int -ttydevsw_cioctl(struct tty *tp, int unit, u_long cmd, caddr_t data, struct thread *td) +ttydevsw_cioctl(struct tty *tp, int unit, u_long cmd, caddr_t data, + struct thread *td) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_cioctl(tp, unit, cmd, data, td); + return (tp->t_devsw->tsw_cioctl(tp, unit, cmd, data, td)); } static __inline int ttydevsw_param(struct tty *tp, struct termios *t) { + MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_param(tp, t); + return (tp->t_devsw->tsw_param(tp, t)); } static __inline int ttydevsw_modem(struct tty *tp, int sigon, int sigoff) { + MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_modem(tp, sigon, sigoff); + return (tp->t_devsw->tsw_modem(tp, sigon, sigoff)); } static __inline int ttydevsw_mmap(struct tty *tp, vm_ooffset_t offset, vm_paddr_t *paddr, int nprot, vm_memattr_t *memattr) { + MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_mmap(tp, offset, paddr, nprot, memattr); + return (tp->t_devsw->tsw_mmap(tp, offset, paddr, nprot, memattr)); } static __inline void ttydevsw_pktnotify(struct tty *tp, char event) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); @@ -179,6 +190,7 @@ ttydevsw_pktnotify(struct tty *tp, char static __inline void ttydevsw_free(struct tty *tp) { + MPASS(tty_gone(tp)); tp->t_devsw->tsw_free(tty_softc(tp)); From owner-svn-src-all@freebsd.org Mon Jan 25 23:04:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 095F7A4609E; Mon, 25 Jan 2016 23:04:42 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D640A1F96; Mon, 25 Jan 2016 23:04:41 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0PN4ex9073594; Mon, 25 Jan 2016 23:04:40 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0PN4eEa073591; Mon, 25 Jan 2016 23:04:40 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601252304.u0PN4eEa073591@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Mon, 25 Jan 2016 23:04:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294754 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 23:04:42 -0000 Author: andrew Date: Mon Jan 25 23:04:40 2016 New Revision: 294754 URL: https://svnweb.freebsd.org/changeset/base/294754 Log: Allow us to be told about memory past the first 4GB point, but ignore it. This allows, for example, UEFI pass a memory map with some ram in this region, but for us to ignore it. This is the case when running under the qemu virt machine type. Sponsored by: ABT Systems Ltd Modified: head/sys/arm/arm/physmem.c head/sys/arm/include/ofw_machdep.h head/sys/arm/include/physmem.h Modified: head/sys/arm/arm/physmem.c ============================================================================== --- head/sys/arm/arm/physmem.c Mon Jan 25 22:58:06 2016 (r294753) +++ head/sys/arm/arm/physmem.c Mon Jan 25 23:04:40 2016 (r294754) @@ -49,6 +49,8 @@ __FBSDID("$FreeBSD$"); #define MAX_HWCNT 10 #define MAX_EXCNT 10 +#define MAX_PHYS_ADDR 0xFFFFFFFFull + struct region { vm_paddr_t addr; vm_size_t size; @@ -273,14 +275,25 @@ insert_region(struct region *regions, si * Add a hardware memory region. */ void -arm_physmem_hardware_region(vm_paddr_t pa, vm_size_t sz) +arm_physmem_hardware_region(uint64_t pa, uint64_t sz) { vm_offset_t adj; /* * Filter out the page at PA 0x00000000. The VM can't handle it, as * pmap_extract() == 0 means failure. - * + */ + if (pa == 0) { + if (sz <= PAGE_SIZE) + return; + pa = PAGE_SIZE; + sz -= PAGE_SIZE; + } else if (pa > MAX_PHYS_ADDR) { + /* This range is past usable memory, ignore it */ + return; + } + + /* * Also filter out the page at the end of the physical address space -- * if addr is non-zero and addr+size is zero we wrapped to the next byte * beyond what vm_paddr_t can express. That leads to a NULL pointer @@ -291,12 +304,8 @@ arm_physmem_hardware_region(vm_paddr_t p * pointer deref in _vm_map_lock_read(). Better to give up a megabyte * than leave some folks with an unusable system while we investigate. */ - if (pa == 0) { - if (sz <= PAGE_SIZE) - return; - pa = PAGE_SIZE; - sz -= PAGE_SIZE; - } else if (pa + sz == 0) { + if ((pa + sz) > (MAX_PHYS_ADDR - 1024 * 1024)) { + sz = MAX_PHYS_ADDR - pa + 1; if (sz <= 1024 * 1024) return; sz -= 1024 * 1024; Modified: head/sys/arm/include/ofw_machdep.h ============================================================================== --- head/sys/arm/include/ofw_machdep.h Mon Jan 25 22:58:06 2016 (r294753) +++ head/sys/arm/include/ofw_machdep.h Mon Jan 25 23:04:40 2016 (r294754) @@ -40,8 +40,8 @@ typedef uint32_t cell_t; struct mem_region { - vm_offset_t mr_start; - vm_size_t mr_size; + uint64_t mr_start; + uint64_t mr_size; }; #endif /* _MACHINE_OFW_MACHDEP_H_ */ Modified: head/sys/arm/include/physmem.h ============================================================================== --- head/sys/arm/include/physmem.h Mon Jan 25 22:58:06 2016 (r294753) +++ head/sys/arm/include/physmem.h Mon Jan 25 23:04:40 2016 (r294754) @@ -52,7 +52,7 @@ extern vm_paddr_t arm_physmem_kernaddr; #define EXFLAG_NODUMP 0x01 #define EXFLAG_NOALLOC 0x02 -void arm_physmem_hardware_region(vm_paddr_t pa, vm_size_t sz); +void arm_physmem_hardware_region(uint64_t pa, uint64_t sz); void arm_physmem_exclude_region(vm_paddr_t pa, vm_size_t sz, uint32_t flags); void arm_physmem_init_kernel_globals(void); void arm_physmem_print_tables(void); From owner-svn-src-all@freebsd.org Tue Jan 26 00:22:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 42D26A463EE; Tue, 26 Jan 2016 00:22:04 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F15AFD32; Tue, 26 Jan 2016 00:22:03 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q0M2Zp094296; Tue, 26 Jan 2016 00:22:02 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q0M2AR094295; Tue, 26 Jan 2016 00:22:02 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201601260022.u0Q0M2AR094295@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 26 Jan 2016 00:22:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294755 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 00:22:04 -0000 Author: markj Date: Tue Jan 26 00:22:02 2016 New Revision: 294755 URL: https://svnweb.freebsd.org/changeset/base/294755 Log: MFC r293458: Prevent cv_waiters wraparound. Modified: stable/10/sys/kern/kern_condvar.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/kern_condvar.c ============================================================================== --- stable/10/sys/kern/kern_condvar.c Mon Jan 25 23:04:40 2016 (r294754) +++ stable/10/sys/kern/kern_condvar.c Tue Jan 26 00:22:02 2016 (r294755) @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -47,6 +48,17 @@ __FBSDID("$FreeBSD$"); #endif /* + * A bound below which cv_waiters is valid. Once cv_waiters reaches this bound, + * cv_signal must manually check the wait queue for threads. + */ +#define CV_WAITERS_BOUND INT_MAX + +#define CV_WAITERS_INC(cvp) do { \ + if ((cvp)->cv_waiters < CV_WAITERS_BOUND) \ + (cvp)->cv_waiters++; \ +} while (0) + +/* * Common sanity checks for cv_wait* functions. */ #define CV_ASSERT(cvp, lock, td) do { \ @@ -122,7 +134,7 @@ _cv_wait(struct cv *cvp, struct lock_obj sleepq_lock(cvp); - cvp->cv_waiters++; + CV_WAITERS_INC(cvp); if (lock == &Giant.lock_object) mtx_assert(&Giant, MA_OWNED); DROP_GIANT(); @@ -184,7 +196,7 @@ _cv_wait_unlock(struct cv *cvp, struct l sleepq_lock(cvp); - cvp->cv_waiters++; + CV_WAITERS_INC(cvp); DROP_GIANT(); sleepq_add(cvp, lock, cvp->cv_description, SLEEPQ_CONDVAR, 0); @@ -240,7 +252,7 @@ _cv_wait_sig(struct cv *cvp, struct lock sleepq_lock(cvp); - cvp->cv_waiters++; + CV_WAITERS_INC(cvp); if (lock == &Giant.lock_object) mtx_assert(&Giant, MA_OWNED); DROP_GIANT(); @@ -307,7 +319,7 @@ _cv_timedwait_sbt(struct cv *cvp, struct sleepq_lock(cvp); - cvp->cv_waiters++; + CV_WAITERS_INC(cvp); if (lock == &Giant.lock_object) mtx_assert(&Giant, MA_OWNED); DROP_GIANT(); @@ -376,7 +388,7 @@ _cv_timedwait_sig_sbt(struct cv *cvp, st sleepq_lock(cvp); - cvp->cv_waiters++; + CV_WAITERS_INC(cvp); if (lock == &Giant.lock_object) mtx_assert(&Giant, MA_OWNED); DROP_GIANT(); @@ -422,8 +434,15 @@ cv_signal(struct cv *cvp) wakeup_swapper = 0; sleepq_lock(cvp); if (cvp->cv_waiters > 0) { - cvp->cv_waiters--; - wakeup_swapper = sleepq_signal(cvp, SLEEPQ_CONDVAR, 0, 0); + if (cvp->cv_waiters == CV_WAITERS_BOUND && + sleepq_lookup(cvp) == NULL) { + cvp->cv_waiters = 0; + } else { + if (cvp->cv_waiters < CV_WAITERS_BOUND) + cvp->cv_waiters--; + wakeup_swapper = sleepq_signal(cvp, SLEEPQ_CONDVAR, 0, + 0); + } } sleepq_release(cvp); if (wakeup_swapper) From owner-svn-src-all@freebsd.org Tue Jan 26 01:02:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 551A9A46FEB; Tue, 26 Jan 2016 01:02:21 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 26FC4F1B; Tue, 26 Jan 2016 01:02:21 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q12KF0008704; Tue, 26 Jan 2016 01:02:20 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q12KkD008703; Tue, 26 Jan 2016 01:02:20 GMT (envelope-from np@FreeBSD.org) Message-Id: <201601260102.u0Q12KkD008703@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Tue, 26 Jan 2016 01:02:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294756 - head/contrib/ofed/librdmacm/examples/build/rping X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 01:02:21 -0000 Author: np Date: Tue Jan 26 01:02:19 2016 New Revision: 294756 URL: https://svnweb.freebsd.org/changeset/base/294756 Log: Use LIBADD instead of LDADD in rping's Makefile and add libcxgb4 (the userspace iWARP library for cxgbe) to the list of libraries. rping using the libcxgb4 + iw_cxgbe combo was tested with T5 hardware. Obtained from: Chelsio Communications Modified: head/contrib/ofed/librdmacm/examples/build/rping/Makefile Modified: head/contrib/ofed/librdmacm/examples/build/rping/Makefile ============================================================================== --- head/contrib/ofed/librdmacm/examples/build/rping/Makefile Tue Jan 26 00:22:02 2016 (r294755) +++ head/contrib/ofed/librdmacm/examples/build/rping/Makefile Tue Jan 26 01:02:19 2016 (r294756) @@ -5,7 +5,8 @@ PROG= rping MAN= SRCS= rping.c -LDADD+= -libverbs -lrdmacm -lpthread -LDADD+= -lmlx4 +LIBADD+= ibverbs rdmacm pthread +LIBADD+= mlx4 +LIBADD+= cxgb4 .include From owner-svn-src-all@freebsd.org Tue Jan 26 01:15:20 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A6E8A46424; Tue, 26 Jan 2016 01:15:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1BB9D789; Tue, 26 Jan 2016 01:15:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q1FJpq011730; Tue, 26 Jan 2016 01:15:19 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q1FJWf011729; Tue, 26 Jan 2016 01:15:19 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201601260115.u0Q1FJWf011729@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 26 Jan 2016 01:15:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294757 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 01:15:20 -0000 Author: markj Date: Tue Jan 26 01:15:18 2016 New Revision: 294757 URL: https://svnweb.freebsd.org/changeset/base/294757 Log: Evaluate the sysctl_running fail point before taking the sysctl lock. The fail point handler may sleep, but this is not permitted while holding a rm read lock. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/sys/kern/kern_sysctl.c Modified: head/sys/kern/kern_sysctl.c ============================================================================== --- head/sys/kern/kern_sysctl.c Tue Jan 26 01:02:19 2016 (r294756) +++ head/sys/kern/kern_sysctl.c Tue Jan 26 01:15:18 2016 (r294757) @@ -166,6 +166,8 @@ sysctl_root_handler_locked(struct sysctl if (!(oid->oid_kind & CTLFLAG_MPSAFE)) mtx_unlock(&Giant); + KFAIL_POINT_ERROR(_debug_fail_point, sysctl_running, error); + if (tracker != NULL) SYSCTL_RLOCK(tracker); else @@ -1838,8 +1840,6 @@ sysctl_root(SYSCTL_HANDLER_ARGS) #endif error = sysctl_root_handler_locked(oid, arg1, arg2, req, &tracker); - KFAIL_POINT_ERROR(_debug_fail_point, sysctl_running, error); - out: SYSCTL_RUNLOCK(&tracker); return (error); From owner-svn-src-all@freebsd.org Tue Jan 26 01:16:46 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE3D7A464CF; Tue, 26 Jan 2016 01:16:46 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF55293D; Tue, 26 Jan 2016 01:16:46 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q1GjSS011814; Tue, 26 Jan 2016 01:16:45 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q1GjoG011813; Tue, 26 Jan 2016 01:16:45 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201601260116.u0Q1GjoG011813@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 26 Jan 2016 01:16:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294758 - head/sys/mips/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 01:16:47 -0000 Author: markj Date: Tue Jan 26 01:16:45 2016 New Revision: 294758 URL: https://svnweb.freebsd.org/changeset/base/294758 Log: Remove a duplicate setting of the AH_DEBUG_ALQ option. Modified: head/sys/mips/conf/AR934X_BASE Modified: head/sys/mips/conf/AR934X_BASE ============================================================================== --- head/sys/mips/conf/AR934X_BASE Tue Jan 26 01:15:18 2016 (r294757) +++ head/sys/mips/conf/AR934X_BASE Tue Jan 26 01:16:45 2016 (r294758) @@ -83,7 +83,6 @@ device ath_ahb # Atheros host bus glue options ATH_DEBUG options ATH_DIAGAPI option ATH_ENABLE_11N -option AH_DEBUG_ALQ #device ath_hal device ath_ar9300 # AR9330 HAL; no need for the others From owner-svn-src-all@freebsd.org Tue Jan 26 03:52:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 90CDDA46BA6; Tue, 26 Jan 2016 03:52:15 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 61432180E; Tue, 26 Jan 2016 03:52:15 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q3qE8D058915; Tue, 26 Jan 2016 03:52:14 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q3qEE2058914; Tue, 26 Jan 2016 03:52:14 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201601260352.u0Q3qEE2058914@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 26 Jan 2016 03:52:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294759 - head/sys/powerpc/booke X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 03:52:15 -0000 Author: jhibbits Date: Tue Jan 26 03:52:14 2016 New Revision: 294759 URL: https://svnweb.freebsd.org/changeset/base/294759 Log: Fix a debug printf(). Somehow this printf() was missed in the conversion of vm_paddr_t to 64-bit, and made it through until now. Sponsored by: Alex Perez/Inertial Computing Modified: head/sys/powerpc/booke/pmap.c Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Tue Jan 26 01:16:45 2016 (r294758) +++ head/sys/powerpc/booke/pmap.c Tue Jan 26 03:52:14 2016 (r294759) @@ -1305,8 +1305,8 @@ mmu_booke_bootstrap(mmu_t mmu, vm_offset debugf("Maxmem = 0x%08lx\n", Maxmem); debugf("phys_avail_count = %d\n", phys_avail_count); - debugf("physsz = 0x%08x physmem = %ld (0x%08lx)\n", physsz, physmem, - physmem); + debugf("physsz = 0x%09jx physmem = %jd (0x%09jx)\n", + (uintmax_t)physsz, (uintmax_t)physmem, (uintmax_t)physmem); /*******************************************************/ /* Initialize (statically allocated) kernel pmap. */ From owner-svn-src-all@freebsd.org Tue Jan 26 04:41:19 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8AD84A46815; Tue, 26 Jan 2016 04:41:19 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 57173E56; Tue, 26 Jan 2016 04:41:19 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q4fIdg071505; Tue, 26 Jan 2016 04:41:18 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q4fIUo071504; Tue, 26 Jan 2016 04:41:18 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201601260441.u0Q4fIUo071504@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 26 Jan 2016 04:41:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294760 - head/sys/powerpc/booke X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 04:41:19 -0000 Author: jhibbits Date: Tue Jan 26 04:41:18 2016 New Revision: 294760 URL: https://svnweb.freebsd.org/changeset/base/294760 Log: Older Book-E processors (e500v1/e500v2) don't support dcbzl. The only difference between dcbzl and dcbz is dcbzl operates on native cache line lengths regardless of L1CSR0[DCBZ32]. Since we don't change the cache line size, the cacheline_size variable will reflect the used cache line length, and dcbz will work as expected. Modified: head/sys/powerpc/booke/pmap.c Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Tue Jan 26 03:52:14 2016 (r294759) +++ head/sys/powerpc/booke/pmap.c Tue Jan 26 04:41:18 2016 (r294760) @@ -2254,7 +2254,7 @@ mmu_booke_zero_page(mmu_t mmu, vm_page_t mmu_booke_kenter(mmu, va, VM_PAGE_TO_PHYS(m)); for (off = 0; off < PAGE_SIZE; off += cacheline_size) - __asm __volatile("dcbzl 0,%0" :: "r"(va + off)); + __asm __volatile("dcbz 0,%0" :: "r"(va + off)); mmu_booke_kremove(mmu, va); mtx_unlock(&zero_page_mutex); From owner-svn-src-all@freebsd.org Tue Jan 26 04:48:26 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D883A46BA2; Tue, 26 Jan 2016 04:48:26 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2D28C1289; Tue, 26 Jan 2016 04:48:26 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q4mP9S074251; Tue, 26 Jan 2016 04:48:25 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q4mPW2074250; Tue, 26 Jan 2016 04:48:25 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201601260448.u0Q4mPW2074250@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Tue, 26 Jan 2016 04:48:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294761 - head/sys/netpfil/ipfw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 04:48:26 -0000 Author: luigi Date: Tue Jan 26 04:48:24 2016 New Revision: 294761 URL: https://svnweb.freebsd.org/changeset/base/294761 Log: Revert one chunk from commit 285362, which introduced an off-by-one error in computing a shift index. The error was due to the use of mixed fls() / __fls() functions in another implementation of qfq. To avoid that the problem occurs again, properly document which incarnation of the function we need. Note that the bug only affects QFQ in FreeBSD head from last july, as the patch was not merged to other versions. Modified: head/sys/netpfil/ipfw/dn_sched_qfq.c Modified: head/sys/netpfil/ipfw/dn_sched_qfq.c ============================================================================== --- head/sys/netpfil/ipfw/dn_sched_qfq.c Tue Jan 26 04:41:18 2016 (r294760) +++ head/sys/netpfil/ipfw/dn_sched_qfq.c Tue Jan 26 04:48:24 2016 (r294761) @@ -60,6 +60,10 @@ typedef unsigned long bitmap; /* * bitmaps ops are critical. Some linux versions have __fls * and the bitmap ops. Some machines have ffs + * NOTE: fls() returns 1 for the least significant bit, + * __fls() returns 0 for the same case. + * We use the base-0 version __fls() to match the description in + * the ToN QFQ paper */ #if defined(_WIN32) || (defined(__MIPSEL__) && defined(LINUX_24)) int fls(unsigned int n) @@ -409,8 +413,8 @@ qfq_make_eligible(struct qfq_sched *q, u old_vslot = old_V >> QFQ_MIN_SLOT_SHIFT; if (vslot != old_vslot) { - /* should be 1ULL not 2ULL */ - mask = (1ULL << (__fls(vslot ^ old_vslot))) - 1; + /* must be 2ULL, see ToN QFQ article fig.5, we use base-0 fls */ + mask = (2ULL << (__fls(vslot ^ old_vslot))) - 1; qfq_move_groups(q, mask, IR, ER); qfq_move_groups(q, mask, IB, EB); } From owner-svn-src-all@freebsd.org Tue Jan 26 04:51:46 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DC6EA46D38; Tue, 26 Jan 2016 04:51:46 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0097C15EE; Tue, 26 Jan 2016 04:51:45 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q4piat076347; Tue, 26 Jan 2016 04:51:44 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q4pi7M076346; Tue, 26 Jan 2016 04:51:44 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201601260451.u0Q4pi7M076346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Tue, 26 Jan 2016 04:51:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294762 - stable/10/lib/libc/stdlib X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 04:51:46 -0000 Author: pfg Date: Tue Jan 26 04:51:44 2016 New Revision: 294762 URL: https://svnweb.freebsd.org/changeset/base/294762 Log: Revert r279010: tdelete(3): don't delete the node we are about to return. The original change, from NetBSD, was bogus; introduced a memory leak and and broke POSIX. By reverting we actually match NetBSD's latest revision. This is a direct commit to 10 since this function was rewritten in 11-current. Reported by: Markiyan Kushnir Obtained from: NetBSD (CVS rev. 1.7, 1.8) Modified: stable/10/lib/libc/stdlib/tdelete.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/stdlib/tdelete.c ============================================================================== --- stable/10/lib/libc/stdlib/tdelete.c Tue Jan 26 04:48:24 2016 (r294761) +++ stable/10/lib/libc/stdlib/tdelete.c Tue Jan 26 04:51:44 2016 (r294762) @@ -1,4 +1,4 @@ -/* $NetBSD: tdelete.c,v 1.2 1999/09/16 11:45:37 lukem Exp $ */ +/* $NetBSD: tdelete.c,v 1.8 2016/01/20 20:47:41 christos Exp $ */ /* * Tree search generalized from Knuth (6.2.2) Algorithm T just like @@ -14,7 +14,7 @@ #include #if 0 #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: tdelete.c,v 1.6 2012/06/25 22:32:45 abs Exp $"); +__RCSID("$NetBSD: tdelete.c,v 1.8 2016/01/20 20:47:41 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #endif __FBSDID("$FreeBSD$"); @@ -25,9 +25,9 @@ __FBSDID("$FreeBSD$"); /* - * find a node with given key + * delete node with given key * - * vkey: key to be found + * vkey: key to be deleted * vrootp: address of the root of the tree * compar: function to carry out node comparisons */ @@ -65,8 +65,7 @@ tdelete(const void * __restrict vkey, vo q->rlink = (*rootp)->rlink; } } - if (p != *rootp) - free(*rootp); /* D4: Free node */ + free(*rootp); /* D4: Free node */ *rootp = q; /* link parent to new node */ return p; } From owner-svn-src-all@freebsd.org Tue Jan 26 05:04:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2EF39A46194; Tue, 26 Jan 2016 05:04:38 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F2B931D37; Tue, 26 Jan 2016 05:04:37 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q54bNP080167; Tue, 26 Jan 2016 05:04:37 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q54bHe080166; Tue, 26 Jan 2016 05:04:37 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201601260504.u0Q54bHe080166@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Tue, 26 Jan 2016 05:04: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: r294763 - 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-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 05:04:38 -0000 Author: pfg Date: Tue Jan 26 05:04:36 2016 New Revision: 294763 URL: https://svnweb.freebsd.org/changeset/base/294763 Log: Revert r279011: tdelete(3): don't delete the node we are about to return. The original change, from NetBSD, was bogus; introduced a memory leak and and broke POSIX. By reverting we actually match NetBSD's latest revision. This is a revert of the original merge: this function was rewritten in 11-current. Reported by: Markiyan Kushnir Obtained from: NetBSD (CVS rev. 1.7, 1.8) Modified: stable/9/lib/libc/stdlib/tdelete.c Directory Properties: stable/9/lib/libc/ (props changed) Modified: stable/9/lib/libc/stdlib/tdelete.c ============================================================================== --- stable/9/lib/libc/stdlib/tdelete.c Tue Jan 26 04:51:44 2016 (r294762) +++ stable/9/lib/libc/stdlib/tdelete.c Tue Jan 26 05:04:36 2016 (r294763) @@ -14,7 +14,7 @@ #include #if 0 #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: tdelete.c,v 1.6 2012/06/25 22:32:45 abs Exp $"); +__RCSID("$NetBSD: tdelete.c,v 1.2 1999/09/16 11:45:37 lukem Exp $"); #endif /* LIBC_SCCS and not lint */ #endif __FBSDID("$FreeBSD$"); @@ -25,9 +25,9 @@ __FBSDID("$FreeBSD$"); /* - * find a node with given key + * delete node with given key * - * vkey: key to be found + * vkey: key to be deleted * vrootp: address of the root of the tree * compar: function to carry out node comparisons */ @@ -65,8 +65,7 @@ tdelete(const void * __restrict vkey, vo q->rlink = (*rootp)->rlink; } } - if (p != *rootp) - free(*rootp); /* D4: Free node */ + free(*rootp); /* D4: Free node */ *rootp = q; /* link parent to new node */ return p; } From owner-svn-src-all@freebsd.org Tue Jan 26 06:05:56 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9DFD8A46820; Tue, 26 Jan 2016 06:05:56 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 704D0A44; Tue, 26 Jan 2016 06:05:56 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q65tgD097510; Tue, 26 Jan 2016 06:05:55 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q65tBa097508; Tue, 26 Jan 2016 06:05:55 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201601260605.u0Q65tBa097508@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Tue, 26 Jan 2016 06:05:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294764 - stable/10/sys/amd64/linux X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 06:05:56 -0000 Author: dchagin Date: Tue Jan 26 06:05:55 2016 New Revision: 294764 URL: https://svnweb.freebsd.org/changeset/base/294764 Log: MFC r294620: Fix a typo. MFC r294621: Remove obsolete comment. Modified: stable/10/sys/amd64/linux/linux.h stable/10/sys/amd64/linux/linux_machdep.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/linux/linux.h ============================================================================== --- stable/10/sys/amd64/linux/linux.h Tue Jan 26 05:04:36 2016 (r294763) +++ stable/10/sys/amd64/linux/linux.h Tue Jan 26 06:05:55 2016 (r294764) @@ -530,8 +530,8 @@ struct l_pollfd { #define LINUX_ARCH_SET_GS 0x1001 #define LINUX_ARCH_SET_FS 0x1002 -#define LINUX_ARCH_GET_GS 0x1003 -#define LINUX_ARCH_GET_FS 0x1004 +#define LINUX_ARCH_GET_FS 0x1003 +#define LINUX_ARCH_GET_GS 0x1004 #define linux_copyout_rusage(r, u) copyout(r, u, sizeof(*r)) Modified: stable/10/sys/amd64/linux/linux_machdep.c ============================================================================== --- stable/10/sys/amd64/linux/linux_machdep.c Tue Jan 26 05:04:36 2016 (r294763) +++ stable/10/sys/amd64/linux/linux_machdep.c Tue Jan 26 06:05:55 2016 (r294764) @@ -383,7 +383,6 @@ linux_sigaltstack(struct thread *td, str return (error); } -/* XXX do all */ int linux_arch_prctl(struct thread *td, struct linux_arch_prctl_args *args) { From owner-svn-src-all@freebsd.org Tue Jan 26 06:26:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2A23A47061; Tue, 26 Jan 2016 06:26:21 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B444A78D; Tue, 26 Jan 2016 06:26:21 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q6QKjt003341; Tue, 26 Jan 2016 06:26:20 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q6QJ0E003328; Tue, 26 Jan 2016 06:26:19 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601260626.u0Q6QJ0E003328@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 26 Jan 2016 06:26:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294765 - in head/sys/boot: arm/at91/boot2 arm/ixp425/boot2 common efi/boot1 i386/boot2 i386/gptboot i386/zfsboot mips/beri/boot2 pc98/boot2 powerpc/boot1.chrp sparc64/boot1 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 06:26:22 -0000 Author: imp Date: Tue Jan 26 06:26:19 2016 New Revision: 294765 URL: https://svnweb.freebsd.org/changeset/base/294765 Log: Move all the separate copies of the same strings into paths.h. There's nothing machine specific about these. Differential Revision: https://reviews.freebsd.org/D5038 Added: head/sys/boot/common/paths.h (contents, props changed) Modified: head/sys/boot/arm/at91/boot2/boot2.c head/sys/boot/arm/ixp425/boot2/boot2.c head/sys/boot/efi/boot1/boot1.c head/sys/boot/i386/boot2/boot2.c head/sys/boot/i386/gptboot/gptboot.c head/sys/boot/i386/zfsboot/zfsboot.c head/sys/boot/mips/beri/boot2/boot2.c head/sys/boot/pc98/boot2/boot2.c head/sys/boot/powerpc/boot1.chrp/boot1.c head/sys/boot/sparc64/boot1/boot1.c Modified: head/sys/boot/arm/at91/boot2/boot2.c ============================================================================== --- head/sys/boot/arm/at91/boot2/boot2.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/arm/at91/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2008 John Hay - * Copyright (c) 2006 Warner Losh + * Copyright (c) 2006 M Warner Losh * Copyright (c) 1998 Robert Nordier * All rights reserved. * @@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$"); #include "lib.h" #include "board.h" +#include "paths.h" #define RBX_ASKNAME 0x0 /* -a */ #define RBX_SINGLE 0x1 /* -s */ @@ -64,9 +65,7 @@ __FBSDID("$FreeBSD$"); OPT_SET(RBX_VERBOSE) | \ OPT_SET(RBX_GDB)) -#define PATH_DOTCONFIG "/boot.config" -#define PATH_CONFIG "/boot/config" -//#define PATH_KERNEL "/boot/kernel/kernel" +#undef PATH_KERNEL #define PATH_KERNEL "/boot/kernel/kernel.gz.tramp" extern uint32_t _end; Modified: head/sys/boot/arm/ixp425/boot2/boot2.c ============================================================================== --- head/sys/boot/arm/ixp425/boot2/boot2.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/arm/ixp425/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) @@ -28,6 +28,7 @@ __FBSDID("$FreeBSD$"); #include #include "lib.h" +#include "paths.h" #define RBX_ASKNAME 0x0 /* -a */ #define RBX_SINGLE 0x1 /* -s */ @@ -62,10 +63,6 @@ __FBSDID("$FreeBSD$"); OPT_SET(RBX_VERBOSE) | \ OPT_SET(RBX_GDB)) -#define PATH_DOTCONFIG "/boot.config" -#define PATH_CONFIG "/boot/config" -#define PATH_KERNEL "/boot/kernel/kernel" - extern uint32_t _end; #define NOPT 6 Added: head/sys/boot/common/paths.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/common/paths.h Tue Jan 26 06:26:19 2016 (r294765) @@ -0,0 +1,39 @@ +/*- + * Copyright (c) 2016 M. Warner Losh + * 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 AUTHORS 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 AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _PATHS_H_ +#define _PATHS_H_ + +#define PATH_DOTCONFIG "/boot.config" +#define PATH_CONFIG "/boot/config" +#define PATH_BOOT3 "/boot/loader" +#define PATH_LOADER "/boot/loader" +#define PATH_LOADER_EFI "/boot/loader.efi" +#define PATH_KERNEL "/boot/kernel/kernel" + +#endif /* _PATHS_H_ */ Modified: head/sys/boot/efi/boot1/boot1.c ============================================================================== --- head/sys/boot/efi/boot1/boot1.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/efi/boot1/boot1.c Tue Jan 26 06:26:19 2016 (r294765) @@ -31,8 +31,7 @@ __FBSDID("$FreeBSD$"); #include #include "boot_module.h" - -#define _PATH_LOADER "/boot/loader.efi" +#include "paths.h" static const boot_module_t *boot_modules[] = { @@ -99,13 +98,13 @@ try_load(const boot_module_t *mod) EFI_LOADED_IMAGE *loaded_image; EFI_STATUS status; - status = mod->load(_PATH_LOADER, &dev, &buf, &bufsize); + status = mod->load(PATH_LOADER_EFI, &dev, &buf, &bufsize); if (status == EFI_NOT_FOUND) return; if (status != EFI_SUCCESS) { - printf("%s failed to load %s (%lu)\n", mod->name, _PATH_LOADER, - EFI_ERROR_CODE(status)); + printf("%s failed to load %s (%lu)\n", mod->name, + PATH_LOADER_EFI, EFI_ERROR_CODE(status)); return; } @@ -174,7 +173,7 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_T conout->ClearScreen(conout); printf("\n>> FreeBSD EFI boot block\n"); - printf(" Loader path: %s\n\n", _PATH_LOADER); + printf(" Loader path: %s\n\n", PATH_LOADER_EFI); printf(" Initializing modules:"); for (i = 0; i < NUM_BOOT_MODULES; i++) { if (boot_modules[i] == NULL) Modified: head/sys/boot/i386/boot2/boot2.c ============================================================================== --- head/sys/boot/i386/boot2/boot2.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/i386/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include "boot2.h" #include "lib.h" +#include "paths.h" /* Define to 0 to omit serial support */ #ifndef SERIAL @@ -87,11 +88,6 @@ __FBSDID("$FreeBSD$"); OPT_SET(RBX_GDB ) | OPT_SET(RBX_MUTE) | \ OPT_SET(RBX_PAUSE) | OPT_SET(RBX_DUAL)) -#define PATH_DOTCONFIG "/boot.config" -#define PATH_CONFIG "/boot/config" -#define PATH_BOOT3 "/boot/loader" -#define PATH_KERNEL "/boot/kernel/kernel" - #define ARGS 0x900 #define NOPT 14 #define NDEV 3 Modified: head/sys/boot/i386/gptboot/gptboot.c ============================================================================== --- head/sys/boot/i386/gptboot/gptboot.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/i386/gptboot/gptboot.c Tue Jan 26 06:26:19 2016 (r294765) @@ -37,11 +37,7 @@ __FBSDID("$FreeBSD$"); #include "util.h" #include "cons.h" #include "gpt.h" - -#define PATH_DOTCONFIG "/boot.config" -#define PATH_CONFIG "/boot/config" -#define PATH_BOOT3 "/boot/loader" -#define PATH_KERNEL "/boot/kernel/kernel" +#include "paths.h" #define ARGS 0x900 #define NOPT 14 Modified: head/sys/boot/i386/zfsboot/zfsboot.c ============================================================================== --- head/sys/boot/i386/zfsboot/zfsboot.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/i386/zfsboot/zfsboot.c Tue Jan 26 06:26:19 2016 (r294765) @@ -42,14 +42,10 @@ __FBSDID("$FreeBSD$"); #include "util.h" #include "cons.h" #include "bootargs.h" +#include "paths.h" #include "libzfs.h" -#define PATH_DOTCONFIG "/boot.config" -#define PATH_CONFIG "/boot/config" -#define PATH_BOOT3 "/boot/zfsloader" -#define PATH_KERNEL "/boot/kernel/kernel" - #define ARGS 0x900 #define NOPT 14 #define NDEV 3 Modified: head/sys/boot/mips/beri/boot2/boot2.c ============================================================================== --- head/sys/boot/mips/beri/boot2/boot2.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/mips/beri/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) @@ -64,6 +64,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include "paths.h" + static int beri_argc; static const char **beri_argv, **beri_envv; static uint64_t beri_memsize; @@ -108,11 +110,6 @@ static uint64_t beri_memsize; OPT_SET(RBX_GDB ) | OPT_SET(RBX_MUTE) | \ OPT_SET(RBX_PAUSE) | OPT_SET(RBX_DUAL)) -#define PATH_DOTCONFIG "/boot.config" -#define PATH_CONFIG "/boot/config" -#define PATH_BOOT3 "/boot/loader" -#define PATH_KERNEL "/boot/kernel/kernel" - #define ARGS 0x900 #define NOPT 14 #define MEM_BASE 0x12 Modified: head/sys/boot/pc98/boot2/boot2.c ============================================================================== --- head/sys/boot/pc98/boot2/boot2.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/pc98/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include "boot2.h" #include "lib.h" +#include "paths.h" /* Define to 0 to omit serial support */ #ifndef SERIAL @@ -89,11 +90,6 @@ __FBSDID("$FreeBSD$"); OPT_SET(RBX_GDB ) | OPT_SET(RBX_MUTE) | \ OPT_SET(RBX_PAUSE) | OPT_SET(RBX_DUAL)) -#define PATH_DOTCONFIG "/boot.config" -#define PATH_CONFIG "/boot/config" -#define PATH_BOOT3 "/boot/loader" -#define PATH_KERNEL "/boot/kernel/kernel" - #define ARGS 0x900 #define NOPT 14 #define NDEV 3 Modified: head/sys/boot/powerpc/boot1.chrp/boot1.c ============================================================================== --- head/sys/boot/powerpc/boot1.chrp/boot1.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/powerpc/boot1.chrp/boot1.c Tue Jan 26 06:26:19 2016 (r294765) @@ -23,8 +23,7 @@ __FBSDID("$FreeBSD$"); #include #include -#define _PATH_LOADER "/boot/loader" -#define _PATH_KERNEL "/boot/kernel/kernel" +#include "paths.h" #define BSIZEMAX 16384 @@ -396,7 +395,7 @@ main(int ac, char **av) char bootpath_full[255]; int i, len; - path = _PATH_LOADER; + path = PATH_LOADER; for (i = 0; i < ac; i++) { switch (av[i][0]) { case '-': Modified: head/sys/boot/sparc64/boot1/boot1.c ============================================================================== --- head/sys/boot/sparc64/boot1/boot1.c Tue Jan 26 06:05:55 2016 (r294764) +++ head/sys/boot/sparc64/boot1/boot1.c Tue Jan 26 06:26:19 2016 (r294765) @@ -24,8 +24,8 @@ __FBSDID("$FreeBSD$"); #include #include -#define _PATH_LOADER "/boot/loader" -#define _PATH_KERNEL "/boot/kernel/kernel" +#include "paths.h" + #define READ_BUF_SIZE 8192 typedef int putc_func_t(char c, void *arg); @@ -324,7 +324,7 @@ main(int ac, char **av) const char *path; int i; - path = _PATH_LOADER; + path = PATH_LOADER; for (i = 0; i < ac; i++) { switch (av[i][0]) { case '-': From owner-svn-src-all@freebsd.org Tue Jan 26 06:26:46 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8AB24A470AA; Tue, 26 Jan 2016 06:26:46 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6632C8F5; Tue, 26 Jan 2016 06:26:46 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q6QjwX003398; Tue, 26 Jan 2016 06:26:45 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q6QiN6003392; Tue, 26 Jan 2016 06:26:44 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601260626.u0Q6QiN6003392@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 26 Jan 2016 06:26:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294766 - in head/sys/boot: arm/at91/boot2 arm/ixp425/boot2 common i386/boot2 i386/common mips/beri/boot2 pc98/boot2 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 06:26:46 -0000 Author: imp Date: Tue Jan 26 06:26:44 2016 New Revision: 294766 URL: https://svnweb.freebsd.org/changeset/base/294766 Log: RBX_ defines are in rbx.h, move it there. Differential Revision: https://reviews.freebsd.org/D5038 Added: head/sys/boot/common/rbx.h - copied, changed from r294765, head/sys/boot/i386/common/rbx.h Deleted: head/sys/boot/i386/common/rbx.h Modified: head/sys/boot/arm/at91/boot2/boot2.c head/sys/boot/arm/ixp425/boot2/boot2.c head/sys/boot/i386/boot2/boot2.c head/sys/boot/mips/beri/boot2/boot2.c head/sys/boot/pc98/boot2/boot2.c Modified: head/sys/boot/arm/at91/boot2/boot2.c ============================================================================== --- head/sys/boot/arm/at91/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) +++ head/sys/boot/arm/at91/boot2/boot2.c Tue Jan 26 06:26:44 2016 (r294766) @@ -31,39 +31,7 @@ __FBSDID("$FreeBSD$"); #include "lib.h" #include "board.h" #include "paths.h" - -#define RBX_ASKNAME 0x0 /* -a */ -#define RBX_SINGLE 0x1 /* -s */ -/* 0x2 is reserved for log2(RB_NOSYNC). */ -/* 0x3 is reserved for log2(RB_HALT). */ -/* 0x4 is reserved for log2(RB_INITNAME). */ -#define RBX_DFLTROOT 0x5 /* -r */ -/* #define RBX_KDB 0x6 -d */ -/* 0x7 is reserved for log2(RB_RDONLY). */ -/* 0x8 is reserved for log2(RB_DUMP). */ -/* 0x9 is reserved for log2(RB_MINIROOT). */ -#define RBX_CONFIG 0xa /* -c */ -#define RBX_VERBOSE 0xb /* -v */ -/* #define RBX_SERIAL 0xc -h */ -/* #define RBX_CDROM 0xd -C */ -/* 0xe is reserved for log2(RB_POWEROFF). */ -#define RBX_GDB 0xf /* -g */ -/* #define RBX_MUTE 0x10 -m */ -/* 0x11 is reserved for log2(RB_SELFTEST). */ -/* 0x12 is reserved for boot programs. */ -/* 0x13 is reserved for boot programs. */ -/* #define RBX_PAUSE 0x14 -p */ -/* #define RBX_QUIET 0x15 -q */ -#define RBX_NOINTR 0x1c /* -n */ -/* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ -/* #define RBX_DUAL 0x1d -D */ -/* 0x1f is reserved for log2(RB_BOOTINFO). */ - -/* pass: -a, -s, -r, -v, -g */ -#define RBX_MASK (OPT_SET(RBX_ASKNAME) | OPT_SET(RBX_SINGLE) | \ - OPT_SET(RBX_DFLTROOT) | \ - OPT_SET(RBX_VERBOSE) | \ - OPT_SET(RBX_GDB)) +#include "rbx.h" #undef PATH_KERNEL #define PATH_KERNEL "/boot/kernel/kernel.gz.tramp" @@ -72,9 +40,6 @@ extern uint32_t _end; #define NOPT 6 -#define OPT_SET(opt) (1 << (opt)) -#define OPT_CHECK(opt) ((opts) & OPT_SET(opt)) - static const char optstr[NOPT] = "agnrsv"; static const unsigned char bootflags[NOPT] = { RBX_ASKNAME, Modified: head/sys/boot/arm/ixp425/boot2/boot2.c ============================================================================== --- head/sys/boot/arm/ixp425/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) +++ head/sys/boot/arm/ixp425/boot2/boot2.c Tue Jan 26 06:26:44 2016 (r294766) @@ -29,47 +29,12 @@ __FBSDID("$FreeBSD$"); #include "lib.h" #include "paths.h" - -#define RBX_ASKNAME 0x0 /* -a */ -#define RBX_SINGLE 0x1 /* -s */ -/* 0x2 is reserved for log2(RB_NOSYNC). */ -/* 0x3 is reserved for log2(RB_HALT). */ -/* 0x4 is reserved for log2(RB_INITNAME). */ -#define RBX_DFLTROOT 0x5 /* -r */ -/* #define RBX_KDB 0x6 -d */ -/* 0x7 is reserved for log2(RB_RDONLY). */ -/* 0x8 is reserved for log2(RB_DUMP). */ -/* 0x9 is reserved for log2(RB_MINIROOT). */ -#define RBX_CONFIG 0xa /* -c */ -#define RBX_VERBOSE 0xb /* -v */ -/* #define RBX_SERIAL 0xc -h */ -/* #define RBX_CDROM 0xd -C */ -/* 0xe is reserved for log2(RB_POWEROFF). */ -#define RBX_GDB 0xf /* -g */ -/* #define RBX_MUTE 0x10 -m */ -/* 0x11 is reserved for log2(RB_SELFTEST). */ -/* 0x12 is reserved for boot programs. */ -/* 0x13 is reserved for boot programs. */ -/* #define RBX_PAUSE 0x14 -p */ -/* #define RBX_QUIET 0x15 -q */ -#define RBX_NOINTR 0x1c /* -n */ -/* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ -/* #define RBX_DUAL 0x1d -D */ -/* 0x1f is reserved for log2(RB_BOOTINFO). */ - -/* pass: -a, -s, -r, -v, -g */ -#define RBX_MASK (OPT_SET(RBX_ASKNAME) | OPT_SET(RBX_SINGLE) | \ - OPT_SET(RBX_DFLTROOT) | \ - OPT_SET(RBX_VERBOSE) | \ - OPT_SET(RBX_GDB)) +#include "rbx.h" extern uint32_t _end; #define NOPT 6 -#define OPT_SET(opt) (1 << (opt)) -#define OPT_CHECK(opt) ((opts) & OPT_SET(opt)) - static const char optstr[NOPT] = "agnrsv"; static const unsigned char flags[NOPT] = { RBX_ASKNAME, Copied and modified: head/sys/boot/common/rbx.h (from r294765, head/sys/boot/i386/common/rbx.h) ============================================================================== Modified: head/sys/boot/i386/boot2/boot2.c ============================================================================== --- head/sys/boot/i386/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) +++ head/sys/boot/i386/boot2/boot2.c Tue Jan 26 06:26:44 2016 (r294766) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include "boot2.h" #include "lib.h" #include "paths.h" +#include "rbx.h" /* Define to 0 to omit serial support */ #ifndef SERIAL @@ -53,41 +54,6 @@ __FBSDID("$FreeBSD$"); #define SECOND 18 /* Circa that many ticks in a second. */ -#define RBX_ASKNAME 0x0 /* -a */ -#define RBX_SINGLE 0x1 /* -s */ -/* 0x2 is reserved for log2(RB_NOSYNC). */ -/* 0x3 is reserved for log2(RB_HALT). */ -/* 0x4 is reserved for log2(RB_INITNAME). */ -#define RBX_DFLTROOT 0x5 /* -r */ -#define RBX_KDB 0x6 /* -d */ -/* 0x7 is reserved for log2(RB_RDONLY). */ -/* 0x8 is reserved for log2(RB_DUMP). */ -/* 0x9 is reserved for log2(RB_MINIROOT). */ -#define RBX_CONFIG 0xa /* -c */ -#define RBX_VERBOSE 0xb /* -v */ -#define RBX_SERIAL 0xc /* -h */ -#define RBX_CDROM 0xd /* -C */ -/* 0xe is reserved for log2(RB_POWEROFF). */ -#define RBX_GDB 0xf /* -g */ -#define RBX_MUTE 0x10 /* -m */ -/* 0x11 is reserved for log2(RB_SELFTEST). */ -/* 0x12 is reserved for boot programs. */ -/* 0x13 is reserved for boot programs. */ -#define RBX_PAUSE 0x14 /* -p */ -#define RBX_QUIET 0x15 /* -q */ -#define RBX_NOINTR 0x1c /* -n */ -/* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ -#define RBX_DUAL 0x1d /* -D */ -/* 0x1f is reserved for log2(RB_BOOTINFO). */ - -/* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */ -#define RBX_MASK (OPT_SET(RBX_ASKNAME) | OPT_SET(RBX_SINGLE) | \ - OPT_SET(RBX_DFLTROOT) | OPT_SET(RBX_KDB ) | \ - OPT_SET(RBX_CONFIG) | OPT_SET(RBX_VERBOSE) | \ - OPT_SET(RBX_SERIAL) | OPT_SET(RBX_CDROM) | \ - OPT_SET(RBX_GDB ) | OPT_SET(RBX_MUTE) | \ - OPT_SET(RBX_PAUSE) | OPT_SET(RBX_DUAL)) - #define ARGS 0x900 #define NOPT 14 #define NDEV 3 @@ -102,9 +68,6 @@ __FBSDID("$FreeBSD$"); #define TYPE_MAXHARD TYPE_DA #define TYPE_FD 2 -#define OPT_SET(opt) (1 << (opt)) -#define OPT_CHECK(opt) ((opts) & OPT_SET(opt)) - extern uint32_t _end; static const char optstr[NOPT] = "DhaCcdgmnpqrsv"; /* Also 'P', 'S' */ @@ -139,7 +102,7 @@ static struct dsk { } dsk; static char cmd[512], cmddup[512], knamebuf[1024]; static const char *kname; -static uint32_t opts; +uint32_t opts; static struct bootinfo bootinfo; #if SERIAL static int comspeed = SIOSPD; Modified: head/sys/boot/mips/beri/boot2/boot2.c ============================================================================== --- head/sys/boot/mips/beri/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) +++ head/sys/boot/mips/beri/boot2/boot2.c Tue Jan 26 06:26:44 2016 (r294766) @@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$"); #include #include "paths.h" +#include "rbx.h" static int beri_argc; static const char **beri_argv, **beri_envv; @@ -75,41 +76,6 @@ static uint64_t beri_memsize; #define SECOND 1 /* Circa that many ticks in a second. */ -#define RBX_ASKNAME 0x0 /* -a */ -#define RBX_SINGLE 0x1 /* -s */ -/* 0x2 is reserved for log2(RB_NOSYNC). */ -/* 0x3 is reserved for log2(RB_HALT). */ -/* 0x4 is reserved for log2(RB_INITNAME). */ -#define RBX_DFLTROOT 0x5 /* -r */ -#define RBX_KDB 0x6 /* -d */ -/* 0x7 is reserved for log2(RB_RDONLY). */ -/* 0x8 is reserved for log2(RB_DUMP). */ -/* 0x9 is reserved for log2(RB_MINIROOT). */ -#define RBX_CONFIG 0xa /* -c */ -#define RBX_VERBOSE 0xb /* -v */ -#define RBX_SERIAL 0xc /* -h */ -#define RBX_CDROM 0xd /* -C */ -/* 0xe is reserved for log2(RB_POWEROFF). */ -#define RBX_GDB 0xf /* -g */ -#define RBX_MUTE 0x10 /* -m */ -/* 0x11 is reserved for log2(RB_SELFTEST). */ -/* 0x12 is reserved for boot programs. */ -/* 0x13 is reserved for boot programs. */ -#define RBX_PAUSE 0x14 /* -p */ -#define RBX_QUIET 0x15 /* -q */ -#define RBX_NOINTR 0x1c /* -n */ -/* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ -#define RBX_DUAL 0x1d /* -D */ -/* 0x1f is reserved for log2(RB_BOOTINFO). */ - -/* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */ -#define RBX_MASK (OPT_SET(RBX_ASKNAME) | OPT_SET(RBX_SINGLE) | \ - OPT_SET(RBX_DFLTROOT) | OPT_SET(RBX_KDB ) | \ - OPT_SET(RBX_CONFIG) | OPT_SET(RBX_VERBOSE) | \ - OPT_SET(RBX_SERIAL) | OPT_SET(RBX_CDROM) | \ - OPT_SET(RBX_GDB ) | OPT_SET(RBX_MUTE) | \ - OPT_SET(RBX_PAUSE) | OPT_SET(RBX_DUAL)) - #define ARGS 0x900 #define NOPT 14 #define MEM_BASE 0x12 @@ -128,9 +94,6 @@ static uint64_t beri_memsize; /* Hard-coded assumption about location of JTAG-loaded kernel. */ #define DRAM_KERNEL_ADDR ((void *)mips_phys_to_cached(0x20000)) -#define OPT_SET(opt) (1 << (opt)) -#define OPT_CHECK(opt) ((opts) & OPT_SET(opt)) - extern uint32_t _end; static const char optstr[NOPT] = "DhaCcdgmnpqrsv"; /* Also 'P', 'S' */ Modified: head/sys/boot/pc98/boot2/boot2.c ============================================================================== --- head/sys/boot/pc98/boot2/boot2.c Tue Jan 26 06:26:19 2016 (r294765) +++ head/sys/boot/pc98/boot2/boot2.c Tue Jan 26 06:26:44 2016 (r294766) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include "boot2.h" #include "lib.h" #include "paths.h" +#include "rbx.h" /* Define to 0 to omit serial support */ #ifndef SERIAL @@ -55,41 +56,6 @@ __FBSDID("$FreeBSD$"); #define SECOND 1 /* Circa that many ticks in a second. */ -#define RBX_ASKNAME 0x0 /* -a */ -#define RBX_SINGLE 0x1 /* -s */ -/* 0x2 is reserved for log2(RB_NOSYNC). */ -/* 0x3 is reserved for log2(RB_HALT). */ -/* 0x4 is reserved for log2(RB_INITNAME). */ -#define RBX_DFLTROOT 0x5 /* -r */ -#define RBX_KDB 0x6 /* -d */ -/* 0x7 is reserved for log2(RB_RDONLY). */ -/* 0x8 is reserved for log2(RB_DUMP). */ -/* 0x9 is reserved for log2(RB_MINIROOT). */ -#define RBX_CONFIG 0xa /* -c */ -#define RBX_VERBOSE 0xb /* -v */ -#define RBX_SERIAL 0xc /* -h */ -#define RBX_CDROM 0xd /* -C */ -/* 0xe is reserved for log2(RB_POWEROFF). */ -#define RBX_GDB 0xf /* -g */ -#define RBX_MUTE 0x10 /* -m */ -/* 0x11 is reserved for log2(RB_SELFTEST). */ -/* 0x12 is reserved for boot programs. */ -/* 0x13 is reserved for boot programs. */ -#define RBX_PAUSE 0x14 /* -p */ -#define RBX_QUIET 0x15 /* -q */ -#define RBX_NOINTR 0x1c /* -n */ -/* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ -#define RBX_DUAL 0x1d /* -D */ -/* 0x1f is reserved for log2(RB_BOOTINFO). */ - -/* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */ -#define RBX_MASK (OPT_SET(RBX_ASKNAME) | OPT_SET(RBX_SINGLE) | \ - OPT_SET(RBX_DFLTROOT) | OPT_SET(RBX_KDB ) | \ - OPT_SET(RBX_CONFIG) | OPT_SET(RBX_VERBOSE) | \ - OPT_SET(RBX_SERIAL) | OPT_SET(RBX_CDROM) | \ - OPT_SET(RBX_GDB ) | OPT_SET(RBX_MUTE) | \ - OPT_SET(RBX_PAUSE) | OPT_SET(RBX_DUAL)) - #define ARGS 0x900 #define NOPT 14 #define NDEV 3 @@ -101,9 +67,6 @@ __FBSDID("$FreeBSD$"); #define TYPE_DA 1 #define TYPE_FD 2 -#define OPT_SET(opt) (1 << (opt)) -#define OPT_CHECK(opt) ((opts) & OPT_SET(opt)) - extern uint32_t _end; static const char optstr[NOPT] = "DhaCcdgmnpqrsv"; /* Also 'P', 'S' */ From owner-svn-src-all@freebsd.org Tue Jan 26 06:26:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6702A470B1; Tue, 26 Jan 2016 06:26:47 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 921C08F8; Tue, 26 Jan 2016 06:26:47 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q6QkJL003441; Tue, 26 Jan 2016 06:26:46 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q6QkIk003440; Tue, 26 Jan 2016 06:26:46 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601260626.u0Q6QkIk003440@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 26 Jan 2016 06:26:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294767 - head/sys/boot/efi/loader X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 06:26:47 -0000 Author: imp Date: Tue Jan 26 06:26:46 2016 New Revision: 294767 URL: https://svnweb.freebsd.org/changeset/base/294767 Log: Parse the command line arguments, and do it before we initialize the console so it can be changed by the command line arguments. Differential Revision: https://reviews.freebsd.org/D5038 Modified: head/sys/boot/efi/loader/main.c Modified: head/sys/boot/efi/loader/main.c ============================================================================== --- head/sys/boot/efi/loader/main.c Tue Jan 26 06:26:44 2016 (r294766) +++ head/sys/boot/efi/loader/main.c Tue Jan 26 06:26:46 2016 (r294767) @@ -29,6 +29,8 @@ __FBSDID("$FreeBSD$"); #include +#include +#include #include #include #include @@ -83,13 +85,22 @@ print_str16(const CHAR16 *str) printf("%c", (char)str[i]); } +static void +cp16to8(const CHAR16 *src, char *dst, size_t len) +{ + size_t i; + + for (i = 0; i < len && src[i]; i++) + dst[i] = (char)src[i]; +} + EFI_STATUS main(int argc, CHAR16 *argv[]) { char var[128]; EFI_LOADED_IMAGE *img; EFI_GUID *guid; - int i, j, vargood, unit; + int i, j, vargood, unit, howto; struct devsw *dev; uint64_t pool_guid; UINTN k; @@ -113,27 +124,97 @@ main(int argc, CHAR16 *argv[]) cons_probe(); /* + * Parse the args to set the console settings, etc + * boot1.efi passes these in, if it can read /boot.config or /boot/config + * or iPXE may be setup to pass these in. + * * Loop through the args, and for each one that contains an '=' that is * not the first character, add it to the environment. This allows * loader and kernel env vars to be passed on the command line. Convert * args from UCS-2 to ASCII (16 to 8 bit) as they are copied. */ + howto = 0; for (i = 1; i < argc; i++) { - vargood = 0; - for (j = 0; argv[i][j] != 0; j++) { - if (j == sizeof(var)) { - vargood = 0; - break; + if (argv[i][0] == '-') { + for (j = 1; argv[i][j] != 0; j++) { + int ch; + + ch = argv[i][j]; + switch (ch) { + case 'a': + howto |= RB_ASKNAME; + break; + case 'd': + howto |= RB_KDB; + break; + case 'D': + howto |= RB_MULTIPLE; + break; + case 'm': + howto |= RB_MUTE; + break; + case 'h': + howto |= RB_SERIAL; + break; + case 'p': + howto |= RB_PAUSE; + break; + case 'r': + howto |= RB_DFLTROOT; + break; + case 's': + howto |= RB_SINGLE; + break; + case 'S': + if (argv[i][j + 1] == 0) { + if (i + 1 == argc) { + setenv("comconsole_speed", "115200", 1); + } else { + cp16to8(&argv[i + 1][0], var, + sizeof(var)); + setenv("comconsole_speedspeed", var, 1); + } + i++; + break; + } else { + cp16to8(&argv[i][j + 1], var, + sizeof(var)); + setenv("comconsole_speed", var, 1); + break; + } + case 'v': + howto |= RB_VERBOSE; + break; + } + } + } else { + vargood = 0; + for (j = 0; argv[i][j] != 0; j++) { + if (j == sizeof(var)) { + vargood = 0; + break; + } + if (j > 0 && argv[i][j] == '=') + vargood = 1; + var[j] = (char)argv[i][j]; + } + if (vargood) { + var[j] = 0; + putenv(var); } - if (j > 0 && argv[i][j] == '=') - vargood = 1; - var[j] = (char)argv[i][j]; - } - if (vargood) { - var[j] = 0; - putenv(var); } } + for (i = 0; howto_names[i].ev != NULL; i++) + if (howto & howto_names[i].mask) + setenv(howto_names[i].ev, "YES", 1); + if (howto & RB_MULTIPLE) { + if (howto & RB_SERIAL) + setenv("console", "comconsole efi" , 1); + else + setenv("console", "efi comconsole" , 1); + } else if (howto & RB_SERIAL) { + setenv("console", "comconsole" , 1); + } if (efi_copy_init()) { printf("failed to allocate staging area\n"); From owner-svn-src-all@freebsd.org Tue Jan 26 06:26:57 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 24A09A470FD; Tue, 26 Jan 2016 06:26:57 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D1A21B9D; Tue, 26 Jan 2016 06:26:56 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q6QtOn003487; Tue, 26 Jan 2016 06:26:55 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q6Qtio003486; Tue, 26 Jan 2016 06:26:55 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601260626.u0Q6Qtio003486@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 26 Jan 2016 06:26:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294768 - head/sys/boot/efi/boot1 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 06:26:57 -0000 Author: imp Date: Tue Jan 26 06:26:55 2016 New Revision: 294768 URL: https://svnweb.freebsd.org/changeset/base/294768 Log: Read in /boot/config and /boot.config, like all the other boot loaders and pass it along to /boot/loader.efi. Differential Revision: https://reviews.freebsd.org/D5038 Modified: head/sys/boot/efi/boot1/boot1.c Modified: head/sys/boot/efi/boot1/boot1.c ============================================================================== --- head/sys/boot/efi/boot1/boot1.c Tue Jan 26 06:26:46 2016 (r294767) +++ head/sys/boot/efi/boot1/boot1.c Tue Jan 26 06:26:55 2016 (r294768) @@ -91,13 +91,41 @@ Free(void *buf, const char *file __unuse void try_load(const boot_module_t *mod) { - size_t bufsize; + size_t bufsize, cmdsize; void *buf; + char *cmd; dev_info_t *dev; EFI_HANDLE loaderhandle; EFI_LOADED_IMAGE *loaded_image; EFI_STATUS status; + /* + * Read in and parse the command line from /boot.config or /boot/config, + * if present. We'll pass it the next stage via a simple ASCII + * string. loader.efi has a hack for ASCII strings, so we'll use that to + * keep the size down here. We only try to read the alternate file if + * we get EFI_NOT_FOUND because all other errors mean that the boot_module + * had troubles with the filesystem. We could return early, but we'll let + * loading the actual kernel sort all that out. Since these files are + * optional, we don't report errors in trying to read them. + */ + cmd = NULL; + cmdsize = 0; + status = mod->load(PATH_DOTCONFIG, &dev, &buf, &bufsize); + if (status == EFI_NOT_FOUND) + status = mod->load(PATH_CONFIG, &dev, &buf, &bufsize); + if (status == EFI_SUCCESS) { + cmdsize = bufsize + 1; + cmd = malloc(cmdsize); + if (cmd == NULL) { + free(buf); + return; + } + memcpy(cmd, buf, bufsize); + cmd[bufsize] = '\0'; + free(buf); + } + status = mod->load(PATH_LOADER_EFI, &dev, &buf, &bufsize); if (status == EFI_NOT_FOUND) return; @@ -115,6 +143,9 @@ try_load(const boot_module_t *mod) return; } + if (cmd != NULL) + printf(" command args: %s\n", cmd); + if ((status = bs->HandleProtocol(loaderhandle, &LoadedImageGUID, (VOID**)&loaded_image)) != EFI_SUCCESS) { printf("Failed to query LoadedImage provided by %s (%lu)\n", @@ -123,11 +154,16 @@ try_load(const boot_module_t *mod) } loaded_image->DeviceHandle = dev->devhandle; + loaded_image->LoadOptionsSize = cmdsize; + loaded_image->LoadOptions = cmd; if ((status = bs->StartImage(loaderhandle, NULL, NULL)) != EFI_SUCCESS) { printf("Failed to start image provided by %s (%lu)\n", mod->name, EFI_ERROR_CODE(status)); + free(cmd); + loaded_image->LoadOptionsSize = 0; + loaded_image->LoadOptions = NULL; return; } } From owner-svn-src-all@freebsd.org Tue Jan 26 06:26:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F55CA47102; Tue, 26 Jan 2016 06:26:58 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 01909BA7; Tue, 26 Jan 2016 06:26:57 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q6Qv6k003530; Tue, 26 Jan 2016 06:26:57 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q6QvBr003529; Tue, 26 Jan 2016 06:26:57 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601260626.u0Q6QvBr003529@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 26 Jan 2016 06:26:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294769 - head/sys/boot/efi/libefi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 06:26:58 -0000 Author: imp Date: Tue Jan 26 06:26:56 2016 New Revision: 294769 URL: https://svnweb.freebsd.org/changeset/base/294769 Log: Allow new lines as white space for arguments that are parsed to allow boot1 to pass in files with newlines in them. Now that the EFI loader groks foo=bar on the command line, this can allow a more general setup than traditional boot loader args will allow. Differential Revision: https://reviews.freebsd.org/D5038 Modified: head/sys/boot/efi/libefi/libefi.c Modified: head/sys/boot/efi/libefi/libefi.c ============================================================================== --- head/sys/boot/efi/libefi/libefi.c Tue Jan 26 06:26:55 2016 (r294768) +++ head/sys/boot/efi/libefi/libefi.c Tue Jan 26 06:26:56 2016 (r294769) @@ -44,7 +44,7 @@ static CHAR16 * arg_skipsep(CHAR16 *argp) { - while (*argp == ' ' || *argp == '\t') + while (*argp == ' ' || *argp == '\t' || *argp == '\n') argp++; return (argp); } @@ -53,7 +53,7 @@ static CHAR16 * arg_skipword(CHAR16 *argp) { - while (*argp && *argp != ' ' && *argp != '\t') + while (*argp && *argp != ' ' && *argp != '\t' && *argp != '\n') argp++; return (argp); } From owner-svn-src-all@freebsd.org Tue Jan 26 06:37:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F3705A4740D; Tue, 26 Jan 2016 06:37:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AA7A51180; Tue, 26 Jan 2016 06:37:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q6bLng006519; Tue, 26 Jan 2016 06:37:21 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q6bLRE006518; Tue, 26 Jan 2016 06:37:21 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601260637.u0Q6bLRE006518@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 26 Jan 2016 06:37:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294770 - stable/10/tools/build/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 06:37:23 -0000 Author: ngie Date: Tue Jan 26 06:37:21 2016 New Revision: 294770 URL: https://svnweb.freebsd.org/changeset/base/294770 Log: MFC r278047: PR: 206622 Sponsored by: EMC / Isilon Storage Division r278047 (by amdmi3): - Remove more files when MK_BSNMP == no Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/10/ (props changed) Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- stable/10/tools/build/mk/OptionalObsoleteFiles.inc Tue Jan 26 06:26:56 2016 (r294769) +++ stable/10/tools/build/mk/OptionalObsoleteFiles.inc Tue Jan 26 06:37:21 2016 (r294770) @@ -336,25 +336,44 @@ OLD_FILES+=usr/include/bsnmp/snmpagent.h OLD_FILES+=usr/include/bsnmp/snmpclient.h OLD_FILES+=usr/include/bsnmp/snmpmod.h OLD_FILES+=usr/lib/libbsnmp.a +OLD_FILES+=usr/lib/libbsnmp.so OLD_LIBS+=usr/lib/libbsnmp.so.6 OLD_FILES+=usr/lib/libbsnmp_p.a OLD_FILES+=usr/lib/libbsnmptools.a +OLD_FILES+=usr/lib/libbsnmptools.so OLD_LIBS+=usr/lib/libbsnmptools.so.0 OLD_FILES+=usr/lib/libbsnmptools_p.a +OLD_FILES+=usr/lib/snmp_atm.so OLD_LIBS+=usr/lib/snmp_atm.so.6 +OLD_FILES+=usr/lib/snmp_bridge.so OLD_LIBS+=usr/lib/snmp_bridge.so.6 +OLD_FILES+=usr/lib/snmp_hast.so OLD_LIBS+=usr/lib/snmp_hast.so.6 +OLD_FILES+=usr/lib/snmp_hostres.so OLD_LIBS+=usr/lib/snmp_hostres.so.6 +OLD_FILES+=usr/lib/snmp_lm75.so OLD_LIBS+=usr/lib/snmp_lm75.so.6 +OLD_FILES+=usr/lib/snmp_mibII.so OLD_LIBS+=usr/lib/snmp_mibII.so.6 +OLD_FILES+=usr/lib/snmp_netgraph.so OLD_LIBS+=usr/lib/snmp_netgraph.so.6 +OLD_FILES+=usr/lib/snmp_pf.so OLD_LIBS+=usr/lib/snmp_pf.so.6 +OLD_FILES+=usr/lib/snmp_target.so OLD_LIBS+=usr/lib/snmp_target.so.6 +OLD_FILES+=usr/lib/snmp_usm.so OLD_LIBS+=usr/lib/snmp_usm.so.6 +OLD_FILES+=usr/lib/snmp_vacm.so OLD_LIBS+=usr/lib/snmp_vacm.so.6 +OLD_FILES+=usr/lib/snmp_wlan.so OLD_LIBS+=usr/lib/snmp_wlan.so.6 +OLD_FILES+=usr/lib32/libbsnmp.a +OLD_FILES+=usr/lib32/libbsnmp.so +OLD_LIBS+=usr/lib32/libbsnmp.so.6 +OLD_FILES+=usr/lib32/libbsnmp_p.a OLD_FILES+=usr/sbin/bsnmpd OLD_FILES+=usr/sbin/gensnmptree +OLD_FILES+=usr/share/examples/etc/snmpd.config OLD_FILES+=usr/share/man/man1/bsnmpd.1.gz OLD_FILES+=usr/share/man/man1/bsnmpget.1.gz OLD_FILES+=usr/share/man/man1/bsnmpset.1.gz From owner-svn-src-all@freebsd.org Tue Jan 26 06:39:12 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BCA4DA4748F; Tue, 26 Jan 2016 06:39:12 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 743781339; Tue, 26 Jan 2016 06:39:12 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q6dBqn006660; Tue, 26 Jan 2016 06:39:11 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q6dB8C006659; Tue, 26 Jan 2016 06:39:11 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601260639.u0Q6dB8C006659@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 26 Jan 2016 06:39: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: r294771 - stable/9/tools/build/mk X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 06:39:12 -0000 Author: ngie Date: Tue Jan 26 06:39:11 2016 New Revision: 294771 URL: https://svnweb.freebsd.org/changeset/base/294771 Log: MFstable/10 r294770: MFC r278047: PR: 206622 r278047 (by amdmi3): - Remove more files when MK_BSNMP == no Modified: stable/9/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/build/ (props changed) Modified: stable/9/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- stable/9/tools/build/mk/OptionalObsoleteFiles.inc Tue Jan 26 06:37:21 2016 (r294770) +++ stable/9/tools/build/mk/OptionalObsoleteFiles.inc Tue Jan 26 06:39:11 2016 (r294771) @@ -500,25 +500,44 @@ OLD_FILES+=usr/include/bsnmp/snmpagent.h OLD_FILES+=usr/include/bsnmp/snmpclient.h OLD_FILES+=usr/include/bsnmp/snmpmod.h OLD_FILES+=usr/lib/libbsnmp.a +OLD_FILES+=usr/lib/libbsnmp.so OLD_LIBS+=usr/lib/libbsnmp.so.6 OLD_FILES+=usr/lib/libbsnmp_p.a OLD_FILES+=usr/lib/libbsnmptools.a +OLD_FILES+=usr/lib/libbsnmptools.so OLD_LIBS+=usr/lib/libbsnmptools.so.0 OLD_FILES+=usr/lib/libbsnmptools_p.a +OLD_FILES+=usr/lib/snmp_atm.so OLD_LIBS+=usr/lib/snmp_atm.so.6 +OLD_FILES+=usr/lib/snmp_bridge.so OLD_LIBS+=usr/lib/snmp_bridge.so.6 +OLD_FILES+=usr/lib/snmp_hast.so OLD_LIBS+=usr/lib/snmp_hast.so.6 +OLD_FILES+=usr/lib/snmp_hostres.so OLD_LIBS+=usr/lib/snmp_hostres.so.6 +OLD_FILES+=usr/lib/snmp_lm75.so OLD_LIBS+=usr/lib/snmp_lm75.so.6 +OLD_FILES+=usr/lib/snmp_mibII.so OLD_LIBS+=usr/lib/snmp_mibII.so.6 +OLD_FILES+=usr/lib/snmp_netgraph.so OLD_LIBS+=usr/lib/snmp_netgraph.so.6 +OLD_FILES+=usr/lib/snmp_pf.so OLD_LIBS+=usr/lib/snmp_pf.so.6 +OLD_FILES+=usr/lib/snmp_target.so OLD_LIBS+=usr/lib/snmp_target.so.6 +OLD_FILES+=usr/lib/snmp_usm.so OLD_LIBS+=usr/lib/snmp_usm.so.6 +OLD_FILES+=usr/lib/snmp_vacm.so OLD_LIBS+=usr/lib/snmp_vacm.so.6 +OLD_FILES+=usr/lib/snmp_wlan.so OLD_LIBS+=usr/lib/snmp_wlan.so.6 +OLD_FILES+=usr/lib32/libbsnmp.a +OLD_FILES+=usr/lib32/libbsnmp.so +OLD_LIBS+=usr/lib32/libbsnmp.so.6 +OLD_FILES+=usr/lib32/libbsnmp_p.a OLD_FILES+=usr/sbin/bsnmpd OLD_FILES+=usr/sbin/gensnmptree +OLD_FILES+=usr/share/examples/etc/snmpd.config OLD_FILES+=usr/share/man/man1/bsnmpd.1.gz OLD_FILES+=usr/share/man/man1/bsnmpget.1.gz OLD_FILES+=usr/share/man/man1/bsnmpset.1.gz From owner-svn-src-all@freebsd.org Tue Jan 26 07:06:40 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 32912A461AC; Tue, 26 Jan 2016 07:06:40 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0151B1F3; Tue, 26 Jan 2016 07:06:39 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q76c5K015265; Tue, 26 Jan 2016 07:06:38 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q76cSg015264; Tue, 26 Jan 2016 07:06:38 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601260706.u0Q76cSg015264@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 26 Jan 2016 07:06:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294772 - stable/10/tools/build/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 07:06:40 -0000 Author: ngie Date: Tue Jan 26 07:06:38 2016 New Revision: 294772 URL: https://svnweb.freebsd.org/changeset/base/294772 Log: MFC r286652: r286652 (by jmmv): Mark usr/include/c++/v1/tr1 as obsolete The directory usr/include/c++/v1 was marked as obsolete but its tr1 subdir was not, resulting in a removal error in delete-old. Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/10/ (props changed) Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- stable/10/tools/build/mk/OptionalObsoleteFiles.inc Tue Jan 26 06:39:11 2016 (r294771) +++ stable/10/tools/build/mk/OptionalObsoleteFiles.inc Tue Jan 26 07:06:38 2016 (r294772) @@ -3504,6 +3504,7 @@ OLD_FILES+=usr/include/c++/v1/unwind.h OLD_FILES+=usr/include/c++/v1/utility OLD_FILES+=usr/include/c++/v1/valarray OLD_FILES+=usr/include/c++/v1/vector +OLD_DIRS+=usr/include/c++/v1/tr1 OLD_DIRS+=usr/include/c++/v1/experimental OLD_DIRS+=usr/include/c++/v1/ext OLD_DIRS+=usr/include/c++/v1 From owner-svn-src-all@freebsd.org Tue Jan 26 07:06:46 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 670FDA461E3; Tue, 26 Jan 2016 07:06:46 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1D74D29B; Tue, 26 Jan 2016 07:06:45 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q76jf6015317; Tue, 26 Jan 2016 07:06:45 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q76iWk015311; Tue, 26 Jan 2016 07:06:44 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201601260706.u0Q76iWk015311@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Tue, 26 Jan 2016 07:06:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294773 - in head/etc: . defaults periodic/daily rc.d X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 07:06:46 -0000 Author: cy Date: Tue Jan 26 07:06:44 2016 New Revision: 294773 URL: https://svnweb.freebsd.org/changeset/base/294773 Log: Add support for automatic leap-second file updates. The working copy of leapfile resides in /var/dbntpd.leap-seconds.list. /etc/ntp/leap-seconds (periodically updated from ftp://time.nist.gov/pub/ or ftp://tycho.usno.navy.mil/pub/ntp/) contains the master copy should automatic leapfile updates be disabled (default). Automatic leapfile updates are fetched from $ntp_leapfile_sources, defaulting to https://www.ietf.org/timezones/data/leap-seconds.list, within $ntp_leapfile_expiry_days (default 30 days) from leap-seconds file expiry. Automatic updates can be enabled by setting $daily_ntpd_leapfile_enable="YES" in periodic.conf. To avoid congesting the ntp leapfile source the automatic update randomized by default but can be disabled through daily_ntpd_avoid_congestion="NO" in periodic.conf. Suggested by: des Reviewed by: des, roberto, dwmalone, ian, cperciva, glebius, gjb MFC after: 1 week X-MFC with: r289421, r293037 Added: head/etc/periodic/daily/480.leapfile-ntpd (contents, props changed) Modified: head/etc/defaults/periodic.conf head/etc/defaults/rc.conf head/etc/ntp.conf head/etc/periodic/daily/Makefile head/etc/rc.d/ntpd Modified: head/etc/defaults/periodic.conf ============================================================================== --- head/etc/defaults/periodic.conf Tue Jan 26 07:06:38 2016 (r294772) +++ head/etc/defaults/periodic.conf Tue Jan 26 07:06:44 2016 (r294773) @@ -134,6 +134,11 @@ daily_status_mail_rejects_enable="YES" daily_status_mail_rejects_logs=3 # How many logs to check daily_status_mail_rejects_shorten="NO" # Shorten output +# 480.leapfile-ntpd +daily_ntpd_leapfile_enable="NO" # Fetch NTP leapfile +daily_ntpd_avoid_congestion="YES" # Avoid congesting + # leapfile sources + # 480.status-ntpd daily_status_ntpd_enable="NO" # Check NTP status Modified: head/etc/defaults/rc.conf ============================================================================== --- head/etc/defaults/rc.conf Tue Jan 26 07:06:38 2016 (r294772) +++ head/etc/defaults/rc.conf Tue Jan 26 07:06:44 2016 (r294773) @@ -362,6 +362,15 @@ ntpd_config="/etc/ntp.conf" # ntpd(8) co ntpd_sync_on_start="NO" # Sync time on ntpd startup, even if offset is high ntpd_flags="-p /var/run/ntpd.pid -f /var/db/ntpd.drift" # Flags to ntpd (if enabled). +ntp_src_leapfile="/etc/ntp/leap-seconds" + # Initial source for ntpd leapfile +ntp_db_leapfile="/var/db/ntpd.leap-seconds.list" + # Working copy (updated weekly) leapfile +ntp_leapfile_sources="https://www.ietf.org/timezones/data/leap-seconds.list" + # Source from which to fetch leapfile +ntp_leapfile_expiry_days=30 # Check for new leapfile 30 days prior to + # expiry. +ntp_leapfile_fetch_verbose="NO" # Be verbose during NTP leapfile fetch # Network Information Services (NIS) options: All need rpcbind_enable="YES" ### nis_client_enable="NO" # We're an NIS client (or NO). Modified: head/etc/ntp.conf ============================================================================== --- head/etc/ntp.conf Tue Jan 26 07:06:38 2016 (r294772) +++ head/etc/ntp.conf Tue Jan 26 07:06:44 2016 (r294773) @@ -81,4 +81,6 @@ restrict 127.127.1.0 # See http://support.ntp.org/bin/view/Support/ConfiguringNTP#Section_6.14. # for documentation regarding leapfile. Updates to the file can be obtained # from ftp://time.nist.gov/pub/ or ftp://tycho.usno.navy.mil/pub/ntp/. -leapfile "/etc/ntp/leap-seconds" +# Use either leapfile in /etc/ntp or weekly updated leapfile in /var/db. +#leapfile "/etc/ntp/leap-seconds" +leapfile "/var/db/ntpd.leap-seconds.list" Added: head/etc/periodic/daily/480.leapfile-ntpd ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/etc/periodic/daily/480.leapfile-ntpd Tue Jan 26 07:06:44 2016 (r294773) @@ -0,0 +1,28 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# If there is a global system configuration file, suck it in. +# +if [ -r /etc/defaults/periodic.conf ] +then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +case "$daily_ntpd_leapfile_enable" in + [Yy][Ee][Ss]) + case "$daily_ntpd_avoid_congestion" in + [Yy][Ee][Ss]) + # Avoid dogpiling + (sleep $(jot -r 1 0 86400); service ntpd fetch) & + ;; + *) + service ntpd fetch + ;; + esac + ;; +esac + +exit $rc Modified: head/etc/periodic/daily/Makefile ============================================================================== --- head/etc/periodic/daily/Makefile Tue Jan 26 07:06:38 2016 (r294772) +++ head/etc/periodic/daily/Makefile Tue Jan 26 07:06:44 2016 (r294773) @@ -35,7 +35,8 @@ FILES+= 130.clean-msgs .endif .if ${MK_NTP} != "no" -FILES+= 480.status-ntpd +FILES+= 480.status-ntpd \ + 480.leapfile-ntpd .endif .if ${MK_RCMDS} != "no" Modified: head/etc/rc.d/ntpd ============================================================================== --- head/etc/rc.d/ntpd Tue Jan 26 07:06:38 2016 (r294772) +++ head/etc/rc.d/ntpd Tue Jan 26 07:06:44 2016 (r294773) @@ -14,6 +14,8 @@ name="ntpd" rcvar="ntpd_enable" command="/usr/sbin/${name}" pidfile="/var/run/${name}.pid" +extra_commands="fetch" +fetch_cmd="ntpd_fetch_leapfile" start_precmd="ntpd_precmd" load_rc_config $name @@ -30,6 +32,10 @@ ntpd_precmd() return 0; fi + if [ ! -f $ntp_db_leapfile ]; then + ntpd_fetch_leapfile + fi + # If running in a chroot cage, ensure that the appropriate files # exist inside the cage, as well as helper symlinks into the cage # from outside. @@ -44,10 +50,71 @@ ntpd_precmd() ( cd /dev ; /bin/pax -rw -pe clockctl "${ntpd_chrootdir}/dev" ) fi ln -fs "${ntpd_chrootdir}/var/db/ntp.drift" /var/db/ntp.drift + ln -fs "${ntpd_chrootdir}${ntp_tmp_leapfile}" ${ntp_tmp_leapfile} # Change run_rc_commands()'s internal copy of $ntpd_flags # rc_flags="-u ntpd:ntpd -i ${ntpd_chrootdir} $rc_flags" } +current_ntp_ts() { + # Seconds between 1900-01-01 and 1970-01-01 + # echo $(((70*365+17)*86400)) + ntp_to_unix=2208988800 + + echo $(($(date -u +%s)+$ntp_to_unix)) +} + +get_ntp_leapfile_ver() { + expr "$(awk '$1 == "#$" { print $2 }' "$1" 2>/dev/null)" : \ + '^\([1-9][0-9]*\)$' \| 0 +} + +get_ntp_leapfile_expiry() { + expr "$(awk '$1 == "#@" { print $2 }' "$1" 2>/dev/null)" : \ + '^\([1-9][0-9]*\)$' \| 0 +} + +ntpd_fetch_leapfile() { + local ntp_tmp_leapfile rc verbose + + if checkyesno ntp_leapfile_fetch_verbose; then + verbose=echo + else + verbose=: + fi + + ntp_tmp_leapfile="/var/run/ntpd.leap-seconds.list" + + ntp_ver_no_src=$(get_ntp_leapfile_ver $ntp_src_leapfile) + ntp_ver_no_db=$(get_ntp_leapfile_ver $ntp_db_leapfile) + $verbose ntp_src_leapfile version is $ntp_ver_no_src + $verbose ntp_db_leapfile version is $ntp_ver_no_db + + if [ "$ntp_ver_no_src" -gt "$ntp_ver_no_db" ]; then + $verbose replacing $ntp_db_leapfile with $ntp_src_leapfile + cp -p $ntp_src_leapfile $ntp_db_leapfile + ntp_ver_no_db=$ntp_ver_no_src + else + $verbose not replacing $ntp_db_leapfile with $ntp_src_leapfile + fi + ntp_leap_expiry=$(get_ntp_leapfile_expiry $ntp_db_leapfile) + ntp_leapfile_expiry_seconds=$((ntp_leapfile_expiry_days*86400)) + ntp_leap_fetch_date=$((ntp_leap_expiry-ntp_leapfile_expiry_seconds)) + if [ $(current_ntp_ts) -ge $ntp_leap_fetch_date ]; then + $verbose Within ntp leapfile expiry limit, initiating fetch + for url in $ntp_leapfile_sources ; do + $verbose fetching $url + fetch -mqo $ntp_tmp_leapfile $url && break + done + ntp_ver_no_tmp=$(get_ntp_leapfile_ver $ntp_tmp_leapfile) + if [ "$ntp_ver_no_tmp" -gt "$ntp_ver_no_db" ]; then + $verbose using $url as $ntp_db_leapfile + mv $ntp_tmp_leapfile $ntp_db_leapfile + else + $verbose using existing $ntp_db_leapfile + fi + fi +} + run_rc_command "$1" From owner-svn-src-all@freebsd.org Tue Jan 26 07:17:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 316FAA4659C; Tue, 26 Jan 2016 07:17:23 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 034149A4; Tue, 26 Jan 2016 07:17:22 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q7HMUs018198; Tue, 26 Jan 2016 07:17:22 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q7HLOl018195; Tue, 26 Jan 2016 07:17:21 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201601260717.u0Q7HLOl018195@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Tue, 26 Jan 2016 07:17:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294774 - head/usr.sbin/bhyve X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 07:17:23 -0000 Author: araujo Date: Tue Jan 26 07:17:21 2016 New Revision: 294774 URL: https://svnweb.freebsd.org/changeset/base/294774 Log: Cleanup unused-but-set-variable spotted by gcc-4.9. Reviewed by: neel Approved by: rodrigc (mentor) Differential Revision: https://reviews.freebsd.org/D5042 Modified: head/usr.sbin/bhyve/block_if.c head/usr.sbin/bhyve/pci_ahci.c Modified: head/usr.sbin/bhyve/block_if.c ============================================================================== --- head/usr.sbin/bhyve/block_if.c Tue Jan 26 07:06:44 2016 (r294773) +++ head/usr.sbin/bhyve/block_if.c Tue Jan 26 07:17:21 2016 (r294774) @@ -692,9 +692,7 @@ int blockif_close(struct blockif_ctxt *bc) { void *jval; - int err, i; - - err = 0; + int i; assert(bc->bc_magic == BLOCKIF_SIG); Modified: head/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- head/usr.sbin/bhyve/pci_ahci.c Tue Jan 26 07:06:44 2016 (r294773) +++ head/usr.sbin/bhyve/pci_ahci.c Tue Jan 26 07:17:21 2016 (r294774) @@ -1201,10 +1201,9 @@ atapi_read_toc(struct ahci_port *p, int { int msf, size; uint64_t sectors; - uint8_t start_track, *bp, buf[50]; + uint8_t *bp, buf[50]; msf = (acmd[1] >> 1) & 1; - start_track = acmd[6]; bp = buf + 2; *bp++ = 1; *bp++ = 1; @@ -1312,13 +1311,11 @@ atapi_read(struct ahci_port *p, int slot struct ahci_cmd_hdr *hdr; struct ahci_prdt_entry *prdt; struct blockif_req *breq; - struct pci_ahci_softc *sc; uint8_t *acmd; uint64_t lba; uint32_t len; int err; - sc = p->pr_sc; acmd = cfis + 0x40; hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); prdt = (struct ahci_prdt_entry *)(cfis + 0x80); From owner-svn-src-all@freebsd.org Tue Jan 26 07:22:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B51BCA46879; Tue, 26 Jan 2016 07:22:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 91642DF1; Tue, 26 Jan 2016 07:22:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q7MNaQ020864; Tue, 26 Jan 2016 07:22:23 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q7MMZR020856; Tue, 26 Jan 2016 07:22:22 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601260722.u0Q7MMZR020856@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 26 Jan 2016 07:22:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294775 - head/tools/tools/nanobsd/embedded X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 07:22:24 -0000 Author: imp Date: Tue Jan 26 07:22:22 2016 New Revision: 294775 URL: https://svnweb.freebsd.org/changeset/base/294775 Log: Fix the various qemu configs to be buildable. Modified: head/tools/tools/nanobsd/embedded/qemu-amd64.cfg head/tools/tools/nanobsd/embedded/qemu-i386.cfg head/tools/tools/nanobsd/embedded/qemu-mips.cfg head/tools/tools/nanobsd/embedded/qemu-mips64.cfg head/tools/tools/nanobsd/embedded/qemu-powerpc.cfg head/tools/tools/nanobsd/embedded/qemu-powerpc64.cfg head/tools/tools/nanobsd/embedded/qemu-sparc64.cfg Modified: head/tools/tools/nanobsd/embedded/qemu-amd64.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-amd64.cfg Tue Jan 26 07:17:21 2016 (r294774) +++ head/tools/tools/nanobsd/embedded/qemu-amd64.cfg Tue Jan 26 07:22:22 2016 (r294775) @@ -29,6 +29,6 @@ NANO_ARCH=amd64 NANO_NAME=qemu-amd64 -qemu_env +. common # Pull in common definitions -. common # Pull in common definitions, keep last +qemu_env Modified: head/tools/tools/nanobsd/embedded/qemu-i386.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-i386.cfg Tue Jan 26 07:17:21 2016 (r294774) +++ head/tools/tools/nanobsd/embedded/qemu-i386.cfg Tue Jan 26 07:22:22 2016 (r294775) @@ -29,6 +29,6 @@ NANO_ARCH=i386 NANO_NAME=qemu-i386 -qemu_env +. common # Pull in common definitions -. common # Pull in common definitions, keep last +qemu_env Modified: head/tools/tools/nanobsd/embedded/qemu-mips.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-mips.cfg Tue Jan 26 07:17:21 2016 (r294774) +++ head/tools/tools/nanobsd/embedded/qemu-mips.cfg Tue Jan 26 07:22:22 2016 (r294775) @@ -31,6 +31,6 @@ NANO_KERNEL=MALTA NANO_DRIVE=ada0 NANO_NAME=qemu-mips -qemu_env +. common # Pull in common definitions -. common # Pull in common definitions, keep last +qemu_env Modified: head/tools/tools/nanobsd/embedded/qemu-mips64.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-mips64.cfg Tue Jan 26 07:17:21 2016 (r294774) +++ head/tools/tools/nanobsd/embedded/qemu-mips64.cfg Tue Jan 26 07:22:22 2016 (r294775) @@ -31,6 +31,6 @@ NANO_KERNEL=MALTA64 NANO_DRIVE=ada0 NANO_NAME=qemu-mips64 -qemu_env +. common # Pull in common definitions -. common # Pull in common definitions, keep last +qemu_env Modified: head/tools/tools/nanobsd/embedded/qemu-powerpc.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-powerpc.cfg Tue Jan 26 07:17:21 2016 (r294774) +++ head/tools/tools/nanobsd/embedded/qemu-powerpc.cfg Tue Jan 26 07:22:22 2016 (r294775) @@ -32,6 +32,6 @@ NANO_KERNEL=GENERIC NANO_DRIVE=ada0 NANO_NAME=qemu-powerpc -qemu_env +. common # Pull in common definitions -. common # Pull in common definitions, keep last +qemu_env Modified: head/tools/tools/nanobsd/embedded/qemu-powerpc64.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-powerpc64.cfg Tue Jan 26 07:17:21 2016 (r294774) +++ head/tools/tools/nanobsd/embedded/qemu-powerpc64.cfg Tue Jan 26 07:22:22 2016 (r294775) @@ -31,6 +31,6 @@ NANO_KERNEL=GENERIC64 NANO_DRIVE=ada0 NANO_NAME=qemu-powerpc64 -NANO_DISKIMAGE_FORMAT=qcow2 +. common # Pull in common definitions -. common # Pull in common definitions, keep last +qemu_env Modified: head/tools/tools/nanobsd/embedded/qemu-sparc64.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-sparc64.cfg Tue Jan 26 07:17:21 2016 (r294774) +++ head/tools/tools/nanobsd/embedded/qemu-sparc64.cfg Tue Jan 26 07:22:22 2016 (r294775) @@ -31,6 +31,6 @@ NANO_KERNEL=GENERIC NANO_DRIVE=ada0 NANO_NAME=qemu-sparc64 -qemu_env +. common # Pull in common definitions -. common # Pull in common definitions, keep last +qemu_env From owner-svn-src-all@freebsd.org Tue Jan 26 07:44:28 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B874EA6E243; Tue, 26 Jan 2016 07:44:28 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A2859D5; Tue, 26 Jan 2016 07:44:28 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q7iRKJ026754; Tue, 26 Jan 2016 07:44:27 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q7iRJp026748; Tue, 26 Jan 2016 07:44:27 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260744.u0Q7iRJp026748@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 07:44: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: r294776 - in stable/9: lib/libfetch usr.bin/fetch X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 07:44:28 -0000 Author: des Date: Tue Jan 26 07:44:26 2016 New Revision: 294776 URL: https://svnweb.freebsd.org/changeset/base/294776 Log: MFH (r261233): cleanup MFH (r261234): increase buffer size MFH (r280630): remove all traces of SSLv2 support MFH (r285141): remove unused variable MFH (r288217): correctly check return value from getaddrinfo(3) MFH (r289419): fix bugs in HTTPS tunnelling MFH (r289420): use fopen()'s "e" mode instead of fcntl for close-on-exec MFH (r291453, r291461): use .netrc for http servers and proxies MFH (r292330, r292332): reset bufpos to 0 after refilling in chunked mode PR: 194483 199801 193740 204771 Modified: stable/9/lib/libfetch/common.c stable/9/lib/libfetch/fetch.3 stable/9/lib/libfetch/file.c stable/9/lib/libfetch/http.c stable/9/usr.bin/fetch/fetch.1 stable/9/usr.bin/fetch/fetch.c Directory Properties: stable/9/ (props changed) stable/9/lib/ (props changed) stable/9/lib/libfetch/ (props changed) stable/9/usr.bin/ (props changed) stable/9/usr.bin/fetch/ (props changed) Modified: stable/9/lib/libfetch/common.c ============================================================================== --- stable/9/lib/libfetch/common.c Tue Jan 26 07:22:22 2016 (r294775) +++ stable/9/lib/libfetch/common.c Tue Jan 26 07:44:26 2016 (r294776) @@ -495,7 +495,8 @@ fetch_ssl_get_numeric_addrinfo(const cha hints.ai_protocol = 0; hints.ai_flags = AI_NUMERICHOST; /* port is not relevant for this purpose */ - getaddrinfo(host, "443", &hints, &res); + if (getaddrinfo(host, "443", &hints, &res) != 0) + res = NULL; free(host); return res; } @@ -672,9 +673,7 @@ fetch_ssl_setup_transport_layer(SSL_CTX { long ssl_ctx_options; - ssl_ctx_options = SSL_OP_ALL | SSL_OP_NO_TICKET; - if (getenv("SSL_ALLOW_SSL2") == NULL) - ssl_ctx_options |= SSL_OP_NO_SSLv2; + ssl_ctx_options = SSL_OP_ALL | SSL_OP_NO_SSLv2 | SSL_OP_NO_TICKET; if (getenv("SSL_NO_SSL3") != NULL) ssl_ctx_options |= SSL_OP_NO_SSLv3; if (getenv("SSL_NO_TLS1") != NULL) Modified: stable/9/lib/libfetch/fetch.3 ============================================================================== --- stable/9/lib/libfetch/fetch.3 Tue Jan 26 07:22:22 2016 (r294775) +++ stable/9/lib/libfetch/fetch.3 Tue Jan 26 07:44:26 2016 (r294776) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 30, 2013 +.Dd November 29, 2015 .Dt FETCH 3 .Os .Sh NAME @@ -440,13 +440,11 @@ By default .Nm libfetch allows SSLv3 and TLSv1 when negotiating the connecting with the remote peer. -You can change this behavior by setting the environment variable -.Ev SSL_ALLOW_SSL2 -to allow SSLv2 (not recommended) and +You can change this behavior by setting the .Ev SSL_NO_SSL3 or .Ev SSL_NO_TLS1 -to disable the respective methods. +environment variables to disable the respective methods. .Sh AUTHENTICATION Apart from setting the appropriate environment variables and specifying the user name and password in the URL or the @@ -631,11 +629,11 @@ If defined but empty, no User-Agent head .It Ev NETRC Specifies a file to use instead of .Pa ~/.netrc -to look up login names and passwords for FTP sites. +to look up login names and passwords for FTP and HTTP sites as well as +HTTP proxies. See .Xr ftp 1 for a description of the file format. -This feature is experimental. .It Ev NO_PROXY Either a single asterisk, which disables the use of proxies altogether, or a comma- or whitespace-separated list of hosts for @@ -644,8 +642,6 @@ which proxies should not be used. Same as .Ev NO_PROXY , for compatibility. -.It Ev SSL_ALLOW_SSL2 -Allow SSL version 2 when negotiating the connection (not recommended). .It Ev SSL_CA_CERT_FILE CA certificate bundle containing trusted CA certificates. Default value: Modified: stable/9/lib/libfetch/file.c ============================================================================== --- stable/9/lib/libfetch/file.c Tue Jan 26 07:22:22 2016 (r294775) +++ stable/9/lib/libfetch/file.c Tue Jan 26 07:44:26 2016 (r294776) @@ -48,7 +48,7 @@ fetchXGetFile(struct url *u, struct url_ if (us && fetchStatFile(u, us, flags) == -1) return (NULL); - f = fopen(u->doc, "r"); + f = fopen(u->doc, "re"); if (f == NULL) { fetch_syserr(); @@ -61,7 +61,6 @@ fetchXGetFile(struct url *u, struct url_ return (NULL); } - fcntl(fileno(f), F_SETFD, FD_CLOEXEC); return (f); } @@ -77,9 +76,9 @@ fetchPutFile(struct url *u, const char * FILE *f; if (CHECK_FLAG('a')) - f = fopen(u->doc, "a"); + f = fopen(u->doc, "ae"); else - f = fopen(u->doc, "w+"); + f = fopen(u->doc, "w+e"); if (f == NULL) { fetch_syserr(); @@ -92,7 +91,6 @@ fetchPutFile(struct url *u, const char * return (NULL); } - fcntl(fileno(f), F_SETFD, FD_CLOEXEC); return (f); } Modified: stable/9/lib/libfetch/http.c ============================================================================== --- stable/9/lib/libfetch/http.c Tue Jan 26 07:22:22 2016 (r294775) +++ stable/9/lib/libfetch/http.c Tue Jan 26 07:44:26 2016 (r294776) @@ -130,8 +130,8 @@ struct httpio int chunked; /* chunked mode */ char *buf; /* chunk buffer */ size_t bufsize; /* size of chunk buffer */ - ssize_t buflen; /* amount of data currently in buffer */ - int bufpos; /* current read offset in buffer */ + size_t buflen; /* amount of data currently in buffer */ + size_t bufpos; /* current read offset in buffer */ int eof; /* end-of-file flag */ int error; /* error flag */ size_t chunksize; /* remaining size of current chunk */ @@ -215,6 +215,7 @@ http_fillbuf(struct httpio *io, size_t l if (io->eof) return (0); + /* not chunked: just fetch the requested amount */ if (io->chunked == 0) { if (http_growbuf(io, len) == -1) return (-1); @@ -227,6 +228,7 @@ http_fillbuf(struct httpio *io, size_t l return (io->buflen); } + /* chunked, but we ran out: get the next chunk header */ if (io->chunksize == 0) { switch (http_new_chunk(io)) { case -1: @@ -238,6 +240,7 @@ http_fillbuf(struct httpio *io, size_t l } } + /* fetch the requested amount, but no more than the current chunk */ if (len > io->chunksize) len = io->chunksize; if (http_growbuf(io, len) == -1) @@ -246,8 +249,9 @@ http_fillbuf(struct httpio *io, size_t l io->error = errno; return (-1); } + io->bufpos = 0; io->buflen = nbytes; - io->chunksize -= io->buflen; + io->chunksize -= nbytes; if (io->chunksize == 0) { if (fetch_read(io->conn, &ch, 1) != 1 || ch != '\r' || @@ -255,8 +259,6 @@ http_fillbuf(struct httpio *io, size_t l return (-1); } - io->bufpos = 0; - return (io->buflen); } @@ -1330,7 +1332,6 @@ static int http_authorize(conn_t *conn, const char *hdr, http_auth_challenges_t *cs, http_auth_params_t *parms, struct url *url) { - http_auth_challenge_t *basic = NULL; http_auth_challenge_t *digest = NULL; int i; @@ -1340,10 +1341,8 @@ http_authorize(conn_t *conn, const char return (-1); } - /* Look for a Digest and a Basic challenge */ + /* Look for a Digest */ for (i = 0; i < cs->count; i++) { - if (cs->challenges[i]->scheme == HTTPAS_BASIC) - basic = cs->challenges[i]; if (cs->challenges[i]->scheme == HTTPAS_DIGEST) digest = cs->challenges[i]; } @@ -1379,8 +1378,12 @@ http_connect(struct url *URL, struct url { struct url *curl; conn_t *conn; + hdr_t h; + http_headerbuf_t headerbuf; + const char *p; int verbose; int af, val; + int serrno; #ifdef INET6 af = AF_UNSPEC; @@ -1401,6 +1404,7 @@ http_connect(struct url *URL, struct url if ((conn = fetch_connect(curl->host, curl->port, af, verbose)) == NULL) /* fetch_connect() has already set an error code */ return (NULL); + init_http_headerbuf(&headerbuf); if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0 && purl) { http_cmd(conn, "CONNECT %s:%d HTTP/1.1", URL->host, URL->port); @@ -1408,10 +1412,26 @@ http_connect(struct url *URL, struct url URL->host, URL->port); http_cmd(conn, ""); if (http_get_reply(conn) != HTTP_OK) { - fetch_close(conn); - return (NULL); + http_seterr(conn->err); + goto ouch; + } + /* Read and discard the rest of the proxy response */ + if (fetch_getln(conn) < 0) { + fetch_syserr(); + goto ouch; } - http_get_reply(conn); + do { + switch ((h = http_next_header(conn, &headerbuf, &p))) { + case hdr_syserror: + fetch_syserr(); + goto ouch; + case hdr_error: + http_seterr(HTTP_PROTOCOL_ERROR); + goto ouch; + default: + /* ignore */ ; + } + } while (h < hdr_end); } if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0 && fetch_ssl(conn, URL, verbose) == -1) { @@ -1419,13 +1439,20 @@ http_connect(struct url *URL, struct url /* grrr */ errno = EAUTH; fetch_syserr(); - return (NULL); + goto ouch; } val = 1; setsockopt(conn->sd, IPPROTO_TCP, TCP_NOPUSH, &val, sizeof(val)); + clean_http_headerbuf(&headerbuf); return (conn); +ouch: + serrno = errno; + clean_http_headerbuf(&headerbuf); + fetch_close(conn); + errno = serrno; + return (NULL); } static struct url * @@ -1633,6 +1660,9 @@ http_request_body(struct url *URL, const http_seterr(HTTP_NEED_PROXY_AUTH); goto ouch; } + } else if (fetch_netrc_auth(purl) == 0) { + aparams.user = strdup(purl->user); + aparams.password = strdup(purl->pwd); } http_authorize(conn, "Proxy-Authorization", &proxy_challenges, &aparams, url); @@ -1660,6 +1690,9 @@ http_request_body(struct url *URL, const http_seterr(HTTP_NEED_AUTH); goto ouch; } + } else if (fetch_netrc_auth(url) == 0) { + aparams.user = strdup(url->user); + aparams.password = strdup(url->pwd); } else if (fetchAuthMethod && fetchAuthMethod(url) == 0) { aparams.user = strdup(url->user); Modified: stable/9/usr.bin/fetch/fetch.1 ============================================================================== --- stable/9/usr.bin/fetch/fetch.1 Tue Jan 26 07:22:22 2016 (r294775) +++ stable/9/usr.bin/fetch/fetch.1 Tue Jan 26 07:44:26 2016 (r294776) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 28, 2014 +.Dd March 25, 2015 .Dt FETCH 1 .Os .Sh NAME @@ -39,7 +39,6 @@ .Sh SYNOPSIS .Nm .Op Fl 146AadFlMmnPpqRrsUv -.Op Fl -allow-sslv2 .Op Fl B Ar bytes .Op Fl -bind-address= Ns Ar host .Op Fl -ca-cert= Ns Ar file @@ -113,9 +112,6 @@ Some broken Web sites will return a redi error when the requested object does not exist. .It Fl a , -retry Automatically retry the transfer upon soft failures. -.It Fl -allow-sslv2 -[SSL] -Allow SSL version 2 when negotiating the connection. .It Fl B Ar bytes , Fl -buffer-size= Ns Ar bytes Specify the read buffer size in bytes. The default is 16,384 bytes. @@ -350,7 +346,6 @@ for a description of additional environm .Ev NETRC , .Ev NO_PROXY , .Ev no_proxy , -.Ev SSL_ALLOW_SSL2 , .Ev SSL_CA_CERT_FILE , .Ev SSL_CA_CERT_PATH , .Ev SSL_CLIENT_CERT_FILE , Modified: stable/9/usr.bin/fetch/fetch.c ============================================================================== --- stable/9/usr.bin/fetch/fetch.c Tue Jan 26 07:22:22 2016 (r294775) +++ stable/9/usr.bin/fetch/fetch.c Tue Jan 26 07:44:26 2016 (r294776) @@ -102,7 +102,6 @@ enum options OPTION_HTTP_REFERER, OPTION_HTTP_USER_AGENT, OPTION_NO_PROXY, - OPTION_SSL_ALLOW_SSL2, OPTION_SSL_CA_CERT_FILE, OPTION_SSL_CA_CERT_PATH, OPTION_SSL_CLIENT_CERT_FILE, @@ -154,7 +153,6 @@ static struct option longopts[] = { "referer", required_argument, NULL, OPTION_HTTP_REFERER }, { "user-agent", required_argument, NULL, OPTION_HTTP_USER_AGENT }, { "no-proxy", required_argument, NULL, OPTION_NO_PROXY }, - { "allow-sslv2", no_argument, NULL, OPTION_SSL_ALLOW_SSL2 }, { "ca-cert", required_argument, NULL, OPTION_SSL_CA_CERT_FILE }, { "ca-path", required_argument, NULL, OPTION_SSL_CA_CERT_PATH }, { "cert", required_argument, NULL, OPTION_SSL_CLIENT_CERT_FILE }, @@ -845,17 +843,17 @@ static void usage(void) { fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", -"usage: fetch [-146AadFlMmnPpqRrsUv] [--allow-sslv2] [-B bytes]", -" [--bind-address=host] [--ca-cert=file] [--ca-path=dir] [--cert=file]", -" [--crl=file] [-i file] [--key=file] [-N file] [--no-passive]", -" [--no-proxy=list] [--no-sslv3] [--no-tlsv1] [--no-verify-hostname]", -" [--no-verify-peer] [-o file] [--referer=URL] [-S bytes] [-T seconds]", +"usage: fetch [-146AadFlMmnPpqRrsUv] [-B bytes] [--bind-address=host]", +" [--ca-cert=file] [--ca-path=dir] [--cert=file] [--crl=file]", +" [-i file] [--key=file] [-N file] [--no-passive] [--no-proxy=list]", +" [--no-sslv3] [--no-tlsv1] [--no-verify-hostname] [--no-verify-peer]", +" [-o file] [--referer=URL] [-S bytes] [-T seconds]", " [--user-agent=agent-string] [-w seconds] URL ...", -" fetch [-146AadFlMmnPpqRrsUv] [--allow-sslv2] [-B bytes]", -" [--bind-address=host] [--ca-cert=file] [--ca-path=dir] [--cert=file]", -" [--crl=file] [-i file] [--key=file] [-N file] [--no-passive]", -" [--no-proxy=list] [--no-sslv3] [--no-tlsv1] [--no-verify-hostname]", -" [--no-verify-peer] [-o file] [--referer=URL] [-S bytes] [-T seconds]", +" fetch [-146AadFlMmnPpqRrsUv] [-B bytes] [--bind-address=host]", +" [--ca-cert=file] [--ca-path=dir] [--cert=file] [--crl=file]", +" [-i file] [--key=file] [-N file] [--no-passive] [--no-proxy=list]", +" [--no-sslv3] [--no-tlsv1] [--no-verify-hostname] [--no-verify-peer]", +" [-o file] [--referer=URL] [-S bytes] [-T seconds]", " [--user-agent=agent-string] [-w seconds] -h host -f file [-c dir]"); } @@ -1004,9 +1002,6 @@ main(int argc, char *argv[]) case OPTION_NO_PROXY: setenv("NO_PROXY", optarg, 1); break; - case OPTION_SSL_ALLOW_SSL2: - setenv("SSL_ALLOW_SSL2", "", 1); - break; case OPTION_SSL_CA_CERT_FILE: setenv("SSL_CA_CERT_FILE", optarg, 1); break; From owner-svn-src-all@freebsd.org Tue Jan 26 07:57:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CDDB0A6E806; Tue, 26 Jan 2016 07:57:45 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 92948191; Tue, 26 Jan 2016 07:57:45 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q7vid4029951; Tue, 26 Jan 2016 07:57:44 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q7viGW029949; Tue, 26 Jan 2016 07:57:44 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601260757.u0Q7viGW029949@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 26 Jan 2016 07:57:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294778 - in head: lib/libc/sys sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 07:57:45 -0000 Author: kib Date: Tue Jan 26 07:57:44 2016 New Revision: 294778 URL: https://svnweb.freebsd.org/changeset/base/294778 Log: Restore flushing of output for revoke(2) again. Document revoke()'s intended behaviour in its man page. Simplify tty_drain() to match. Don't call ttydevsw methods in tty_flush() if the device is gone since we now sometimes call it then. The flushing was supposed to be implemented by passing the FNONBLOCK flag to VOP_CLOSE() for revoke(). The tty driver is one of the few that can block in close and was one of the fewer that knew about this. This almost worked in FreeBSD-1 and similarly in Net/2. These versions only almost worked because there was and is considerable confusion between IO_NDELAY and FNONBLOCK (aka O_NONBLOCK). IO_NDELAY is only valid for VOP_READ() and VOP_WRITE(). For other VOPs it has the same value as O_SHLOCK. But since vfs_subr.c and tty.c consistently used the wrong flag and the O_SHLOCK flag is rarely set, this mostly worked. It also gave the feature than applications could get the non-blocking close by abusing O_SHLOCK. This was first broken then fixed in 1995. I changed only the tty driver to use FNONBLOCK, as a hack to get non-blocking via the normal flag FNONBLOCK for last closes. I didn't know about revoke()'s use of IO_NDELAY or change it to be consistent, so revoke() was broken. Then I changed revoke() to match. This was next broken in 1997 then fixed in 1998. Importing Lite2 made the flags inconsistent again by undoing the fix only in vfs_subr.c. This was next broken in 2008 by replacing everything in tty.c and not checking any flags in last close. Other bugs in draining limited the resulting unbounded waits to drain in some cases. It is now possible to fix this better using the new FREVOKE flag. Just restore flushing for revoke() for now. Don't restore or undo any hacks for ordinary last closes yet. But remove dead code in the 1-second relative timeout (r272789). This did extra work to extend the buggy draining for revoke() for as long as possible. The 1-second timeout made this not very long by usually flushing after 1 second. Submitted by: bde MFC after: 2 weeks Modified: head/lib/libc/sys/revoke.2 head/sys/kern/tty.c Modified: head/lib/libc/sys/revoke.2 ============================================================================== --- head/lib/libc/sys/revoke.2 Tue Jan 26 07:49:11 2016 (r294777) +++ head/lib/libc/sys/revoke.2 Tue Jan 26 07:57:44 2016 (r294778) @@ -31,7 +31,7 @@ .\" @(#)revoke.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd June 4, 1993 +.Dd Jan 25, 2016 .Dt REVOKE 2 .Os .Sh NAME @@ -59,7 +59,8 @@ and a system call will succeed. If the file is a special file for a device which is open, the device close function -is called as if all open references to the file had been closed. +is called as if all open references to the file had been closed +using a special close method which does not block. .Pp Access to a file may be revoked only by its owner or the super user. The @@ -104,3 +105,6 @@ The .Fn revoke system call first appeared in .Bx 4.3 Reno . +.Sh BUGS +The non-blocking close method is only correctly implemented for +terminal devices. Modified: head/sys/kern/tty.c ============================================================================== --- head/sys/kern/tty.c Tue Jan 26 07:49:11 2016 (r294777) +++ head/sys/kern/tty.c Tue Jan 26 07:57:44 2016 (r294778) @@ -126,7 +126,7 @@ static int tty_drain(struct tty *tp, int leaving) { size_t bytesused; - int error, revokecnt; + int error; if (ttyhook_hashook(tp, getc_inject)) /* buffer is inaccessible */ @@ -141,18 +141,10 @@ tty_drain(struct tty *tp, int leaving) /* Wait for data to be drained. */ if (leaving) { - revokecnt = tp->t_revokecnt; error = tty_timedwait(tp, &tp->t_outwait, hz); - switch (error) { - case ERESTART: - if (revokecnt != tp->t_revokecnt) - error = 0; - break; - case EWOULDBLOCK: - if (ttyoutq_bytesused(&tp->t_outq) < bytesused) - error = 0; - break; - } + if (error == EWOULDBLOCK && + ttyoutq_bytesused(&tp->t_outq) < bytesused) + error = 0; } else error = tty_wait(tp, &tp->t_outwait); @@ -356,6 +348,10 @@ ttydev_close(struct cdev *dev, int fflag return (0); } + /* If revoking, flush output now to avoid draining it later. */ + if (fflag & FREVOKE) + tty_flush(tp, FWRITE); + /* * This can only be called once. The callin and the callout * devices cannot be opened at the same time. @@ -1460,13 +1456,16 @@ tty_flush(struct tty *tp, int flags) tp->t_flags &= ~TF_HIWAT_OUT; ttyoutq_flush(&tp->t_outq); tty_wakeup(tp, FWRITE); - ttydevsw_pktnotify(tp, TIOCPKT_FLUSHWRITE); + if (!tty_gone(tp)) + ttydevsw_pktnotify(tp, TIOCPKT_FLUSHWRITE); } if (flags & FREAD) { tty_hiwat_in_unblock(tp); ttyinq_flush(&tp->t_inq); - ttydevsw_inwakeup(tp); - ttydevsw_pktnotify(tp, TIOCPKT_FLUSHREAD); + if (!tty_gone(tp)) { + ttydevsw_inwakeup(tp); + ttydevsw_pktnotify(tp, TIOCPKT_FLUSHREAD); + } } } From owner-svn-src-all@freebsd.org Tue Jan 26 08:44:03 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D4D2A46CDD; Tue, 26 Jan 2016 08:44:03 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 000691A3F; Tue, 26 Jan 2016 08:44:02 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q8i24G044011; Tue, 26 Jan 2016 08:44:02 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q8i1Pn044009; Tue, 26 Jan 2016 08:44:01 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260844.u0Q8i1Pn044009@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 08:44:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294779 - stable/10/usr.bin/locate/locate X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 08:44:03 -0000 Author: des Date: Tue Jan 26 08:44:01 2016 New Revision: 294779 URL: https://svnweb.freebsd.org/changeset/base/294779 Log: MFH (r290742): don't index /var/db/freebsd-update Modified: stable/10/usr.bin/locate/locate/locate.rc stable/10/usr.bin/locate/locate/updatedb.sh Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/locate/locate/locate.rc ============================================================================== --- stable/10/usr.bin/locate/locate/locate.rc Tue Jan 26 07:57:44 2016 (r294778) +++ stable/10/usr.bin/locate/locate/locate.rc Tue Jan 26 08:44:01 2016 (r294779) @@ -16,7 +16,7 @@ #SEARCHPATHS="/" # paths unwanted in output -#PRUNEPATHS="/tmp /usr/tmp /var/tmp /var/db/portsnap" +#PRUNEPATHS="/tmp /usr/tmp /var/tmp /var/db/portsnap /var/db/freebsd-update" # directories unwanted in output #PRUNEDIRS=".zfs" Modified: stable/10/usr.bin/locate/locate/updatedb.sh ============================================================================== --- stable/10/usr.bin/locate/locate/updatedb.sh Tue Jan 26 07:57:44 2016 (r294778) +++ stable/10/usr.bin/locate/locate/updatedb.sh Tue Jan 26 08:44:01 2016 (r294779) @@ -51,7 +51,7 @@ PATH=$LIBEXECDIR:/bin:/usr/bin:$PATH; ex : ${mklocatedb:=locate.mklocatedb} # make locate database program : ${FCODES:=/var/db/locate.database} # the database : ${SEARCHPATHS="/"} # directories to be put in the database -: ${PRUNEPATHS="/tmp /usr/tmp /var/tmp /var/db/portsnap"} # unwanted directories +: ${PRUNEPATHS="/tmp /usr/tmp /var/tmp /var/db/portsnap /var/db/freebsd-update"} # unwanted directories : ${PRUNEDIRS=".zfs"} # unwanted directories, in any parent : ${FILESYSTEMS="$(lsvfs | tail -n +3 | \ egrep -vw "loopback|network|synthetic|read-only|0" | \ From owner-svn-src-all@freebsd.org Tue Jan 26 08:45:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0AD21A46DFB; Tue, 26 Jan 2016 08:45:21 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CEB3E1BE7; Tue, 26 Jan 2016 08:45:20 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q8jJer044108; Tue, 26 Jan 2016 08:45:19 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q8jJqV044107; Tue, 26 Jan 2016 08:45:19 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260845.u0Q8jJqV044107@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 08:45:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294780 - stable/10/etc/periodic/daily X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 08:45:21 -0000 Author: des Date: Tue Jan 26 08:45:19 2016 New Revision: 294780 URL: https://svnweb.freebsd.org/changeset/base/294780 Log: MFH (r290743): support an exclusion regex, like security/200.chkmounts Modified: stable/10/etc/periodic/daily/400.status-disks Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/periodic/daily/400.status-disks ============================================================================== --- stable/10/etc/periodic/daily/400.status-disks Tue Jan 26 08:44:01 2016 (r294779) +++ stable/10/etc/periodic/daily/400.status-disks Tue Jan 26 08:45:19 2016 (r294780) @@ -16,7 +16,12 @@ case "$daily_status_disks_enable" in echo "" echo "Disk status:" - df $daily_status_disks_df_flags && rc=1 || rc=3 + if [ -n "${daily_status_disks_ignore}" ] ; then + ignore="egrep -v ${daily_status_disks_ignore}" + else + ignore="cat" + fi + (df $daily_status_disks_df_flags | ${ignore}) && rc=1 || rc=3 # display which filesystems need backing up if [ -s /etc/dumpdates ]; then From owner-svn-src-all@freebsd.org Tue Jan 26 08:46:03 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 921E4A46E72; Tue, 26 Jan 2016 08:46:03 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6292C1D34; Tue, 26 Jan 2016 08:46:03 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q8k2Jp044184; Tue, 26 Jan 2016 08:46:02 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q8k2L6044183; Tue, 26 Jan 2016 08:46:02 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260846.u0Q8k2L6044183@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 08:46:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294781 - stable/10/lib/libc/stdio X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 08:46:03 -0000 Author: des Date: Tue Jan 26 08:46:02 2016 New Revision: 294781 URL: https://svnweb.freebsd.org/changeset/base/294781 Log: MFH (r291197): markup fixes Modified: stable/10/lib/libc/stdio/fopen.3 Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/stdio/fopen.3 ============================================================================== --- stable/10/lib/libc/stdio/fopen.3 Tue Jan 26 08:45:19 2016 (r294780) +++ stable/10/lib/libc/stdio/fopen.3 Tue Jan 26 08:46:02 2016 (r294781) @@ -120,7 +120,9 @@ This is strictly for compatibility with .St -isoC and has effect only for .Fn fmemopen -; otherwise the ``b'' is ignored. +; otherwise +.Dq Li b +is ignored. .Pp Any created files will have mode .Do Dv S_IRUSR @@ -230,7 +232,9 @@ allocates .Fa size bytes of memory. This buffer is automatically freed when the stream is closed. Buffers can be opened in text-mode (default) or binary-mode -(if ``b'' is present in the second or third position of the +(if +.Dq Li b +is present in the second or third position of the .Fa mode argument). Buffers opened in text-mode make sure that writes are terminated with a NULL byte, if the last write hasn't filled up the whole buffer. Buffers @@ -343,5 +347,7 @@ The function conforms to .St -p1003.1-2008 . -The ``b'' mode does not conform to any standard +The +.Dq Li b +mode does not conform to any standard but is also supported by glibc. From owner-svn-src-all@freebsd.org Tue Jan 26 08:49:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9FCDA47045; Tue, 26 Jan 2016 08:49:45 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A8FBC1F3C; Tue, 26 Jan 2016 08:49:45 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q8ni9U044350; Tue, 26 Jan 2016 08:49:44 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q8nikx044349; Tue, 26 Jan 2016 08:49:44 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260849.u0Q8nikx044349@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 08:49:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294782 - stable/10/sys/conf X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 08:49:46 -0000 Author: des Date: Tue Jan 26 08:49:44 2016 New Revision: 294782 URL: https://svnweb.freebsd.org/changeset/base/294782 Log: MFH (r293033): ignore unload unless loaded + add a reload target Modified: stable/10/sys/conf/kmod.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/conf/kmod.mk ============================================================================== --- stable/10/sys/conf/kmod.mk Tue Jan 26 08:46:02 2016 (r294781) +++ stable/10/sys/conf/kmod.mk Tue Jan 26 08:49:44 2016 (r294782) @@ -31,6 +31,9 @@ # MFILES Optionally a list of interfaces used by the module. # This file contains a default list of interfaces. # +# KMODISLOADED Command to check whether a kernel module is +# loaded [/sbin/kldstat -q -n] +# # PROG The name of the kernel module to build. # If not supplied, ${KMOD}.ko is used. # @@ -59,6 +62,9 @@ # unload: # Unload a module. # +# reload: +# Unload if loaded, then load. +# # backwards compat option for older systems. MACHINE_CPUARCH?=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/} @@ -66,6 +72,7 @@ MACHINE_CPUARCH?=${MACHINE_ARCH:C/mips(n AWK?= awk KMODLOAD?= /sbin/kldload KMODUNLOAD?= /sbin/kldunload +KMODISLOADED?= /sbin/kldstat -q -n OBJCOPY?= objcopy .if defined(KMODDEPS) @@ -324,7 +331,11 @@ load: ${PROG} .if !target(unload) unload: - ${KMODUNLOAD} -v ${PROG} + if ${KMODISLOADED} ${PROG} ; then ${KMODUNLOAD} -v ${PROG} ; fi +.endif + +.if !target(reload) +reload: unload load .endif .if defined(KERNBUILDDIR) From owner-svn-src-all@freebsd.org Tue Jan 26 08:55:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 95A8EA473B0; Tue, 26 Jan 2016 08:55:33 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 55C38650; Tue, 26 Jan 2016 08:55:33 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q8tWCT047205; Tue, 26 Jan 2016 08:55:32 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q8tVCX047200; Tue, 26 Jan 2016 08:55:31 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260855.u0Q8tVCX047200@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 08:55:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294783 - in stable/10: share/man/man4 sys/dev/syscons/plasma sys/modules/syscons sys/modules/syscons/plasma X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 08:55:33 -0000 Author: des Date: Tue Jan 26 08:55:31 2016 New Revision: 294783 URL: https://svnweb.freebsd.org/changeset/base/294783 Log: MFH (r293034, r29304): plasma screensaver Added: stable/10/sys/dev/syscons/plasma/ - copied from r293034, head/sys/dev/syscons/plasma/ stable/10/sys/modules/syscons/plasma/ - copied from r293034, head/sys/modules/syscons/plasma/ Modified: stable/10/share/man/man4/splash.4 stable/10/sys/dev/syscons/plasma/fp16.c stable/10/sys/dev/syscons/plasma/fp16.h stable/10/sys/dev/syscons/plasma/plasma_saver.c stable/10/sys/modules/syscons/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man4/splash.4 ============================================================================== --- stable/10/share/man/man4/splash.4 Tue Jan 26 08:49:44 2016 (r294782) +++ stable/10/share/man/man4/splash.4 Tue Jan 26 08:55:31 2016 (r294783) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 29, 2010 +.Dd December 31, 2015 .Dt SPLASH 4 .Os .Sh NAME @@ -130,6 +130,8 @@ the screen will also be powered off. Animated graphical .Fx logo. +.It Pa plasma_saver.ko +Draws an animated interference pattern. .It Pa rain_saver.ko Draws a shower on the screen. .It Pa snake_saver.ko @@ -282,6 +284,14 @@ based on the code, with some additional inspiration from the .Pa daemon_saver code. +The +.Pa logo_saver , +.Pa plasma_saver , +.Pa rain_saver +and +.Pa warp_saver +modules were written by +.An Dag-Erling Sm\(/orgrav Aq Mt des@FreeBSD.org . .Sh CAVEATS Both the splash screen and the screen saver work with .Xr syscons 4 Modified: stable/10/sys/dev/syscons/plasma/fp16.c ============================================================================== --- head/sys/dev/syscons/plasma/fp16.c Fri Jan 1 04:04:40 2016 (r293034) +++ stable/10/sys/dev/syscons/plasma/fp16.c Tue Jan 26 08:55:31 2016 (r294783) @@ -71,42 +71,66 @@ fp16_sqrt(fp16_t x) return (y); } -static fp16_t fp16_cos_table[256] = { - 65536, 65534, 65531, 65524, 65516, 65505, 65491, 65475, - 65457, 65436, 65412, 65386, 65358, 65327, 65294, 65258, - 65220, 65179, 65136, 65091, 65043, 64992, 64939, 64884, - 64826, 64766, 64703, 64638, 64571, 64501, 64428, 64353, - 64276, 64197, 64115, 64030, 63943, 63854, 63762, 63668, - 63571, 63473, 63371, 63268, 63162, 63053, 62942, 62829, - 62714, 62596, 62475, 62353, 62228, 62100, 61971, 61839, - 61705, 61568, 61429, 61288, 61144, 60998, 60850, 60700, - 60547, 60392, 60235, 60075, 59913, 59749, 59583, 59414, - 59243, 59070, 58895, 58718, 58538, 58356, 58172, 57986, - 57797, 57606, 57414, 57219, 57022, 56822, 56621, 56417, - 56212, 56004, 55794, 55582, 55368, 55152, 54933, 54713, - 54491, 54266, 54040, 53811, 53581, 53348, 53114, 52877, - 52639, 52398, 52155, 51911, 51665, 51416, 51166, 50914, - 50660, 50403, 50146, 49886, 49624, 49360, 49095, 48828, - 48558, 48288, 48015, 47740, 47464, 47186, 46906, 46624, - 46340, 46055, 45768, 45480, 45189, 44897, 44603, 44308, - 44011, 43712, 43412, 43110, 42806, 42501, 42194, 41885, - 41575, 41263, 40950, 40636, 40319, 40002, 39682, 39362, - 39039, 38716, 38390, 38064, 37736, 37406, 37075, 36743, - 36409, 36074, 35738, 35400, 35061, 34721, 34379, 34036, - 33692, 33346, 32999, 32651, 32302, 31952, 31600, 31247, - 30893, 30538, 30181, 29824, 29465, 29105, 28745, 28383, - 28020, 27656, 27291, 26925, 26557, 26189, 25820, 25450, - 25079, 24707, 24334, 23960, 23586, 23210, 22833, 22456, - 22078, 21699, 21319, 20938, 20557, 20175, 19792, 19408, - 19024, 18638, 18253, 17866, 17479, 17091, 16702, 16313, - 15923, 15533, 15142, 14751, 14359, 13966, 13573, 13179, - 12785, 12390, 11995, 11600, 11204, 10807, 10410, 10013, - 9616, 9218, 8819, 8421, 8022, 7623, 7223, 6823, - 6423, 6023, 5622, 5222, 4821, 4420, 4018, 3617, - 3215, 2814, 2412, 2010, 1608, 1206, 804, 402, +static fp16_t fp16_sin_table[256] = { + 0, 402, 804, 1206, 1608, 2010, 2412, 2814, + 3215, 3617, 4018, 4420, 4821, 5222, 5622, 6023, + 6423, 6823, 7223, 7623, 8022, 8421, 8819, 9218, + 9616, 10013, 10410, 10807, 11204, 11600, 11995, 12390, + 12785, 13179, 13573, 13966, 14359, 14751, 15142, 15533, + 15923, 16313, 16702, 17091, 17479, 17866, 18253, 18638, + 19024, 19408, 19792, 20175, 20557, 20938, 21319, 21699, + 22078, 22456, 22833, 23210, 23586, 23960, 24334, 24707, + 25079, 25450, 25820, 26189, 26557, 26925, 27291, 27656, + 28020, 28383, 28745, 29105, 29465, 29824, 30181, 30538, + 30893, 31247, 31600, 31952, 32302, 32651, 32999, 33346, + 33692, 34036, 34379, 34721, 35061, 35400, 35738, 36074, + 36409, 36743, 37075, 37406, 37736, 38064, 38390, 38716, + 39039, 39362, 39682, 40002, 40319, 40636, 40950, 41263, + 41575, 41885, 42194, 42501, 42806, 43110, 43412, 43712, + 44011, 44308, 44603, 44897, 45189, 45480, 45768, 46055, + 46340, 46624, 46906, 47186, 47464, 47740, 48015, 48288, + 48558, 48828, 49095, 49360, 49624, 49886, 50146, 50403, + 50660, 50914, 51166, 51416, 51665, 51911, 52155, 52398, + 52639, 52877, 53114, 53348, 53581, 53811, 54040, 54266, + 54491, 54713, 54933, 55152, 55368, 55582, 55794, 56004, + 56212, 56417, 56621, 56822, 57022, 57219, 57414, 57606, + 57797, 57986, 58172, 58356, 58538, 58718, 58895, 59070, + 59243, 59414, 59583, 59749, 59913, 60075, 60235, 60392, + 60547, 60700, 60850, 60998, 61144, 61288, 61429, 61568, + 61705, 61839, 61971, 62100, 62228, 62353, 62475, 62596, + 62714, 62829, 62942, 63053, 63162, 63268, 63371, 63473, + 63571, 63668, 63762, 63854, 63943, 64030, 64115, 64197, + 64276, 64353, 64428, 64501, 64571, 64638, 64703, 64766, + 64826, 64884, 64939, 64992, 65043, 65091, 65136, 65179, + 65220, 65258, 65294, 65327, 65358, 65386, 65412, 65436, + 65457, 65475, 65491, 65505, 65516, 65524, 65531, 65534, }; /* + * Compute the sine of theta. + */ +fp16_t +fp16_sin(fp16_t theta) +{ + unsigned int i; + + i = 1024 * (theta % FP16_2PI) / FP16_2PI; + switch (i / 256) { + case 0: + return (fp16_sin_table[i % 256]); + case 1: + return (fp16_sin_table[255 - i % 256]); + case 2: + return (-fp16_sin_table[i % 256]); + case 3: + return (-fp16_sin_table[255 - i % 256]); + default: + /* inconceivable! */ + return (0); + } +} + +/* * Compute the cosine of theta. */ fp16_t @@ -117,13 +141,13 @@ fp16_cos(fp16_t theta) i = 1024 * (theta % FP16_2PI) / FP16_2PI; switch (i / 256) { case 0: - return (fp16_cos_table[i % 256]); + return (fp16_sin_table[255 - i % 256]); case 1: - return (-fp16_cos_table[255 - i % 256]); + return (-fp16_sin_table[i % 256]); case 2: - return (-fp16_cos_table[i % 256]); + return (-fp16_sin_table[255 - i % 256]); case 3: - return (fp16_cos_table[255 - i % 256]); + return (fp16_sin_table[i % 256]); default: /* inconceivable! */ return (0); Modified: stable/10/sys/dev/syscons/plasma/fp16.h ============================================================================== --- head/sys/dev/syscons/plasma/fp16.h Fri Jan 1 04:04:40 2016 (r293034) +++ stable/10/sys/dev/syscons/plasma/fp16.h Tue Jan 26 08:55:31 2016 (r294783) @@ -78,7 +78,8 @@ fp16_t fp16_sqrt(fp16_t); #define FP16_PI_2 102943 #define FP16_PI_4 51471 -/* cosine */ +/* sine and cosine */ +fp16_t fp16_sin(fp16_t); fp16_t fp16_cos(fp16_t); #endif Modified: stable/10/sys/dev/syscons/plasma/plasma_saver.c ============================================================================== --- head/sys/dev/syscons/plasma/plasma_saver.c Fri Jan 1 04:04:40 2016 (r293034) +++ stable/10/sys/dev/syscons/plasma/plasma_saver.c Tue Jan 26 08:55:31 2016 (r294783) @@ -104,7 +104,7 @@ plasma_update(video_adapter_t *adp) sqd = ItoFP16(dx * dx + dy * dy); d = fp16_sqrt(sqd); /* divide by 4 to stretch out the pattern */ - m = fp16_add(m, fp16_cos(d / 4)); + m = fp16_sub(m, fp16_cos(d / 4)); } /* * m is now in the range +/- FOCI, but we need a Modified: stable/10/sys/modules/syscons/Makefile ============================================================================== --- stable/10/sys/modules/syscons/Makefile Tue Jan 26 08:49:44 2016 (r294782) +++ stable/10/sys/modules/syscons/Makefile Tue Jan 26 08:55:31 2016 (r294783) @@ -9,6 +9,7 @@ SUBDIR= ${_apm} \ ${_fire} \ green \ ${_logo} \ + ${_plasma} \ ${_rain} \ ${_snake} \ ${_star} \ @@ -25,6 +26,7 @@ _daemon= daemon _dragon= dragon _fire= fire _logo= logo +_plasma= plasma _rain= rain _snake= snake _star= star From owner-svn-src-all@freebsd.org Tue Jan 26 08:57:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11F14A4744E; Tue, 26 Jan 2016 08:57:47 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7F50807; Tue, 26 Jan 2016 08:57:46 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q8vjVD047339; Tue, 26 Jan 2016 08:57:45 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q8vj7U047338; Tue, 26 Jan 2016 08:57:45 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260857.u0Q8vj7U047338@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 08:57:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294784 - stable/10/etc X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 08:57:47 -0000 Author: des Date: Tue Jan 26 08:57:45 2016 New Revision: 294784 URL: https://svnweb.freebsd.org/changeset/base/294784 Log: MFH (r290006): loading rc.subr and rc.conf has no effect here Modified: stable/10/etc/netstart Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/netstart ============================================================================== --- stable/10/etc/netstart Tue Jan 26 08:55:31 2016 (r294783) +++ stable/10/etc/netstart Tue Jan 26 08:57:45 2016 (r294784) @@ -34,9 +34,6 @@ # the network by hand, this script will do it for you). # -. /etc/rc.subr - -load_rc_config 'XXX' _start=quietstart /etc/rc.d/devd ${_start} From owner-svn-src-all@freebsd.org Tue Jan 26 08:59:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35ACAA474C1; Tue, 26 Jan 2016 08:59:01 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 065B7949; Tue, 26 Jan 2016 08:59:00 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q8x0fG047433; Tue, 26 Jan 2016 08:59:00 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q8wxEb047429; Tue, 26 Jan 2016 08:58:59 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260858.u0Q8wxEb047429@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 08:58:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294785 - in stable/10/etc: . rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 08:59:01 -0000 Author: des Date: Tue Jan 26 08:58:59 2016 New Revision: 294785 URL: https://svnweb.freebsd.org/changeset/base/294785 Log: MFH (r290008): load_rc_config no longer requires a service name Modified: stable/10/etc/rc.d/othermta stable/10/etc/rc.shutdown Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/rc.d/othermta ============================================================================== --- stable/10/etc/rc.d/othermta Tue Jan 26 08:57:45 2016 (r294784) +++ stable/10/etc/rc.d/othermta Tue Jan 26 08:58:59 2016 (r294785) @@ -10,7 +10,7 @@ # . /etc/rc.subr -load_rc_config 'XXX' +load_rc_config if [ -n "${mta_start_script}" ]; then [ "${mta_start_script}" != "/etc/rc.sendmail" ] && \ Modified: stable/10/etc/rc.shutdown ============================================================================== --- stable/10/etc/rc.shutdown Tue Jan 26 08:57:45 2016 (r294784) +++ stable/10/etc/rc.shutdown Tue Jan 26 08:58:59 2016 (r294785) @@ -45,7 +45,7 @@ export HOME PATH . /etc/rc.subr -load_rc_config 'XXX' +load_rc_config # reverse_list list # print the list in reverse order From owner-svn-src-all@freebsd.org Tue Jan 26 09:02:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF516A47826; Tue, 26 Jan 2016 09:02:24 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC3A2CB4; Tue, 26 Jan 2016 09:02:24 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q92NO3050181; Tue, 26 Jan 2016 09:02:23 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q92NNe050180; Tue, 26 Jan 2016 09:02:23 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260902.u0Q92NNe050180@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 09:02:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294786 - stable/10/etc/rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 09:02:25 -0000 Author: des Date: Tue Jan 26 09:02:23 2016 New Revision: 294786 URL: https://svnweb.freebsd.org/changeset/base/294786 Log: MFH (r277706): allow the user to specify the location of control.conf Modified: stable/10/etc/rc.d/local_unbound Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/rc.d/local_unbound ============================================================================== --- stable/10/etc/rc.d/local_unbound Tue Jan 26 08:58:59 2016 (r294785) +++ stable/10/etc/rc.d/local_unbound Tue Jan 26 09:02:23 2016 (r294786) @@ -30,6 +30,7 @@ load_rc_config $name : ${local_unbound_config:=${local_unbound_workdir}/unbound.conf} : ${local_unbound_flags:="-c ${local_unbound_config}"} : ${local_unbound_forwardconf:=${local_unbound_workdir}/forward.conf} +: ${local_unbound_controlconf:=${local_unbound_workdir}/control.conf} : ${local_unbound_anchor:=${local_unbound_workdir}/root.key} : ${local_unbound_forwarders:=} @@ -68,6 +69,7 @@ local_unbound_setup() -w ${local_unbound_workdir} \ -c ${local_unbound_config} \ -f ${local_unbound_forwardconf} \ + -o ${local_unbound_controlconf} \ -a ${local_unbound_anchor} \ ${local_unbound_forwarders} } From owner-svn-src-all@freebsd.org Tue Jan 26 09:09:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D677AA47C4E; Tue, 26 Jan 2016 09:09:21 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A3E16F89; Tue, 26 Jan 2016 09:09:21 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q99K4e050478; Tue, 26 Jan 2016 09:09:20 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q99KL6050477; Tue, 26 Jan 2016 09:09:20 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601260909.u0Q99KL6050477@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 26 Jan 2016 09:09:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294787 - in stable/10/usr.sbin: . vigr X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 09:09:21 -0000 Author: des Date: Tue Jan 26 09:09:20 2016 New Revision: 294787 URL: https://svnweb.freebsd.org/changeset/base/294787 Log: MFH (r275765): add a vigr(8) tool to mirror vipw(8) Added: stable/10/usr.sbin/vigr/ - copied from r275768, head/usr.sbin/vigr/ Modified: stable/10/usr.sbin/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/Makefile ============================================================================== --- stable/10/usr.sbin/Makefile Tue Jan 26 09:02:23 2016 (r294786) +++ stable/10/usr.sbin/Makefile Tue Jan 26 09:09:20 2016 (r294787) @@ -90,6 +90,7 @@ SUBDIR= adduser \ tzsetup \ uefisign \ ugidfw \ + vigr \ vipw \ wake \ watch \ From owner-svn-src-all@freebsd.org Tue Jan 26 09:10:39 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB4C0A47DF2; Tue, 26 Jan 2016 09:10:39 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: from mail-pa0-x231.google.com (mail-pa0-x231.google.com [IPv6:2607:f8b0:400e:c03::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9CBC51130; Tue, 26 Jan 2016 09:10:39 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: by mail-pa0-x231.google.com with SMTP id cy9so95246038pac.0; Tue, 26 Jan 2016 01:10:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:reply-to:subject:references:to:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=NPw4+8QZijRdxrTP/oQtQqKPIRIq9P8u1aH+ssQkOAA=; b=HygSFB3K93wWWFF8jKLtzIea7kGKXqfXRrqDf/TFoB57pNbLMOjyHSXFazLPWsg+q/ Y20orZrHquN2K/xD6ZqOITVtzQp+i3HKkAy5S0LljOwiB8sjThS0PavQXnSE+cdlyncw NJfqgCASmoHXP4RnweEQqaIszWCzqMoBbwJXD2o5x1ozXoLYa6Vm5zYcmu+zj/wtqpyu 3pozs0J09f2ZGUxB0zhzHqJOA2DYHKr2Somaj/Eql9Q40JvB0IgalAv7Z2jOHfpDdBB8 bwyKCLpWOiI57YnqlJsJFne6TtJ+iaAWxkbtWo3BMFjhgK5BggoT3EusQ9mTQS0c+tQA g8sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:reply-to:subject:references:to:from :message-id:date:user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=NPw4+8QZijRdxrTP/oQtQqKPIRIq9P8u1aH+ssQkOAA=; b=AcdFuGGOVFYZZDmi+UJzTY5jJ4hd0+KjfTaVJjmfa+9vdUqVqA7Fi0jMKrbscgJMOi nawrB9Ssud2hfuokhP6mtjHbUYpw80sAlPfR7gQd9k+jnjblo1YNO1bavPjxCDtEL5SO HmR4IP2B2WJCXi1LQyEAS0BvtwX63rDsSG6rhq8a/AFu8O5aRlzV1eKD20R1Jv/3XZjG yr9kgTEMoqSaMIvh1PThXlB9sp/Us47gpqYfHhQo49YQCDUYwaXu6wGLHBoZqUonNZUZ s55vlXjZHepufBHwJOZGrEThJ181wYJixR6cXh4EyAENHXrTPSkzZMuLiRi/lzWhFWva W8WA== X-Gm-Message-State: AG10YOTDC/qH8+8sjXas7fBV2eYxmzPYIglL73D/A4ArN0ta05HKt8hlwA0djY0yAocmAw== X-Received: by 10.66.194.230 with SMTP id hz6mr21774015pac.70.1453799439028; Tue, 26 Jan 2016 01:10:39 -0800 (PST) Received: from ?IPv6:2001:44b8:31ae:7b01:e955:70fa:3edd:219e? (2001-44b8-31ae-7b01-e955-70fa-3edd-219e.static.ipv6.internode.on.net. [2001:44b8:31ae:7b01:e955:70fa:3edd:219e]) by smtp.gmail.com with ESMTPSA id m87sm634467pfi.47.2016.01.26.01.10.36 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 26 Jan 2016 01:10:38 -0800 (PST) Sender: Kubilay Kocak Reply-To: koobs@FreeBSD.org Subject: Re: svn commit: r294778 - in head: lib/libc/sys sys/kern References: <201601260757.u0Q7viGW029949@repo.freebsd.org> To: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Kubilay Kocak Message-ID: <56A73806.4080800@FreeBSD.org> Date: Tue, 26 Jan 2016 20:10:30 +1100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Thunderbird/44.0 MIME-Version: 1.0 In-Reply-To: <201601260757.u0Q7viGW029949@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 09:10:39 -0000 On 26/01/2016 6:57 PM, Konstantin Belousov wrote: > Author: kib > Date: Tue Jan 26 07:57:44 2016 > New Revision: 294778 > URL: https://svnweb.freebsd.org/changeset/base/294778 > > Log: > Restore flushing of output for revoke(2) again. Document revoke()'s > intended behaviour in its man page. Simplify tty_drain() to match. > Don't call ttydevsw methods in tty_flush() if the device is gone > since we now sometimes call it then. > > The flushing was supposed to be implemented by passing the FNONBLOCK > flag to VOP_CLOSE() for revoke(). The tty driver is one of the few > that can block in close and was one of the fewer that knew about this. > > This almost worked in FreeBSD-1 and similarly in Net/2. These > versions only almost worked because there was and is considerable > confusion between IO_NDELAY and FNONBLOCK (aka O_NONBLOCK). IO_NDELAY > is only valid for VOP_READ() and VOP_WRITE(). For other VOPs it has > the same value as O_SHLOCK. But since vfs_subr.c and tty.c > consistently used the wrong flag and the O_SHLOCK flag is rarely set, > this mostly worked. It also gave the feature than applications could > get the non-blocking close by abusing O_SHLOCK. > > This was first broken then fixed in 1995. I changed only the tty > driver to use FNONBLOCK, as a hack to get non-blocking via the normal > flag FNONBLOCK for last closes. I didn't know about revoke()'s use > of IO_NDELAY or change it to be consistent, so revoke() was broken. > Then I changed revoke() to match. Seems like > This was next broken in 1997 then fixed in 1998. Importing Lite2 made > the flags inconsistent again by undoing the fix only in vfs_subr.c. A fantastic > This was next broken in 2008 by replacing everything in tty.c and not > checking any flags in last close. Other bugs in draining limited the > resulting unbounded waits to drain in some cases. Regression test candidate :) > It is now possible to fix this better using the new FREVOKE flag. > Just restore flushing for revoke() for now. Don't restore or undo any > hacks for ordinary last closes yet. But remove dead code in the > 1-second relative timeout (r272789). This did extra work to extend > the buggy draining for revoke() for as long as possible. The 1-second > timeout made this not very long by usually flushing after 1 second. > > Submitted by: bde > MFC after: 2 weeks > > Modified: > head/lib/libc/sys/revoke.2 > head/sys/kern/tty.c > > Modified: head/lib/libc/sys/revoke.2 > ============================================================================== > --- head/lib/libc/sys/revoke.2 Tue Jan 26 07:49:11 2016 (r294777) > +++ head/lib/libc/sys/revoke.2 Tue Jan 26 07:57:44 2016 (r294778) > @@ -31,7 +31,7 @@ > .\" @(#)revoke.2 8.1 (Berkeley) 6/4/93 > .\" $FreeBSD$ > .\" > -.Dd June 4, 1993 > +.Dd Jan 25, 2016 > .Dt REVOKE 2 > .Os > .Sh NAME > @@ -59,7 +59,8 @@ and a > system call will succeed. > If the file is a special file for a device which is open, > the device close function > -is called as if all open references to the file had been closed. > +is called as if all open references to the file had been closed > +using a special close method which does not block. > .Pp > Access to a file may be revoked only by its owner or the super user. > The > @@ -104,3 +105,6 @@ The > .Fn revoke > system call first appeared in > .Bx 4.3 Reno . > +.Sh BUGS > +The non-blocking close method is only correctly implemented for > +terminal devices. > > Modified: head/sys/kern/tty.c > ============================================================================== > --- head/sys/kern/tty.c Tue Jan 26 07:49:11 2016 (r294777) > +++ head/sys/kern/tty.c Tue Jan 26 07:57:44 2016 (r294778) > @@ -126,7 +126,7 @@ static int > tty_drain(struct tty *tp, int leaving) > { > size_t bytesused; > - int error, revokecnt; > + int error; > > if (ttyhook_hashook(tp, getc_inject)) > /* buffer is inaccessible */ > @@ -141,18 +141,10 @@ tty_drain(struct tty *tp, int leaving) > > /* Wait for data to be drained. */ > if (leaving) { > - revokecnt = tp->t_revokecnt; > error = tty_timedwait(tp, &tp->t_outwait, hz); > - switch (error) { > - case ERESTART: > - if (revokecnt != tp->t_revokecnt) > - error = 0; > - break; > - case EWOULDBLOCK: > - if (ttyoutq_bytesused(&tp->t_outq) < bytesused) > - error = 0; > - break; > - } > + if (error == EWOULDBLOCK && > + ttyoutq_bytesused(&tp->t_outq) < bytesused) > + error = 0; > } else > error = tty_wait(tp, &tp->t_outwait); > > @@ -356,6 +348,10 @@ ttydev_close(struct cdev *dev, int fflag > return (0); > } > > + /* If revoking, flush output now to avoid draining it later. */ > + if (fflag & FREVOKE) > + tty_flush(tp, FWRITE); > + > /* > * This can only be called once. The callin and the callout > * devices cannot be opened at the same time. > @@ -1460,13 +1456,16 @@ tty_flush(struct tty *tp, int flags) > tp->t_flags &= ~TF_HIWAT_OUT; > ttyoutq_flush(&tp->t_outq); > tty_wakeup(tp, FWRITE); > - ttydevsw_pktnotify(tp, TIOCPKT_FLUSHWRITE); > + if (!tty_gone(tp)) > + ttydevsw_pktnotify(tp, TIOCPKT_FLUSHWRITE); > } > if (flags & FREAD) { > tty_hiwat_in_unblock(tp); > ttyinq_flush(&tp->t_inq); > - ttydevsw_inwakeup(tp); > - ttydevsw_pktnotify(tp, TIOCPKT_FLUSHREAD); > + if (!tty_gone(tp)) { > + ttydevsw_inwakeup(tp); > + ttydevsw_pktnotify(tp, TIOCPKT_FLUSHREAD); > + } > } > } > From owner-svn-src-all@freebsd.org Tue Jan 26 09:42:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0CA8AA46036; Tue, 26 Jan 2016 09:42:15 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DB5C8C16; Tue, 26 Jan 2016 09:42:14 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q9gD0R062311; Tue, 26 Jan 2016 09:42:13 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q9gD14062309; Tue, 26 Jan 2016 09:42:13 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201601260942.u0Q9gD14062309@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Tue, 26 Jan 2016 09:42:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294788 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 09:42:15 -0000 Author: sephe Date: Tue Jan 26 09:42:13 2016 New Revision: 294788 URL: https://svnweb.freebsd.org/changeset/base/294788 Log: hyperv/hn: Improve sending performance - Avoid main lock contention by trylock for if_start, if that fails, schedule TX taskqueue for if_start - Don't do direct sending if the packet to be sent is large, e.g. TSO packet. This change gives me stable 9.1Gbps TCP sending performance w/ TSO over a 10Gbe directly connected network (the performance fluctuated between 4Gbps and 9Gbps before this commit). It also improves non- TSO TCP sending performance a lot. Reviewed by: adrian, royger Approved by: adrian (mentor) Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5074 Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Tue Jan 26 09:09:20 2016 (r294787) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Tue Jan 26 09:42:13 2016 (r294788) @@ -39,9 +39,11 @@ #define __HV_NET_VSC_H__ #include +#include #include #include #include +#include #include #include @@ -1008,7 +1010,6 @@ typedef struct hn_softc { struct hv_device *hn_dev_obj; netvsc_dev *net_dev; - int hn_txdesc_cnt; struct hn_txdesc *hn_txdesc; bus_dma_tag_t hn_tx_data_dtag; bus_dma_tag_t hn_tx_rndis_dtag; @@ -1017,9 +1018,15 @@ typedef struct hn_softc { struct mtx hn_txlist_spin; struct hn_txdesc_list hn_txlist; + int hn_txdesc_cnt; int hn_txdesc_avail; int hn_txeof; + int hn_direct_tx_size; + struct taskqueue *hn_tx_taskq; + struct task hn_start_task; + struct task hn_txeof_task; + struct lro_ctrl hn_lro; int hn_lro_hiwat; Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Tue Jan 26 09:09:20 2016 (r294787) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Tue Jan 26 09:42:13 2016 (r294788) @@ -146,6 +146,8 @@ __FBSDID("$FreeBSD$"); #define HN_TX_DATA_SEGCNT_MAX \ (NETVSC_PACKET_MAXPAGE - HV_RF_NUM_TX_RESERVED_PAGE_BUFS) +#define HN_DIRECT_TX_SIZE_DEF 128 + struct hn_txdesc { SLIST_ENTRY(hn_txdesc) link; struct mbuf *m; @@ -194,6 +196,7 @@ struct hn_txdesc { #define NV_LOCK_INIT(_sc, _name) \ mtx_init(&(_sc)->hn_lock, _name, MTX_NETWORK_LOCK, MTX_DEF) #define NV_LOCK(_sc) mtx_lock(&(_sc)->hn_lock) +#define NV_TRYLOCK(_sc) mtx_trylock(&(_sc)->hn_lock) #define NV_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->hn_lock, MA_OWNED) #define NV_UNLOCK(_sc) mtx_unlock(&(_sc)->hn_lock) #define NV_LOCK_DESTROY(_sc) mtx_destroy(&(_sc)->hn_lock) @@ -219,6 +222,10 @@ TUNABLE_INT("dev.hn.tso_maxlen", &hn_tso static int hn_tx_chimney_size = 0; TUNABLE_INT("dev.hn.tx_chimney_size", &hn_tx_chimney_size); +/* Limit the size of packet for direct transmission */ +static int hn_direct_tx_size = HN_DIRECT_TX_SIZE_DEF; +TUNABLE_INT("dev.hn.direct_tx_size", &hn_direct_tx_size); + /* * Forward declarations */ @@ -226,8 +233,9 @@ static void hn_stop(hn_softc_t *sc); static void hn_ifinit_locked(hn_softc_t *sc); static void hn_ifinit(void *xsc); static int hn_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data); -static void hn_start_locked(struct ifnet *ifp); +static int hn_start_locked(struct ifnet *ifp, int len); static void hn_start(struct ifnet *ifp); +static void hn_start_txeof(struct ifnet *ifp); static int hn_ifmedia_upd(struct ifnet *ifp); static void hn_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); #ifdef HN_LRO_HIWAT @@ -237,6 +245,8 @@ static int hn_tx_chimney_size_sysctl(SYS static int hn_check_iplen(const struct mbuf *, int); static int hn_create_tx_ring(struct hn_softc *sc); static void hn_destroy_tx_ring(struct hn_softc *sc); +static void hn_start_taskfunc(void *xsc, int pending); +static void hn_txeof_taskfunc(void *xsc, int pending); static __inline void hn_set_lro_hiwat(struct hn_softc *sc, int hiwat) @@ -384,6 +394,14 @@ netvsc_attach(device_t dev) sc->hn_dev = dev; sc->hn_lro_hiwat = HN_LRO_HIWAT_DEF; sc->hn_trust_hosttcp = hn_trust_hosttcp; + sc->hn_direct_tx_size = hn_direct_tx_size; + + sc->hn_tx_taskq = taskqueue_create_fast("hn_tx", M_WAITOK, + taskqueue_thread_enqueue, &sc->hn_tx_taskq); + taskqueue_start_threads(&sc->hn_tx_taskq, 1, PI_NET, "%s tx", + device_get_nameunit(dev)); + TASK_INIT(&sc->hn_start_task, 0, hn_start_taskfunc, sc); + TASK_INIT(&sc->hn_txeof_task, 0, hn_txeof_taskfunc, sc); error = hn_create_tx_ring(sc); if (error) @@ -524,6 +542,9 @@ netvsc_attach(device_t dev) SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "tx_chimney_size", CTLTYPE_INT | CTLFLAG_RW, sc, 0, hn_tx_chimney_size_sysctl, "I", "Chimney send packet size limit"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "direct_tx_size", + CTLFLAG_RW, &sc->hn_direct_tx_size, 0, + "Size of the packet for direct transmission"); if (unit == 0) { struct sysctl_ctx_list *dc_ctx; @@ -548,6 +569,9 @@ netvsc_attach(device_t dev) SYSCTL_ADD_INT(dc_ctx, dc_child, OID_AUTO, "tso_maxlen", CTLFLAG_RD, &hn_tso_maxlen, 0, "TSO burst limit"); #endif + SYSCTL_ADD_INT(dc_ctx, dc_child, OID_AUTO, "direct_tx_size", + CTLFLAG_RD, &hn_direct_tx_size, 0, + "Size of the packet for direct transmission"); } return (0); @@ -583,6 +607,10 @@ netvsc_detach(device_t dev) hv_rf_on_device_remove(hv_device, HV_RF_NV_DESTROY_CHANNEL); + taskqueue_drain(sc->hn_tx_taskq, &sc->hn_start_task); + taskqueue_drain(sc->hn_tx_taskq, &sc->hn_txeof_task); + taskqueue_free(sc->hn_tx_taskq); + ifmedia_removeall(&sc->hn_media); #if defined(INET) || defined(INET6) tcp_lro_free(&sc->hn_lro); @@ -733,24 +761,19 @@ void netvsc_channel_rollup(struct hv_device *device_ctx) { struct hn_softc *sc = device_get_softc(device_ctx->device); - struct ifnet *ifp; if (!sc->hn_txeof) return; sc->hn_txeof = 0; - ifp = sc->hn_ifp; - NV_LOCK(sc); - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - hn_start_locked(ifp); - NV_UNLOCK(sc); + hn_start_txeof(sc->hn_ifp); } /* * Start a transmit of one or more packets */ -static void -hn_start_locked(struct ifnet *ifp) +static int +hn_start_locked(struct ifnet *ifp, int len) { hn_softc_t *sc = ifp->if_softc; struct hv_device *device_ctx = vmbus_get_devctx(sc->hn_dev); @@ -768,7 +791,7 @@ hn_start_locked(struct ifnet *ifp) if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING) - return; + return 0; while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { bus_dma_segment_t segs[HN_TX_DATA_SEGCNT_MAX]; @@ -781,11 +804,21 @@ hn_start_locked(struct ifnet *ifp) if (m_head == NULL) break; + if (len > 0 && m_head->m_pkthdr.len > len) { + /* + * This sending could be time consuming; let callers + * dispatch this packet sending (and sending of any + * following up packets) to tx taskqueue. + */ + IF_PREPEND(&ifp->if_snd, m_head); + return 1; + } + txd = hn_txdesc_get(sc); if (txd == NULL) { sc->hn_no_txdescs++; IF_PREPEND(&ifp->if_snd, m_head); - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + atomic_set_int(&ifp->if_drv_flags, IFF_DRV_OACTIVE); break; } @@ -1060,10 +1093,11 @@ again: sc->hn_send_failed++; IF_PREPEND(&ifp->if_snd, m_head); - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + atomic_set_int(&ifp->if_drv_flags, IFF_DRV_OACTIVE); break; } } + return 0; } /* @@ -1555,7 +1589,8 @@ hn_stop(hn_softc_t *sc) if (bootverbose) printf(" Closing Device ...\n"); - ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); + atomic_clear_int(&ifp->if_drv_flags, + (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)); if_link_state_change(ifp, LINK_STATE_DOWN); sc->hn_initdone = 0; @@ -1571,13 +1606,43 @@ hn_start(struct ifnet *ifp) hn_softc_t *sc; sc = ifp->if_softc; - NV_LOCK(sc); - if (sc->temp_unusable) { + if (NV_TRYLOCK(sc)) { + int sched; + + sched = hn_start_locked(ifp, sc->hn_direct_tx_size); NV_UNLOCK(sc); - return; + if (!sched) + return; + } + taskqueue_enqueue_fast(sc->hn_tx_taskq, &sc->hn_start_task); +} + +static void +hn_start_txeof(struct ifnet *ifp) +{ + hn_softc_t *sc; + + sc = ifp->if_softc; + if (NV_TRYLOCK(sc)) { + int sched; + + atomic_clear_int(&ifp->if_drv_flags, IFF_DRV_OACTIVE); + sched = hn_start_locked(ifp, sc->hn_direct_tx_size); + NV_UNLOCK(sc); + if (sched) { + taskqueue_enqueue_fast(sc->hn_tx_taskq, + &sc->hn_start_task); + } + } else { + /* + * Release the OACTIVE earlier, with the hope, that + * others could catch up. The task will clear the + * flag again with the NV_LOCK to avoid possible + * races. + */ + atomic_clear_int(&ifp->if_drv_flags, IFF_DRV_OACTIVE); + taskqueue_enqueue_fast(sc->hn_tx_taskq, &sc->hn_txeof_task); } - hn_start_locked(ifp); - NV_UNLOCK(sc); } /* @@ -1604,8 +1669,8 @@ hn_ifinit_locked(hn_softc_t *sc) } else { sc->hn_initdone = 1; } - ifp->if_drv_flags |= IFF_DRV_RUNNING; - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + atomic_clear_int(&ifp->if_drv_flags, IFF_DRV_OACTIVE); + atomic_set_int(&ifp->if_drv_flags, IFF_DRV_RUNNING); if_link_state_change(ifp, LINK_STATE_UP); } @@ -1907,6 +1972,28 @@ hn_destroy_tx_ring(struct hn_softc *sc) mtx_destroy(&sc->hn_txlist_spin); } +static void +hn_start_taskfunc(void *xsc, int pending __unused) +{ + struct hn_softc *sc = xsc; + + NV_LOCK(sc); + hn_start_locked(sc->hn_ifp, 0); + NV_UNLOCK(sc); +} + +static void +hn_txeof_taskfunc(void *xsc, int pending __unused) +{ + struct hn_softc *sc = xsc; + struct ifnet *ifp = sc->hn_ifp; + + NV_LOCK(sc); + atomic_clear_int(&ifp->if_drv_flags, IFF_DRV_OACTIVE); + hn_start_locked(ifp, 0); + NV_UNLOCK(sc); +} + static device_method_t netvsc_methods[] = { /* Device interface */ DEVMETHOD(device_probe, netvsc_probe), From owner-svn-src-all@freebsd.org Tue Jan 26 09:50:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4D996A465F3; Tue, 26 Jan 2016 09:50:25 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 24A0EB6; Tue, 26 Jan 2016 09:50:25 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q9oOKR062642; Tue, 26 Jan 2016 09:50:24 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q9oNWJ062640; Tue, 26 Jan 2016 09:50:23 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601260950.u0Q9oNWJ062640@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Tue, 26 Jan 2016 09:50:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294789 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 09:50:25 -0000 Author: skra Date: Tue Jan 26 09:50:23 2016 New Revision: 294789 URL: https://svnweb.freebsd.org/changeset/base/294789 Log: Make code more compact and readable better in pmap_extract() like functions. No functional change. This is a follow up to r294722. Suggested by: kib Modified: head/sys/arm/arm/pmap-v6.c head/sys/arm/arm/pmap.c Modified: head/sys/arm/arm/pmap-v6.c ============================================================================== --- head/sys/arm/arm/pmap-v6.c Tue Jan 26 09:42:13 2016 (r294788) +++ head/sys/arm/arm/pmap-v6.c Tue Jan 26 09:50:23 2016 (r294789) @@ -3446,14 +3446,10 @@ pmap_extract_locked(pmap_t pmap, vm_offs pte = ptep[l2pte_index(va)]; if (pte == 0) return (0); - switch (pte & L2_TYPE_MASK) { - case L2_TYPE_L: + if ((pte & L2_TYPE_MASK) == L2_TYPE_L) pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET); - break; - default: + else pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET); - break; - } } return (pa); } @@ -3515,20 +3511,15 @@ retry: PMAP_UNLOCK(pmap); return (NULL); } else { - switch (pte & L2_TYPE_MASK) { - case L2_TYPE_L: + if ((pte & L2_TYPE_MASK) == L2_TYPE_L) panic("extract and hold section mapping"); - break; - default: + else pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET); - break; - } if (vm_page_pa_tryrelock(pmap, pa & PG_FRAME, &paddr)) goto retry; m = PHYS_TO_VM_PAGE(pa); vm_page_hold(m); } - } PMAP_UNLOCK(pmap); @@ -3567,14 +3558,10 @@ pmap_dump_kextract(vm_offset_t va, pt2_e pa = 0; goto out; } - switch (pte & L2_TYPE_MASK) { - case L2_TYPE_L: + if ((pte & L2_TYPE_MASK) == L2_TYPE_L) pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET); - break; - default: + else pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET); - break; - } } out: if (pte2p != NULL) Modified: head/sys/arm/arm/pmap.c ============================================================================== --- head/sys/arm/arm/pmap.c Tue Jan 26 09:42:13 2016 (r294788) +++ head/sys/arm/arm/pmap.c Tue Jan 26 09:50:23 2016 (r294789) @@ -2787,18 +2787,14 @@ pmap_kremove(vm_offset_t va) pte = &l2b->l2b_kva[l2pte_index(va)]; opte = *pte; if (l2pte_valid(opte)) { - /* pa = vtophs(va) taken from pmap_extract() */ - switch (opte & L2_TYPE_MASK) { - case L2_TYPE_L: + /* pa = vtophs(va) taken from pmap_extract() */ + if ((opte & L2_TYPE_MASK) == L2_TYPE_L) pa = (opte & L2_L_FRAME) | (va & L2_L_OFFSET); - break; - default: + else pa = (opte & L2_S_FRAME) | (va & L2_S_OFFSET); - break; - } - /* note: should never have to remove an allocation - * before the pvzone is initialized. - */ + /* note: should never have to remove an allocation + * before the pvzone is initialized. + */ rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap_kernel()); if (pvzone != NULL && (m = vm_phys_paddr_to_vm_page(pa)) && @@ -3645,14 +3641,10 @@ pmap_extract_locked(pmap_t pmap, vm_offs pte = ptep[l2pte_index(va)]; if (pte == 0) return (0); - switch (pte & L2_TYPE_MASK) { - case L2_TYPE_L: + if ((pte & L2_TYPE_MASK) == L2_TYPE_L) pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET); - break; - default: + else pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET); - break; - } } return (pa); } @@ -3717,15 +3709,10 @@ retry: return (NULL); } if (pte & L2_S_PROT_W || (prot & VM_PROT_WRITE) == 0) { - switch (pte & L2_TYPE_MASK) { - case L2_TYPE_L: + if ((pte & L2_TYPE_MASK) == L2_TYPE_L) pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET); - break; - - default: + else pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET); - break; - } if (vm_page_pa_tryrelock(pmap, pa & PG_FRAME, &paddr)) goto retry; m = PHYS_TO_VM_PAGE(pa); @@ -3769,14 +3756,10 @@ pmap_dump_kextract(vm_offset_t va, pt2_e pa = 0; goto out; } - switch (pte & L2_TYPE_MASK) { - case L2_TYPE_L: + if ((pte & L2_TYPE_MASK) == L2_TYPE_L) pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET); - break; - default: + else pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET); - break; - } } out: if (pte2p != NULL) From owner-svn-src-all@freebsd.org Tue Jan 26 09:50:37 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D4E00A46629; Tue, 26 Jan 2016 09:50:37 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AB93F258; Tue, 26 Jan 2016 09:50:37 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0Q9oajw063446; Tue, 26 Jan 2016 09:50:36 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0Q9oaZV063199; Tue, 26 Jan 2016 09:50:36 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201601260950.u0Q9oaZV063199@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Tue, 26 Jan 2016 09:50:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294790 - stable/10/usr.sbin/bhyvectl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 09:50:38 -0000 Author: brueffer Date: Tue Jan 26 09:50:36 2016 New Revision: 294790 URL: https://svnweb.freebsd.org/changeset/base/294790 Log: MFH: r293745 Add a basic bhyvectl manpage. Added: stable/10/usr.sbin/bhyvectl/bhyvectl.8 - copied unchanged from r293745, head/usr.sbin/bhyvectl/bhyvectl.8 Modified: stable/10/usr.sbin/bhyvectl/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/bhyvectl/Makefile ============================================================================== --- stable/10/usr.sbin/bhyvectl/Makefile Tue Jan 26 09:50:23 2016 (r294789) +++ stable/10/usr.sbin/bhyvectl/Makefile Tue Jan 26 09:50:36 2016 (r294790) @@ -5,7 +5,7 @@ PROG= bhyvectl SRCS= bhyvectl.c -MAN= +MAN= bhyvectl.8 DPADD= ${LIBVMMAPI} ${LIBUTIL} LDADD= -lvmmapi -lutil Copied: stable/10/usr.sbin/bhyvectl/bhyvectl.8 (from r293745, head/usr.sbin/bhyvectl/bhyvectl.8) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.sbin/bhyvectl/bhyvectl.8 Tue Jan 26 09:50:36 2016 (r294790, copy of r293745, head/usr.sbin/bhyvectl/bhyvectl.8) @@ -0,0 +1,97 @@ +.\" Copyright (c) 2015 Christian Brueffer +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd January 12, 2016 +.Dt BHYVECTL 8 +.Os +.Sh NAME +.Nm bhyvectl +.Nd "control utility for bhyve instances" +.Sh SYNOPSIS +.Nm +.Fl -vm= Ns Ar +.Op Fl -create +.Op Fl -destroy +.Op Fl -get-stats +.Op Fl -inject-nmi +.Op Fl -force-reset +.Op Fl -force-poweroff +.Sh DESCRIPTION +The +.Nm +command is a control utility for active +.Xr bhyve 8 +virtual machine instances. +.Pp +.Em Note : +Most +.Nm +flags are intended for querying and setting the state of an active instance. +These commands are intended for development purposes, and are not documented here. +A complete list can be obtained by executing +.Nm +without any arguments. +.Pp +The user-facing options are as follows: +.Bl -tag -width ".Fl d Ar argument" +.It Fl -vm= Ns Ar +Operate on the virtual machine +.Ar . +.It Fl -create +Create the specified VM. +.It Fl -destroy +Destroy the specified VM. +.It Fl -get-state +Retrieve statistics for the specified VM. +.It Fl -inject-nmi +Inject a non-maskable interrupt (NMI) into the VM. +.It Fl -force-reset +Force the VM to reset. +.It Fl -force-poweroff +Force the VM to power off. +.El +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +Destroy the VM called fbsd10: +.Pp +.Dl "bhyvectl --vm=fbsd10 --destroy" +.Sh SEE ALSO +.Xr bhyve 8 , +.Xr bhyveload 8 +.Sh HISTORY +The +.Nm +command first appeared in +.Fx 10.1 . +.Sh AUTHORS +.An -nosplit +The +.Nm +utility was written by +.An Peter Grehan +and +.An Neel Natu . From owner-svn-src-all@freebsd.org Tue Jan 26 10:24:20 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 29AD8A6E430; Tue, 26 Jan 2016 10:24:20 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D1B99164D; Tue, 26 Jan 2016 10:24:19 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QAOInA074244; Tue, 26 Jan 2016 10:24:18 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QAOIEr074243; Tue, 26 Jan 2016 10:24:18 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601261024.u0QAOIEr074243@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Tue, 26 Jan 2016 10:24:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294791 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 10:24:20 -0000 Author: skra Date: Tue Jan 26 10:24:18 2016 New Revision: 294791 URL: https://svnweb.freebsd.org/changeset/base/294791 Log: Don't do icache sync on kernel memory and keep in line with comment in elf_cpu_load_file(). The only time when the sync is needed is after kernel module is loaded and the relocation info is processed. And it's done in elf_cpu_load_file(). Modified: head/sys/arm/arm/pmap-v6-new.c Modified: head/sys/arm/arm/pmap-v6-new.c ============================================================================== --- head/sys/arm/arm/pmap-v6-new.c Tue Jan 26 09:50:36 2016 (r294790) +++ head/sys/arm/arm/pmap-v6-new.c Tue Jan 26 10:24:18 2016 (r294791) @@ -3799,14 +3799,19 @@ validate: * is set. Do it now, before the mapping is stored and made * valid for hardware table walk. If done later, there is a race * for other threads of current process in lazy loading case. + * Don't do it for kernel memory which is mapped with exec + * permission even if the memory isn't going to hold executable + * code. The only time when icache sync is needed is after + * kernel module is loaded and the relocation info is processed. + * And it's done in elf_cpu_load_file(). * * QQQ: (1) Does it exist any better way where * or how to sync icache? * (2) Now, we do it on a page basis. */ - if ((prot & VM_PROT_EXECUTE) && - (m->md.pat_mode == PTE2_ATTR_WB_WA) && - ((opa != pa) || (opte2 & PTE2_NX))) + if ((prot & VM_PROT_EXECUTE) && pmap != kernel_pmap && + m->md.pat_mode == PTE2_ATTR_WB_WA && + (opa != pa || (opte2 & PTE2_NX))) cache_icache_sync_fresh(va, pa, PAGE_SIZE); npte2 |= PTE2_A; @@ -4405,7 +4410,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ l2prot |= PTE2_U | PTE2_NG; if ((prot & VM_PROT_EXECUTE) == 0) l2prot |= PTE2_NX; - else if (m->md.pat_mode == PTE2_ATTR_WB_WA) { + else if (m->md.pat_mode == PTE2_ATTR_WB_WA && pmap != kernel_pmap) { /* * Sync icache if exec permission and attribute PTE2_ATTR_WB_WA * is set. QQQ: For more info, see comments in pmap_enter(). @@ -4476,7 +4481,7 @@ pmap_enter_pte1(pmap_t pmap, vm_offset_t l1prot |= PTE1_U | PTE1_NG; if ((prot & VM_PROT_EXECUTE) == 0) l1prot |= PTE1_NX; - else if (m->md.pat_mode == PTE2_ATTR_WB_WA) { + else if (m->md.pat_mode == PTE2_ATTR_WB_WA && pmap != kernel_pmap) { /* * Sync icache if exec permission and attribute PTE2_ATTR_WB_WA * is set. QQQ: For more info, see comments in pmap_enter(). From owner-svn-src-all@freebsd.org Tue Jan 26 10:29:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 386ACA6E60D for ; Tue, 26 Jan 2016 10:29:08 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: from mail-wm0-x233.google.com (mail-wm0-x233.google.com [IPv6:2a00:1450:400c:c09::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CB67B1A18 for ; Tue, 26 Jan 2016 10:29:07 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: by mail-wm0-x233.google.com with SMTP id r129so98019307wmr.0 for ; Tue, 26 Jan 2016 02:29:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=GcASHzqCVTaO/N5UPAwhEVB3hzeZzAN3xdJKdmKvzDc=; b=Y/fJ0ar4Z1UlPCe7e9OGfopvtcYJNLtqyomkHpa16t8YgpbEDuvqSC8dCuRcWIn4It WdAdGh9FOgtPS2eFV//9NGLU3oVgk3RTNKDQ2qVe32E3jou2NECA2Qn1zksRyGtcKvnW 1Mhr++XnlG3DD14g37mwFDKh4lafpKUWxV5/Etp1HhXO/3O5jV9svOFg0gdvjJqS5LT9 QH0reMdUTVY5FdLcUOmICNGJj4/udB2/aMSrYTyge4vVCQUXajU4GitakEX5pzUUvUN2 jheM9WubzJMYzUv9Cx87kPZJHkzQ5FJG5vOSEb7YpY6RghpOyu01hniJLvXxYPrxAyr5 qaBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=GcASHzqCVTaO/N5UPAwhEVB3hzeZzAN3xdJKdmKvzDc=; b=HjNS1yUuiMqApuWMZDrCDoGPtuBz4Aic5Qyu7RRkWh79wPbSbwt5xaO0vUvK7FYYoW PrSnuPM+DhCzpeCTiqbz0nJBPlus5V6Y4EPbhEKysgNuCN/Dna1BkNfpzvzZJ7/0KG9/ X0YAw9EIPcRVgt2UqWB5YilkWdmutCgoLiGRhfz1Vcebh5BY7Z9S1DRYGmKbvZ8rtqse tZP3CJbUN7Y77yg6jPOCRLMUMX9hlWMB6K2KdUZGCURNPCnCRCnFeAwpuvYNEhpkNDY0 sD74TvFFf6irbcawfmiXHA8nl/LLc5JCRKDQLC5fmXy+FnPo44e8BIqk3emvAk0u6f9n DyEA== X-Gm-Message-State: AG10YOQFarPr2kgRkFdJwoLMUYHl/jWCtgiq5MNNgp+Inz37+vkan4u5VZckMMDGaVxqel9O X-Received: by 10.194.117.134 with SMTP id ke6mr25465666wjb.94.1453804145881; Tue, 26 Jan 2016 02:29:05 -0800 (PST) Received: from [10.10.1.58] (liv3d.labs.multiplay.co.uk. [82.69.141.171]) by smtp.gmail.com with ESMTPSA id s2sm730623wjs.43.2016.01.26.02.29.04 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 26 Jan 2016 02:29:04 -0800 (PST) Subject: Re: svn commit: r294767 - head/sys/boot/efi/loader To: Warner Losh , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201601260626.u0Q6QkIk003440@repo.freebsd.org> From: Steven Hartland Message-ID: <56A74A7D.8010903@multiplay.co.uk> Date: Tue, 26 Jan 2016 10:29:17 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <201601260626.u0Q6QkIk003440@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 10:29:08 -0000 No plan to MFC these changes? On 26/01/2016 06:26, Warner Losh wrote: > Author: imp > Date: Tue Jan 26 06:26:46 2016 > New Revision: 294767 > URL: https://svnweb.freebsd.org/changeset/base/294767 > > Log: > Parse the command line arguments, and do it before we initialize the > console so it can be changed by the command line arguments. > > Differential Revision: https://reviews.freebsd.org/D5038 > > Modified: > head/sys/boot/efi/loader/main.c > > Modified: head/sys/boot/efi/loader/main.c > ============================================================================== > --- head/sys/boot/efi/loader/main.c Tue Jan 26 06:26:44 2016 (r294766) > +++ head/sys/boot/efi/loader/main.c Tue Jan 26 06:26:46 2016 (r294767) > @@ -29,6 +29,8 @@ > __FBSDID("$FreeBSD$"); > > #include > +#include > +#include > #include > #include > #include > @@ -83,13 +85,22 @@ print_str16(const CHAR16 *str) > printf("%c", (char)str[i]); > } > > +static void > +cp16to8(const CHAR16 *src, char *dst, size_t len) > +{ > + size_t i; > + > + for (i = 0; i < len && src[i]; i++) > + dst[i] = (char)src[i]; > +} > + > EFI_STATUS > main(int argc, CHAR16 *argv[]) > { > char var[128]; > EFI_LOADED_IMAGE *img; > EFI_GUID *guid; > - int i, j, vargood, unit; > + int i, j, vargood, unit, howto; > struct devsw *dev; > uint64_t pool_guid; > UINTN k; > @@ -113,27 +124,97 @@ main(int argc, CHAR16 *argv[]) > cons_probe(); > > /* > + * Parse the args to set the console settings, etc > + * boot1.efi passes these in, if it can read /boot.config or /boot/config > + * or iPXE may be setup to pass these in. > + * > * Loop through the args, and for each one that contains an '=' that is > * not the first character, add it to the environment. This allows > * loader and kernel env vars to be passed on the command line. Convert > * args from UCS-2 to ASCII (16 to 8 bit) as they are copied. > */ > + howto = 0; > for (i = 1; i < argc; i++) { > - vargood = 0; > - for (j = 0; argv[i][j] != 0; j++) { > - if (j == sizeof(var)) { > - vargood = 0; > - break; > + if (argv[i][0] == '-') { > + for (j = 1; argv[i][j] != 0; j++) { > + int ch; > + > + ch = argv[i][j]; > + switch (ch) { > + case 'a': > + howto |= RB_ASKNAME; > + break; > + case 'd': > + howto |= RB_KDB; > + break; > + case 'D': > + howto |= RB_MULTIPLE; > + break; > + case 'm': > + howto |= RB_MUTE; > + break; > + case 'h': > + howto |= RB_SERIAL; > + break; > + case 'p': > + howto |= RB_PAUSE; > + break; > + case 'r': > + howto |= RB_DFLTROOT; > + break; > + case 's': > + howto |= RB_SINGLE; > + break; > + case 'S': > + if (argv[i][j + 1] == 0) { > + if (i + 1 == argc) { > + setenv("comconsole_speed", "115200", 1); > + } else { > + cp16to8(&argv[i + 1][0], var, > + sizeof(var)); > + setenv("comconsole_speedspeed", var, 1); > + } > + i++; > + break; > + } else { > + cp16to8(&argv[i][j + 1], var, > + sizeof(var)); > + setenv("comconsole_speed", var, 1); > + break; > + } > + case 'v': > + howto |= RB_VERBOSE; > + break; > + } > + } > + } else { > + vargood = 0; > + for (j = 0; argv[i][j] != 0; j++) { > + if (j == sizeof(var)) { > + vargood = 0; > + break; > + } > + if (j > 0 && argv[i][j] == '=') > + vargood = 1; > + var[j] = (char)argv[i][j]; > + } > + if (vargood) { > + var[j] = 0; > + putenv(var); > } > - if (j > 0 && argv[i][j] == '=') > - vargood = 1; > - var[j] = (char)argv[i][j]; > - } > - if (vargood) { > - var[j] = 0; > - putenv(var); > } > } > + for (i = 0; howto_names[i].ev != NULL; i++) > + if (howto & howto_names[i].mask) > + setenv(howto_names[i].ev, "YES", 1); > + if (howto & RB_MULTIPLE) { > + if (howto & RB_SERIAL) > + setenv("console", "comconsole efi" , 1); > + else > + setenv("console", "efi comconsole" , 1); > + } else if (howto & RB_SERIAL) { > + setenv("console", "comconsole" , 1); > + } > > if (efi_copy_init()) { > printf("failed to allocate staging area\n"); > From owner-svn-src-all@freebsd.org Tue Jan 26 11:28:57 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 195DAA46F20; Tue, 26 Jan 2016 11:28:57 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DC89A1AAE; Tue, 26 Jan 2016 11:28:56 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QBSt7T091468; Tue, 26 Jan 2016 11:28:55 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QBStRS091467; Tue, 26 Jan 2016 11:28:55 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201601261128.u0QBStRS091467@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Tue, 26 Jan 2016 11:28:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294792 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 11:28:57 -0000 Author: trasz Date: Tue Jan 26 11:28:55 2016 New Revision: 294792 URL: https://svnweb.freebsd.org/changeset/base/294792 Log: Fix the way RCTL handles rules' rrl_exceeded on credenials change. Because of what this variable does, it was probably harmless - but still incorrect. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/kern_rctl.c Modified: head/sys/kern/kern_rctl.c ============================================================================== --- head/sys/kern/kern_rctl.c Tue Jan 26 10:24:18 2016 (r294791) +++ head/sys/kern/kern_rctl.c Tue Jan 26 11:28:55 2016 (r294792) @@ -1745,6 +1745,7 @@ again: for (i = 0; i < rulecnt; i++) { newlink = uma_zalloc(rctl_rule_link_zone, M_WAITOK); newlink->rrl_rule = NULL; + newlink->rrl_exceeded = 0; LIST_INSERT_HEAD(&newrules, newlink, rrl_next); } @@ -1761,6 +1762,7 @@ again: goto goaround; rctl_rule_acquire(link->rrl_rule); newlink->rrl_rule = link->rrl_rule; + newlink->rrl_exceeded = link->rrl_exceeded; newlink = LIST_NEXT(newlink, rrl_next); rulecnt--; } @@ -1771,6 +1773,7 @@ again: goto goaround; rctl_rule_acquire(link->rrl_rule); newlink->rrl_rule = link->rrl_rule; + newlink->rrl_exceeded = link->rrl_exceeded; newlink = LIST_NEXT(newlink, rrl_next); rulecnt--; } @@ -1780,6 +1783,7 @@ again: goto goaround; rctl_rule_acquire(link->rrl_rule); newlink->rrl_rule = link->rrl_rule; + newlink->rrl_exceeded = link->rrl_exceeded; newlink = LIST_NEXT(newlink, rrl_next); rulecnt--; } @@ -1789,6 +1793,7 @@ again: goto goaround; rctl_rule_acquire(link->rrl_rule); newlink->rrl_rule = link->rrl_rule; + newlink->rrl_exceeded = link->rrl_exceeded; newlink = LIST_NEXT(newlink, rrl_next); rulecnt--; } From owner-svn-src-all@freebsd.org Tue Jan 26 12:00:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11D8DA46100; Tue, 26 Jan 2016 12:00:10 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail108.syd.optusnet.com.au (mail108.syd.optusnet.com.au [211.29.132.59]) by mx1.freebsd.org (Postfix) with ESMTP id D0BA6DC1; Tue, 26 Jan 2016 12:00:09 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail108.syd.optusnet.com.au (Postfix) with ESMTPS id 895831A2F36; Tue, 26 Jan 2016 22:38:36 +1100 (AEDT) Date: Tue, 26 Jan 2016 22:38:35 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Kubilay Kocak cc: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294778 - in head: lib/libc/sys sys/kern In-Reply-To: <56A73806.4080800@FreeBSD.org> Message-ID: <20160126204713.P1692@besplex.bde.org> References: <201601260757.u0Q7viGW029949@repo.freebsd.org> <56A73806.4080800@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=PfoC/XVd c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=VnRtmwVBtHlHhgADq_kA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:00:10 -0000 On Tue, 26 Jan 2016, Kubilay Kocak wrote: >> Log: >> Restore flushing of output for revoke(2) again. Document revoke()'s >> intended behaviour in its man page. Simplify tty_drain() to match. >> Don't call ttydevsw methods in tty_flush() if the device is gone >> since we now sometimes call it then. >> ... >> This was first broken then fixed in 1995. I changed only the tty >> ... > > Seems like > >> This was next broken in 1997 then fixed in 1998. Importing Lite2 made >> ... > > A fantastic > >> This was next broken in 2008 by replacing everything in tty.c and not >> ... > > Regression test candidate :) > >> It is now possible to fix this better using the new FREVOKE flag. Regression tests for devices are difficult to write and more difficult to run. Simpler for ttys than for networking or disks, but you still need at least 2 generic tty ports just to test things that are not very related to hardware. Bugs in flushing and draining are sometimes obvious by observing if echo 123 >/dev/ttyXx works when it should fail or fails when it should work. For more arcane bugs, I use the old NIST POSIX test suite. This is badly written and hard to use and not very complete, but it finds about 30 regressions between FreeBSD-5 and FreeBSD-9. 30 over-counts for error cascades but undercounts for blocking and some other timing bugs, and of course strict POSIX tests don't get near FreeBSD features like revoke() or bidrectional devices. Bruce From owner-svn-src-all@freebsd.org Tue Jan 26 12:26:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE849A46C6D; Tue, 26 Jan 2016 12:26:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A73211C51; Tue, 26 Jan 2016 12:26:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCQWL1009008; Tue, 26 Jan 2016 12:26:32 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCQWli009007; Tue, 26 Jan 2016 12:26:32 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261226.u0QCQWli009007@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:26:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294793 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:26:34 -0000 Author: mav Date: Tue Jan 26 12:26:32 2016 New Revision: 294793 URL: https://svnweb.freebsd.org/changeset/base/294793 Log: 6367 spa_config_tryenter incorrectly handles the multiple-lock case Reviewed by: Alek Pinchuk Reviewed by: Josef 'Jeff' Sipek Reviewed by: Prashanth Sreenivasa Reviewed by: Matthew Ahrens Reviewed by: Dan McDonald Reviewed by: Steven Hartland Approved by: Matthew Ahrens illumos/illumos-gate@e495b6e6735b803e422025a630352ef9bba788c5 Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c Tue Jan 26 11:28:55 2016 (r294792) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c Tue Jan 26 12:26:32 2016 (r294793) @@ -21,7 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2015 by Delphix. All rights reserved. - * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved. * Copyright 2013 Saso Kiselkov. All rights reserved. */ @@ -386,14 +386,16 @@ spa_config_tryenter(spa_t *spa, int lock if (rw == RW_READER) { if (scl->scl_writer || scl->scl_write_wanted) { mutex_exit(&scl->scl_lock); - spa_config_exit(spa, locks ^ (1 << i), tag); + spa_config_exit(spa, locks & ((1 << i) - 1), + tag); return (0); } } else { ASSERT(scl->scl_writer != curthread); if (!refcount_is_zero(&scl->scl_count)) { mutex_exit(&scl->scl_lock); - spa_config_exit(spa, locks ^ (1 << i), tag); + spa_config_exit(spa, locks & ((1 << i) - 1), + tag); return (0); } scl->scl_writer = curthread; From owner-svn-src-all@freebsd.org Tue Jan 26 12:28:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7B0AA46D7E; Tue, 26 Jan 2016 12:28:54 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5EE181E5D; Tue, 26 Jan 2016 12:28:54 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCSrbv009142; Tue, 26 Jan 2016 12:28:53 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCSrbq009141; Tue, 26 Jan 2016 12:28:53 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261228.u0QCSrbq009141@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:28:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294794 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:28:54 -0000 Author: mav Date: Tue Jan 26 12:28:53 2016 New Revision: 294794 URL: https://svnweb.freebsd.org/changeset/base/294794 Log: MFV r294793: 6367 spa_config_tryenter incorrectly handles the multiple-lock case Reviewed by: Alek Pinchuk Reviewed by: Josef 'Jeff' Sipek Reviewed by: Prashanth Sreenivasa Reviewed by: Matthew Ahrens Reviewed by: Dan McDonald Reviewed by: Steven Hartland Approved by: Matthew Ahrens illumos/illumos-gate@e495b6e6735b803e422025a630352ef9bba788c5 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c Tue Jan 26 12:26:32 2016 (r294793) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c Tue Jan 26 12:28:53 2016 (r294794) @@ -21,7 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2015 by Delphix. All rights reserved. - * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright 2013 Martin Matuska . All rights reserved. * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved. * Copyright 2013 Saso Kiselkov. All rights reserved. @@ -449,14 +449,16 @@ spa_config_tryenter(spa_t *spa, int lock if (rw == RW_READER) { if (scl->scl_writer || scl->scl_write_wanted) { mutex_exit(&scl->scl_lock); - spa_config_exit(spa, locks ^ (1 << i), tag); + spa_config_exit(spa, locks & ((1 << i) - 1), + tag); return (0); } } else { ASSERT(scl->scl_writer != curthread); if (!refcount_is_zero(&scl->scl_count)) { mutex_exit(&scl->scl_lock); - spa_config_exit(spa, locks ^ (1 << i), tag); + spa_config_exit(spa, locks & ((1 << i) - 1), + tag); return (0); } scl->scl_writer = curthread; From owner-svn-src-all@freebsd.org Tue Jan 26 12:30:19 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F36A4A46E55; Tue, 26 Jan 2016 12:30:18 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B07FD1FE2; Tue, 26 Jan 2016 12:30:18 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCUHL4009245; Tue, 26 Jan 2016 12:30:17 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCUH5D009243; Tue, 26 Jan 2016 12:30:17 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601261230.u0QCUH5D009243@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Tue, 26 Jan 2016 12:30:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294795 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:30:19 -0000 Author: smh Date: Tue Jan 26 12:30:17 2016 New Revision: 294795 URL: https://svnweb.freebsd.org/changeset/base/294795 Log: ixgbe sysctl hardware defaults Added hw.ix.flow_control which enables the default flow_control of all ix interfaces to be set in loader.conf. Added hw.ix.advertise_speed which enables the default advertised_speed of all ix interfaces to be set in loader.conf. Made enable_aim device independent based on hw.ix.enable_aim default. Reviewed by: erj MFC after: 1 week Sponsored by: Multiplay Differential Revision: https://reviews.freebsd.org/D5060 Modified: head/sys/dev/ixgbe/if_ix.c head/sys/dev/ixgbe/ixgbe.h Modified: head/sys/dev/ixgbe/if_ix.c ============================================================================== --- head/sys/dev/ixgbe/if_ix.c Tue Jan 26 12:28:53 2016 (r294794) +++ head/sys/dev/ixgbe/if_ix.c Tue Jan 26 12:30:17 2016 (r294795) @@ -166,12 +166,14 @@ static void ixgbe_unregister_vlan(void * static void ixgbe_add_device_sysctls(struct adapter *); static void ixgbe_add_hw_stats(struct adapter *); +static int ixgbe_set_flowcntl(struct adapter *, int); +static int ixgbe_set_advertise(struct adapter *, int); /* Sysctl handlers */ static void ixgbe_set_sysctl_value(struct adapter *, const char *, const char *, int *, int); -static int ixgbe_set_flowcntl(SYSCTL_HANDLER_ARGS); -static int ixgbe_set_advertise(SYSCTL_HANDLER_ARGS); +static int ixgbe_sysctl_flowcntl(SYSCTL_HANDLER_ARGS); +static int ixgbe_sysctl_advertise(SYSCTL_HANDLER_ARGS); static int ixgbe_sysctl_thermal_test(SYSCTL_HANDLER_ARGS); static int ixgbe_sysctl_dmac(SYSCTL_HANDLER_ARGS); static int ixgbe_sysctl_phy_temp(SYSCTL_HANDLER_ARGS); @@ -290,6 +292,16 @@ SYSCTL_INT(_hw_ix, OID_AUTO, tx_process_ "Maximum number of sent packets to process at a time," "-1 means unlimited"); +/* Flow control setting, default to full */ +static int ixgbe_flow_control = ixgbe_fc_full; +SYSCTL_INT(_hw_ix, OID_AUTO, flow_control, CTLFLAG_RDTUN, + &ixgbe_flow_control, 0, "Default flow control used for all adapters"); + +/* Advertise Speed, default to 0 (auto) */ +static int ixgbe_advertise_speed = 0; +SYSCTL_INT(_hw_ix, OID_AUTO, advertise_speed, CTLFLAG_RDTUN, + &ixgbe_advertise_speed, 0, "Default advertised speed for all adapters"); + /* ** Smart speed setting, default to on ** this only works as a compile option @@ -568,6 +580,11 @@ ixgbe_attach(device_t dev) break; } + /* hw.ix defaults init */ + ixgbe_set_advertise(adapter, ixgbe_advertise_speed); + ixgbe_set_flowcntl(adapter, ixgbe_flow_control); + adapter->enable_aim = ixgbe_enable_aim; + if ((adapter->msix > 1) && (ixgbe_enable_msix)) error = ixgbe_allocate_msix(adapter); else @@ -1553,7 +1570,7 @@ ixgbe_msix_que(void *arg) /* Do AIM now? */ - if (ixgbe_enable_aim == FALSE) + if (adapter->enable_aim == FALSE) goto no_calc; /* ** Do Adaptive Interrupt Moderation: @@ -4276,7 +4293,7 @@ ixgbe_add_device_sysctls(struct adapter /* Sysctls for all devices */ SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "fc", CTLTYPE_INT | CTLFLAG_RW, adapter, 0, - ixgbe_set_flowcntl, "I", IXGBE_SYSCTL_DESC_SET_FC); + ixgbe_sysctl_flowcntl, "I", IXGBE_SYSCTL_DESC_SET_FC); SYSCTL_ADD_INT(ctx, child, OID_AUTO, "enable_aim", CTLFLAG_RW, @@ -4284,7 +4301,7 @@ ixgbe_add_device_sysctls(struct adapter SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "advertise_speed", CTLTYPE_INT | CTLFLAG_RW, adapter, 0, - ixgbe_set_advertise, "I", IXGBE_SYSCTL_DESC_ADV_SPEED); + ixgbe_sysctl_advertise, "I", IXGBE_SYSCTL_DESC_ADV_SPEED); SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "thermal_test", CTLTYPE_INT | CTLFLAG_RW, adapter, 0, @@ -4649,41 +4666,51 @@ ixgbe_set_sysctl_value(struct adapter *a ** 3 - full */ static int -ixgbe_set_flowcntl(SYSCTL_HANDLER_ARGS) +ixgbe_sysctl_flowcntl(SYSCTL_HANDLER_ARGS) { - int error, last; - struct adapter *adapter = (struct adapter *) arg1; + int error, fc; + struct adapter *adapter; + + adapter = (struct adapter *) arg1; + fc = adapter->fc; - last = adapter->fc; - error = sysctl_handle_int(oidp, &adapter->fc, 0, req); + error = sysctl_handle_int(oidp, &fc, 0, req); if ((error) || (req->newptr == NULL)) return (error); /* Don't bother if it's not changed */ - if (adapter->fc == last) + if (adapter->fc == fc) return (0); - switch (adapter->fc) { - case ixgbe_fc_rx_pause: - case ixgbe_fc_tx_pause: - case ixgbe_fc_full: - adapter->hw.fc.requested_mode = adapter->fc; - if (adapter->num_queues > 1) - ixgbe_disable_rx_drop(adapter); - break; - case ixgbe_fc_none: - adapter->hw.fc.requested_mode = ixgbe_fc_none; - if (adapter->num_queues > 1) - ixgbe_enable_rx_drop(adapter); - break; - default: - adapter->fc = last; - return (EINVAL); + return ixgbe_set_flowcntl(adapter, fc); +} + + +static int +ixgbe_set_flowcntl(struct adapter *adapter, int fc) +{ + + switch (fc) { + case ixgbe_fc_rx_pause: + case ixgbe_fc_tx_pause: + case ixgbe_fc_full: + adapter->hw.fc.requested_mode = adapter->fc; + if (adapter->num_queues > 1) + ixgbe_disable_rx_drop(adapter); + break; + case ixgbe_fc_none: + adapter->hw.fc.requested_mode = ixgbe_fc_none; + if (adapter->num_queues > 1) + ixgbe_enable_rx_drop(adapter); + break; + default: + return (EINVAL); } + adapter->fc = fc; /* Don't autoneg if forcing a value */ adapter->hw.fc.disable_fc_autoneg = TRUE; ixgbe_fc_enable(&adapter->hw); - return error; + return (0); } /* @@ -4694,31 +4721,39 @@ ixgbe_set_flowcntl(SYSCTL_HANDLER_ARGS) ** 0x4 - advertise 10G */ static int -ixgbe_set_advertise(SYSCTL_HANDLER_ARGS) +ixgbe_sysctl_advertise(SYSCTL_HANDLER_ARGS) { - int error = 0, requested; - struct adapter *adapter; - device_t dev; - struct ixgbe_hw *hw; - ixgbe_link_speed speed = 0; + int error, advertise; + struct adapter *adapter; adapter = (struct adapter *) arg1; - dev = adapter->dev; - hw = &adapter->hw; + advertise = adapter->advertise; - requested = adapter->advertise; - error = sysctl_handle_int(oidp, &requested, 0, req); + error = sysctl_handle_int(oidp, &advertise, 0, req); if ((error) || (req->newptr == NULL)) return (error); + /* Checks to validate new value */ + if (adapter->advertise == advertise) /* no change */ + return (0); + + return ixgbe_set_advertise(adapter, advertise); +} + +static int +ixgbe_set_advertise(struct adapter *adapter, int advertise) +{ + device_t dev; + struct ixgbe_hw *hw; + ixgbe_link_speed speed; + + hw = &adapter->hw; + dev = adapter->dev; + /* No speed changes for backplane media */ if (hw->phy.media_type == ixgbe_media_type_backplane) return (ENODEV); - /* Checks to validate new value */ - if (adapter->advertise == requested) /* no change */ - return (0); - if (!((hw->phy.media_type == ixgbe_media_type_copper) || (hw->phy.multispeed_fiber))) { device_printf(dev, @@ -4727,13 +4762,13 @@ ixgbe_set_advertise(SYSCTL_HANDLER_ARGS) return (EINVAL); } - if (requested < 0x1 || requested > 0x7) { + if (advertise < 0x1 || advertise > 0x7) { device_printf(dev, "Invalid advertised speed; valid modes are 0x1 through 0x7\n"); return (EINVAL); } - if ((requested & 0x1) + if ((advertise & 0x1) && (hw->mac.type != ixgbe_mac_X540) && (hw->mac.type != ixgbe_mac_X550)) { device_printf(dev, "Set Advertise: 100Mb on X540/X550 only\n"); @@ -4741,18 +4776,19 @@ ixgbe_set_advertise(SYSCTL_HANDLER_ARGS) } /* Set new value and report new advertised mode */ - if (requested & 0x1) + speed = 0; + if (advertise & 0x1) speed |= IXGBE_LINK_SPEED_100_FULL; - if (requested & 0x2) + if (advertise & 0x2) speed |= IXGBE_LINK_SPEED_1GB_FULL; - if (requested & 0x4) + if (advertise & 0x4) speed |= IXGBE_LINK_SPEED_10GB_FULL; + adapter->advertise = advertise; hw->mac.autotry_restart = TRUE; hw->mac.ops.setup_link(hw, speed, TRUE); - adapter->advertise = requested; - return (error); + return (0); } /* Modified: head/sys/dev/ixgbe/ixgbe.h ============================================================================== --- head/sys/dev/ixgbe/ixgbe.h Tue Jan 26 12:28:53 2016 (r294794) +++ head/sys/dev/ixgbe/ixgbe.h Tue Jan 26 12:30:17 2016 (r294795) @@ -497,6 +497,7 @@ struct adapter { u32 optics; u32 fc; /* local flow ctrl setting */ int advertise; /* link speeds */ + bool enable_aim; /* adaptive interrupt moderation */ bool link_active; u16 max_frame_size; u16 num_segs; From owner-svn-src-all@freebsd.org Tue Jan 26 12:32:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED733A46FD7; Tue, 26 Jan 2016 12:32:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BBDDF62C; Tue, 26 Jan 2016 12:32:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCWkJV011800; Tue, 26 Jan 2016 12:32:46 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCWk3t011799; Tue, 26 Jan 2016 12:32:46 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261232.u0QCWk3t011799@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:32:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294796 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:32:48 -0000 Author: mav Date: Tue Jan 26 12:32:46 2016 New Revision: 294796 URL: https://svnweb.freebsd.org/changeset/base/294796 Log: 6319 assertion failed in zio_ddt_write: bp->blk_birth == txg Reviewed by: George Wilson Approved by: Dan McDonald illumos/illumos-gate@b39b744be78c6327db43c1f69d11c2f5909f73cb This is revert of 5693. Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zio.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zio.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zio.c Tue Jan 26 12:30:17 2016 (r294795) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zio.c Tue Jan 26 12:32:46 2016 (r294796) @@ -1133,6 +1133,8 @@ zio_write_bp_init(zio_t *zio) zio->io_pipeline |= ZIO_STAGE_DDT_WRITE; return (ZIO_PIPELINE_CONTINUE); } + zio->io_bp_override = NULL; + BP_ZERO(bp); } if (!BP_IS_HOLE(bp) && bp->blk_birth == zio->io_txg) { From owner-svn-src-all@freebsd.org Tue Jan 26 12:34:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E236A6E078; Tue, 26 Jan 2016 12:34:00 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E358F7E7; Tue, 26 Jan 2016 12:33:59 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCXwHj011912; Tue, 26 Jan 2016 12:33:58 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCXwdw011911; Tue, 26 Jan 2016 12:33:58 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261233.u0QCXwdw011911@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:33:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294797 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:34:00 -0000 Author: mav Date: Tue Jan 26 12:33:58 2016 New Revision: 294797 URL: https://svnweb.freebsd.org/changeset/base/294797 Log: MFV r294796: 6319 assertion failed in zio_ddt_write: bp->blk_birth == txg Reviewed by: George Wilson Approved by: Dan McDonald illumos/illumos-gate@b39b744be78c6327db43c1f69d11c2f5909f73cb This is revert of 5693. Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Tue Jan 26 12:32:46 2016 (r294796) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Tue Jan 26 12:33:58 2016 (r294797) @@ -1217,6 +1217,8 @@ zio_write_bp_init(zio_t *zio) zio->io_pipeline |= ZIO_STAGE_DDT_WRITE; return (ZIO_PIPELINE_CONTINUE); } + zio->io_bp_override = NULL; + BP_ZERO(bp); } if (!BP_IS_HOLE(bp) && bp->blk_birth == zio->io_txg) { From owner-svn-src-all@freebsd.org Tue Jan 26 12:36:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 029FCA6E16E; Tue, 26 Jan 2016 12:36:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C36169DB; Tue, 26 Jan 2016 12:36:31 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCaU7N012042; Tue, 26 Jan 2016 12:36:30 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCaUMJ012041; Tue, 26 Jan 2016 12:36:30 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261236.u0QCaUMJ012041@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:36:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294798 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:36:32 -0000 Author: mav Date: Tue Jan 26 12:36:30 2016 New Revision: 294798 URL: https://svnweb.freebsd.org/changeset/base/294798 Log: 6292 exporting a pool while an async destroy is running can leave entries in the deferred tree Reviewed by: Paul Dagnelie Reviewed by: Matthew Ahrens Reviewed by: Andriy Gapon Reviewed by: Fabian Keil Approved by: Gordon Ross illumos/illumos-gate@a443cc80c742af740aa82130db840f02b4389365 Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c Tue Jan 26 12:33:58 2016 (r294797) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c Tue Jan 26 12:36:30 2016 (r294798) @@ -1413,10 +1413,23 @@ dsl_scan_sync(dsl_pool_t *dp, dmu_tx_t * } /* + * Only process scans in sync pass 1. + */ + if (spa_sync_pass(dp->dp_spa) > 1) + return; + + /* + * If the spa is shutting down, then stop scanning. This will + * ensure that the scan does not dirty any new data during the + * shutdown phase. + */ + if (spa_shutting_down(spa)) + return; + + /* * If the scan is inactive due to a stalled async destroy, try again. */ - if ((!scn->scn_async_stalled && !dsl_scan_active(scn)) || - spa_sync_pass(dp->dp_spa) > 1) + if (!scn->scn_async_stalled && !dsl_scan_active(scn)) return; scn->scn_visited_this_txg = 0; From owner-svn-src-all@freebsd.org Tue Jan 26 12:37:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7D35EA6E1DA; Tue, 26 Jan 2016 12:37:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4E0B3B2E; Tue, 26 Jan 2016 12:37:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCbNPp012130; Tue, 26 Jan 2016 12:37:23 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCbN1Y012129; Tue, 26 Jan 2016 12:37:23 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261237.u0QCbN1Y012129@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:37:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294799 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:37:24 -0000 Author: mav Date: Tue Jan 26 12:37:23 2016 New Revision: 294799 URL: https://svnweb.freebsd.org/changeset/base/294799 Log: MFV r294798: 6292 exporting a pool while an async destroy is running can leave entries in the deferred tree Reviewed by: Paul Dagnelie Reviewed by: Matthew Ahrens Reviewed by: Andriy Gapon Reviewed by: Fabian Keil Approved by: Gordon Ross illumos/illumos-gate@a443cc80c742af740aa82130db840f02b4389365 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c Tue Jan 26 12:36:30 2016 (r294798) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c Tue Jan 26 12:37:23 2016 (r294799) @@ -1441,10 +1441,23 @@ dsl_scan_sync(dsl_pool_t *dp, dmu_tx_t * } /* + * Only process scans in sync pass 1. + */ + if (spa_sync_pass(dp->dp_spa) > 1) + return; + + /* + * If the spa is shutting down, then stop scanning. This will + * ensure that the scan does not dirty any new data during the + * shutdown phase. + */ + if (spa_shutting_down(spa)) + return; + + /* * If the scan is inactive due to a stalled async destroy, try again. */ - if ((!scn->scn_async_stalled && !dsl_scan_active(scn)) || - spa_sync_pass(dp->dp_spa) > 1) + if (!scn->scn_async_stalled && !dsl_scan_active(scn)) return; scn->scn_visited_this_txg = 0; From owner-svn-src-all@freebsd.org Tue Jan 26 12:39:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA6AAA6E2AB; Tue, 26 Jan 2016 12:39:08 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 870B3D57; Tue, 26 Jan 2016 12:39:08 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCd7nZ012229; Tue, 26 Jan 2016 12:39:07 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCd7Un012228; Tue, 26 Jan 2016 12:39:07 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261239.u0QCd7Un012228@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:39:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294800 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:39:08 -0000 Author: mav Date: Tue Jan 26 12:39:07 2016 New Revision: 294800 URL: https://svnweb.freebsd.org/changeset/base/294800 Log: 6385 Fix unlocking order in zfs_zget Reviewed by: Brian Behlendorf Reviewed by: Matthew Ahrens Reviewed by: Dan Kimmel Reviewed by: Andriy Gapon Approved by: Robert Mustacchi Author: Richard Yao illumos/illumos-gate@eaef6a96de3f6afbbccc69bd7a0aed4463689d0a Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_znode.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_znode.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_znode.c Tue Jan 26 12:37:23 2016 (r294799) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_znode.c Tue Jan 26 12:39:07 2016 (r294800) @@ -1148,8 +1148,8 @@ zfs_zget(zfsvfs_t *zfsvfs, uint64_t obj_ *zpp = zp; err = 0; } - sa_buf_rele(db, NULL); mutex_exit(&zp->z_lock); + sa_buf_rele(db, NULL); ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num); return (err); } From owner-svn-src-all@freebsd.org Tue Jan 26 12:44:50 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7035FA6E4C5; Tue, 26 Jan 2016 12:44:50 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 421C01AF; Tue, 26 Jan 2016 12:44:50 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCinnH015033; Tue, 26 Jan 2016 12:44:49 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCincR015032; Tue, 26 Jan 2016 12:44:49 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261244.u0QCincR015032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:44:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294801 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:44:50 -0000 Author: mav Date: Tue Jan 26 12:44:49 2016 New Revision: 294801 URL: https://svnweb.freebsd.org/changeset/base/294801 Log: MFV r294800: 6385 Fix unlocking order in zfs_zget Reviewed by: Brian Behlendorf Reviewed by: Matthew Ahrens Reviewed by: Dan Kimmel Reviewed by: Andriy Gapon Approved by: Robert Mustacchi Author: Richard Yao illumos/illumos-gate@eaef6a96de3f6afbbccc69bd7a0aed4463689d0a Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Tue Jan 26 12:39:07 2016 (r294800) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Tue Jan 26 12:44:49 2016 (r294801) @@ -1175,13 +1175,13 @@ again: *zpp = zp; err = 0; } - sa_buf_rele(db, NULL); /* Don't let the vnode disappear after ZFS_OBJ_HOLD_EXIT. */ if (err == 0) VN_HOLD(vp); mutex_exit(&zp->z_lock); + sa_buf_rele(db, NULL); ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num); if (err == 0) { From owner-svn-src-all@freebsd.org Tue Jan 26 12:47:34 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3632A6E59B; Tue, 26 Jan 2016 12:47:34 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A25683BB; Tue, 26 Jan 2016 12:47:34 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QClX4j015167; Tue, 26 Jan 2016 12:47:33 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QClXoc015166; Tue, 26 Jan 2016 12:47:33 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261247.u0QClXoc015166@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:47:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294802 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:47:34 -0000 Author: mav Date: Tue Jan 26 12:47:33 2016 New Revision: 294802 URL: https://svnweb.freebsd.org/changeset/base/294802 Log: 6334 Cannot unlink files when over quota Reviewed by: Matthew Ahrens Reviewed by: Toomas Soome Approved by: Dan McDonald Author: Simon Klinkert illumos/illumos-gate@6575bca01367958c7237253d88e5fa9ef0b1650a Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_vnops.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_vnops.c Tue Jan 26 12:44:49 2016 (r294801) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_vnops.c Tue Jan 26 12:47:33 2016 (r294802) @@ -1734,12 +1734,9 @@ top: dmu_tx_hold_zap(tx, zfsvfs->z_unlinkedobj, FALSE, NULL); /* - * Mark this transaction as typically resulting in a net free of - * space, unless object removal will be delayed indefinitely - * (due to active holds on the vnode due to the file being open). + * Mark this transaction as typically resulting in a net free of space */ - if (may_delete_now) - dmu_tx_mark_netfree(tx); + dmu_tx_mark_netfree(tx); error = dmu_tx_assign(tx, waited ? TXG_WAITED : TXG_NOWAIT); if (error) { From owner-svn-src-all@freebsd.org Tue Jan 26 12:48:11 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED5BDA6E5EC; Tue, 26 Jan 2016 12:48:11 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BA464777; Tue, 26 Jan 2016 12:48:11 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCmAHP015245; Tue, 26 Jan 2016 12:48:10 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCmAI1015244; Tue, 26 Jan 2016 12:48:10 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261248.u0QCmAI1015244@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:48:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294803 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:48:12 -0000 Author: mav Date: Tue Jan 26 12:48:10 2016 New Revision: 294803 URL: https://svnweb.freebsd.org/changeset/base/294803 Log: MFV r294802: 6334 Cannot unlink files when over quota Reviewed by: Matthew Ahrens Reviewed by: Toomas Soome Approved by: Dan McDonald Author: Simon Klinkert illumos/illumos-gate@6575bca01367958c7237253d88e5fa9ef0b1650a Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Jan 26 12:47:33 2016 (r294802) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Jan 26 12:48:10 2016 (r294803) @@ -2009,12 +2009,9 @@ top: dmu_tx_hold_zap(tx, zfsvfs->z_unlinkedobj, FALSE, NULL); /* - * Mark this transaction as typically resulting in a net free of - * space, unless object removal will be delayed indefinitely - * (due to active holds on the vnode due to the file being open). + * Mark this transaction as typically resulting in a net free of space */ - if (may_delete_now) - dmu_tx_mark_netfree(tx); + dmu_tx_mark_netfree(tx); error = dmu_tx_assign(tx, waited ? TXG_WAITED : TXG_NOWAIT); if (error) { From owner-svn-src-all@freebsd.org Tue Jan 26 12:49:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9F9D4A6E65B; Tue, 26 Jan 2016 12:49:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 697968FC; Tue, 26 Jan 2016 12:49:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCnV1T015331; Tue, 26 Jan 2016 12:49:31 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCnVRZ015330; Tue, 26 Jan 2016 12:49:31 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261249.u0QCnVRZ015330@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:49:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294804 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:49:32 -0000 Author: mav Date: Tue Jan 26 12:49:31 2016 New Revision: 294804 URL: https://svnweb.freebsd.org/changeset/base/294804 Log: 6386 Fix function call with uninitialized value in vdev_inuse Reviewed by: Brian Behlendorf Reviewed by: Matthew Ahrens Reviewed by: Dan Kimmel Approved by: Robert Mustacchi Author: Richard Yao illumos/illumos-gate@5bdd995ddb777f538bfbcc5e2d5ff1bed07ae56e Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c Tue Jan 26 12:48:10 2016 (r294803) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c Tue Jan 26 12:49:31 2016 (r294804) @@ -596,7 +596,8 @@ vdev_inuse(vdev_t *vd, uint64_t crtxg, v * read-only. Instead we look to see if the pools is marked * read-only in the namespace and set the state to active. */ - if ((spa = spa_by_guid(pool_guid, device_guid)) != NULL && + if (state != POOL_STATE_SPARE && state != POOL_STATE_L2CACHE && + (spa = spa_by_guid(pool_guid, device_guid)) != NULL && spa_mode(spa) == FREAD) state = POOL_STATE_ACTIVE; From owner-svn-src-all@freebsd.org Tue Jan 26 12:50:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C536A6E6DB; Tue, 26 Jan 2016 12:50:15 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6B411A41; Tue, 26 Jan 2016 12:50:15 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCoEio015423; Tue, 26 Jan 2016 12:50:14 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCoEqw015422; Tue, 26 Jan 2016 12:50:14 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261250.u0QCoEqw015422@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:50:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294805 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:50:15 -0000 Author: mav Date: Tue Jan 26 12:50:14 2016 New Revision: 294805 URL: https://svnweb.freebsd.org/changeset/base/294805 Log: MFV r294804: 6386 Fix function call with uninitialized value in vdev_inuse Reviewed by: Brian Behlendorf Reviewed by: Matthew Ahrens Reviewed by: Dan Kimmel Approved by: Robert Mustacchi Author: Richard Yao illumos/illumos-gate@5bdd995ddb777f538bfbcc5e2d5ff1bed07ae56e Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c Tue Jan 26 12:49:31 2016 (r294804) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c Tue Jan 26 12:50:14 2016 (r294805) @@ -602,7 +602,8 @@ vdev_inuse(vdev_t *vd, uint64_t crtxg, v * read-only. Instead we look to see if the pools is marked * read-only in the namespace and set the state to active. */ - if ((spa = spa_by_guid(pool_guid, device_guid)) != NULL && + if (state != POOL_STATE_SPARE && state != POOL_STATE_L2CACHE && + (spa = spa_by_guid(pool_guid, device_guid)) != NULL && spa_mode(spa) == FREAD) state = POOL_STATE_ACTIVE; From owner-svn-src-all@freebsd.org Tue Jan 26 12:51:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 359D0A6E7E5; Tue, 26 Jan 2016 12:51:43 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 043C1D1B; Tue, 26 Jan 2016 12:51:42 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCpfkc017477; Tue, 26 Jan 2016 12:51:41 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCpfre017476; Tue, 26 Jan 2016 12:51:41 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261251.u0QCpfre017476@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:51:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294806 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:51:43 -0000 Author: mav Date: Tue Jan 26 12:51:41 2016 New Revision: 294806 URL: https://svnweb.freebsd.org/changeset/base/294806 Log: 6388 Failure of userland copy should return EFAULT Reviewed by: Brian Behlendorf Reviewed by: Matthew Ahrens Reviewed by: Dan Kimmel Approved by: Robert Mustacchi Author: Richard Yao illumos/illumos-gate@c71c00bbe8a9cdc7e3f4048b751f48e80441d506 Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Tue Jan 26 12:50:14 2016 (r294805) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Tue Jan 26 12:51:41 2016 (r294806) @@ -1303,7 +1303,7 @@ get_nvlist(uint64_t nvl, uint64_t size, if ((error = ddi_copyin((void *)(uintptr_t)nvl, packed, size, iflag)) != 0) { kmem_free(packed, size); - return (error); + return (SET_ERROR(EFAULT)); } if ((error = nvlist_unpack(packed, size, &list, 0)) != 0) { From owner-svn-src-all@freebsd.org Tue Jan 26 12:52:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3014BA6E932; Tue, 26 Jan 2016 12:52:18 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 010CAF17; Tue, 26 Jan 2016 12:52:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCqHY1017549; Tue, 26 Jan 2016 12:52:17 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCqH6m017548; Tue, 26 Jan 2016 12:52:17 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261252.u0QCqH6m017548@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:52:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294807 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:52:18 -0000 Author: mav Date: Tue Jan 26 12:52:16 2016 New Revision: 294807 URL: https://svnweb.freebsd.org/changeset/base/294807 Log: MFV r294806: 6388 Failure of userland copy should return EFAULT Reviewed by: Brian Behlendorf Reviewed by: Matthew Ahrens Reviewed by: Dan Kimmel Approved by: Robert Mustacchi Author: Richard Yao illumos/illumos-gate@c71c00bbe8a9cdc7e3f4048b751f48e80441d506 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Tue Jan 26 12:51:41 2016 (r294806) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Tue Jan 26 12:52:16 2016 (r294807) @@ -1339,7 +1339,7 @@ get_nvlist(uint64_t nvl, uint64_t size, if ((error = ddi_copyin((void *)(uintptr_t)nvl, packed, size, iflag)) != 0) { kmem_free(packed, size); - return (error); + return (SET_ERROR(EFAULT)); } if ((error = nvlist_unpack(packed, size, &list, 0)) != 0) { From owner-svn-src-all@freebsd.org Tue Jan 26 12:53:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C21CA6EA94; Tue, 26 Jan 2016 12:53:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C72110E3; Tue, 26 Jan 2016 12:53:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCrNB3018250; Tue, 26 Jan 2016 12:53:23 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCrN36018249; Tue, 26 Jan 2016 12:53:23 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261253.u0QCrN36018249@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:53:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294808 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:53:24 -0000 Author: mav Date: Tue Jan 26 12:53:23 2016 New Revision: 294808 URL: https://svnweb.freebsd.org/changeset/base/294808 Log: 6421 Add missing multilist_destroy calls to arc_fini Reviewed by: Dan Kimmel Reviewed by: Matthew Ahrens Reviewed by: Jorgen Lundman Approved by: Robert Mustacchi Author: Prakash Surya illumos/illumos-gate@57deb2328260c447bf1db25fe74e0eece102733e Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c Tue Jan 26 12:52:16 2016 (r294807) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c Tue Jan 26 12:53:23 2016 (r294808) @@ -5234,10 +5234,12 @@ arc_fini(void) multilist_destroy(&arc_mru_ghost->arcs_list[ARC_BUFC_METADATA]); multilist_destroy(&arc_mfu->arcs_list[ARC_BUFC_METADATA]); multilist_destroy(&arc_mfu_ghost->arcs_list[ARC_BUFC_METADATA]); + multilist_destroy(&arc_l2c_only->arcs_list[ARC_BUFC_METADATA]); multilist_destroy(&arc_mru->arcs_list[ARC_BUFC_DATA]); multilist_destroy(&arc_mru_ghost->arcs_list[ARC_BUFC_DATA]); multilist_destroy(&arc_mfu->arcs_list[ARC_BUFC_DATA]); multilist_destroy(&arc_mfu_ghost->arcs_list[ARC_BUFC_DATA]); + multilist_destroy(&arc_l2c_only->arcs_list[ARC_BUFC_DATA]); buf_fini(); From owner-svn-src-all@freebsd.org Tue Jan 26 12:54:05 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4011AA6EAEC; Tue, 26 Jan 2016 12:54:05 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0C804126D; Tue, 26 Jan 2016 12:54:04 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCs3Lt018325; Tue, 26 Jan 2016 12:54:03 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCs3ro018324; Tue, 26 Jan 2016 12:54:03 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261254.u0QCs3ro018324@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:54:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294809 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:54:05 -0000 Author: mav Date: Tue Jan 26 12:54:03 2016 New Revision: 294809 URL: https://svnweb.freebsd.org/changeset/base/294809 Log: MFV r294808: 6421 Add missing multilist_destroy calls to arc_fini Reviewed by: Dan Kimmel Reviewed by: Matthew Ahrens Reviewed by: Jorgen Lundman Approved by: Robert Mustacchi Author: Prakash Surya illumos/illumos-gate@57deb2328260c447bf1db25fe74e0eece102733e Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Tue Jan 26 12:53:23 2016 (r294808) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Tue Jan 26 12:54:03 2016 (r294809) @@ -5567,10 +5567,12 @@ arc_fini(void) multilist_destroy(&arc_mru_ghost->arcs_list[ARC_BUFC_METADATA]); multilist_destroy(&arc_mfu->arcs_list[ARC_BUFC_METADATA]); multilist_destroy(&arc_mfu_ghost->arcs_list[ARC_BUFC_METADATA]); + multilist_destroy(&arc_l2c_only->arcs_list[ARC_BUFC_METADATA]); multilist_destroy(&arc_mru->arcs_list[ARC_BUFC_DATA]); multilist_destroy(&arc_mru_ghost->arcs_list[ARC_BUFC_DATA]); multilist_destroy(&arc_mfu->arcs_list[ARC_BUFC_DATA]); multilist_destroy(&arc_mfu_ghost->arcs_list[ARC_BUFC_DATA]); + multilist_destroy(&arc_l2c_only->arcs_list[ARC_BUFC_DATA]); buf_fini(); From owner-svn-src-all@freebsd.org Tue Jan 26 12:55:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 13921A6EC0F; Tue, 26 Jan 2016 12:55:45 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E1E2D142B; Tue, 26 Jan 2016 12:55:44 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCthnu018440; Tue, 26 Jan 2016 12:55:43 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCthbu018437; Tue, 26 Jan 2016 12:55:43 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261255.u0QCthbu018437@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:55:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294810 - in vendor-sys/illumos/dist/uts/common/fs/zfs: . sys X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:55:45 -0000 Author: mav Date: Tue Jan 26 12:55:43 2016 New Revision: 294810 URL: https://svnweb.freebsd.org/changeset/base/294810 Log: 6414 vdev_config_sync could be simpler Reviewed by: George Wilson Reviewed by: Matthew Ahrens Approved by: Robert Mustacchi Author: Will Andrews illumos/illumos-gate@eb5bb58421f46cee79155a55688e6c675e7dd361 Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev.h vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c Tue Jan 26 12:54:03 2016 (r294809) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c Tue Jan 26 12:55:43 2016 (r294810) @@ -6423,16 +6423,10 @@ spa_sync(spa_t *spa, uint64_t txg) if (svdcount == SPA_DVAS_PER_BP) break; } - error = vdev_config_sync(svd, svdcount, txg, B_FALSE); - if (error != 0) - error = vdev_config_sync(svd, svdcount, txg, - B_TRUE); + error = vdev_config_sync(svd, svdcount, txg); } else { error = vdev_config_sync(rvd->vdev_child, - rvd->vdev_children, txg, B_FALSE); - if (error != 0) - error = vdev_config_sync(rvd->vdev_child, - rvd->vdev_children, txg, B_TRUE); + rvd->vdev_children, txg); } if (error == 0) Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev.h ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev.h Tue Jan 26 12:54:03 2016 (r294809) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev.h Tue Jan 26 12:55:43 2016 (r294810) @@ -122,8 +122,7 @@ extern void vdev_queue_io_done(zio_t *zi extern void vdev_config_dirty(vdev_t *vd); extern void vdev_config_clean(vdev_t *vd); -extern int vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg, - boolean_t); +extern int vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg); extern void vdev_state_dirty(vdev_t *vd); extern void vdev_state_clean(vdev_t *vd); Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c Tue Jan 26 12:54:03 2016 (r294809) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c Tue Jan 26 12:55:43 2016 (r294810) @@ -1177,15 +1177,16 @@ vdev_label_sync_list(spa_t *spa, int l, * at any time, you can just call it again, and it will resume its work. */ int -vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg, boolean_t tryhard) +vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg) { spa_t *spa = svd[0]->vdev_spa; uberblock_t *ub = &spa->spa_uberblock; vdev_t *vd; zio_t *zio; - int error; + int error = 0; int flags = ZIO_FLAG_CONFIG_WRITER | ZIO_FLAG_CANFAIL; +retry: /* * Normally, we don't want to try too hard to write every label and * uberblock. If there is a flaky disk, we don't want the rest of the @@ -1193,8 +1194,11 @@ vdev_config_sync(vdev_t **svd, int svdco * single label out, we should retry with ZIO_FLAG_TRYHARD before * bailing out and declaring the pool faulted. */ - if (tryhard) + if (error != 0) { + if ((flags & ZIO_FLAG_TRYHARD) != 0) + return (error); flags |= ZIO_FLAG_TRYHARD; + } ASSERT(ub->ub_txg <= txg); @@ -1238,7 +1242,7 @@ vdev_config_sync(vdev_t **svd, int svdco * are committed to stable storage before the uberblock update. */ if ((error = vdev_label_sync_list(spa, 0, txg, flags)) != 0) - return (error); + goto retry; /* * Sync the uberblocks to all vdevs in svd[]. @@ -1256,7 +1260,7 @@ vdev_config_sync(vdev_t **svd, int svdco * to the new uberblocks. */ if ((error = vdev_uberblock_sync_list(svd, svdcount, ub, flags)) != 0) - return (error); + goto retry; /* * Sync out odd labels for every dirty vdev. If the system dies @@ -1268,5 +1272,8 @@ vdev_config_sync(vdev_t **svd, int svdco * to disk to ensure that all odd-label updates are committed to * stable storage before the next transaction group begins. */ - return (vdev_label_sync_list(spa, 1, txg, flags)); + if ((error = vdev_label_sync_list(spa, 1, txg, flags)) != 0) + goto retry; + + return (0); } From owner-svn-src-all@freebsd.org Tue Jan 26 12:59:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B48DA6ECD6; Tue, 26 Jan 2016 12:59:00 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31EAB1614; Tue, 26 Jan 2016 12:59:00 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QCwxsE018606; Tue, 26 Jan 2016 12:58:59 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QCwwII018603; Tue, 26 Jan 2016 12:58:58 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261258.u0QCwwII018603@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 12:58:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294811 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 12:59:00 -0000 Author: mav Date: Tue Jan 26 12:58:58 2016 New Revision: 294811 URL: https://svnweb.freebsd.org/changeset/base/294811 Log: MFV r294810: 6414 vdev_config_sync could be simpler Reviewed by: George Wilson Reviewed by: Matthew Ahrens Approved by: Robert Mustacchi Author: Will Andrews illumos/illumos-gate@eb5bb58421f46cee79155a55688e6c675e7dd361 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Tue Jan 26 12:55:43 2016 (r294810) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Tue Jan 26 12:58:58 2016 (r294811) @@ -6768,16 +6768,10 @@ spa_sync(spa_t *spa, uint64_t txg) if (svdcount == SPA_DVAS_PER_BP) break; } - error = vdev_config_sync(svd, svdcount, txg, B_FALSE); - if (error != 0) - error = vdev_config_sync(svd, svdcount, txg, - B_TRUE); + error = vdev_config_sync(svd, svdcount, txg); } else { error = vdev_config_sync(rvd->vdev_child, - rvd->vdev_children, txg, B_FALSE); - if (error != 0) - error = vdev_config_sync(rvd->vdev_child, - rvd->vdev_children, txg, B_TRUE); + rvd->vdev_children, txg); } if (error == 0) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h Tue Jan 26 12:55:43 2016 (r294810) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h Tue Jan 26 12:58:58 2016 (r294811) @@ -127,8 +127,7 @@ extern void vdev_queue_register_lastoffs extern void vdev_config_dirty(vdev_t *vd); extern void vdev_config_clean(vdev_t *vd); -extern int vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg, - boolean_t); +extern int vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg); extern void vdev_state_dirty(vdev_t *vd); extern void vdev_state_clean(vdev_t *vd); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c Tue Jan 26 12:55:43 2016 (r294810) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c Tue Jan 26 12:58:58 2016 (r294811) @@ -1194,15 +1194,16 @@ vdev_label_sync_list(spa_t *spa, int l, * at any time, you can just call it again, and it will resume its work. */ int -vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg, boolean_t tryhard) +vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg) { spa_t *spa = svd[0]->vdev_spa; uberblock_t *ub = &spa->spa_uberblock; vdev_t *vd; zio_t *zio; - int error; + int error = 0; int flags = ZIO_FLAG_CONFIG_WRITER | ZIO_FLAG_CANFAIL; +retry: /* * Normally, we don't want to try too hard to write every label and * uberblock. If there is a flaky disk, we don't want the rest of the @@ -1210,8 +1211,11 @@ vdev_config_sync(vdev_t **svd, int svdco * single label out, we should retry with ZIO_FLAG_TRYHARD before * bailing out and declaring the pool faulted. */ - if (tryhard) + if (error != 0) { + if ((flags & ZIO_FLAG_TRYHARD) != 0) + return (error); flags |= ZIO_FLAG_TRYHARD; + } ASSERT(ub->ub_txg <= txg); @@ -1255,7 +1259,7 @@ vdev_config_sync(vdev_t **svd, int svdco * are committed to stable storage before the uberblock update. */ if ((error = vdev_label_sync_list(spa, 0, txg, flags)) != 0) - return (error); + goto retry; /* * Sync the uberblocks to all vdevs in svd[]. @@ -1273,7 +1277,7 @@ vdev_config_sync(vdev_t **svd, int svdco * to the new uberblocks. */ if ((error = vdev_uberblock_sync_list(svd, svdcount, ub, flags)) != 0) - return (error); + goto retry; /* * Sync out odd labels for every dirty vdev. If the system dies @@ -1286,7 +1290,7 @@ vdev_config_sync(vdev_t **svd, int svdco * stable storage before the next transaction group begins. */ if ((error = vdev_label_sync_list(spa, 1, txg, flags)) != 0) - return (error); + goto retry;; trim_thread_wakeup(spa); From owner-svn-src-all@freebsd.org Tue Jan 26 13:02:17 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C88CBA6EECD; Tue, 26 Jan 2016 13:02:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9F48A1A8B; Tue, 26 Jan 2016 13:02:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QD2GvQ021365; Tue, 26 Jan 2016 13:02:16 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QD2Glf021364; Tue, 26 Jan 2016 13:02:16 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261302.u0QD2Glf021364@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:02:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294812 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:02:18 -0000 Author: mav Date: Tue Jan 26 13:02:16 2016 New Revision: 294812 URL: https://svnweb.freebsd.org/changeset/base/294812 Log: 6434 sa_find_sizes() may compute wrong SA header size Reviewed-by: Ned Bass Reviewed-by: Brian Behlendorf Reviewed by: Andriy Gapon Reviewed by: Matthew Ahrens Approved by: Robert Mustacchi Author: James Pan illumos/illumos-gate@3502ed6e7cb3f3d2e781960ab8fe465fdc884834 Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c Tue Jan 26 12:58:58 2016 (r294811) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c Tue Jan 26 13:02:16 2016 (r294812) @@ -547,10 +547,9 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ { int var_size = 0; int i; - int j = -1; int full_space; int hdrsize; - boolean_t done = B_FALSE; + int extra_hdrsize; if (buftype == SA_BONUS && sa->sa_force_spill) { *total = 0; @@ -561,10 +560,9 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ *index = -1; *total = 0; + *will_spill = B_FALSE; - if (buftype == SA_BONUS) - *will_spill = B_FALSE; - + extra_hdrsize = 0; hdrsize = (SA_BONUSTYPE_FROM_DB(db) == DMU_OT_ZNODE) ? 0 : sizeof (sa_hdr_phys_t); @@ -576,8 +574,8 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ *total = P2ROUNDUP(*total, 8); *total += attr_desc[i].sa_length; - if (done) - goto next; + if (*will_spill) + continue; is_var_sz = (SA_REGISTERED_LEN(sa, attr_desc[i].sa_attr) == 0); if (is_var_sz) { @@ -585,21 +583,28 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ } if (is_var_sz && var_size > 1) { - if (P2ROUNDUP(hdrsize + sizeof (uint16_t), 8) + + /* + * Don't worry that the spill block might overflow. + * It will be resized if needed in sa_build_layouts(). + */ + if (buftype == SA_SPILL || + P2ROUNDUP(hdrsize + sizeof (uint16_t), 8) + *total < full_space) { /* * Account for header space used by array of * optional sizes of variable-length attributes. - * Record the index in case this increase needs - * to be reversed due to spill-over. + * Record the extra header size in case this + * increase needs to be reversed due to + * spill-over. */ hdrsize += sizeof (uint16_t); - j = i; + if (*index != -1) + extra_hdrsize += sizeof (uint16_t); } else { - done = B_TRUE; - *index = i; - if (buftype == SA_BONUS) - *will_spill = B_TRUE; + ASSERT(buftype == SA_BONUS); + if (*index == -1) + *index = i; + *will_spill = B_TRUE; continue; } } @@ -614,22 +619,15 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ *total + P2ROUNDUP(hdrsize, 8) > (full_space - sizeof (blkptr_t))) { *index = i; - done = B_TRUE; } -next: if (*total + P2ROUNDUP(hdrsize, 8) > full_space && buftype == SA_BONUS) *will_spill = B_TRUE; } - /* - * j holds the index of the last variable-sized attribute for - * which hdrsize was increased. Reverse the increase if that - * attribute will be relocated to the spill block. - */ - if (*will_spill && j == *index) - hdrsize -= sizeof (uint16_t); + if (*will_spill) + hdrsize -= extra_hdrsize; hdrsize = P2ROUNDUP(hdrsize, 8); return (hdrsize); From owner-svn-src-all@freebsd.org Tue Jan 26 13:03:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5D24A6EF23; Tue, 26 Jan 2016 13:03:02 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 829071C23; Tue, 26 Jan 2016 13:03:02 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QD31Zl021443; Tue, 26 Jan 2016 13:03:01 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QD31Bt021442; Tue, 26 Jan 2016 13:03:01 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261303.u0QD31Bt021442@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:03:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294813 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:03:02 -0000 Author: mav Date: Tue Jan 26 13:03:01 2016 New Revision: 294813 URL: https://svnweb.freebsd.org/changeset/base/294813 Log: MFV r294812: 6434 sa_find_sizes() may compute wrong SA header size Reviewed-by: Ned Bass Reviewed-by: Brian Behlendorf Reviewed by: Andriy Gapon Reviewed by: Matthew Ahrens Approved by: Robert Mustacchi Author: James Pan illumos/illumos-gate@3502ed6e7cb3f3d2e781960ab8fe465fdc884834 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c Tue Jan 26 13:02:16 2016 (r294812) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c Tue Jan 26 13:03:01 2016 (r294813) @@ -547,10 +547,9 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ { int var_size = 0; int i; - int j = -1; int full_space; int hdrsize; - boolean_t done = B_FALSE; + int extra_hdrsize; if (buftype == SA_BONUS && sa->sa_force_spill) { *total = 0; @@ -561,10 +560,9 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ *index = -1; *total = 0; + *will_spill = B_FALSE; - if (buftype == SA_BONUS) - *will_spill = B_FALSE; - + extra_hdrsize = 0; hdrsize = (SA_BONUSTYPE_FROM_DB(db) == DMU_OT_ZNODE) ? 0 : sizeof (sa_hdr_phys_t); @@ -576,8 +574,8 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ *total = P2ROUNDUP(*total, 8); *total += attr_desc[i].sa_length; - if (done) - goto next; + if (*will_spill) + continue; is_var_sz = (SA_REGISTERED_LEN(sa, attr_desc[i].sa_attr) == 0); if (is_var_sz) { @@ -585,21 +583,28 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ } if (is_var_sz && var_size > 1) { - if (P2ROUNDUP(hdrsize + sizeof (uint16_t), 8) + + /* + * Don't worry that the spill block might overflow. + * It will be resized if needed in sa_build_layouts(). + */ + if (buftype == SA_SPILL || + P2ROUNDUP(hdrsize + sizeof (uint16_t), 8) + *total < full_space) { /* * Account for header space used by array of * optional sizes of variable-length attributes. - * Record the index in case this increase needs - * to be reversed due to spill-over. + * Record the extra header size in case this + * increase needs to be reversed due to + * spill-over. */ hdrsize += sizeof (uint16_t); - j = i; + if (*index != -1) + extra_hdrsize += sizeof (uint16_t); } else { - done = B_TRUE; - *index = i; - if (buftype == SA_BONUS) - *will_spill = B_TRUE; + ASSERT(buftype == SA_BONUS); + if (*index == -1) + *index = i; + *will_spill = B_TRUE; continue; } } @@ -614,22 +619,15 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_ (*total + P2ROUNDUP(hdrsize, 8)) > (full_space - sizeof (blkptr_t))) { *index = i; - done = B_TRUE; } -next: if ((*total + P2ROUNDUP(hdrsize, 8)) > full_space && buftype == SA_BONUS) *will_spill = B_TRUE; } - /* - * j holds the index of the last variable-sized attribute for - * which hdrsize was increased. Reverse the increase if that - * attribute will be relocated to the spill block. - */ - if (*will_spill && j == *index) - hdrsize -= sizeof (uint16_t); + if (*will_spill) + hdrsize -= extra_hdrsize; hdrsize = P2ROUNDUP(hdrsize, 8); return (hdrsize); From owner-svn-src-all@freebsd.org Tue Jan 26 13:09:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3DF48A46145; Tue, 26 Jan 2016 13:09:18 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 18C371E46; Tue, 26 Jan 2016 13:09:18 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QD9HeI021704; Tue, 26 Jan 2016 13:09:17 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QD9GYB021701; Tue, 26 Jan 2016 13:09:16 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261309.u0QD9GYB021701@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:09:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294814 - in vendor-sys/illumos/dist/uts/common/fs/zfs: . sys X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:09:18 -0000 Author: mav Date: Tue Jan 26 13:09:16 2016 New Revision: 294814 URL: https://svnweb.freebsd.org/changeset/base/294814 Log: 6393 zfs receive a full send as a clone Reviewed by: Matthew Ahrens Reviewed by: Prakash Surya Reviewed by: Richard Elling Approved by: Dan McDonald Author: Paul Dagnelie illumos/illumos-gate@68ecb2ec930c4b0f00acaf8e0abb2b19c4b8b76f Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dmu_impl.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zfs_ioctl.h Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c Tue Jan 26 13:03:01 2016 (r294813) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c Tue Jan 26 13:09:16 2016 (r294814) @@ -137,6 +137,14 @@ dump_record(dmu_sendarg_t *dsp, void *pa return (0); } +/* + * Fill in the drr_free struct, or perform aggregation if the previous record is + * also a free record, and the two are adjacent. + * + * Note that we send free records even for a full send, because we want to be + * able to receive a full send as a clone, which requires a list of all the free + * and freeobject records that were generated on the source. + */ static int dump_free(dmu_sendarg_t *dsp, uint64_t object, uint64_t offset, uint64_t length) @@ -160,15 +168,6 @@ dump_free(dmu_sendarg_t *dsp, uint64_t o (object == dsp->dsa_last_data_object && offset > dsp->dsa_last_data_offset)); - /* - * If we are doing a non-incremental send, then there can't - * be any data in the dataset we're receiving into. Therefore - * a free record would simply be a no-op. Save space by not - * sending it to begin with. - */ - if (!dsp->dsa_incremental) - return (0); - if (length != -1ULL && offset + length < offset) length = -1ULL; @@ -347,10 +346,6 @@ dump_freeobjects(dmu_sendarg_t *dsp, uin { struct drr_freeobjects *drrfo = &(dsp->dsa_drr->drr_u.drr_freeobjects); - /* See comment in dump_free(). */ - if (!dsp->dsa_incremental) - return (0); - /* * If there is a pending op, but it's not PENDING_FREEOBJECTS, * push it out, since free block aggregation can only be done for @@ -750,6 +745,7 @@ dmu_send_impl(void *tag, dsl_pool_t *dp, drr->drr_u.drr_begin.drr_toguid = dsl_dataset_phys(to_ds)->ds_guid; if (dsl_dataset_phys(to_ds)->ds_flags & DS_FLAG_CI_DATASET) drr->drr_u.drr_begin.drr_flags |= DRR_FLAG_CI_DATA; + drr->drr_u.drr_begin.drr_flags |= DRR_FLAG_FREERECORDS; if (ancestor_zb != NULL) { drr->drr_u.drr_begin.drr_fromguid = @@ -772,7 +768,6 @@ dmu_send_impl(void *tag, dsl_pool_t *dp, dsp->dsa_off = off; dsp->dsa_toguid = dsl_dataset_phys(to_ds)->ds_guid; dsp->dsa_pending_op = PENDING_NONE; - dsp->dsa_incremental = (ancestor_zb != NULL); dsp->dsa_featureflags = featureflags; dsp->dsa_resume_object = resumeobj; dsp->dsa_resume_offset = resumeoff; @@ -1286,7 +1281,7 @@ dmu_recv_begin_check(void *arg, dmu_tx_t /* target fs already exists; recv into temp clone */ /* Can't recv a clone into an existing fs */ - if (flags & DRR_FLAG_CLONE) { + if (flags & DRR_FLAG_CLONE || drba->drba_origin) { dsl_dataset_rele(ds, FTAG); return (SET_ERROR(EINVAL)); } @@ -1305,6 +1300,15 @@ dmu_recv_begin_check(void *arg, dmu_tx_t drba->drba_origin)) return (SET_ERROR(ENOENT)); + /* + * If we're receiving a full send as a clone, and it doesn't + * contain all the necessary free records and freeobject + * records, reject it. + */ + if (fromguid == 0 && drba->drba_origin && + !(flags & DRR_FLAG_FREERECORDS)) + return (SET_ERROR(EINVAL)); + /* Open the parent of tofs */ ASSERT3U(strlen(tofs), <, MAXNAMELEN); (void) strlcpy(buf, tofs, strrchr(tofs, '/') - tofs + 1); @@ -1344,7 +1348,8 @@ dmu_recv_begin_check(void *arg, dmu_tx_t dsl_dataset_rele(ds, FTAG); return (SET_ERROR(EINVAL)); } - if (dsl_dataset_phys(origin)->ds_guid != fromguid) { + if (dsl_dataset_phys(origin)->ds_guid != fromguid && + fromguid != 0) { dsl_dataset_rele(origin, FTAG); dsl_dataset_rele(ds, FTAG); return (SET_ERROR(ENODEV)); @@ -1674,6 +1679,20 @@ struct receive_writer_arg { uint64_t bytes_read; /* bytes read when current record created */ }; +struct objlist { + list_t list; /* List of struct receive_objnode. */ + /* + * Last object looked up. Used to assert that objects are being looked + * up in ascending order. + */ + uint64_t last_lookup; +}; + +struct receive_objnode { + list_node_t node; + uint64_t object; +}; + struct receive_arg { objset_t *os; vnode_t *vp; /* The vnode to read the stream from */ @@ -1691,12 +1710,7 @@ struct receive_arg { int err; boolean_t byteswap; /* Sorted list of objects not to issue prefetches for. */ - list_t ignore_obj_list; -}; - -struct receive_ign_obj_node { - list_node_t node; - uint64_t object; + struct objlist ignore_objlist; }; typedef struct guid_map_entry { @@ -2008,13 +2022,14 @@ receive_freeobjects(struct receive_write struct drr_freeobjects *drrfo) { uint64_t obj; + int next_err = 0; if (drrfo->drr_firstobj + drrfo->drr_numobjs < drrfo->drr_firstobj) return (SET_ERROR(EINVAL)); for (obj = drrfo->drr_firstobj; - obj < drrfo->drr_firstobj + drrfo->drr_numobjs; - (void) dmu_object_next(rwa->os, &obj, FALSE, 0)) { + obj < drrfo->drr_firstobj + drrfo->drr_numobjs && next_err == 0; + next_err = dmu_object_next(rwa->os, &obj, FALSE, 0)) { int err; if (dmu_object_info(rwa->os, obj, NULL) != 0) @@ -2024,7 +2039,8 @@ receive_freeobjects(struct receive_write if (err != 0) return (err); } - + if (next_err != ESRCH) + return (next_err); return (0); } @@ -2354,6 +2370,66 @@ receive_read_payload_and_next_header(str return (0); } +static void +objlist_create(struct objlist *list) +{ + list_create(&list->list, sizeof (struct receive_objnode), + offsetof(struct receive_objnode, node)); + list->last_lookup = 0; +} + +static void +objlist_destroy(struct objlist *list) +{ + for (struct receive_objnode *n = list_remove_head(&list->list); + n != NULL; n = list_remove_head(&list->list)) { + kmem_free(n, sizeof (*n)); + } + list_destroy(&list->list); +} + +/* + * This function looks through the objlist to see if the specified object number + * is contained in the objlist. In the process, it will remove all object + * numbers in the list that are smaller than the specified object number. Thus, + * any lookup of an object number smaller than a previously looked up object + * number will always return false; therefore, all lookups should be done in + * ascending order. + */ +static boolean_t +objlist_exists(struct objlist *list, uint64_t object) +{ + struct receive_objnode *node = list_head(&list->list); + ASSERT3U(object, >=, list->last_lookup); + list->last_lookup = object; + while (node != NULL && node->object < object) { + VERIFY3P(node, ==, list_remove_head(&list->list)); + kmem_free(node, sizeof (*node)); + node = list_head(&list->list); + } + return (node != NULL && node->object == object); +} + +/* + * The objlist is a list of object numbers stored in ascending order. However, + * the insertion of new object numbers does not seek out the correct location to + * store a new object number; instead, it appends it to the list for simplicity. + * Thus, any users must take care to only insert new object numbers in ascending + * order. + */ +static void +objlist_insert(struct objlist *list, uint64_t object) +{ + struct receive_objnode *node = kmem_zalloc(sizeof (*node), KM_SLEEP); + node->object = object; +#ifdef ZFS_DEBUG + struct receive_objnode *last_object = list_tail(&list->list); + uint64_t last_objnum = (last_object != NULL ? last_object->object : 0); + ASSERT3U(node->object, >, last_objnum); +#endif + list_insert_tail(&list->list, node); +} + /* * Issue the prefetch reads for any necessary indirect blocks. * @@ -2376,13 +2452,7 @@ static void receive_read_prefetch(struct receive_arg *ra, uint64_t object, uint64_t offset, uint64_t length) { - struct receive_ign_obj_node *node = list_head(&ra->ignore_obj_list); - while (node != NULL && node->object < object) { - VERIFY3P(node, ==, list_remove_head(&ra->ignore_obj_list)); - kmem_free(node, sizeof (*node)); - node = list_head(&ra->ignore_obj_list); - } - if (node == NULL || node->object > object) { + if (!objlist_exists(&ra->ignore_objlist, object)) { dmu_prefetch(ra->os, object, 1, offset, length, ZIO_PRIORITY_SYNC_READ); } @@ -2415,18 +2485,7 @@ receive_read_record(struct receive_arg * */ if (err == ENOENT || (err == 0 && doi.doi_data_block_size != drro->drr_blksz)) { - struct receive_ign_obj_node *node = - kmem_zalloc(sizeof (*node), - KM_SLEEP); - node->object = drro->drr_object; -#ifdef ZFS_DEBUG - struct receive_ign_obj_node *last_object = - list_tail(&ra->ignore_obj_list); - uint64_t last_objnum = (last_object != NULL ? - last_object->object : 0); - ASSERT3U(node->object, >, last_objnum); -#endif - list_insert_tail(&ra->ignore_obj_list, node); + objlist_insert(&ra->ignore_objlist, drro->drr_object); err = 0; } return (err); @@ -2643,7 +2702,6 @@ resume_check(struct receive_arg *ra, nvl return (0); } - /* * Read in the stream's records, one by one, and apply them to the pool. There * are two threads involved; the thread that calls this function will spin up a @@ -2677,8 +2735,7 @@ dmu_recv_stream(dmu_recv_cookie_t *drc, sizeof (ra.bytes_read), 1, &ra.bytes_read); } - list_create(&ra.ignore_obj_list, sizeof (struct receive_ign_obj_node), - offsetof(struct receive_ign_obj_node, node)); + objlist_create(&ra.ignore_objlist); /* these were verified in dmu_recv_begin */ ASSERT3U(DMU_GET_STREAM_HDRTYPE(drc->drc_drrb->drr_versioninfo), ==, @@ -2832,12 +2889,7 @@ out: } *voffp = ra.voff; - for (struct receive_ign_obj_node *n = - list_remove_head(&ra.ignore_obj_list); n != NULL; - n = list_remove_head(&ra.ignore_obj_list)) { - kmem_free(n, sizeof (*n)); - } - list_destroy(&ra.ignore_obj_list); + objlist_destroy(&ra.ignore_objlist); return (err); } Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dmu_impl.h ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dmu_impl.h Tue Jan 26 13:03:01 2016 (r294813) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dmu_impl.h Tue Jan 26 13:09:16 2016 (r294814) @@ -24,7 +24,7 @@ */ /* * Copyright (c) 2012, Joyent, Inc. All rights reserved. - * Copyright (c) 2013, 2014 by Delphix. All rights reserved. + * Copyright (c) 2013, 2015 by Delphix. All rights reserved. */ #ifndef _SYS_DMU_IMPL_H @@ -293,7 +293,6 @@ typedef struct dmu_sendarg { uint64_t dsa_toguid; int dsa_err; dmu_pendop_t dsa_pending_op; - boolean_t dsa_incremental; uint64_t dsa_featureflags; uint64_t dsa_last_data_object; uint64_t dsa_last_data_offset; Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zfs_ioctl.h ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zfs_ioctl.h Tue Jan 26 13:03:01 2016 (r294813) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zfs_ioctl.h Tue Jan 26 13:09:16 2016 (r294814) @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2012, 2014 by Delphix. All rights reserved. + * Copyright (c) 2012, 2015 by Delphix. All rights reserved. */ #ifndef _SYS_ZFS_IOCTL_H @@ -126,6 +126,16 @@ typedef enum dmu_send_resume_token_versi #define DRR_FLAG_CLONE (1<<0) #define DRR_FLAG_CI_DATA (1<<1) +/* + * This send stream, if it is a full send, includes the FREE and FREEOBJECT + * records that are created by the sending process. This means that the send + * stream can be received as a clone, even though it is not an incremental. + * This is not implemented as a feature flag, because the receiving side does + * not need to have implemented it to receive this stream; it is fully backwards + * compatible. We need a flag, though, because full send streams without it + * cannot necessarily be received as a clone correctly. + */ +#define DRR_FLAG_FREERECORDS (1<<2) /* * flags in the drr_checksumflags field in the DRR_WRITE and From owner-svn-src-all@freebsd.org Tue Jan 26 13:14:41 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20E1AA46324; Tue, 26 Jan 2016 13:14:41 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DFB5F29C; Tue, 26 Jan 2016 13:14:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QDEdm7024397; Tue, 26 Jan 2016 13:14:39 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QDEdNT024393; Tue, 26 Jan 2016 13:14:39 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261314.u0QDEdNT024393@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:14:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294815 - in head: cddl/contrib/opensolaris/cmd/zfs sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:14:41 -0000 Author: mav Date: Tue Jan 26 13:14:39 2016 New Revision: 294815 URL: https://svnweb.freebsd.org/changeset/base/294815 Log: MFV r294814: 6393 zfs receive a full send as a clone Reviewed by: Matthew Ahrens Reviewed by: Prakash Surya Reviewed by: Richard Elling Approved by: Dan McDonald Author: Paul Dagnelie illumos/illumos-gate@68ecb2ec930c4b0f00acaf8e0abb2b19c4b8b76f This allows to do a full (non-incremental send) and receive it as a clone of an existing dataset. It can leverage nopwrite to share blocks with the origin. This can be used to change the relationship of datasets on the target. For example, maybe on the source you have: A ---- B ---- C And you have sent to the target a full of B, and the incremental B->C: B ---- C You later realize that you want to have A on the target. You will have to do a full send of A, but nopwrite can save you space on the target if you receive it as a clone of B, assuming that A and B have some blocks inxi common: B ---- C \ A Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Tue Jan 26 13:09:16 2016 (r294814) +++ head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Tue Jan 26 13:14:39 2016 (r294815) @@ -2841,8 +2841,11 @@ Do not actually receive the stream. This option to verify the name the receive operation would use. .It Fl o Sy origin Ns = Ns Ar snapshot Forces the stream to be received as a clone of the given snapshot. -This is only valid if the stream is an incremental stream whose source -is the same as the provided origin. +If the stream is a full send stream, this will create the filesystem +described by the stream as a clone of the specified snapshot. Which +snapshot was specified will not affect the success or failure of the +receive, as long as the snapshot does exist. If the stream is an +incremental send stream, all the normal verification will be performed. .It Fl F Force a rollback of the file system to the most recent snapshot before performing the receive operation. If receiving an incremental replication Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Tue Jan 26 13:09:16 2016 (r294814) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Tue Jan 26 13:14:39 2016 (r294815) @@ -158,6 +158,14 @@ dump_record(dmu_sendarg_t *dsp, void *pa return (0); } +/* + * Fill in the drr_free struct, or perform aggregation if the previous record is + * also a free record, and the two are adjacent. + * + * Note that we send free records even for a full send, because we want to be + * able to receive a full send as a clone, which requires a list of all the free + * and freeobject records that were generated on the source. + */ static int dump_free(dmu_sendarg_t *dsp, uint64_t object, uint64_t offset, uint64_t length) @@ -181,15 +189,6 @@ dump_free(dmu_sendarg_t *dsp, uint64_t o (object == dsp->dsa_last_data_object && offset > dsp->dsa_last_data_offset)); - /* - * If we are doing a non-incremental send, then there can't - * be any data in the dataset we're receiving into. Therefore - * a free record would simply be a no-op. Save space by not - * sending it to begin with. - */ - if (!dsp->dsa_incremental) - return (0); - if (length != -1ULL && offset + length < offset) length = -1ULL; @@ -368,10 +367,6 @@ dump_freeobjects(dmu_sendarg_t *dsp, uin { struct drr_freeobjects *drrfo = &(dsp->dsa_drr->drr_u.drr_freeobjects); - /* See comment in dump_free(). */ - if (!dsp->dsa_incremental) - return (0); - /* * If there is a pending op, but it's not PENDING_FREEOBJECTS, * push it out, since free block aggregation can only be done for @@ -776,6 +771,7 @@ dmu_send_impl(void *tag, dsl_pool_t *dp, drr->drr_u.drr_begin.drr_toguid = dsl_dataset_phys(to_ds)->ds_guid; if (dsl_dataset_phys(to_ds)->ds_flags & DS_FLAG_CI_DATASET) drr->drr_u.drr_begin.drr_flags |= DRR_FLAG_CI_DATA; + drr->drr_u.drr_begin.drr_flags |= DRR_FLAG_FREERECORDS; if (ancestor_zb != NULL) { drr->drr_u.drr_begin.drr_fromguid = @@ -799,7 +795,6 @@ dmu_send_impl(void *tag, dsl_pool_t *dp, dsp->dsa_off = off; dsp->dsa_toguid = dsl_dataset_phys(to_ds)->ds_guid; dsp->dsa_pending_op = PENDING_NONE; - dsp->dsa_incremental = (ancestor_zb != NULL); dsp->dsa_featureflags = featureflags; dsp->dsa_resume_object = resumeobj; dsp->dsa_resume_offset = resumeoff; @@ -1321,7 +1316,7 @@ dmu_recv_begin_check(void *arg, dmu_tx_t /* target fs already exists; recv into temp clone */ /* Can't recv a clone into an existing fs */ - if (flags & DRR_FLAG_CLONE) { + if (flags & DRR_FLAG_CLONE || drba->drba_origin) { dsl_dataset_rele(ds, FTAG); return (SET_ERROR(EINVAL)); } @@ -1340,6 +1335,15 @@ dmu_recv_begin_check(void *arg, dmu_tx_t drba->drba_origin)) return (SET_ERROR(ENOENT)); + /* + * If we're receiving a full send as a clone, and it doesn't + * contain all the necessary free records and freeobject + * records, reject it. + */ + if (fromguid == 0 && drba->drba_origin && + !(flags & DRR_FLAG_FREERECORDS)) + return (SET_ERROR(EINVAL)); + /* Open the parent of tofs */ ASSERT3U(strlen(tofs), <, MAXNAMELEN); (void) strlcpy(buf, tofs, strrchr(tofs, '/') - tofs + 1); @@ -1379,7 +1383,8 @@ dmu_recv_begin_check(void *arg, dmu_tx_t dsl_dataset_rele(ds, FTAG); return (SET_ERROR(EINVAL)); } - if (dsl_dataset_phys(origin)->ds_guid != fromguid) { + if (dsl_dataset_phys(origin)->ds_guid != fromguid && + fromguid != 0) { dsl_dataset_rele(origin, FTAG); dsl_dataset_rele(ds, FTAG); return (SET_ERROR(ENODEV)); @@ -1709,6 +1714,20 @@ struct receive_writer_arg { uint64_t bytes_read; /* bytes read when current record created */ }; +struct objlist { + list_t list; /* List of struct receive_objnode. */ + /* + * Last object looked up. Used to assert that objects are being looked + * up in ascending order. + */ + uint64_t last_lookup; +}; + +struct receive_objnode { + list_node_t node; + uint64_t object; +}; + struct receive_arg { objset_t *os; kthread_t *td; @@ -1727,12 +1746,7 @@ struct receive_arg { int err; boolean_t byteswap; /* Sorted list of objects not to issue prefetches for. */ - list_t ignore_obj_list; -}; - -struct receive_ign_obj_node { - list_node_t node; - uint64_t object; + struct objlist ignore_objlist; }; typedef struct guid_map_entry { @@ -2068,13 +2082,14 @@ receive_freeobjects(struct receive_write struct drr_freeobjects *drrfo) { uint64_t obj; + int next_err = 0; if (drrfo->drr_firstobj + drrfo->drr_numobjs < drrfo->drr_firstobj) return (SET_ERROR(EINVAL)); for (obj = drrfo->drr_firstobj; - obj < drrfo->drr_firstobj + drrfo->drr_numobjs; - (void) dmu_object_next(rwa->os, &obj, FALSE, 0)) { + obj < drrfo->drr_firstobj + drrfo->drr_numobjs && next_err == 0; + next_err = dmu_object_next(rwa->os, &obj, FALSE, 0)) { int err; if (dmu_object_info(rwa->os, obj, NULL) != 0) @@ -2084,7 +2099,8 @@ receive_freeobjects(struct receive_write if (err != 0) return (err); } - + if (next_err != ESRCH) + return (next_err); return (0); } @@ -2414,6 +2430,66 @@ receive_read_payload_and_next_header(str return (0); } +static void +objlist_create(struct objlist *list) +{ + list_create(&list->list, sizeof (struct receive_objnode), + offsetof(struct receive_objnode, node)); + list->last_lookup = 0; +} + +static void +objlist_destroy(struct objlist *list) +{ + for (struct receive_objnode *n = list_remove_head(&list->list); + n != NULL; n = list_remove_head(&list->list)) { + kmem_free(n, sizeof (*n)); + } + list_destroy(&list->list); +} + +/* + * This function looks through the objlist to see if the specified object number + * is contained in the objlist. In the process, it will remove all object + * numbers in the list that are smaller than the specified object number. Thus, + * any lookup of an object number smaller than a previously looked up object + * number will always return false; therefore, all lookups should be done in + * ascending order. + */ +static boolean_t +objlist_exists(struct objlist *list, uint64_t object) +{ + struct receive_objnode *node = list_head(&list->list); + ASSERT3U(object, >=, list->last_lookup); + list->last_lookup = object; + while (node != NULL && node->object < object) { + VERIFY3P(node, ==, list_remove_head(&list->list)); + kmem_free(node, sizeof (*node)); + node = list_head(&list->list); + } + return (node != NULL && node->object == object); +} + +/* + * The objlist is a list of object numbers stored in ascending order. However, + * the insertion of new object numbers does not seek out the correct location to + * store a new object number; instead, it appends it to the list for simplicity. + * Thus, any users must take care to only insert new object numbers in ascending + * order. + */ +static void +objlist_insert(struct objlist *list, uint64_t object) +{ + struct receive_objnode *node = kmem_zalloc(sizeof (*node), KM_SLEEP); + node->object = object; +#ifdef ZFS_DEBUG + struct receive_objnode *last_object = list_tail(&list->list); + uint64_t last_objnum = (last_object != NULL ? last_object->object : 0); + ASSERT3U(node->object, >, last_objnum); +#endif + list_insert_tail(&list->list, node); +} + /* * Issue the prefetch reads for any necessary indirect blocks. * @@ -2436,13 +2512,7 @@ static void receive_read_prefetch(struct receive_arg *ra, uint64_t object, uint64_t offset, uint64_t length) { - struct receive_ign_obj_node *node = list_head(&ra->ignore_obj_list); - while (node != NULL && node->object < object) { - VERIFY3P(node, ==, list_remove_head(&ra->ignore_obj_list)); - kmem_free(node, sizeof (*node)); - node = list_head(&ra->ignore_obj_list); - } - if (node == NULL || node->object > object) { + if (!objlist_exists(&ra->ignore_objlist, object)) { dmu_prefetch(ra->os, object, 1, offset, length, ZIO_PRIORITY_SYNC_READ); } @@ -2475,18 +2545,7 @@ receive_read_record(struct receive_arg * */ if (err == ENOENT || (err == 0 && doi.doi_data_block_size != drro->drr_blksz)) { - struct receive_ign_obj_node *node = - kmem_zalloc(sizeof (*node), - KM_SLEEP); - node->object = drro->drr_object; -#ifdef ZFS_DEBUG - struct receive_ign_obj_node *last_object = - list_tail(&ra->ignore_obj_list); - uint64_t last_objnum = (last_object != NULL ? - last_object->object : 0); - ASSERT3U(node->object, >, last_objnum); -#endif - list_insert_tail(&ra->ignore_obj_list, node); + objlist_insert(&ra->ignore_objlist, drro->drr_object); err = 0; } return (err); @@ -2704,7 +2763,6 @@ resume_check(struct receive_arg *ra, nvl return (0); } - /* * Read in the stream's records, one by one, and apply them to the pool. There * are two threads involved; the thread that calls this function will spin up a @@ -2739,8 +2797,7 @@ dmu_recv_stream(dmu_recv_cookie_t *drc, sizeof (ra.bytes_read), 1, &ra.bytes_read); } - list_create(&ra.ignore_obj_list, sizeof (struct receive_ign_obj_node), - offsetof(struct receive_ign_obj_node, node)); + objlist_create(&ra.ignore_objlist); /* these were verified in dmu_recv_begin */ ASSERT3U(DMU_GET_STREAM_HDRTYPE(drc->drc_drrb->drr_versioninfo), ==, @@ -2894,12 +2951,7 @@ out: } *voffp = ra.voff; - for (struct receive_ign_obj_node *n = - list_remove_head(&ra.ignore_obj_list); n != NULL; - n = list_remove_head(&ra.ignore_obj_list)) { - kmem_free(n, sizeof (*n)); - } - list_destroy(&ra.ignore_obj_list); + objlist_destroy(&ra.ignore_objlist); return (err); } Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h Tue Jan 26 13:09:16 2016 (r294814) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h Tue Jan 26 13:14:39 2016 (r294815) @@ -25,7 +25,7 @@ /* * Copyright (c) 2012, Joyent, Inc. All rights reserved. * Copyright (c) 2012, Martin Matuska . All rights reserved. - * Copyright (c) 2013, 2014 by Delphix. All rights reserved. + * Copyright (c) 2013, 2015 by Delphix. All rights reserved. */ #ifndef _SYS_DMU_IMPL_H @@ -296,7 +296,6 @@ typedef struct dmu_sendarg { uint64_t dsa_toguid; int dsa_err; dmu_pendop_t dsa_pending_op; - boolean_t dsa_incremental; uint64_t dsa_featureflags; uint64_t dsa_last_data_object; uint64_t dsa_last_data_offset; Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h Tue Jan 26 13:09:16 2016 (r294814) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h Tue Jan 26 13:14:39 2016 (r294815) @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2012, 2014 by Delphix. All rights reserved. + * Copyright (c) 2012, 2015 by Delphix. All rights reserved. */ #ifndef _SYS_ZFS_IOCTL_H @@ -126,6 +126,16 @@ typedef enum dmu_send_resume_token_versi #define DRR_FLAG_CLONE (1<<0) #define DRR_FLAG_CI_DATA (1<<1) +/* + * This send stream, if it is a full send, includes the FREE and FREEOBJECT + * records that are created by the sending process. This means that the send + * stream can be received as a clone, even though it is not an incremental. + * This is not implemented as a feature flag, because the receiving side does + * not need to have implemented it to receive this stream; it is fully backwards + * compatible. We need a flag, though, because full send streams without it + * cannot necessarily be received as a clone correctly. + */ +#define DRR_FLAG_FREERECORDS (1<<2) /* * flags in the drr_checksumflags field in the DRR_WRITE and From owner-svn-src-all@freebsd.org Tue Jan 26 13:20:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 72F53A464A9; Tue, 26 Jan 2016 13:20:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3062B6D5; Tue, 26 Jan 2016 13:20:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QDKWq6024657; Tue, 26 Jan 2016 13:20:32 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QDKWbZ024656; Tue, 26 Jan 2016 13:20:32 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261320.u0QDKWbZ024656@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:20:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294816 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor/illumos/dist/lib/libzfs/common X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:20:33 -0000 Author: mav Date: Tue Jan 26 13:20:31 2016 New Revision: 294816 URL: https://svnweb.freebsd.org/changeset/base/294816 Log: 4986 receiving replication stream fails if any snapshot exceeds refquota Reviewed by: John Kennedy Reviewed by: Matthew Ahrens Approved by: Gordon Ross Author: Dan McDonald illumos/illumos-gate@5878fad70d76d8711f6608c1f80b0447601261c6 Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Changes in other areas also in this revision: Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_sendrecv.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Tue Jan 26 13:14:39 2016 (r294815) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Tue Jan 26 13:20:31 2016 (r294816) @@ -22,6 +22,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Portions Copyright 2011 Martin Matuska + * Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved. * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014, Joyent, Inc. All rights reserved. * Copyright (c) 2011, 2015 by Delphix. All rights reserved. @@ -4090,6 +4091,56 @@ next: } } +/* + * Extract properties that cannot be set PRIOR to the receipt of a dataset. + * For example, refquota cannot be set until after the receipt of a dataset, + * because in replication streams, an older/earlier snapshot may exceed the + * refquota. We want to receive the older/earlier snapshot, but setting + * refquota pre-receipt will set the dsl's ACTUAL quota, which will prevent + * the older/earlier snapshot from being received (with EDQUOT). + * + * The ZFS test "zfs_receive_011_pos" demonstrates such a scenario. + * + * libzfs will need to be judicious handling errors encountered by props + * extracted by this function. + */ +static nvlist_t * +extract_delay_props(nvlist_t *props) +{ + nvlist_t *delayprops; + nvpair_t *nvp, *tmp; + static const zfs_prop_t delayable[] = { ZFS_PROP_REFQUOTA, 0 }; + int i; + + VERIFY(nvlist_alloc(&delayprops, NV_UNIQUE_NAME, KM_SLEEP) == 0); + + for (nvp = nvlist_next_nvpair(props, NULL); nvp != NULL; + nvp = nvlist_next_nvpair(props, nvp)) { + /* + * strcmp() is safe because zfs_prop_to_name() always returns + * a bounded string. + */ + for (i = 0; delayable[i] != 0; i++) { + if (strcmp(zfs_prop_to_name(delayable[i]), + nvpair_name(nvp)) == 0) { + break; + } + } + if (delayable[i] != 0) { + tmp = nvlist_prev_nvpair(props, nvp); + VERIFY(nvlist_add_nvpair(delayprops, nvp) == 0); + VERIFY(nvlist_remove_nvpair(props, nvp) == 0); + nvp = tmp; + } + } + + if (nvlist_empty(delayprops)) { + nvlist_free(delayprops); + delayprops = NULL; + } + return (delayprops); +} + #ifdef DEBUG static boolean_t zfs_ioc_recv_inject_err; #endif @@ -4126,6 +4177,7 @@ zfs_ioc_recv(zfs_cmd_t *zc) offset_t off; nvlist_t *props = NULL; /* sent properties */ nvlist_t *origprops = NULL; /* existing properties */ + nvlist_t *delayprops = NULL; /* sent properties applied post-receive */ char *origin = NULL; char *tosnap; char tofs[ZFS_MAXNAMELEN]; @@ -4206,21 +4258,12 @@ zfs_ioc_recv(zfs_cmd_t *zc) props_error = dsl_prop_set_hasrecvd(tofs); if (props_error == 0) { + delayprops = extract_delay_props(props); (void) zfs_set_prop_nvlist(tofs, ZPROP_SRC_RECEIVED, props, errors); } } - if (zc->zc_nvlist_dst_size != 0 && - (nvlist_smush(errors, zc->zc_nvlist_dst_size) != 0 || - put_nvlist(zc, errors) != 0)) { - /* - * Caller made zc->zc_nvlist_dst less than the minimum expected - * size or supplied an invalid address. - */ - props_error = SET_ERROR(EINVAL); - } - off = fp->f_offset; error = dmu_recv_stream(&drc, fp->f_vnode, &off, zc->zc_cleanup_fd, &zc->zc_action_handle); @@ -4245,6 +4288,40 @@ zfs_ioc_recv(zfs_cmd_t *zc) } else { error = dmu_recv_end(&drc, NULL); } + + /* Set delayed properties now, after we're done receiving. */ + if (delayprops != NULL && error == 0) { + (void) zfs_set_prop_nvlist(tofs, ZPROP_SRC_RECEIVED, + delayprops, errors); + } + } + + if (delayprops != NULL) { + /* + * Merge delayed props back in with initial props, in case + * we're DEBUG and zfs_ioc_recv_inject_err is set (which means + * we have to make sure clear_received_props() includes + * the delayed properties). + * + * Since zfs_ioc_recv_inject_err is only in DEBUG kernels, + * using ASSERT() will be just like a VERIFY. + */ + ASSERT(nvlist_merge(props, delayprops, 0) == 0); + nvlist_free(delayprops); + } + + /* + * Now that all props, initial and delayed, are set, report the prop + * errors to the caller. + */ + if (zc->zc_nvlist_dst_size != 0 && + (nvlist_smush(errors, zc->zc_nvlist_dst_size) != 0 || + put_nvlist(zc, errors) != 0)) { + /* + * Caller made zc->zc_nvlist_dst less than the minimum expected + * size or supplied an invalid address. + */ + props_error = SET_ERROR(EINVAL); } zc->zc_cookie = off - fp->f_offset; From owner-svn-src-all@freebsd.org Tue Jan 26 13:20:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 96606A464B2; Tue, 26 Jan 2016 13:20:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 56CF36D6; Tue, 26 Jan 2016 13:20:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QDKWh5024663; Tue, 26 Jan 2016 13:20:32 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QDKWqR024662; Tue, 26 Jan 2016 13:20:32 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261320.u0QDKWqR024662@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:20:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294816 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor/illumos/dist/lib/libzfs/common X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:20:33 -0000 Author: mav Date: Tue Jan 26 13:20:31 2016 New Revision: 294816 URL: https://svnweb.freebsd.org/changeset/base/294816 Log: 4986 receiving replication stream fails if any snapshot exceeds refquota Reviewed by: John Kennedy Reviewed by: Matthew Ahrens Approved by: Gordon Ross Author: Dan McDonald illumos/illumos-gate@5878fad70d76d8711f6608c1f80b0447601261c6 Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_sendrecv.c Changes in other areas also in this revision: Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- vendor/illumos/dist/lib/libzfs/common/libzfs_sendrecv.c Tue Jan 26 13:14:39 2016 (r294815) +++ vendor/illumos/dist/lib/libzfs/common/libzfs_sendrecv.c Tue Jan 26 13:20:31 2016 (r294816) @@ -24,6 +24,7 @@ * Copyright (c) 2011, 2015 by Delphix. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. + * Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved. */ #include @@ -58,7 +59,7 @@ extern void zfs_setprop_error(libzfs_han static int zfs_receive_impl(libzfs_handle_t *, const char *, const char *, recvflags_t *, int, const char *, nvlist_t *, avl_tree_t *, char **, int, - uint64_t *); + uint64_t *, const char *); static int guid_to_name(libzfs_handle_t *, const char *, uint64_t, boolean_t, char *); @@ -2561,6 +2562,7 @@ zfs_receive_package(libzfs_handle_t *hdl nvlist_t *stream_nv = NULL; avl_tree_t *stream_avl = NULL; char *fromsnap = NULL; + char *sendsnap = NULL; char *cp; char tofs[ZFS_MAXNAMELEN]; char sendfs[ZFS_MAXNAMELEN]; @@ -2709,8 +2711,16 @@ zfs_receive_package(libzfs_handle_t *hdl */ (void) strlcpy(sendfs, drr->drr_u.drr_begin.drr_toname, ZFS_MAXNAMELEN); - if ((cp = strchr(sendfs, '@')) != NULL) + if ((cp = strchr(sendfs, '@')) != NULL) { *cp = '\0'; + /* + * Find the "sendsnap", the final snapshot in a replication + * stream. zfs_receive_one() handles certain errors + * differently, depending on if the contained stream is the + * last one or not. + */ + sendsnap = (cp + 1); + } /* Finally, receive each contained stream */ do { @@ -2723,7 +2733,7 @@ zfs_receive_package(libzfs_handle_t *hdl */ error = zfs_receive_impl(hdl, destname, NULL, flags, fd, sendfs, stream_nv, stream_avl, top_zfs, cleanup_fd, - action_handlep); + action_handlep, sendsnap); if (error == ENODATA) { error = 0; break; @@ -2889,7 +2899,7 @@ zfs_receive_one(libzfs_handle_t *hdl, in const char *originsnap, recvflags_t *flags, dmu_replay_record_t *drr, dmu_replay_record_t *drr_noswap, const char *sendfs, nvlist_t *stream_nv, avl_tree_t *stream_avl, char **top_zfs, int cleanup_fd, - uint64_t *action_handlep) + uint64_t *action_handlep, const char *finalsnap) { zfs_cmd_t zc = { 0 }; time_t begin_time; @@ -2906,6 +2916,7 @@ zfs_receive_one(libzfs_handle_t *hdl, in nvlist_t *snapprops_nvlist = NULL; zprop_errflags_t prop_errflags; boolean_t recursive; + char *snapname = NULL; begin_time = time(NULL); @@ -2916,7 +2927,6 @@ zfs_receive_one(libzfs_handle_t *hdl, in ENOENT); if (stream_avl != NULL) { - char *snapname; nvlist_t *fs = fsavl_find(stream_avl, drrb->drr_toguid, &snapname); nvlist_t *props; @@ -3263,7 +3273,21 @@ zfs_receive_one(libzfs_handle_t *hdl, in ZPROP_N_MORE_ERRORS) == 0) { trunc_prop_errs(intval); break; - } else { + } else if (snapname == NULL || finalsnap == NULL || + strcmp(finalsnap, snapname) == 0 || + strcmp(nvpair_name(prop_err), + zfs_prop_to_name(ZFS_PROP_REFQUOTA)) != 0) { + /* + * Skip the special case of, for example, + * "refquota", errors on intermediate + * snapshots leading up to a final one. + * That's why we have all of the checks above. + * + * See zfs_ioctl.c's extract_delay_props() for + * a list of props which can fail on + * intermediate snapshots, but shouldn't + * affect the overall receive. + */ (void) snprintf(tbuf, sizeof (tbuf), dgettext(TEXT_DOMAIN, "cannot receive %s property on %s"), @@ -3448,7 +3472,7 @@ static int zfs_receive_impl(libzfs_handle_t *hdl, const char *tosnap, const char *originsnap, recvflags_t *flags, int infd, const char *sendfs, nvlist_t *stream_nv, avl_tree_t *stream_avl, char **top_zfs, int cleanup_fd, - uint64_t *action_handlep) + uint64_t *action_handlep, const char *finalsnap) { int err; dmu_replay_record_t drr, drr_noswap; @@ -3544,10 +3568,11 @@ zfs_receive_impl(libzfs_handle_t *hdl, c if ((cp = strchr(nonpackage_sendfs, '@')) != NULL) *cp = '\0'; sendfs = nonpackage_sendfs; + VERIFY(finalsnap == NULL); } return (zfs_receive_one(hdl, infd, tosnap, originsnap, flags, &drr, &drr_noswap, sendfs, stream_nv, stream_avl, top_zfs, - cleanup_fd, action_handlep)); + cleanup_fd, action_handlep, finalsnap)); } else { assert(DMU_GET_STREAM_HDRTYPE(drrb->drr_versioninfo) == DMU_COMPOUNDSTREAM); @@ -3582,7 +3607,7 @@ zfs_receive(libzfs_handle_t *hdl, const VERIFY(cleanup_fd >= 0); err = zfs_receive_impl(hdl, tosnap, originsnap, flags, infd, NULL, NULL, - stream_avl, &top_zfs, cleanup_fd, &action_handle); + stream_avl, &top_zfs, cleanup_fd, &action_handle, NULL); VERIFY(0 == close(cleanup_fd)); From owner-svn-src-all@freebsd.org Tue Jan 26 13:37:31 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9283AA46BB5; Tue, 26 Jan 2016 13:37:31 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 543C2FBE; Tue, 26 Jan 2016 13:37:31 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QDbUND030283; Tue, 26 Jan 2016 13:37:30 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QDbUvG030281; Tue, 26 Jan 2016 13:37:30 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261337.u0QDbUvG030281@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:37:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294817 - in head: cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:37:31 -0000 Author: mav Date: Tue Jan 26 13:37:30 2016 New Revision: 294817 URL: https://svnweb.freebsd.org/changeset/base/294817 Log: MFV r294816: 4986 receiving replication stream fails if any snapshot exceeds refquota Reviewed by: John Kennedy Reviewed by: Matthew Ahrens Approved by: Gordon Ross Author: Dan McDonald illumos/illumos-gate@5878fad70d76d8711f6608c1f80b0447601261c6 Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Directory Properties: head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Tue Jan 26 13:20:31 2016 (r294816) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Tue Jan 26 13:37:30 2016 (r294817) @@ -26,6 +26,7 @@ * Copyright (c) 2012 Pawel Jakub Dawidek . * All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. + * Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved. */ #include @@ -67,7 +68,7 @@ extern void zfs_setprop_error(libzfs_han static int zfs_receive_impl(libzfs_handle_t *, const char *, const char *, recvflags_t *, int, const char *, nvlist_t *, avl_tree_t *, char **, int, - uint64_t *); + uint64_t *, const char *); static int guid_to_name(libzfs_handle_t *, const char *, uint64_t, boolean_t, char *); @@ -2602,6 +2603,7 @@ zfs_receive_package(libzfs_handle_t *hdl nvlist_t *stream_nv = NULL; avl_tree_t *stream_avl = NULL; char *fromsnap = NULL; + char *sendsnap = NULL; char *cp; char tofs[ZFS_MAXNAMELEN]; char sendfs[ZFS_MAXNAMELEN]; @@ -2750,8 +2752,16 @@ zfs_receive_package(libzfs_handle_t *hdl */ (void) strlcpy(sendfs, drr->drr_u.drr_begin.drr_toname, ZFS_MAXNAMELEN); - if ((cp = strchr(sendfs, '@')) != NULL) + if ((cp = strchr(sendfs, '@')) != NULL) { *cp = '\0'; + /* + * Find the "sendsnap", the final snapshot in a replication + * stream. zfs_receive_one() handles certain errors + * differently, depending on if the contained stream is the + * last one or not. + */ + sendsnap = (cp + 1); + } /* Finally, receive each contained stream */ do { @@ -2764,7 +2774,7 @@ zfs_receive_package(libzfs_handle_t *hdl */ error = zfs_receive_impl(hdl, destname, NULL, flags, fd, sendfs, stream_nv, stream_avl, top_zfs, cleanup_fd, - action_handlep); + action_handlep, sendsnap); if (error == ENODATA) { error = 0; break; @@ -2930,7 +2940,7 @@ zfs_receive_one(libzfs_handle_t *hdl, in const char *originsnap, recvflags_t *flags, dmu_replay_record_t *drr, dmu_replay_record_t *drr_noswap, const char *sendfs, nvlist_t *stream_nv, avl_tree_t *stream_avl, char **top_zfs, int cleanup_fd, - uint64_t *action_handlep) + uint64_t *action_handlep, const char *finalsnap) { zfs_cmd_t zc = { 0 }; time_t begin_time; @@ -2947,6 +2957,7 @@ zfs_receive_one(libzfs_handle_t *hdl, in nvlist_t *snapprops_nvlist = NULL; zprop_errflags_t prop_errflags; boolean_t recursive; + char *snapname = NULL; begin_time = time(NULL); @@ -2957,7 +2968,6 @@ zfs_receive_one(libzfs_handle_t *hdl, in ENOENT); if (stream_avl != NULL) { - char *snapname; nvlist_t *fs = fsavl_find(stream_avl, drrb->drr_toguid, &snapname); nvlist_t *props; @@ -3313,7 +3323,21 @@ zfs_receive_one(libzfs_handle_t *hdl, in ZPROP_N_MORE_ERRORS) == 0) { trunc_prop_errs(intval); break; - } else { + } else if (snapname == NULL || finalsnap == NULL || + strcmp(finalsnap, snapname) == 0 || + strcmp(nvpair_name(prop_err), + zfs_prop_to_name(ZFS_PROP_REFQUOTA)) != 0) { + /* + * Skip the special case of, for example, + * "refquota", errors on intermediate + * snapshots leading up to a final one. + * That's why we have all of the checks above. + * + * See zfs_ioctl.c's extract_delay_props() for + * a list of props which can fail on + * intermediate snapshots, but shouldn't + * affect the overall receive. + */ (void) snprintf(tbuf, sizeof (tbuf), dgettext(TEXT_DOMAIN, "cannot receive %s property on %s"), @@ -3498,7 +3522,7 @@ static int zfs_receive_impl(libzfs_handle_t *hdl, const char *tosnap, const char *originsnap, recvflags_t *flags, int infd, const char *sendfs, nvlist_t *stream_nv, avl_tree_t *stream_avl, char **top_zfs, int cleanup_fd, - uint64_t *action_handlep) + uint64_t *action_handlep, const char *finalsnap) { int err; dmu_replay_record_t drr, drr_noswap; @@ -3594,10 +3618,11 @@ zfs_receive_impl(libzfs_handle_t *hdl, c if ((cp = strchr(nonpackage_sendfs, '@')) != NULL) *cp = '\0'; sendfs = nonpackage_sendfs; + VERIFY(finalsnap == NULL); } return (zfs_receive_one(hdl, infd, tosnap, originsnap, flags, &drr, &drr_noswap, sendfs, stream_nv, stream_avl, top_zfs, - cleanup_fd, action_handlep)); + cleanup_fd, action_handlep, finalsnap)); } else { assert(DMU_GET_STREAM_HDRTYPE(drrb->drr_versioninfo) == DMU_COMPOUNDSTREAM); @@ -3632,7 +3657,7 @@ zfs_receive(libzfs_handle_t *hdl, const VERIFY(cleanup_fd >= 0); err = zfs_receive_impl(hdl, tosnap, originsnap, flags, infd, NULL, NULL, - stream_avl, &top_zfs, cleanup_fd, &action_handle); + stream_avl, &top_zfs, cleanup_fd, &action_handle, NULL); VERIFY(0 == close(cleanup_fd)); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Tue Jan 26 13:20:31 2016 (r294816) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Tue Jan 26 13:37:30 2016 (r294817) @@ -25,6 +25,7 @@ * All rights reserved. * Copyright 2013 Martin Matuska . All rights reserved. * Copyright 2014 Xin Li . All rights reserved. + * Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved. * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014, Joyent, Inc. All rights reserved. * Copyright (c) 2011, 2015 by Delphix. All rights reserved. @@ -4177,6 +4178,56 @@ next: } } +/* + * Extract properties that cannot be set PRIOR to the receipt of a dataset. + * For example, refquota cannot be set until after the receipt of a dataset, + * because in replication streams, an older/earlier snapshot may exceed the + * refquota. We want to receive the older/earlier snapshot, but setting + * refquota pre-receipt will set the dsl's ACTUAL quota, which will prevent + * the older/earlier snapshot from being received (with EDQUOT). + * + * The ZFS test "zfs_receive_011_pos" demonstrates such a scenario. + * + * libzfs will need to be judicious handling errors encountered by props + * extracted by this function. + */ +static nvlist_t * +extract_delay_props(nvlist_t *props) +{ + nvlist_t *delayprops; + nvpair_t *nvp, *tmp; + static const zfs_prop_t delayable[] = { ZFS_PROP_REFQUOTA, 0 }; + int i; + + VERIFY(nvlist_alloc(&delayprops, NV_UNIQUE_NAME, KM_SLEEP) == 0); + + for (nvp = nvlist_next_nvpair(props, NULL); nvp != NULL; + nvp = nvlist_next_nvpair(props, nvp)) { + /* + * strcmp() is safe because zfs_prop_to_name() always returns + * a bounded string. + */ + for (i = 0; delayable[i] != 0; i++) { + if (strcmp(zfs_prop_to_name(delayable[i]), + nvpair_name(nvp)) == 0) { + break; + } + } + if (delayable[i] != 0) { + tmp = nvlist_prev_nvpair(props, nvp); + VERIFY(nvlist_add_nvpair(delayprops, nvp) == 0); + VERIFY(nvlist_remove_nvpair(props, nvp) == 0); + nvp = tmp; + } + } + + if (nvlist_empty(delayprops)) { + nvlist_free(delayprops); + delayprops = NULL; + } + return (delayprops); +} + #ifdef DEBUG static boolean_t zfs_ioc_recv_inject_err; #endif @@ -4213,6 +4264,7 @@ zfs_ioc_recv(zfs_cmd_t *zc) offset_t off; nvlist_t *props = NULL; /* sent properties */ nvlist_t *origprops = NULL; /* existing properties */ + nvlist_t *delayprops = NULL; /* sent properties applied post-receive */ char *origin = NULL; char *tosnap; char tofs[ZFS_MAXNAMELEN]; @@ -4298,21 +4350,12 @@ zfs_ioc_recv(zfs_cmd_t *zc) props_error = dsl_prop_set_hasrecvd(tofs); if (props_error == 0) { + delayprops = extract_delay_props(props); (void) zfs_set_prop_nvlist(tofs, ZPROP_SRC_RECEIVED, props, errors); } } - if (zc->zc_nvlist_dst_size != 0 && - (nvlist_smush(errors, zc->zc_nvlist_dst_size) != 0 || - put_nvlist(zc, errors) != 0)) { - /* - * Caller made zc->zc_nvlist_dst less than the minimum expected - * size or supplied an invalid address. - */ - props_error = SET_ERROR(EINVAL); - } - off = fp->f_offset; error = dmu_recv_stream(&drc, fp, &off, zc->zc_cleanup_fd, &zc->zc_action_handle); @@ -4337,6 +4380,40 @@ zfs_ioc_recv(zfs_cmd_t *zc) } else { error = dmu_recv_end(&drc, NULL); } + + /* Set delayed properties now, after we're done receiving. */ + if (delayprops != NULL && error == 0) { + (void) zfs_set_prop_nvlist(tofs, ZPROP_SRC_RECEIVED, + delayprops, errors); + } + } + + if (delayprops != NULL) { + /* + * Merge delayed props back in with initial props, in case + * we're DEBUG and zfs_ioc_recv_inject_err is set (which means + * we have to make sure clear_received_props() includes + * the delayed properties). + * + * Since zfs_ioc_recv_inject_err is only in DEBUG kernels, + * using ASSERT() will be just like a VERIFY. + */ + ASSERT(nvlist_merge(props, delayprops, 0) == 0); + nvlist_free(delayprops); + } + + /* + * Now that all props, initial and delayed, are set, report the prop + * errors to the caller. + */ + if (zc->zc_nvlist_dst_size != 0 && + (nvlist_smush(errors, zc->zc_nvlist_dst_size) != 0 || + put_nvlist(zc, errors) != 0)) { + /* + * Caller made zc->zc_nvlist_dst less than the minimum expected + * size or supplied an invalid address. + */ + props_error = SET_ERROR(EINVAL); } zc->zc_cookie = off - fp->f_offset; From owner-svn-src-all@freebsd.org Tue Jan 26 13:40:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7A33A46CF7; Tue, 26 Jan 2016 13:40:23 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 759E1123E; Tue, 26 Jan 2016 13:40:23 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QDeMnw030436; Tue, 26 Jan 2016 13:40:22 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QDeMXx030434; Tue, 26 Jan 2016 13:40:22 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261340.u0QDeMXx030434@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:40:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294818 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:40:23 -0000 Author: mav Date: Tue Jan 26 13:40:22 2016 New Revision: 294818 URL: https://svnweb.freebsd.org/changeset/base/294818 Log: 6494 ASSERT supported zio_types for file and disk vdevs Reviewed by: George Wilson Reviewed by: Matthew Ahrens Approved by: Albert Lee Author: Steven Hartland illumos/illumos-gate@f693d300fbefaa2bd9a229a874b5994532a30d87 Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_disk.c vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_file.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_disk.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_disk.c Tue Jan 26 13:37:30 2016 (r294817) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_disk.c Tue Jan 26 13:40:22 2016 (r294818) @@ -796,6 +796,8 @@ vdev_disk_io_start(zio_t *zio) return; } + ASSERT(zio->io_type == ZIO_TYPE_READ || zio->io_type == ZIO_TYPE_WRITE); + vb = kmem_alloc(sizeof (vdev_buf_t), KM_SLEEP); vb->vb_io = zio; Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_file.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_file.c Tue Jan 26 13:37:30 2016 (r294817) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_file.c Tue Jan 26 13:40:22 2016 (r294818) @@ -211,6 +211,8 @@ vdev_file_io_start(zio_t *zio) return; } + ASSERT(zio->io_type == ZIO_TYPE_READ || zio->io_type == ZIO_TYPE_WRITE); + vb = kmem_alloc(sizeof (vdev_buf_t), KM_SLEEP); vb->vb_io = zio; From owner-svn-src-all@freebsd.org Tue Jan 26 13:44:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB2C0A46F8F; Tue, 26 Jan 2016 13:44:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 87CE6172D; Tue, 26 Jan 2016 13:44:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QDilU9033069; Tue, 26 Jan 2016 13:44:47 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QDilR2033068; Tue, 26 Jan 2016 13:44:47 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261344.u0QDilR2033068@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:44:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294819 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:44:48 -0000 Author: mav Date: Tue Jan 26 13:44:47 2016 New Revision: 294819 URL: https://svnweb.freebsd.org/changeset/base/294819 Log: 6495 Fix mutex leak in dmu_objset_find_dp Reviewed by: George Wilson Reviewed by: Matthew Ahrens Approved by: Albert Lee Author: Steven Hartland illumos/illumos-gate@2bad22584defe4667f99737e3158d336e4dcca11 Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c Tue Jan 26 13:40:22 2016 (r294818) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c Tue Jan 26 13:44:47 2016 (r294819) @@ -1789,6 +1789,7 @@ dmu_objset_find_dp(dsl_pool_t *dp, uint6 * thread suffices. For now, stay single threaded. */ dmu_objset_find_dp_impl(dcp); + mutex_destroy(&err_lock); return (error); } @@ -1800,6 +1801,8 @@ dmu_objset_find_dp(dsl_pool_t *dp, uint6 INT_MAX, 0); if (tq == NULL) { kmem_free(dcp, sizeof (*dcp)); + mutex_destroy(&err_lock); + return (SET_ERROR(ENOMEM)); } dcp->dc_tq = tq; From owner-svn-src-all@freebsd.org Tue Jan 26 13:45:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F04E7A46FF1; Tue, 26 Jan 2016 13:45:42 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC73B18CB; Tue, 26 Jan 2016 13:45:42 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QDjf9U033157; Tue, 26 Jan 2016 13:45:41 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QDjfCk033156; Tue, 26 Jan 2016 13:45:41 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261345.u0QDjfCk033156@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:45:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294820 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:45:43 -0000 Author: mav Date: Tue Jan 26 13:45:41 2016 New Revision: 294820 URL: https://svnweb.freebsd.org/changeset/base/294820 Log: MFV r294819: 6495 Fix mutex leak in dmu_objset_find_dp Reviewed by: George Wilson Reviewed by: Matthew Ahrens Approved by: Albert Lee Author: Steven Hartland illumos/illumos-gate@2bad22584defe4667f99737e3158d336e4dcca11 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Tue Jan 26 13:44:47 2016 (r294819) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Tue Jan 26 13:45:41 2016 (r294820) @@ -1789,6 +1789,7 @@ dmu_objset_find_dp(dsl_pool_t *dp, uint6 * thread suffices. For now, stay single threaded. */ dmu_objset_find_dp_impl(dcp); + mutex_destroy(&err_lock); return (error); } @@ -1800,6 +1801,8 @@ dmu_objset_find_dp(dsl_pool_t *dp, uint6 INT_MAX, 0); if (tq == NULL) { kmem_free(dcp, sizeof (*dcp)); + mutex_destroy(&err_lock); + return (SET_ERROR(ENOMEM)); } dcp->dc_tq = tq; From owner-svn-src-all@freebsd.org Tue Jan 26 13:49:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB003A6E0CC; Tue, 26 Jan 2016 13:49:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 966291AE6; Tue, 26 Jan 2016 13:49:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QDnkIQ033318; Tue, 26 Jan 2016 13:49:46 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QDnkkF033317; Tue, 26 Jan 2016 13:49:46 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601261349.u0QDnkkF033317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 26 Jan 2016 13:49:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294821 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:49:47 -0000 Author: mav Date: Tue Jan 26 13:49:46 2016 New Revision: 294821 URL: https://svnweb.freebsd.org/changeset/base/294821 Log: 6529 Properly handle updates of variably-sized SA entries. Reviewed by: Brian Behlendorf Reviewed by: Matthew Ahrens Reviewed by: Ned Bass Reviewed by: Tim Chase Approved by: Gordon Ross Author: Andriy Gapon illumos/illumos-gate@e7e978b1f75353cb29673af9b35453c20c2827bf During the update process in sa_modify_attrs(), the sizes of existing variably-sized SA entries are obtained from sa_lengths[]. The case where a variably-sized SA was being replaced neglected to increment the index into sa_lengths[], so subsequent variable-length SAs would be rewritten with the wrong length. This patch adds the missing increment operation so all variably-sized SA entries are stored with their correct lengths. Another problem was that index into attr_desc[] was increased even when an attribute was removed. If that attribute was not the last attribute, then the last attribute was lost. Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c Tue Jan 26 13:45:41 2016 (r294820) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c Tue Jan 26 13:49:46 2016 (r294821) @@ -1628,8 +1628,11 @@ sa_replace_all_by_template(sa_handle_t * } /* - * add/remove/replace a single attribute and then rewrite the entire set + * Add/remove a single attribute or replace a variable-sized attribute value + * with a value of a different size, and then rewrite the entire set * of attributes. + * Same-length attribute value replacement (including fixed-length attributes) + * is handled more efficiently by the upper layers. */ static int sa_modify_attrs(sa_handle_t *hdl, sa_attr_type_t newattr, @@ -1646,7 +1649,7 @@ sa_modify_attrs(sa_handle_t *hdl, sa_att int spill_data_size = 0; int spill_attr_count = 0; int error; - uint16_t length; + uint16_t length, reg_length; int i, j, k, length_idx; sa_hdr_phys_t *hdr; sa_idx_tab_t *idx_tab; @@ -1706,26 +1709,45 @@ sa_modify_attrs(sa_handle_t *hdl, sa_att hdr = SA_GET_HDR(hdl, SA_BONUS); idx_tab = SA_IDX_TAB_GET(hdl, SA_BONUS); for (; k != 2; k++) { - /* iterate over each attribute in layout */ + /* + * Iterate over each attribute in layout. Fetch the + * size of variable-length attributes needing rewrite + * from sa_lengths[]. + */ for (i = 0, length_idx = 0; i != count; i++) { sa_attr_type_t attr; attr = idx_tab->sa_layout->lot_attrs[i]; + reg_length = SA_REGISTERED_LEN(sa, attr); + if (reg_length == 0) { + length = hdr->sa_lengths[length_idx]; + length_idx++; + } else { + length = reg_length; + } if (attr == newattr) { - if (action == SA_REMOVE) { - j++; + /* + * There is nothing to do for SA_REMOVE, + * so it is just skipped. + */ + if (action == SA_REMOVE) continue; - } - ASSERT(SA_REGISTERED_LEN(sa, attr) == 0); - ASSERT(action == SA_REPLACE); + + /* + * Duplicate attributes are not allowed, so the + * action can not be SA_ADD here. + */ + ASSERT3S(action, ==, SA_REPLACE); + + /* + * Only a variable-sized attribute can be + * replaced here, and its size must be changing. + */ + ASSERT3U(reg_length, ==, 0); + ASSERT3U(length, !=, buflen); SA_ADD_BULK_ATTR(attr_desc, j, attr, locator, datastart, buflen); } else { - length = SA_REGISTERED_LEN(sa, attr); - if (length == 0) { - length = hdr->sa_lengths[length_idx++]; - } - SA_ADD_BULK_ATTR(attr_desc, j, attr, NULL, (void *) (TOC_OFF(idx_tab->sa_idx_tab[attr]) + @@ -1741,13 +1763,12 @@ sa_modify_attrs(sa_handle_t *hdl, sa_att } } if (action == SA_ADD) { - length = SA_REGISTERED_LEN(sa, newattr); - if (length == 0) { - length = buflen; - } + reg_length = SA_REGISTERED_LEN(sa, newattr); + IMPLY(reg_length != 0, reg_length == buflen); SA_ADD_BULK_ATTR(attr_desc, j, newattr, locator, datastart, buflen); } + ASSERT3U(j, ==, attr_count); error = sa_build_layouts(hdl, attr_desc, attr_count, tx); From owner-svn-src-all@freebsd.org Tue Jan 26 13:50:46 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4ADD3A6E14C; Tue, 26 Jan 2016 13:50:46 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0E3D11C8C; Tue, 26 Jan 2016 13:50:45 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QDojbW033420; Tue, 26 Jan 2016 13:50:45 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QDojWM033418; Tue, 26 Jan 2016 13:50:45 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601261350.u0QDojWM033418@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Tue, 26 Jan 2016 13:50:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294822 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 13:50:46 -0000 Author: skra Date: Tue Jan 26 13:50:44 2016 New Revision: 294822 URL: https://svnweb.freebsd.org/changeset/base/294822 Log: Make pmap_fault() return values vm subsystem compliant to simplify their handling in abort_handler(). While here, remove one extra initialization of pcb variable. Modified: head/sys/arm/arm/pmap-v6-new.c head/sys/arm/arm/trap-v6.c Modified: head/sys/arm/arm/pmap-v6-new.c ============================================================================== --- head/sys/arm/arm/pmap-v6-new.c Tue Jan 26 13:49:46 2016 (r294821) +++ head/sys/arm/arm/pmap-v6-new.c Tue Jan 26 13:50:44 2016 (r294822) @@ -6151,7 +6151,7 @@ pmap_fault(pmap_t pmap, vm_offset_t far, __func__, pmap, pmap->pm_pt1, far); panic("%s: pm_pt1 abort", __func__); } - return (EFAULT); + return (KERN_INVALID_ADDRESS); } if (__predict_false(IN_RANGE2(far, PT2MAP, PT2MAP_SIZE))) { /* @@ -6167,7 +6167,7 @@ pmap_fault(pmap_t pmap, vm_offset_t far, __func__, pmap, PT2MAP, far); panic("%s: PT2MAP abort", __func__); } - return (EFAULT); + return (KERN_INVALID_ADDRESS); } /* @@ -6187,7 +6187,7 @@ pte2_seta: if (!pte2_cmpset(pte2p, pte2, pte2 | PTE2_A)) { goto pte2_seta; } - return (0); + return (KERN_SUCCESS); } } if (idx == FAULT_ACCESS_L1) { @@ -6198,7 +6198,7 @@ pte1_seta: if (!pte1_cmpset(pte1p, pte1, pte1 | PTE1_A)) { goto pte1_seta; } - return (0); + return (KERN_SUCCESS); } } @@ -6222,7 +6222,7 @@ pte2_setrw: goto pte2_setrw; } tlb_flush(trunc_page(far)); - return (0); + return (KERN_SUCCESS); } } if ((fsr & FSR_WNR) && (idx == FAULT_PERM_L1)) { @@ -6235,7 +6235,7 @@ pte1_setrw: goto pte1_setrw; } tlb_flush(pte1_trunc(far)); - return (0); + return (KERN_SUCCESS); } } @@ -6274,7 +6274,7 @@ pte1_setrw: } } #endif - return (EAGAIN); + return (KERN_FAILURE); } /* !!!! REMOVE !!!! */ Modified: head/sys/arm/arm/trap-v6.c ============================================================================== --- head/sys/arm/arm/trap-v6.c Tue Jan 26 13:49:46 2016 (r294821) +++ head/sys/arm/arm/trap-v6.c Tue Jan 26 13:50:44 2016 (r294822) @@ -336,14 +336,10 @@ abort_handler(struct trapframe *tf, int #ifdef ARM_NEW_PMAP rv = pmap_fault(PCPU_GET(curpmap), far, fsr, idx, usermode); - if (rv == 0) { + if (rv == KERN_SUCCESS) return; - } else if (rv == EFAULT) { - - call_trapsignal(td, SIGSEGV, SEGV_MAPERR, far); - userret(td, tf); - return; - } + if (rv == KERN_INVALID_ADDRESS) + goto nogo; #endif /* * Now, when we handled imprecise and debug aborts, the rest of @@ -452,7 +448,6 @@ abort_handler(struct trapframe *tf, int */ /* fusubailout is used by [fs]uswintr to avoid page faulting. */ - pcb = td->td_pcb; if (__predict_false(pcb->pcb_onfault == fusubailout)) { tf->tf_r0 = EFAULT; tf->tf_pc = (register_t)pcb->pcb_onfault; From owner-svn-src-all@freebsd.org Tue Jan 26 14:17:40 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F1BDAA6E935; Tue, 26 Jan 2016 14:17:40 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B2E8ADB6; Tue, 26 Jan 2016 14:17:40 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEHd70042048; Tue, 26 Jan 2016 14:17:39 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEHdBG042047; Tue, 26 Jan 2016 14:17:39 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601261417.u0QEHdBG042047@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Tue, 26 Jan 2016 14:17:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294823 - head/secure/lib/libcrypto X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:17:41 -0000 Author: br Date: Tue Jan 26 14:17:39 2016 New Revision: 294823 URL: https://svnweb.freebsd.org/changeset/base/294823 Log: Add the openssl header for RISC-V. Copied from aarch64 as we can't generate it yet. Added: head/secure/lib/libcrypto/opensslconf-riscv.h (contents, props changed) Added: head/secure/lib/libcrypto/opensslconf-riscv.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/secure/lib/libcrypto/opensslconf-riscv.h Tue Jan 26 14:17:39 2016 (r294823) @@ -0,0 +1,254 @@ +/* $FreeBSD$ */ +/* opensslconf.h */ +/* RISCVTODO: generate from opensslconf.h.in by Configure. */ + +#ifdef __cplusplus +extern "C" { +#endif +/* OpenSSL was configured with the following options: */ +#ifndef OPENSSL_DOING_MAKEDEPEND + + +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_GMP +# define OPENSSL_NO_GMP +#endif +#ifndef OPENSSL_NO_JPAKE +# define OPENSSL_NO_JPAKE +#endif +#ifndef OPENSSL_NO_KRB5 +# define OPENSSL_NO_KRB5 +#endif +#ifndef OPENSSL_NO_LIBUNBOUND +# define OPENSSL_NO_LIBUNBOUND +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL2 +# define OPENSSL_NO_SSL2 +#endif +#ifndef OPENSSL_NO_STORE +# define OPENSSL_NO_STORE +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif + +#endif /* OPENSSL_DOING_MAKEDEPEND */ + +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_NO_ASM +# define OPENSSL_NO_ASM +#endif +#ifndef OPENSSL_NO_STATIC_ENGINE +# define OPENSSL_NO_STATIC_ENGINE +#endif + +/* The OPENSSL_NO_* macros are also defined as NO_* if the application + asks for it. This is a transient feature that is provided for those + who haven't had the time to do the appropriate changes in their + applications. */ +#ifdef OPENSSL_ALGORITHM_DEFINES +# if defined(OPENSSL_NO_EC_NISTP_64_GCC_128) && !defined(NO_EC_NISTP_64_GCC_128) +# define NO_EC_NISTP_64_GCC_128 +# endif +# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP) +# define NO_GMP +# endif +# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE) +# define NO_JPAKE +# endif +# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5) +# define NO_KRB5 +# endif +# if defined(OPENSSL_NO_LIBUNBOUND) && !defined(NO_LIBUNBOUND) +# define NO_LIBUNBOUND +# endif +# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2) +# define NO_MD2 +# endif +# if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP) +# define NO_SCTP +# endif +# if defined(OPENSSL_NO_SSL_TRACE) && !defined(NO_SSL_TRACE) +# define NO_SSL_TRACE +# endif +# if defined(OPENSSL_NO_SSL2) && !defined(NO_SSL2) +# define NO_SSL2 +# endif +# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE) +# define NO_STORE +# endif +# if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST) +# define NO_UNIT_TEST +# endif +#endif + +/* crypto/opensslconf.h.in */ + +/* Generate 80386 code? */ +#undef I386_ONLY + +#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ +#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) +#define ENGINESDIR "/usr/lib/engines" +#define OPENSSLDIR "/etc/ssl" +#endif +#endif + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +#if defined(HEADER_IDEA_H) && !defined(IDEA_INT) +#define IDEA_INT unsigned int +#endif + +#if defined(HEADER_MD2_H) && !defined(MD2_INT) +#define MD2_INT unsigned int +#endif + +#if defined(HEADER_RC2_H) && !defined(RC2_INT) +/* I need to put in a mod for the alpha - eay */ +#define RC2_INT unsigned int +#endif + +#if defined(HEADER_RC4_H) +#if !defined(RC4_INT) +/* using int types make the structure larger but make the code faster + * on most boxes I have tested - up to %20 faster. */ +/* + * I don't know what does "most" mean, but declaring "int" is a must on: + * - Intel P6 because partial register stalls are very expensive; + * - elder Alpha because it lacks byte load/store instructions; + */ +#define RC4_INT unsigned int +#endif +#if !defined(RC4_CHUNK) +/* + * This enables code handling data aligned at natural CPU word + * boundary. See crypto/rc4/rc4_enc.c for further details. + */ +#undef RC4_CHUNK +#endif +#endif + +#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG) +/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a + * %20 speed up (longs are 8 bytes, int's are 4). */ +#ifndef DES_LONG +#define DES_LONG unsigned int +#endif +#endif + +#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) +#define CONFIG_HEADER_BN_H +#undef BN_LLONG + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT +#endif + +#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) +#define CONFIG_HEADER_RC4_LOCL_H +/* if this is defined data[i] is used instead of *data, this is a %20 + * speedup on x86 */ +#define RC4_INDEX +#endif + +#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H) +#define CONFIG_HEADER_BF_LOCL_H +#undef BF_PTR +#endif /* HEADER_BF_LOCL_H */ + +#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H) +#define CONFIG_HEADER_DES_LOCL_H +#ifndef DES_DEFAULT_OPTIONS +/* the following is tweaked from a config script, that is why it is a + * protected undef/define */ +#ifndef DES_PTR +#define DES_PTR +#endif + +/* This helps C compiler generate the correct code for multiple functional + * units. It reduces register dependancies at the expense of 2 more + * registers */ +#ifndef DES_RISC1 +#define DES_RISC1 +#endif + +#ifndef DES_RISC2 +#undef DES_RISC2 +#endif + +#if defined(DES_RISC1) && defined(DES_RISC2) +#error YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! +#endif + +/* Unroll the inner loop, this sometimes helps, sometimes hinders. + * Very mucy CPU dependant */ +#ifndef DES_UNROLL +#define DES_UNROLL +#endif + +/* These default values were supplied by + * Peter Gutman + * They are only used if nothing else has been defined */ +#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL) +/* Special defines which change the way the code is built depending on the + CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find + even newer MIPS CPU's, but at the moment one size fits all for + optimization options. Older Sparc's work better with only UNROLL, but + there's no way to tell at compile time what it is you're running on */ + +#if defined( sun ) /* Newer Sparc's */ +# define DES_PTR +# define DES_RISC1 +# define DES_UNROLL +#elif defined( __ultrix ) /* Older MIPS */ +# define DES_PTR +# define DES_RISC2 +# define DES_UNROLL +#elif defined( __osf1__ ) /* Alpha */ +# define DES_PTR +# define DES_RISC2 +#elif defined ( _AIX ) /* RS6000 */ + /* Unknown */ +#elif defined( __hpux ) /* HP-PA */ + /* Unknown */ +#elif defined( __aux ) /* 68K */ + /* Unknown */ +#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */ +# define DES_UNROLL +#elif defined( __sgi ) /* Newer MIPS */ +# define DES_PTR +# define DES_RISC2 +# define DES_UNROLL +#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */ +# define DES_PTR +# define DES_RISC1 +# define DES_UNROLL +#endif /* Systems-specific speed defines */ +#endif + +#endif /* DES_DEFAULT_OPTIONS */ +#endif /* HEADER_DES_LOCL_H */ +#ifdef __cplusplus +} +#endif From owner-svn-src-all@freebsd.org Tue Jan 26 14:20:26 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 76EF8A6EA0F; Tue, 26 Jan 2016 14:20:26 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 49BCDF8E; Tue, 26 Jan 2016 14:20:26 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEKPC0042194; Tue, 26 Jan 2016 14:20:25 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEKPuw042192; Tue, 26 Jan 2016 14:20:25 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601261420.u0QEKPuw042192@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 26 Jan 2016 14:20:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294824 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:20:26 -0000 Author: hselasky Date: Tue Jan 26 14:20:25 2016 New Revision: 294824 URL: https://svnweb.freebsd.org/changeset/base/294824 Log: Add more LinuxKPI PCI related functions and defines. Removed comments deriving from Linux. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/pci.h Modified: head/sys/compat/linuxkpi/common/include/linux/pci.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/pci.h Tue Jan 26 14:17:39 2016 (r294823) +++ head/sys/compat/linuxkpi/common/include/linux/pci.h Tue Jan 26 14:20:25 2016 (r294824) @@ -114,14 +114,29 @@ struct pci_device_id { #define PCI_EXP_TYPE_DOWNSTREAM PCIEM_TYPE_DOWNSTREAM_PORT /* Downstream Port */ #define PCI_EXP_FLAGS_SLOT PCIEM_FLAGS_SLOT /* Slot implemented */ #define PCI_EXP_TYPE_RC_EC PCIEM_TYPE_ROOT_EC /* Root Complex Event Collector */ - +#define PCI_EXP_LNKCAP_SLS_2_5GB 0x01 /* Supported Link Speed 2.5GT/s */ +#define PCI_EXP_LNKCAP_SLS_5_0GB 0x02 /* Supported Link Speed 5.0GT/s */ +#define PCI_EXP_LNKCAP_MLW 0x03f0 /* Maximum Link Width */ +#define PCI_EXP_LNKCAP2_SLS_2_5GB 0x02 /* Supported Link Speed 2.5GT/s */ +#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x04 /* Supported Link Speed 5.0GT/s */ +#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x08 /* Supported Link Speed 8.0GT/s */ #define IORESOURCE_MEM SYS_RES_MEMORY #define IORESOURCE_IO SYS_RES_IOPORT #define IORESOURCE_IRQ SYS_RES_IRQ -struct pci_dev; +enum pci_bus_speed { + PCI_SPEED_UNKNOWN = -1, + PCIE_SPEED_2_5GT, + PCIE_SPEED_5_0GT, + PCIE_SPEED_8_0GT, +}; + +enum pcie_link_width { + PCIE_LNK_WIDTH_UNKNOWN = -1, +}; +struct pci_dev; struct pci_driver { struct list_head links; @@ -351,20 +366,6 @@ pci_find_capability(struct pci_dev *pdev return (reg); } - - - -/** - * pci_pcie_cap - get the saved PCIe capability offset - * @dev: PCI device - * - * PCIe capability offset is calculated at PCI device initialization - * time and saved in the data structure. This function returns saved - * PCIe capability offset. Using this instead of pci_find_capability() - * reduces unnecessary search in the PCI configuration space. If you - * need to calculate PCIe capability offset from raw device for some - * reasons, please use pci_find_capability() instead. - */ static inline int pci_pcie_cap(struct pci_dev *dev) { return pci_find_capability(dev, PCI_CAP_ID_EXP); @@ -505,13 +506,6 @@ static inline void pci_disable_sriov(str { } -/** - * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table - * @_table: device table name - * - * This macro is used to create a struct pci_device_id array (a device table) - * in a generic manner. - */ #define DEFINE_PCI_DEVICE_TABLE(_table) \ const struct pci_device_id _table[] __devinitdata @@ -569,54 +563,31 @@ typedef unsigned int __bitwise pci_chann typedef unsigned int __bitwise pci_ers_result_t; enum pci_channel_state { - /* I/O channel is in normal state */ - pci_channel_io_normal = (__force pci_channel_state_t) 1, - - /* I/O to channel is blocked */ - pci_channel_io_frozen = (__force pci_channel_state_t) 2, - - /* PCI card is dead */ - pci_channel_io_perm_failure = (__force pci_channel_state_t) 3, + pci_channel_io_normal = 1, + pci_channel_io_frozen = 2, + pci_channel_io_perm_failure = 3, }; enum pci_ers_result { - /* no result/none/not supported in device driver */ - PCI_ERS_RESULT_NONE = (__force pci_ers_result_t) 1, - - /* Device driver can recover without slot reset */ - PCI_ERS_RESULT_CAN_RECOVER = (__force pci_ers_result_t) 2, - - /* Device driver wants slot to be reset. */ - PCI_ERS_RESULT_NEED_RESET = (__force pci_ers_result_t) 3, - - /* Device has completely failed, is unrecoverable */ - PCI_ERS_RESULT_DISCONNECT = (__force pci_ers_result_t) 4, - - /* Device driver is fully recovered and operational */ - PCI_ERS_RESULT_RECOVERED = (__force pci_ers_result_t) 5, + PCI_ERS_RESULT_NONE = 1, + PCI_ERS_RESULT_CAN_RECOVER = 2, + PCI_ERS_RESULT_NEED_RESET = 3, + PCI_ERS_RESULT_DISCONNECT = 4, + PCI_ERS_RESULT_RECOVERED = 5, }; /* PCI bus error event callbacks */ struct pci_error_handlers { - /* PCI bus error detected on this device */ pci_ers_result_t (*error_detected)(struct pci_dev *dev, enum pci_channel_state error); - - /* MMIO has been re-enabled, but not DMA */ pci_ers_result_t (*mmio_enabled)(struct pci_dev *dev); - - /* PCI Express link has been reset */ pci_ers_result_t (*link_reset)(struct pci_dev *dev); - - /* PCI slot has been reset */ pci_ers_result_t (*slot_reset)(struct pci_dev *dev); - - /* Device driver may resume normal operations */ void (*resume)(struct pci_dev *dev); }; -/* freeBSD does not support SRIOV - yet */ +/* FreeBSD does not support SRIOV - yet */ static inline struct pci_dev *pci_physfn(struct pci_dev *dev) { return dev; @@ -721,7 +692,17 @@ static bool pcie_capability_reg_implemen } } - +static inline int pcie_capability_read_dword(struct pci_dev *dev, int pos, u32 *dst) +{ + if (pos & 3) + return -EINVAL; + + if (!pcie_capability_reg_implemented(dev, pos)) + return -EINVAL; + + return pci_read_config_dword(dev, pci_pcie_cap(dev) + pos, dst); +} + static inline int pcie_capability_write_word(struct pci_dev *dev, int pos, u16 val) { if (pos & 1) @@ -733,4 +714,18 @@ static inline int pcie_capability_write_ return pci_write_config_word(dev, pci_pcie_cap(dev) + pos, val); } +static inline int pcie_get_minimum_link(struct pci_dev *dev, + enum pci_bus_speed *speed, enum pcie_link_width *width) +{ + *speed = PCI_SPEED_UNKNOWN; + *width = PCIE_LNK_WIDTH_UNKNOWN; + return (0); +} + +static inline int +pci_num_vf(struct pci_dev *dev) +{ + return (0); +} + #endif /* _LINUX_PCI_H_ */ From owner-svn-src-all@freebsd.org Tue Jan 26 14:21:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6CADBA6EB54; Tue, 26 Jan 2016 14:21:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 38F8A1260; Tue, 26 Jan 2016 14:21:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QELVea044214; Tue, 26 Jan 2016 14:21:31 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QELVcm044213; Tue, 26 Jan 2016 14:21:31 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601261421.u0QELVcm044213@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 26 Jan 2016 14:21:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294825 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:21:32 -0000 Author: hselasky Date: Tue Jan 26 14:21:30 2016 New Revision: 294825 URL: https://svnweb.freebsd.org/changeset/base/294825 Log: Define __get_user() and __put_user() for the LinuxKPI. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/uaccess.h Modified: head/sys/compat/linuxkpi/common/include/linux/uaccess.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/uaccess.h Tue Jan 26 14:20:25 2016 (r294824) +++ head/sys/compat/linuxkpi/common/include/linux/uaccess.h Tue Jan 26 14:21:30 2016 (r294825) @@ -2,7 +2,7 @@ * Copyright (c) 2010 Isilon Systems, Inc. * Copyright (c) 2010 iX Systems, Inc. * Copyright (c) 2010 Panasas, Inc. - * Copyright (c) 2013-2015 Mellanox Technologies, Ltd. + * Copyright (c) 2013-2016 Mellanox Technologies, Ltd. * Copyright (c) 2015 François Tigeot * All rights reserved. * @@ -34,6 +34,17 @@ #include +#define __get_user(_x, _p) ({ \ + int __err; \ + __typeof(*(_p)) __x; \ + __err = -copyin((_p), &(__x), sizeof(*(_p))); \ + (_x) = __x; \ + __err; \ +}) +#define __put_user(_x, _p) ({ \ + __typeof(*(_p)) __x = (_x); \ + -copyout(&(__x), (_p), sizeof(*(_p))); \ +}) #define get_user(_x, _p) -copyin((_p), &(_x), sizeof(*(_p))) #define put_user(_x, _p) -copyout(&(_x), (_p), sizeof(*(_p))) From owner-svn-src-all@freebsd.org Tue Jan 26 14:27:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A6ECA6ECFA; Tue, 26 Jan 2016 14:27:02 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3C7B31802; Tue, 26 Jan 2016 14:27:02 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QER1qH045193; Tue, 26 Jan 2016 14:27:01 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QER18e045192; Tue, 26 Jan 2016 14:27:01 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601261427.u0QER18e045192@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 26 Jan 2016 14:27:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294826 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:27:02 -0000 Author: hselasky Date: Tue Jan 26 14:27:00 2016 New Revision: 294826 URL: https://svnweb.freebsd.org/changeset/base/294826 Log: Add definition for the NETDEV_CHANGE event and tidy up the LinuxKPI notifier header file a bit while at it. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/notifier.h Modified: head/sys/compat/linuxkpi/common/include/linux/notifier.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/notifier.h Tue Jan 26 14:21:30 2016 (r294825) +++ head/sys/compat/linuxkpi/common/include/linux/notifier.h Tue Jan 26 14:27:00 2016 (r294826) @@ -2,7 +2,7 @@ * Copyright (c) 2010 Isilon Systems, Inc. * Copyright (c) 2010 iX Systems, Inc. * Copyright (c) 2010 Panasas, Inc. - * Copyright (c) 2013, 2014 Mellanox Technologies, Ltd. + * Copyright (c) 2013-2016 Mellanox Technologies, Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,26 +34,24 @@ #include #include -/* - * Max number of FreeBSD events to map to Linux events per notify type. - */ #define NOTIFY_DONE 0 -#define _NOTIFY_COUNT 7 -struct notifier_block { - int (*notifier_call)(struct notifier_block *, unsigned long, void *); - struct notifier_block *next; - int priority; - eventhandler_tag tags[_NOTIFY_COUNT]; +enum { + NETDEV_CHANGE, + NETDEV_UP, + NETDEV_DOWN, + NETDEV_REGISTER, + NETDEV_UNREGISTER, + NETDEV_CHANGEADDR, + NETDEV_CHANGEIFADDR, + LINUX_NOTIFY_TAGS /* must be last */ }; -/* Values must be less than NOTIFY_COUNT */ -#define NETDEV_UP 0x0001 -#define NETDEV_DOWN 0x0002 -#define NETDEV_REGISTER 0x0003 -#define NETDEV_UNREGISTER 0x0004 -#define NETDEV_CHANGEADDR 0x0005 -#define NETDEV_CHANGEIFADDR 0x0006 - +struct notifier_block { + int (*notifier_call) (struct notifier_block *, unsigned long, void *); + struct notifier_block *next; + int priority; + eventhandler_tag tags[LINUX_NOTIFY_TAGS]; +}; -#endif /* _LINUX_NOTIFIER_H_ */ +#endif /* _LINUX_NOTIFIER_H_ */ From owner-svn-src-all@freebsd.org Tue Jan 26 14:29:52 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C285A6EE98; Tue, 26 Jan 2016 14:29:52 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 28CC71AD7; Tue, 26 Jan 2016 14:29:52 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QETprJ045316; Tue, 26 Jan 2016 14:29:51 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QETpcj045315; Tue, 26 Jan 2016 14:29:51 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601261429.u0QETpcj045315@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 26 Jan 2016 14:29:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294827 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:29:52 -0000 Author: hselasky Date: Tue Jan 26 14:29:50 2016 New Revision: 294827 URL: https://svnweb.freebsd.org/changeset/base/294827 Log: Add more network related macros and functions to the LinuxKPI. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/netdevice.h Modified: head/sys/compat/linuxkpi/common/include/linux/netdevice.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/netdevice.h Tue Jan 26 14:27:00 2016 (r294826) +++ head/sys/compat/linuxkpi/common/include/linux/netdevice.h Tue Jan 26 14:29:50 2016 (r294827) @@ -58,6 +58,9 @@ extern struct net init_net; #define dev_get_by_index(n, idx) ifnet_byindex_ref((idx)) #define dev_hold(d) if_ref((d)) #define dev_put(d) if_rele((d)) +#define dev_net(d) (&init_net) + +#define net_eq(a,b) ((a) == (b)) #define netif_running(dev) !!((dev)->if_drv_flags & IFF_DRV_RUNNING) #define netif_oper_up(dev) !!((dev)->if_flags & IFF_UP) @@ -69,6 +72,12 @@ netdev_priv(const struct net_device *dev return (dev->if_softc); } +static inline struct net_device * +netdev_notifier_info_to_dev(void *ifp) +{ + return (ifp); +} + int register_netdevice_notifier(struct notifier_block *); int register_inetaddr_notifier(struct notifier_block *); int unregister_netdevice_notifier(struct notifier_block *); @@ -94,6 +103,12 @@ dev_mc_delete(struct net_device *dev, vo } static inline int +dev_mc_del(struct net_device *dev, void *addr) +{ + return (dev_mc_delete(dev, addr, 6, 0)); +} + +static inline int dev_mc_add(struct net_device *dev, void *addr, int alen, int newonly) { struct sockaddr_dl sdl; From owner-svn-src-all@freebsd.org Tue Jan 26 14:30:05 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4421CA6EEF5; Tue, 26 Jan 2016 14:30:05 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 076A51C52; Tue, 26 Jan 2016 14:30:04 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEU4Vk045391; Tue, 26 Jan 2016 14:30:04 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEU3FX045388; Tue, 26 Jan 2016 14:30:03 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601261430.u0QEU3FX045388@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 26 Jan 2016 14:30:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294828 - in vendor-sys/alpine-hal/2.7: . eth X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:30:05 -0000 Author: zbb Date: Tue Jan 26 14:30:03 2016 New Revision: 294828 URL: https://svnweb.freebsd.org/changeset/base/294828 Log: Add networking components to Annapurna Labs HAL for Alpine PoC Added files required by the NIC driver. HAL version: 2.7 Obtained from: Semihalf Sponsored by: Annapurna Labs Added: vendor-sys/alpine-hal/2.7/al_hal_iofic.c (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_serdes.c (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_serdes.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_serdes_internal_regs.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_serdes_regs.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_config.c (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_config.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_debug.c (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_debug.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_iofic.c (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_iofic.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_iofic_regs.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_main.c (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_regs.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_regs_gen.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_regs_m2s.h (contents, props changed) vendor-sys/alpine-hal/2.7/al_hal_udma_regs_s2m.h (contents, props changed) vendor-sys/alpine-hal/2.7/eth/ vendor-sys/alpine-hal/2.7/eth/al_hal_an_lt_wrapper_regs.h (contents, props changed) vendor-sys/alpine-hal/2.7/eth/al_hal_eth.h (contents, props changed) vendor-sys/alpine-hal/2.7/eth/al_hal_eth_alu.h (contents, props changed) vendor-sys/alpine-hal/2.7/eth/al_hal_eth_ec_regs.h (contents, props changed) vendor-sys/alpine-hal/2.7/eth/al_hal_eth_kr.c (contents, props changed) vendor-sys/alpine-hal/2.7/eth/al_hal_eth_kr.h (contents, props changed) vendor-sys/alpine-hal/2.7/eth/al_hal_eth_mac_regs.h (contents, props changed) vendor-sys/alpine-hal/2.7/eth/al_hal_eth_main.c (contents, props changed) Added: vendor-sys/alpine-hal/2.7/al_hal_iofic.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/alpine-hal/2.7/al_hal_iofic.c Tue Jan 26 14:30:03 2016 (r294828) @@ -0,0 +1,291 @@ +/*- +******************************************************************************* +Copyright (C) 2015 Annapurna Labs Ltd. + +This file may be licensed under the terms of the Annapurna Labs Commercial +License Agreement. + +Alternatively, this file can be distributed under the terms of the GNU General +Public License V2 as published by the Free Software Foundation and can be +found at http://www.gnu.org/licenses/gpl-2.0.html + +Alternatively, redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + + * 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + +*******************************************************************************/ + +/** + * @{ + * @file al_hal_iofic.c + * + * @brief interrupt controller hal + * + */ + +#include "al_hal_iofic.h" +#include "al_hal_iofic_regs.h" + +/* + * configure the interrupt registers, interrupts will are kept masked + */ +int al_iofic_config(void __iomem *regs_base, int group, uint32_t flags) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_reg_write32(®s->ctrl[group].int_control_grp, flags); + + return 0; +} + +/* + * configure the moderation timer resolution for a given group + */ +int al_iofic_moder_res_config(void __iomem *regs_base, int group, + uint8_t resolution) + +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_control_grp); + AL_REG_FIELD_SET(reg, + INT_CONTROL_GRP_MOD_RES_MASK, + INT_CONTROL_GRP_MOD_RES_SHIFT, + resolution); + al_reg_write32(®s->ctrl[group].int_control_grp, reg); + + return 0; +} + +/* + * configure the moderation timer interval for a given legacy interrupt group + */ +int al_iofic_legacy_moder_interval_config(void __iomem *regs_base, int group, + uint8_t interval) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_control_grp); + AL_REG_FIELD_SET(reg, + INT_CONTROL_GRP_MOD_INTV_MASK, + INT_CONTROL_GRP_MOD_INTV_SHIFT, + interval); + al_reg_write32(®s->ctrl[group].int_control_grp, reg); + + return 0; +} + + +/* + * configure the moderation timer interval for a given msix vector. + */ +int al_iofic_msix_moder_interval_config(void __iomem *regs_base, int group, + uint8_t vector, uint8_t interval) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->grp_int_mod[group][vector].grp_int_mod_reg); + AL_REG_FIELD_SET(reg, + INT_MOD_INTV_MASK, + INT_MOD_INTV_SHIFT, + interval); + al_reg_write32(®s->grp_int_mod[group][vector].grp_int_mod_reg, reg); + + return 0; +} + +/* + * configure the vmid attributes for a given msix vector. + */ +int al_iofic_msix_vmid_attributes_config(void __iomem *regs_base, int group, + uint8_t vector, uint32_t vmid, uint8_t vmid_en) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg = 0; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + AL_REG_FIELD_SET(reg, + INT_MSIX_VMID_MASK, + INT_MSIX_VMID_SHIFT, + vmid); + AL_REG_BIT_VAL_SET(reg, + INT_MSIX_VMID_EN_SHIFT, + vmid_en); + + al_reg_write32(®s->grp_int_mod[group][vector].grp_int_vmid_reg, reg); + + return 0; +} + +/* + * return the offset of the unmask register for a given group + */ +uint32_t __iomem * al_iofic_unmask_offset_get(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + return ®s->ctrl[group].int_mask_clear_grp; +} + + +/* + * unmask specific interrupts for a given group + */ +void al_iofic_unmask(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + /* + * use the mask clear register, no need to read the mask register + * itself. write 0 to unmask, 1 has no effect + */ + al_reg_write32_relaxed(®s->ctrl[group].int_mask_clear_grp, ~mask); +} + +/* + * mask specific interrupts for a given group + */ +void al_iofic_mask(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_mask_grp); + + al_reg_write32(®s->ctrl[group].int_mask_grp, reg | mask); +} + +/* + * read the mask for a given group + */ +uint32_t al_iofic_read_mask(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + return al_reg_read32(®s->ctrl[group].int_mask_grp); +} + +/* + * read interrupt cause register for a given group + */ +uint32_t al_iofic_read_cause(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + return al_reg_read32(®s->ctrl[group].int_cause_grp); +} + +/* + * clear bits in the interrupt cause register for a given group + */ +void al_iofic_clear_cause(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + /* inverse mask, writing 1 has no effect */ + al_reg_write32(®s->ctrl[group].int_cause_grp, ~mask); +} + +/* + * Set the cause register for a given group + */ +void al_iofic_set_cause(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_reg_write32(®s->ctrl[group].int_cause_set_grp, mask); +} + + +/* + * unmask specific interrupts from aborting the udma a given group + */ +void al_iofic_abort_mask(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_reg_write32(®s->ctrl[group].int_abort_msk_grp, mask); + +} + +/* + * trigger all interrupts that are waiting for moderation timers to expire + */ +void al_iofic_interrupt_moderation_reset(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg = 0; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_control_grp); + reg |= INT_CONTROL_GRP_MOD_RST; + + al_reg_write32(®s->ctrl[group].int_control_grp, reg); +} + +/** @} end of interrupt controller group */ Added: vendor-sys/alpine-hal/2.7/al_hal_serdes.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/alpine-hal/2.7/al_hal_serdes.c Tue Jan 26 14:30:03 2016 (r294828) @@ -0,0 +1,3228 @@ +/*- +******************************************************************************* +Copyright (C) 2015 Annapurna Labs Ltd. + +This file may be licensed under the terms of the Annapurna Labs Commercial +License Agreement. + +Alternatively, this file can be distributed under the terms of the GNU General +Public License V2 as published by the Free Software Foundation and can be +found at http://www.gnu.org/licenses/gpl-2.0.html + +Alternatively, redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + + * 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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 "al_hal_serdes.h" +#include "al_hal_serdes_regs.h" +#include "al_hal_serdes_internal_regs.h" + +#define SRDS_CORE_REG_ADDR(page, type, offset)\ + (((page) << 13) | ((type) << 12) | (offset)) + +/* Link Training configuration */ +#define AL_SERDES_TX_DEEMPH_SUM_MAX 0x1b + +/* c configurations */ +#define AL_SERDES_TX_DEEMPH_C_ZERO_MAX_VAL 0x1b +#define AL_SERDES_TX_DEEMPH_C_ZERO_MIN_VAL 0 +#define AL_SERDES_TX_DEEMPH_C_ZERO_PRESET AL_SERDES_TX_DEEMPH_C_ZERO_MAX_VAL + +/* c(+1) configurations */ +#define AL_SERDES_TX_DEEMPH_C_PLUS_MAX_VAL 0x9 +#define AL_SERDES_TX_DEEMPH_C_PLUS_MIN_VAL 0 +#define AL_SERDES_TX_DEEMPH_C_PLUS_PRESET AL_SERDES_TX_DEEMPH_C_PLUS_MIN_VAL + +/* c(-1) configurations */ +#define AL_SERDES_TX_DEEMPH_C_MINUS_MAX_VAL 0x6 +#define AL_SERDES_TX_DEEMPH_C_MINUS_MIN_VAL 0 +#define AL_SERDES_TX_DEEMPH_C_MINUS_PRESET AL_SERDES_TX_DEEMPH_C_MINUS_MIN_VAL + +/* Rx equal total delay = MDELAY * TRIES */ +#define AL_SERDES_RX_EQUAL_MDELAY 10 +#define AL_SERDES_RX_EQUAL_TRIES 50 + +/* Rx eye calculation delay = MDELAY * TRIES */ +#define AL_SERDES_RX_EYE_CAL_MDELAY 50 +#define AL_SERDES_RX_EYE_CAL_TRIES 70 + + +/** + * Prototypes for _lane_ compatibility + */ +int al_serdes_lane_read( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t *data); + +int al_serdes_lane_write( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data); + + +/** + * SERDES core reg/lane read + */ +static inline uint8_t al_serdes_grp_reg_read( + struct al_serdes_group_info *grp_info, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset); + +static inline uint8_t al_serdes_grp_lane_read( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane page, + enum al_serdes_reg_type type, + uint16_t offset); + +/** + * SERDES core reg/lane write + */ +static inline void al_serdes_grp_reg_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data); + +static inline void al_serdes_grp_lane_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data); + +/** + * SERDES core masked reg/lane write + */ +static inline void al_serdes_grp_reg_masked_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t mask, + uint8_t data); + +/** + * Lane Rx rate change software flow disable + */ +static void _al_serdes_lane_rx_rate_change_sw_flow_dis( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane); + +/** + * Group Rx rate change software flow enable if all conditions met + */ +static void al_serdes_group_rx_rate_change_sw_flow_dis( + struct al_serdes_group_info *grp_info); + +/** + * Lane Rx rate change software flow enable if all conditions met + */ +static void _al_serdes_lane_rx_rate_change_sw_flow_en_cond( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane); + +/** + * Group Rx rate change software flow enable if all conditions met + */ +static void al_serdes_group_rx_rate_change_sw_flow_en_cond( + struct al_serdes_group_info *grp_info); + + +static inline void al_serdes_grp_lane_masked_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t mask, + uint8_t data); + +/******************************************************************************/ +/******************************************************************************/ +int al_serdes_handle_init( + void __iomem *serdes_regs_base, + struct al_serdes_obj *obj) +{ + int i; + + al_dbg( + "%s(%p, %p)\n", + __func__, + serdes_regs_base, + obj); + + al_assert(serdes_regs_base); + + for (i = 0; i < AL_SRDS_NUM_GROUPS; i++) { + obj->grp_info[i].pobj = obj; + + obj->grp_info[i].regs_base = + &((struct al_serdes_regs *)serdes_regs_base)[i]; + } + + return 0; +} + +/******************************************************************************/ +/******************************************************************************/ +int al_serdes_reg_read( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t *data) +{ + int status = 0; + + al_dbg( + "%s(%p, %d, %d, %d, %u)\n", + __func__, + obj, + grp, + page, + type, + offset); + + al_assert(obj); + al_assert(data); + al_assert(((int)grp) >= AL_SRDS_GRP_A); + al_assert(((int)grp) <= AL_SRDS_GRP_D); + al_assert(((int)page) >= AL_SRDS_REG_PAGE_0_LANE_0); + al_assert(((int)page) <= AL_SRDS_REG_PAGE_4_COMMON); + al_assert(((int)type) >= AL_SRDS_REG_TYPE_PMA); + al_assert(((int)type) <= AL_SRDS_REG_TYPE_PCS); + + *data = al_serdes_grp_reg_read( + &obj->grp_info[grp], + page, + type, + offset); + + al_dbg( + "%s: return(%u)\n", + __func__, + *data); + + return status; +} + +int al_serdes_lane_read( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t *data) +{ + return al_serdes_reg_read(obj, grp, (enum al_serdes_reg_page)lane, type, + offset, data); +} +/******************************************************************************/ +/******************************************************************************/ +int al_serdes_reg_write( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data) +{ + int status = 0; + + al_dbg( + "%s(%p, %d, %d, %d, %u, %u)\n", + __func__, + obj, + grp, + page, + type, + offset, + data); + + al_assert(obj); + al_assert(((int)grp) >= AL_SRDS_GRP_A); + al_assert(((int)grp) <= AL_SRDS_GRP_D); + al_assert(((int)page) >= AL_SRDS_REG_PAGE_0_LANE_0); + al_assert(((int)page) <= AL_SRDS_REG_PAGE_0123_LANES_0123); + al_assert(((int)type) >= AL_SRDS_REG_TYPE_PMA); + al_assert(((int)type) <= AL_SRDS_REG_TYPE_PCS); + + al_serdes_grp_reg_write( + &obj->grp_info[grp], + page, + type, + offset, + data); + + return status; +} + +int al_serdes_lane_write( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data) +{ + return al_serdes_reg_write(obj, grp, (enum al_serdes_reg_page)lane, + type, offset, data); +} +/******************************************************************************/ +/******************************************************************************/ +#if (SERDES_IREG_FLD_PCSRX_DATAWIDTH_REG_NUM != SERDES_IREG_FLD_PCSTX_DATAWIDTH_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_PCSRX_DIVRATE_REG_NUM != SERDES_IREG_FLD_PCSTX_DIVRATE_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM != SERDES_IREG_FLD_CMNPCS_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM != SERDES_IREG_FLD_CMNPCSBIST_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM != SERDES_IREG_FLD_CMNPCSPSTATE_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_LB_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSRX_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSRXBIST_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSRXEQ_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSTX_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +void al_serdes_bist_overrides_enable( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_rate rate) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + int i; + + uint8_t rx_rate_val; + uint8_t tx_rate_val; + + switch (rate) { + case AL_SRDS_RATE_1_8: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_8; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_8; + break; + case AL_SRDS_RATE_1_4: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_4; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_4; + break; + case AL_SRDS_RATE_1_2: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_2; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_2; + break; + case AL_SRDS_RATE_FULL: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_1; + break; + default: + al_err("%s: invalid rate (%d)\n", __func__, rate); + al_assert(0); + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_1; + } + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSRX_DATAWIDTH_REG_NUM, + SERDES_IREG_FLD_PCSRX_DATAWIDTH_MASK | + SERDES_IREG_FLD_PCSTX_DATAWIDTH_MASK, + SERDES_IREG_FLD_PCSRX_DATAWIDTH_VAL_20 | + SERDES_IREG_FLD_PCSTX_DATAWIDTH_VAL_20); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSRX_DIVRATE_REG_NUM, + SERDES_IREG_FLD_PCSRX_DIVRATE_MASK | + SERDES_IREG_FLD_PCSTX_DIVRATE_MASK, + rx_rate_val | tx_rate_val); + } + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN | + SERDES_IREG_FLD_CMNPCS_LOCWREN | + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN | + SERDES_IREG_FLD_CMNPCSPSTATE_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN | + SERDES_IREG_FLD_CMNPCS_LOCWREN | + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN | + SERDES_IREG_FLD_CMNPCSPSTATE_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCS_LOCWREN_REG_NUM, + SERDES_IREG_FLD_PCS_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCS_TXENABLE_REG_NUM, + SERDES_IREG_FLD_CMNPCS_TXENABLE, + SERDES_IREG_FLD_CMNPCS_TXENABLE); + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM, + SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN | + SERDES_IREG_FLD_LB_LOCWREN | + SERDES_IREG_FLD_PCSRX_LOCWREN | + SERDES_IREG_FLD_PCSRXBIST_LOCWREN | + SERDES_IREG_FLD_PCSRXEQ_LOCWREN | + SERDES_IREG_FLD_PCSTX_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN_REG_NUM, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_TX_DRV_OVERRIDE_EN_REG_NUM, + SERDES_IREG_FLD_TX_DRV_OVERRIDE_EN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_RXLOCK2REF_OVREN_REG_NUM, + SERDES_IREG_FLD_RXLOCK2REF_OVREN, + SERDES_IREG_FLD_RXLOCK2REF_OVREN); + } +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_bist_overrides_disable( + struct al_serdes_obj *obj, + enum al_serdes_group grp) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + int i; + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM, + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN, + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN); + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM, + SERDES_IREG_FLD_LB_LOCWREN | + SERDES_IREG_FLD_PCSRXBIST_LOCWREN, + SERDES_IREG_FLD_LB_LOCWREN | + SERDES_IREG_FLD_PCSRXBIST_LOCWREN); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN_REG_NUM, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN); + } +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_rx_rate_change( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_rate rate) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + int i; + + uint8_t rx_rate_val; + + switch (rate) { + case AL_SRDS_RATE_1_8: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_8; + break; + case AL_SRDS_RATE_1_4: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_4; + break; + case AL_SRDS_RATE_1_2: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_2; + break; + case AL_SRDS_RATE_FULL: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + break; + default: + al_err("%s: invalid rate (%d)\n", __func__, rate); + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + break; + } + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSRX_DIVRATE_REG_NUM, + SERDES_IREG_FLD_PCSRX_DIVRATE_MASK, + rx_rate_val); + } +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_group_pm_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_pm pm) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + uint8_t pm_val; + + switch (pm) { + case AL_SRDS_PM_PD: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_PD; + break; + case AL_SRDS_PM_P2: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P2; + break; + case AL_SRDS_PM_P1: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P1; + break; + case AL_SRDS_PM_P0S: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P0S; + break; + case AL_SRDS_PM_P0: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P0; + break; + default: + al_err("%s: invalid power mode (%d)\n", __func__, pm); + al_assert(0); + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P0; + } + + if (pm == AL_SRDS_PM_PD) + al_serdes_group_rx_rate_change_sw_flow_dis(grp_info); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_REG_NUM, + SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_MASK, + pm_val); + + if (pm != AL_SRDS_PM_PD) + al_serdes_group_rx_rate_change_sw_flow_en_cond(grp_info); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_rx_rate_change_sw_flow_en( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 201, 0xfc); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 202, 0xff); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 203, 0xff); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 204, 0xff); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 205, 0x7f); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 205, 0xff); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_rx_rate_change_sw_flow_dis( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 205, 0x7f); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_pcie_rate_override_enable_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + al_bool en) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA_REG_NUM, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA, + en ? SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA : 0); +} + +/******************************************************************************/ +/******************************************************************************/ +al_bool al_serdes_lane_pcie_rate_override_is_enabled( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + return (al_serdes_grp_lane_read( + grp_info, + lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA_REG_NUM) & + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA) ? AL_TRUE : AL_FALSE; +} + +/******************************************************************************/ +/******************************************************************************/ +enum al_serdes_pcie_rate al_serdes_lane_pcie_rate_get( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + return (al_serdes_grp_reg_read( + grp_info, + (enum al_serdes_reg_page)lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_REG_NUM) & + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_MASK) >> + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_SHIFT; +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_pcie_rate_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_pcie_rate rate) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_REG_NUM, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_MASK, + rate << SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_SHIFT); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_pm_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_pm rx_pm, + enum al_serdes_pm tx_pm) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 26 14:31:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F138A46027; Tue, 26 Jan 2016 14:31:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EF7331E33; Tue, 26 Jan 2016 14:31:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEVKab048030; Tue, 26 Jan 2016 14:31:20 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEVKhu048029; Tue, 26 Jan 2016 14:31:20 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601261431.u0QEVKhu048029@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 26 Jan 2016 14:31:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294829 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:31:22 -0000 Author: hselasky Date: Tue Jan 26 14:31:20 2016 New Revision: 294829 URL: https://svnweb.freebsd.org/changeset/base/294829 Log: Implement bitmap_weight() and bitmap_equal() for the LinuxKPI. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/bitops.h Modified: head/sys/compat/linuxkpi/common/include/linux/bitops.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/bitops.h Tue Jan 26 14:30:03 2016 (r294828) +++ head/sys/compat/linuxkpi/common/include/linux/bitops.h Tue Jan 26 14:31:20 2016 (r294829) @@ -467,10 +467,40 @@ bitmap_release_region(unsigned long *bit __reg_op(bitmap, pos, order, REG_OP_RELEASE); } - #define for_each_set_bit(bit, addr, size) \ for ((bit) = find_first_bit((addr), (size)); \ (bit) < (size); \ (bit) = find_next_bit((addr), (size), (bit) + 1)) +static inline unsigned +bitmap_weight(unsigned long *bitmap, unsigned nbits) +{ + unsigned bit; + unsigned retval = 0; + + for_each_set_bit(bit, bitmap, nbits) + retval++; + return (retval); +} + +static inline int +bitmap_equal(const unsigned long *pa, + const unsigned long *pb, unsigned bits) +{ + unsigned x; + unsigned y = bits / BITS_PER_LONG; + + for (x = 0; x != y; x++) { + if (pa[x] != pb[x]) + return (0); + } + + y = bits % BITS_PER_LONG; + if (y != 0) { + if ((pa[x] ^ pb[x]) & BITMAP_LAST_WORD_MASK(y)) + return (0); + } + return (1); +} + #endif /* _LINUX_BITOPS_H_ */ From owner-svn-src-all@freebsd.org Tue Jan 26 14:33:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5175EA46115; Tue, 26 Jan 2016 14:33:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 23BEF21D; Tue, 26 Jan 2016 14:33:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEXLrP048156; Tue, 26 Jan 2016 14:33:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEXL8N048155; Tue, 26 Jan 2016 14:33:21 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601261433.u0QEXL8N048155@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 26 Jan 2016 14:33:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294830 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:33:22 -0000 Author: hselasky Date: Tue Jan 26 14:33:20 2016 New Revision: 294830 URL: https://svnweb.freebsd.org/changeset/base/294830 Log: Implement is_vlan_dev() and vlan_dev_vlan_id() for the LinuxKPI. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/if_vlan.h Modified: head/sys/compat/linuxkpi/common/include/linux/if_vlan.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/if_vlan.h Tue Jan 26 14:31:20 2016 (r294829) +++ head/sys/compat/linuxkpi/common/include/linux/if_vlan.h Tue Jan 26 14:33:20 2016 (r294830) @@ -2,7 +2,7 @@ * Copyright (c) 2010 Isilon Systems, Inc. * Copyright (c) 2010 iX Systems, Inc. * Copyright (c) 2010 Panasas, Inc. - * Copyright (c) 2013 Mellanox Technologies, Ltd. + * Copyright (c) 2013-2016 Mellanox Technologies, Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,8 +35,25 @@ #include #include #include +#include #include +#include #define VLAN_N_VID 4096 +static inline int +is_vlan_dev(struct ifnet *ifp) +{ + return (ifp->if_type == IFT_L2VLAN); +} + +static inline uint16_t +vlan_dev_vlan_id(struct ifnet *ifp) +{ + uint16_t vtag; + if (VLAN_TAG(ifp, &vtag) == 0) + return (vtag); + return (0); +} + #endif /* _LINUX_IF_VLAN_H_ */ From owner-svn-src-all@freebsd.org Tue Jan 26 14:34:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4EE60A461A3; Tue, 26 Jan 2016 14:34:42 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1EF763EC; Tue, 26 Jan 2016 14:34:42 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEYfB1048241; Tue, 26 Jan 2016 14:34:41 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEYfHU048240; Tue, 26 Jan 2016 14:34:41 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601261434.u0QEYfHU048240@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Tue, 26 Jan 2016 14:34:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294831 - head/usr.sbin X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:34:42 -0000 Author: br Date: Tue Jan 26 14:34:40 2016 New Revision: 294831 URL: https://svnweb.freebsd.org/changeset/base/294831 Log: Remove uathload from build due to issue with GCC 5.2.0: "ld: --relax and -r may not be used together." Requires fixing ld command line arguments and testing. Modified: head/usr.sbin/Makefile Modified: head/usr.sbin/Makefile ============================================================================== --- head/usr.sbin/Makefile Tue Jan 26 14:33:20 2016 (r294830) +++ head/usr.sbin/Makefile Tue Jan 26 14:34:40 2016 (r294831) @@ -194,7 +194,9 @@ SUBDIR.${MK_TIMED}+= timed SUBDIR.${MK_TOOLCHAIN}+= config SUBDIR.${MK_TOOLCHAIN}+= crunch SUBDIR.${MK_UNBOUND}+= unbound +.if !(${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 50200) SUBDIR.${MK_USB}+= uathload +.endif SUBDIR.${MK_USB}+= uhsoctl SUBDIR.${MK_USB}+= usbconfig SUBDIR.${MK_USB}+= usbdump From owner-svn-src-all@freebsd.org Tue Jan 26 14:36:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DCDBA46269; Tue, 26 Jan 2016 14:36:18 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1E6D77F8; Tue, 26 Jan 2016 14:36:18 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEaHsW048342; Tue, 26 Jan 2016 14:36:17 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEaHfF048341; Tue, 26 Jan 2016 14:36:17 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601261436.u0QEaHfF048341@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 26 Jan 2016 14:36:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294832 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:36:18 -0000 Author: hselasky Date: Tue Jan 26 14:36:16 2016 New Revision: 294832 URL: https://svnweb.freebsd.org/changeset/base/294832 Log: Implement ether_addr_equal(), ether_addr_equal_64bits() and random_ether_addr() for the LinuxKPI. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/etherdevice.h Modified: head/sys/compat/linuxkpi/common/include/linux/etherdevice.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/etherdevice.h Tue Jan 26 14:34:40 2016 (r294831) +++ head/sys/compat/linuxkpi/common/include/linux/etherdevice.h Tue Jan 26 14:36:16 2016 (r294832) @@ -29,6 +29,9 @@ #include +#include +#include + #define ETH_MODULE_SFF_8079 1 #define ETH_MODULE_SFF_8079_LEN 256 #define ETH_MODULE_SFF_8472 2 @@ -78,4 +81,25 @@ ether_addr_copy(u8 * dst, const u8 * src memcpy(dst, src, 6); } +static inline bool +ether_addr_equal(const u8 *pa, const u8 *pb) +{ + return (memcmp(pa, pb, 6) == 0); +} + +static inline bool +ether_addr_equal_64bits(const u8 *pa, const u8 *pb) +{ + return (memcmp(pa, pb, 6) == 0); +} + +static inline void +random_ether_addr(u8 * dst) +{ + read_random(dst, 6); + + dst[0] &= 0xfe; + dst[0] |= 0x02; +} + #endif /* _LINUX_ETHERDEVICE */ From owner-svn-src-all@freebsd.org Tue Jan 26 14:40:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 74BCCA463A1; Tue, 26 Jan 2016 14:40:43 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 277DC9C8; Tue, 26 Jan 2016 14:40:43 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEegfW049153; Tue, 26 Jan 2016 14:40:42 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEegdE049152; Tue, 26 Jan 2016 14:40:42 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601261440.u0QEegdE049152@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Tue, 26 Jan 2016 14:40:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294833 - head/lib/msun/riscv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:40:43 -0000 Author: br Date: Tue Jan 26 14:40:41 2016 New Revision: 294833 URL: https://svnweb.freebsd.org/changeset/base/294833 Log: Add fenv.c for RISC-V. Copied from MIPS. Added: head/lib/msun/riscv/fenv.c (contents, props changed) Added: head/lib/msun/riscv/fenv.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/msun/riscv/fenv.c Tue Jan 26 14:40:41 2016 (r294833) @@ -0,0 +1,52 @@ +/*- + * Copyright (c) 2004 David Schultz + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#define __fenv_static +#include "fenv.h" + +#ifdef __GNUC_GNU_INLINE__ +#error "This file must be compiled with C99 'inline' semantics" +#endif + +/* + * Hopefully the system ID byte is immutable, so it's valid to use + * this as a default environment. + */ +const fenv_t __fe_dfl_env = 0; + +extern inline int feclearexcept(int __excepts); +extern inline int fegetexceptflag(fexcept_t *__flagp, int __excepts); +extern inline int fesetexceptflag(const fexcept_t *__flagp, int __excepts); +extern inline int feraiseexcept(int __excepts); +extern inline int fetestexcept(int __excepts); +extern inline int fegetround(void); +extern inline int fesetround(int __round); +extern inline int fegetenv(fenv_t *__envp); +extern inline int feholdexcept(fenv_t *__envp); +extern inline int fesetenv(const fenv_t *__envp); +extern inline int feupdateenv(const fenv_t *__envp); From owner-svn-src-all@freebsd.org Tue Jan 26 14:45:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 368BEA465F3; Tue, 26 Jan 2016 14:45:23 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 07D1EDE2; Tue, 26 Jan 2016 14:45:22 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEjMbb051305; Tue, 26 Jan 2016 14:45:22 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEjMOI051304; Tue, 26 Jan 2016 14:45:22 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601261445.u0QEjMOI051304@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Tue, 26 Jan 2016 14:45:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294834 - head/gnu/lib/libgcc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:45:23 -0000 Author: br Date: Tue Jan 26 14:45:21 2016 New Revision: 294834 URL: https://svnweb.freebsd.org/changeset/base/294834 Log: Make libgcc compilable on RISC-V. Modified: head/gnu/lib/libgcc/Makefile Modified: head/gnu/lib/libgcc/Makefile ============================================================================== --- head/gnu/lib/libgcc/Makefile Tue Jan 26 14:40:41 2016 (r294833) +++ head/gnu/lib/libgcc/Makefile Tue Jan 26 14:45:21 2016 (r294834) @@ -58,8 +58,10 @@ LIB2FUNCS+= _fixuns${mode}si .endfor # Likewise double-word routines. -.if ${TARGET_CPUARCH} != "aarch64" && ${TARGET_CPUARCH} != "arm" -# These are implemented in an ARM specific file but will not be filtered out +.if ${TARGET_CPUARCH} != "aarch64" && ${TARGET_CPUARCH} != "arm" && \ + ${TARGET_CPUARCH} != "riscv64" +# These are implemented in an ARM specific file but will not be filtered out. +# RISCVTODO: can't compile .for mode in sf df xf tf LIB2FUNCS+= _fix${mode}di _fixuns${mode}di LIB2FUNCS+= _floatdi${mode} _floatundi${mode} @@ -322,7 +324,10 @@ EH_OBJS_T = ${LIB2ADDEHSTATIC:R:S/$/.o/} EH_OBJS_P = ${LIB2ADDEHSTATIC:R:S/$/.po/} EH_OBJS_S = ${LIB2ADDEHSHARED:R:S/$/.So/} EH_CFLAGS = -fexceptions -D__GLIBC__=3 -DElfW=__ElfN +.if ${TARGET_CPUARCH} != "riscv64" +# RISCVTODO: unwinding support SOBJS += ${EH_OBJS_S} +.endif .for _src in ${LIB2ADDEHSTATIC:M*.c} ${_src:R:S/$/.o/}: ${_src} ${COMMONHDRS} From owner-svn-src-all@freebsd.org Tue Jan 26 14:45:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1AA4BA4661F; Tue, 26 Jan 2016 14:45:27 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D83C6E12; Tue, 26 Jan 2016 14:45:26 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEjQ4G051352; Tue, 26 Jan 2016 14:45:26 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEjPnK051349; Tue, 26 Jan 2016 14:45:25 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601261445.u0QEjPnK051349@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 26 Jan 2016 14:45:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294835 - in vendor-sys/alpine-hal/dist: . eth X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:45:27 -0000 Author: zbb Date: Tue Jan 26 14:45:25 2016 New Revision: 294835 URL: https://svnweb.freebsd.org/changeset/base/294835 Log: Update alpine-hal/dist/ accordingly after r294828 alpine-hal/dist was omitted in the previous commit. Files added here. HAL version: 2.7 Obtained from: Semihalf Sponsored by: Annapurna Labs Added: vendor-sys/alpine-hal/dist/al_hal_iofic.c (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_serdes.c (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_serdes.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_serdes_internal_regs.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_serdes_regs.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_config.c (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_config.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_debug.c (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_debug.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_iofic.c (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_iofic.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_iofic_regs.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_main.c (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_regs.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_regs_gen.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_regs_m2s.h (contents, props changed) vendor-sys/alpine-hal/dist/al_hal_udma_regs_s2m.h (contents, props changed) vendor-sys/alpine-hal/dist/eth/ vendor-sys/alpine-hal/dist/eth/al_hal_an_lt_wrapper_regs.h (contents, props changed) vendor-sys/alpine-hal/dist/eth/al_hal_eth.h (contents, props changed) vendor-sys/alpine-hal/dist/eth/al_hal_eth_alu.h (contents, props changed) vendor-sys/alpine-hal/dist/eth/al_hal_eth_ec_regs.h (contents, props changed) vendor-sys/alpine-hal/dist/eth/al_hal_eth_kr.c (contents, props changed) vendor-sys/alpine-hal/dist/eth/al_hal_eth_kr.h (contents, props changed) vendor-sys/alpine-hal/dist/eth/al_hal_eth_mac_regs.h (contents, props changed) vendor-sys/alpine-hal/dist/eth/al_hal_eth_main.c (contents, props changed) Added: vendor-sys/alpine-hal/dist/al_hal_iofic.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/alpine-hal/dist/al_hal_iofic.c Tue Jan 26 14:45:25 2016 (r294835) @@ -0,0 +1,291 @@ +/*- +******************************************************************************* +Copyright (C) 2015 Annapurna Labs Ltd. + +This file may be licensed under the terms of the Annapurna Labs Commercial +License Agreement. + +Alternatively, this file can be distributed under the terms of the GNU General +Public License V2 as published by the Free Software Foundation and can be +found at http://www.gnu.org/licenses/gpl-2.0.html + +Alternatively, redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + + * 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + +*******************************************************************************/ + +/** + * @{ + * @file al_hal_iofic.c + * + * @brief interrupt controller hal + * + */ + +#include "al_hal_iofic.h" +#include "al_hal_iofic_regs.h" + +/* + * configure the interrupt registers, interrupts will are kept masked + */ +int al_iofic_config(void __iomem *regs_base, int group, uint32_t flags) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_reg_write32(®s->ctrl[group].int_control_grp, flags); + + return 0; +} + +/* + * configure the moderation timer resolution for a given group + */ +int al_iofic_moder_res_config(void __iomem *regs_base, int group, + uint8_t resolution) + +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_control_grp); + AL_REG_FIELD_SET(reg, + INT_CONTROL_GRP_MOD_RES_MASK, + INT_CONTROL_GRP_MOD_RES_SHIFT, + resolution); + al_reg_write32(®s->ctrl[group].int_control_grp, reg); + + return 0; +} + +/* + * configure the moderation timer interval for a given legacy interrupt group + */ +int al_iofic_legacy_moder_interval_config(void __iomem *regs_base, int group, + uint8_t interval) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_control_grp); + AL_REG_FIELD_SET(reg, + INT_CONTROL_GRP_MOD_INTV_MASK, + INT_CONTROL_GRP_MOD_INTV_SHIFT, + interval); + al_reg_write32(®s->ctrl[group].int_control_grp, reg); + + return 0; +} + + +/* + * configure the moderation timer interval for a given msix vector. + */ +int al_iofic_msix_moder_interval_config(void __iomem *regs_base, int group, + uint8_t vector, uint8_t interval) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->grp_int_mod[group][vector].grp_int_mod_reg); + AL_REG_FIELD_SET(reg, + INT_MOD_INTV_MASK, + INT_MOD_INTV_SHIFT, + interval); + al_reg_write32(®s->grp_int_mod[group][vector].grp_int_mod_reg, reg); + + return 0; +} + +/* + * configure the vmid attributes for a given msix vector. + */ +int al_iofic_msix_vmid_attributes_config(void __iomem *regs_base, int group, + uint8_t vector, uint32_t vmid, uint8_t vmid_en) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg = 0; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + AL_REG_FIELD_SET(reg, + INT_MSIX_VMID_MASK, + INT_MSIX_VMID_SHIFT, + vmid); + AL_REG_BIT_VAL_SET(reg, + INT_MSIX_VMID_EN_SHIFT, + vmid_en); + + al_reg_write32(®s->grp_int_mod[group][vector].grp_int_vmid_reg, reg); + + return 0; +} + +/* + * return the offset of the unmask register for a given group + */ +uint32_t __iomem * al_iofic_unmask_offset_get(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + return ®s->ctrl[group].int_mask_clear_grp; +} + + +/* + * unmask specific interrupts for a given group + */ +void al_iofic_unmask(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + /* + * use the mask clear register, no need to read the mask register + * itself. write 0 to unmask, 1 has no effect + */ + al_reg_write32_relaxed(®s->ctrl[group].int_mask_clear_grp, ~mask); +} + +/* + * mask specific interrupts for a given group + */ +void al_iofic_mask(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_mask_grp); + + al_reg_write32(®s->ctrl[group].int_mask_grp, reg | mask); +} + +/* + * read the mask for a given group + */ +uint32_t al_iofic_read_mask(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + return al_reg_read32(®s->ctrl[group].int_mask_grp); +} + +/* + * read interrupt cause register for a given group + */ +uint32_t al_iofic_read_cause(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + return al_reg_read32(®s->ctrl[group].int_cause_grp); +} + +/* + * clear bits in the interrupt cause register for a given group + */ +void al_iofic_clear_cause(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + /* inverse mask, writing 1 has no effect */ + al_reg_write32(®s->ctrl[group].int_cause_grp, ~mask); +} + +/* + * Set the cause register for a given group + */ +void al_iofic_set_cause(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_reg_write32(®s->ctrl[group].int_cause_set_grp, mask); +} + + +/* + * unmask specific interrupts from aborting the udma a given group + */ +void al_iofic_abort_mask(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_reg_write32(®s->ctrl[group].int_abort_msk_grp, mask); + +} + +/* + * trigger all interrupts that are waiting for moderation timers to expire + */ +void al_iofic_interrupt_moderation_reset(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg = 0; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_control_grp); + reg |= INT_CONTROL_GRP_MOD_RST; + + al_reg_write32(®s->ctrl[group].int_control_grp, reg); +} + +/** @} end of interrupt controller group */ Added: vendor-sys/alpine-hal/dist/al_hal_serdes.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/alpine-hal/dist/al_hal_serdes.c Tue Jan 26 14:45:25 2016 (r294835) @@ -0,0 +1,3228 @@ +/*- +******************************************************************************* +Copyright (C) 2015 Annapurna Labs Ltd. + +This file may be licensed under the terms of the Annapurna Labs Commercial +License Agreement. + +Alternatively, this file can be distributed under the terms of the GNU General +Public License V2 as published by the Free Software Foundation and can be +found at http://www.gnu.org/licenses/gpl-2.0.html + +Alternatively, redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + + * 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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 "al_hal_serdes.h" +#include "al_hal_serdes_regs.h" +#include "al_hal_serdes_internal_regs.h" + +#define SRDS_CORE_REG_ADDR(page, type, offset)\ + (((page) << 13) | ((type) << 12) | (offset)) + +/* Link Training configuration */ +#define AL_SERDES_TX_DEEMPH_SUM_MAX 0x1b + +/* c configurations */ +#define AL_SERDES_TX_DEEMPH_C_ZERO_MAX_VAL 0x1b +#define AL_SERDES_TX_DEEMPH_C_ZERO_MIN_VAL 0 +#define AL_SERDES_TX_DEEMPH_C_ZERO_PRESET AL_SERDES_TX_DEEMPH_C_ZERO_MAX_VAL + +/* c(+1) configurations */ +#define AL_SERDES_TX_DEEMPH_C_PLUS_MAX_VAL 0x9 +#define AL_SERDES_TX_DEEMPH_C_PLUS_MIN_VAL 0 +#define AL_SERDES_TX_DEEMPH_C_PLUS_PRESET AL_SERDES_TX_DEEMPH_C_PLUS_MIN_VAL + +/* c(-1) configurations */ +#define AL_SERDES_TX_DEEMPH_C_MINUS_MAX_VAL 0x6 +#define AL_SERDES_TX_DEEMPH_C_MINUS_MIN_VAL 0 +#define AL_SERDES_TX_DEEMPH_C_MINUS_PRESET AL_SERDES_TX_DEEMPH_C_MINUS_MIN_VAL + +/* Rx equal total delay = MDELAY * TRIES */ +#define AL_SERDES_RX_EQUAL_MDELAY 10 +#define AL_SERDES_RX_EQUAL_TRIES 50 + +/* Rx eye calculation delay = MDELAY * TRIES */ +#define AL_SERDES_RX_EYE_CAL_MDELAY 50 +#define AL_SERDES_RX_EYE_CAL_TRIES 70 + + +/** + * Prototypes for _lane_ compatibility + */ +int al_serdes_lane_read( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t *data); + +int al_serdes_lane_write( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data); + + +/** + * SERDES core reg/lane read + */ +static inline uint8_t al_serdes_grp_reg_read( + struct al_serdes_group_info *grp_info, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset); + +static inline uint8_t al_serdes_grp_lane_read( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane page, + enum al_serdes_reg_type type, + uint16_t offset); + +/** + * SERDES core reg/lane write + */ +static inline void al_serdes_grp_reg_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data); + +static inline void al_serdes_grp_lane_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data); + +/** + * SERDES core masked reg/lane write + */ +static inline void al_serdes_grp_reg_masked_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t mask, + uint8_t data); + +/** + * Lane Rx rate change software flow disable + */ +static void _al_serdes_lane_rx_rate_change_sw_flow_dis( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane); + +/** + * Group Rx rate change software flow enable if all conditions met + */ +static void al_serdes_group_rx_rate_change_sw_flow_dis( + struct al_serdes_group_info *grp_info); + +/** + * Lane Rx rate change software flow enable if all conditions met + */ +static void _al_serdes_lane_rx_rate_change_sw_flow_en_cond( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane); + +/** + * Group Rx rate change software flow enable if all conditions met + */ +static void al_serdes_group_rx_rate_change_sw_flow_en_cond( + struct al_serdes_group_info *grp_info); + + +static inline void al_serdes_grp_lane_masked_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t mask, + uint8_t data); + +/******************************************************************************/ +/******************************************************************************/ +int al_serdes_handle_init( + void __iomem *serdes_regs_base, + struct al_serdes_obj *obj) +{ + int i; + + al_dbg( + "%s(%p, %p)\n", + __func__, + serdes_regs_base, + obj); + + al_assert(serdes_regs_base); + + for (i = 0; i < AL_SRDS_NUM_GROUPS; i++) { + obj->grp_info[i].pobj = obj; + + obj->grp_info[i].regs_base = + &((struct al_serdes_regs *)serdes_regs_base)[i]; + } + + return 0; +} + +/******************************************************************************/ +/******************************************************************************/ +int al_serdes_reg_read( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t *data) +{ + int status = 0; + + al_dbg( + "%s(%p, %d, %d, %d, %u)\n", + __func__, + obj, + grp, + page, + type, + offset); + + al_assert(obj); + al_assert(data); + al_assert(((int)grp) >= AL_SRDS_GRP_A); + al_assert(((int)grp) <= AL_SRDS_GRP_D); + al_assert(((int)page) >= AL_SRDS_REG_PAGE_0_LANE_0); + al_assert(((int)page) <= AL_SRDS_REG_PAGE_4_COMMON); + al_assert(((int)type) >= AL_SRDS_REG_TYPE_PMA); + al_assert(((int)type) <= AL_SRDS_REG_TYPE_PCS); + + *data = al_serdes_grp_reg_read( + &obj->grp_info[grp], + page, + type, + offset); + + al_dbg( + "%s: return(%u)\n", + __func__, + *data); + + return status; +} + +int al_serdes_lane_read( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t *data) +{ + return al_serdes_reg_read(obj, grp, (enum al_serdes_reg_page)lane, type, + offset, data); +} +/******************************************************************************/ +/******************************************************************************/ +int al_serdes_reg_write( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data) +{ + int status = 0; + + al_dbg( + "%s(%p, %d, %d, %d, %u, %u)\n", + __func__, + obj, + grp, + page, + type, + offset, + data); + + al_assert(obj); + al_assert(((int)grp) >= AL_SRDS_GRP_A); + al_assert(((int)grp) <= AL_SRDS_GRP_D); + al_assert(((int)page) >= AL_SRDS_REG_PAGE_0_LANE_0); + al_assert(((int)page) <= AL_SRDS_REG_PAGE_0123_LANES_0123); + al_assert(((int)type) >= AL_SRDS_REG_TYPE_PMA); + al_assert(((int)type) <= AL_SRDS_REG_TYPE_PCS); + + al_serdes_grp_reg_write( + &obj->grp_info[grp], + page, + type, + offset, + data); + + return status; +} + +int al_serdes_lane_write( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data) +{ + return al_serdes_reg_write(obj, grp, (enum al_serdes_reg_page)lane, + type, offset, data); +} +/******************************************************************************/ +/******************************************************************************/ +#if (SERDES_IREG_FLD_PCSRX_DATAWIDTH_REG_NUM != SERDES_IREG_FLD_PCSTX_DATAWIDTH_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_PCSRX_DIVRATE_REG_NUM != SERDES_IREG_FLD_PCSTX_DIVRATE_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM != SERDES_IREG_FLD_CMNPCS_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM != SERDES_IREG_FLD_CMNPCSBIST_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM != SERDES_IREG_FLD_CMNPCSPSTATE_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_LB_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSRX_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSRXBIST_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSRXEQ_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSTX_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +void al_serdes_bist_overrides_enable( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_rate rate) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + int i; + + uint8_t rx_rate_val; + uint8_t tx_rate_val; + + switch (rate) { + case AL_SRDS_RATE_1_8: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_8; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_8; + break; + case AL_SRDS_RATE_1_4: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_4; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_4; + break; + case AL_SRDS_RATE_1_2: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_2; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_2; + break; + case AL_SRDS_RATE_FULL: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_1; + break; + default: + al_err("%s: invalid rate (%d)\n", __func__, rate); + al_assert(0); + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_1; + } + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSRX_DATAWIDTH_REG_NUM, + SERDES_IREG_FLD_PCSRX_DATAWIDTH_MASK | + SERDES_IREG_FLD_PCSTX_DATAWIDTH_MASK, + SERDES_IREG_FLD_PCSRX_DATAWIDTH_VAL_20 | + SERDES_IREG_FLD_PCSTX_DATAWIDTH_VAL_20); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSRX_DIVRATE_REG_NUM, + SERDES_IREG_FLD_PCSRX_DIVRATE_MASK | + SERDES_IREG_FLD_PCSTX_DIVRATE_MASK, + rx_rate_val | tx_rate_val); + } + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN | + SERDES_IREG_FLD_CMNPCS_LOCWREN | + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN | + SERDES_IREG_FLD_CMNPCSPSTATE_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN | + SERDES_IREG_FLD_CMNPCS_LOCWREN | + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN | + SERDES_IREG_FLD_CMNPCSPSTATE_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCS_LOCWREN_REG_NUM, + SERDES_IREG_FLD_PCS_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCS_TXENABLE_REG_NUM, + SERDES_IREG_FLD_CMNPCS_TXENABLE, + SERDES_IREG_FLD_CMNPCS_TXENABLE); + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM, + SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN | + SERDES_IREG_FLD_LB_LOCWREN | + SERDES_IREG_FLD_PCSRX_LOCWREN | + SERDES_IREG_FLD_PCSRXBIST_LOCWREN | + SERDES_IREG_FLD_PCSRXEQ_LOCWREN | + SERDES_IREG_FLD_PCSTX_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN_REG_NUM, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_TX_DRV_OVERRIDE_EN_REG_NUM, + SERDES_IREG_FLD_TX_DRV_OVERRIDE_EN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_RXLOCK2REF_OVREN_REG_NUM, + SERDES_IREG_FLD_RXLOCK2REF_OVREN, + SERDES_IREG_FLD_RXLOCK2REF_OVREN); + } +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_bist_overrides_disable( + struct al_serdes_obj *obj, + enum al_serdes_group grp) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + int i; + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM, + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN, + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN); + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM, + SERDES_IREG_FLD_LB_LOCWREN | + SERDES_IREG_FLD_PCSRXBIST_LOCWREN, + SERDES_IREG_FLD_LB_LOCWREN | + SERDES_IREG_FLD_PCSRXBIST_LOCWREN); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN_REG_NUM, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN); + } +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_rx_rate_change( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_rate rate) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + int i; + + uint8_t rx_rate_val; + + switch (rate) { + case AL_SRDS_RATE_1_8: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_8; + break; + case AL_SRDS_RATE_1_4: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_4; + break; + case AL_SRDS_RATE_1_2: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_2; + break; + case AL_SRDS_RATE_FULL: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + break; + default: + al_err("%s: invalid rate (%d)\n", __func__, rate); + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + break; + } + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSRX_DIVRATE_REG_NUM, + SERDES_IREG_FLD_PCSRX_DIVRATE_MASK, + rx_rate_val); + } +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_group_pm_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_pm pm) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + uint8_t pm_val; + + switch (pm) { + case AL_SRDS_PM_PD: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_PD; + break; + case AL_SRDS_PM_P2: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P2; + break; + case AL_SRDS_PM_P1: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P1; + break; + case AL_SRDS_PM_P0S: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P0S; + break; + case AL_SRDS_PM_P0: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P0; + break; + default: + al_err("%s: invalid power mode (%d)\n", __func__, pm); + al_assert(0); + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P0; + } + + if (pm == AL_SRDS_PM_PD) + al_serdes_group_rx_rate_change_sw_flow_dis(grp_info); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_REG_NUM, + SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_MASK, + pm_val); + + if (pm != AL_SRDS_PM_PD) + al_serdes_group_rx_rate_change_sw_flow_en_cond(grp_info); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_rx_rate_change_sw_flow_en( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 201, 0xfc); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 202, 0xff); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 203, 0xff); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 204, 0xff); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 205, 0x7f); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 205, 0xff); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_rx_rate_change_sw_flow_dis( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 205, 0x7f); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_pcie_rate_override_enable_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + al_bool en) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA_REG_NUM, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA, + en ? SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA : 0); +} + +/******************************************************************************/ +/******************************************************************************/ +al_bool al_serdes_lane_pcie_rate_override_is_enabled( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + return (al_serdes_grp_lane_read( + grp_info, + lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA_REG_NUM) & + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA) ? AL_TRUE : AL_FALSE; +} + +/******************************************************************************/ +/******************************************************************************/ +enum al_serdes_pcie_rate al_serdes_lane_pcie_rate_get( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + return (al_serdes_grp_reg_read( + grp_info, + (enum al_serdes_reg_page)lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_REG_NUM) & + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_MASK) >> + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_SHIFT; +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_pcie_rate_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_pcie_rate rate) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_REG_NUM, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_MASK, + rate << SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_SHIFT); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_pm_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_pm rx_pm, + enum al_serdes_pm tx_pm) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 26 14:46:41 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5AC1AA466DE; Tue, 26 Jan 2016 14:46:41 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31ABB109; Tue, 26 Jan 2016 14:46:41 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QEkeCD051440; Tue, 26 Jan 2016 14:46:40 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QEkeGF051438; Tue, 26 Jan 2016 14:46:40 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601261446.u0QEkeGF051438@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 26 Jan 2016 14:46:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294836 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:46:41 -0000 Author: kib Date: Tue Jan 26 14:46:39 2016 New Revision: 294836 URL: https://svnweb.freebsd.org/changeset/base/294836 Log: Don't clear the software flow control flag before draining for last close or assert the bug that it is clear when leaving. Remove an unrelated rotted comment that was attached to the buggy clearing. Since draining is not done in more cases, flushing is needed in more cases, so start fixing flushing: - do a full flush in ttydisc_close(). State what POSIX requires more clearly. This was missing ttydevsw_pktnotify() calls to tell the devsw layer to flush. Hardware tty drivers don't actually flush since they don't understand this API. - fix 2 missing wakeups in tty_flush(). Most of the wakeups here are unnecessary for last close. But ttydisc_close() did one of the missing ones. This flow control bug ameliorated the design bug of requiring potentially unbounded waits in draining. Software flow control is the easiest way to get an unbounded wait, and a long wait is sometimes actually useful. Users can type the xoff character on the receiver and (if ixon is set on the sender) expect the output to be held until the user is ready for more. Hardware flow control can also give the unbounded wait, and this bug didn't affect hardware flow control. Unbounded waits from hardware flow control take a more unusual configuration. E.g., a terminal program that controls the modem status lines, or unplugging the cable in a configuration where this doesn't break the connection. The design bug is still ameliorated by a newer bug in draining for last close -- the 1 second timeout. E.g., if the user types the xoff character and the sender reaches last close, then output is not resumed and the wait times out after just 1 second. This is broken, but preferable to an unbounded wait. Before this change, the output was resumed immediately and usually completed. Submitted by: bde MFC after: 2 weeks Modified: head/sys/kern/tty.c head/sys/kern/tty_ttydisc.c Modified: head/sys/kern/tty.c ============================================================================== --- head/sys/kern/tty.c Tue Jan 26 14:45:25 2016 (r294835) +++ head/sys/kern/tty.c Tue Jan 26 14:46:39 2016 (r294836) @@ -201,7 +201,6 @@ ttydev_leave(struct tty *tp) constty_clear(); /* Drain any output. */ - MPASS((tp->t_flags & TF_STOPPED) == 0); if (!tty_gone(tp)) tty_drain(tp, 1); @@ -352,11 +351,7 @@ ttydev_close(struct cdev *dev, int fflag if (fflag & FREVOKE) tty_flush(tp, FWRITE); - /* - * This can only be called once. The callin and the callout - * devices cannot be opened at the same time. - */ - tp->t_flags &= ~(TF_EXCLUDE|TF_STOPPED); + tp->t_flags &= ~TF_EXCLUDE; /* Properly wake up threads that are stuck - revoke(). */ tp->t_revokecnt++; @@ -1456,12 +1451,15 @@ tty_flush(struct tty *tp, int flags) tp->t_flags &= ~TF_HIWAT_OUT; ttyoutq_flush(&tp->t_outq); tty_wakeup(tp, FWRITE); - if (!tty_gone(tp)) + if (!tty_gone(tp)) { + ttydevsw_outwakeup(tp); ttydevsw_pktnotify(tp, TIOCPKT_FLUSHWRITE); + } } if (flags & FREAD) { tty_hiwat_in_unblock(tp); ttyinq_flush(&tp->t_inq); + tty_wakeup(tp, FREAD); if (!tty_gone(tp)) { ttydevsw_inwakeup(tp); ttydevsw_pktnotify(tp, TIOCPKT_FLUSHREAD); Modified: head/sys/kern/tty_ttydisc.c ============================================================================== --- head/sys/kern/tty_ttydisc.c Tue Jan 26 14:45:25 2016 (r294835) +++ head/sys/kern/tty_ttydisc.c Tue Jan 26 14:46:39 2016 (r294836) @@ -94,14 +94,11 @@ ttydisc_close(struct tty *tp) /* Clean up our flags when leaving the discipline. */ tp->t_flags &= ~(TF_STOPPED|TF_HIWAT|TF_ZOMBIE); - /* POSIX states we should flush when close() is called. */ - ttyinq_flush(&tp->t_inq); - ttyoutq_flush(&tp->t_outq); - - if (!tty_gone(tp)) { - ttydevsw_inwakeup(tp); - ttydevsw_outwakeup(tp); - } + /* + * POSIX states that we must drain output and flush input on + * last close. Draining has already been done if possible. + */ + tty_flush(tp, FREAD | FWRITE); if (ttyhook_hashook(tp, close)) ttyhook_close(tp); From owner-svn-src-all@freebsd.org Tue Jan 26 14:51:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1FD99A46862 for ; Tue, 26 Jan 2016 14:51:10 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-oi0-x232.google.com (mail-oi0-x232.google.com [IPv6:2607:f8b0:4003:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EB70E760 for ; Tue, 26 Jan 2016 14:51:09 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-oi0-x232.google.com with SMTP id p187so107198636oia.2 for ; Tue, 26 Jan 2016 06:51:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=date:subject:message-id:from:to:mime-version:content-type :content-transfer-encoding; bh=23Mqi0GHMZFfrddlHKQs7CB3aL82FE6ox1GIAYHo6K4=; b=uqdoRAN6YbVUcC+Lo5iIx1HI9kdjR8NskrYXVygl3SkBM3NPXxve3MSNhyYgfZXeI9 zwFfaornz8/kCn7cgD9cjyRPnyZ4S99pDldZWjZFPpBcq+A17C22tbWN3ctYj4yKtWnZ W/66zYv2vrGfCxlc1pzVDJrgHZGBgSlLQ1zuND8OkfqFjQRUvWi6lekQvG/GF1nDo05I L8NFRxDs3EY4BKDdC2ZBtG92RykXLY2Sd9unwFrFXWLYtpz/2c4xPSluId1X+MQpsjIY qfSCvZytzux/eqjoXHiyxqVHkbNHitz6oBerLrgcntiIm0MYCu4Hjy2KEbLzBkVk4Mz5 fALA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:subject:message-id:from:to:mime-version :content-type:content-transfer-encoding; bh=23Mqi0GHMZFfrddlHKQs7CB3aL82FE6ox1GIAYHo6K4=; b=hvCN80z5RFYyiMGIT1dkEPJCvcWn6aaD5w2ulC942GAwBDAchqSlV47Hi3CrW92Dpv uIjCrWGdworJZacgjD6kv4ekiDf1H4bxe4c0j0EuWCsqvTq4QbSIfA4b/z47UrglpNfY CIBwKwGbYhLRlCzVFwIU2yj+VD9XithTTfuUtWZqRHTjk25c8hvFx+hg8H4sxqxGP8kE Tr/j6+btfW60n21mxPrVxeZ597EMZ3/BWwqd8KNEj5j4uK23mnpos6ax56cmIsj6QKGS 1+Gvr4E2sHS0Sp6QRiqv2gKz5HLvp2kjsT6UfEN6MCb0+lUvLEsnMcH4rf/Bw2YQQ/Lc ma6A== X-Gm-Message-State: AG10YOTZpU1LsFQvo3WyoFBvskIEYFBnL/sSIi+LtyD/yVZ7j4ThSRCTwNz70XUTtJTZ5g== X-Received: by 10.202.213.215 with SMTP id m206mr17727956oig.26.1453819869133; Tue, 26 Jan 2016 06:51:09 -0800 (PST) Received: from [10.0.0.96] ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id mm4sm646056obb.1.2016.01.26.06.51.08 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 26 Jan 2016 06:51:08 -0800 (PST) Date: Tue, 26 Jan 2016 07:51:06 -0700 Subject: Re: svn commit: r294767 - head/sys/boot/efi/loader Message-ID: <1an1nwlw2qoqyava2yucmdtb.1453819866096@email.android.com> From: Warner Losh To: Steven Hartland , Warner Losh , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 14:51:10 -0000 SnVzdCBmb3Jnb3QgdG8gYWRkIE1hYyBhZnRlciAxd2Vlay4gQnV0IHdpdGggYWxsIHRoZSBjaHVy biBoZXJlLCBwcmVkaWN0aW5nIHdoZW4gbWF5IGJlIHRvdWdoLgoKV2FybmVyCgpPbiBKYW51YXJ5 IDI2LCAyMDE2LCBhdCAzOjI5IEFNLCBTdGV2ZW4gSGFydGxhbmQgPHN0ZXZlbi5oYXJ0bGFuZEBt dWx0aXBsYXkuY28udWs+IHdyb3RlOgoKTm8gcGxhbiB0byBNRkMgdGhlc2UgY2hhbmdlcz8NCg0K T24gMjYvMDEvMjAxNiAwNjoyNiwgV2FybmVyIExvc2ggd3JvdGU6DQo+IEF1dGhvcjogaW1wDQo+ IERhdGU6IFR1ZSBKYW4gMjYgMDY6MjY6NDYgMjAxNg0KPiBOZXcgUmV2aXNpb246IDI5NDc2Nw0K PiBVUkw6IGh0dHBzOi8vc3Zud2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzI5NDc2Nw0K Pg0KPiBMb2c6DQo+ICAgIFBhcnNlIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLCBhbmQgZG8g aXQgYmVmb3JlIHdlIGluaXRpYWxpemUgdGhlDQo+ICAgIGNvbnNvbGUgc28gaXQgY2FuIGJlIGNo YW5nZWQgYnkgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuDQo+ICAgIA0KPiAgICBEaWZmZXJl bnRpYWwgUmV2aXNpb246IGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9ENTAzOA0KPg0KPiBN b2RpZmllZDoNCj4gICAgaGVhZC9zeXMvYm9vdC9lZmkvbG9hZGVyL21haW4uYw0KPg0KPiBNb2Rp ZmllZDogaGVhZC9zeXMvYm9vdC9lZmkvbG9hZGVyL21haW4uYw0KPiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCj4gLS0tIGhlYWQvc3lzL2Jvb3QvZWZpL2xvYWRlci9tYWluLmMJVHVlIEphbiAyNiAw NjoyNjo0NCAyMDE2CShyMjk0NzY2KQ0KPiArKysgaGVhZC9zeXMvYm9vdC9lZmkvbG9hZGVyL21h aW4uYwlUdWUgSmFuIDI2IDA2OjI2OjQ2IDIwMTYJKHIyOTQ3NjcpDQo+IEBAIC0yOSw2ICsyOSw4 IEBADQo+ICAgX19GQlNESUQoIiRGcmVlQlNEJCIpOw0KPiAgIA0KPiAgICNpbmNsdWRlIDxzeXMv cGFyYW0uaD4NCj4gKyNpbmNsdWRlIDxzeXMvcmVib290Lmg+DQo+ICsjaW5jbHVkZSA8c3lzL2Jv b3QuaD4NCj4gICAjaW5jbHVkZSA8c3RhbmQuaD4NCj4gICAjaW5jbHVkZSA8c3RyaW5nLmg+DQo+ ICAgI2luY2x1ZGUgPHNldGptcC5oPg0KPiBAQCAtODMsMTMgKzg1LDIyIEBAIHByaW50X3N0cjE2 KGNvbnN0IENIQVIxNiAqc3RyKQ0KPiAgIAkJcHJpbnRmKCIlYyIsIChjaGFyKXN0cltpXSk7DQo+ ICAgfQ0KPiAgIA0KPiArc3RhdGljIHZvaWQNCj4gK2NwMTZ0bzgoY29uc3QgQ0hBUjE2ICpzcmMs IGNoYXIgKmRzdCwgc2l6ZV90IGxlbikNCj4gK3sNCj4gKwlzaXplX3QgaTsNCj4gKw0KPiArCWZv ciAoaSA9IDA7IGkgPCBsZW4gJiYgc3JjW2ldOyBpKyspDQo+ICsJCWRzdFtpXSA9IChjaGFyKXNy Y1tpXTsNCj4gK30NCj4gKw0KPiAgIEVGSV9TVEFUVVMNCj4gICBtYWluKGludCBhcmdjLCBDSEFS MTYgKmFyZ3ZbXSkNCj4gICB7DQo+ICAgCWNoYXIgdmFyWzEyOF07DQo+ICAgCUVGSV9MT0FERURf SU1BR0UgKmltZzsNCj4gICAJRUZJX0dVSUQgKmd1aWQ7DQo+IC0JaW50IGksIGosIHZhcmdvb2Qs IHVuaXQ7DQo+ICsJaW50IGksIGosIHZhcmdvb2QsIHVuaXQsIGhvd3RvOw0KPiAgIAlzdHJ1Y3Qg ZGV2c3cgKmRldjsNCj4gICAJdWludDY0X3QgcG9vbF9ndWlkOw0KPiAgIAlVSU5UTiBrOw0KPiBA QCAtMTEzLDI3ICsxMjQsOTcgQEAgbWFpbihpbnQgYXJnYywgQ0hBUjE2ICphcmd2W10pDQo+ICAg CWNvbnNfcHJvYmUoKTsNCj4gICANCj4gICAJLyoNCj4gKwkgKiBQYXJzZSB0aGUgYXJncyB0byBz ZXQgdGhlIGNvbnNvbGUgc2V0dGluZ3MsIGV0Yw0KPiArCSAqIGJvb3QxLmVmaSBwYXNzZXMgdGhl c2UgaW4sIGlmIGl0IGNhbiByZWFkIC9ib290LmNvbmZpZyBvciAvYm9vdC9jb25maWcNCj4gKwkg KiBvciBpUFhFIG1heSBiZSBzZXR1cCB0byBwYXNzIHRoZXNlIGluLg0KPiArCSAqDQo+ICAgCSAq IExvb3AgdGhyb3VnaCB0aGUgYXJncywgYW5kIGZvciBlYWNoIG9uZSB0aGF0IGNvbnRhaW5zIGFu ICc9JyB0aGF0IGlzDQo+ICAgCSAqIG5vdCB0aGUgZmlyc3QgY2hhcmFjdGVyLCBhZGQgaXQgdG8g dGhlIGVudmlyb25tZW50LiAgVGhpcyBhbGxvd3MNCj4gICAJICogbG9hZGVyIGFuZCBrZXJuZWwg ZW52IHZhcnMgdG8gYmUgcGFzc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUuICBDb252ZXJ0DQo+ICAg CSAqIGFyZ3MgZnJvbSBVQ1MtMiB0byBBU0NJSSAoMTYgdG8gOCBiaXQpIGFzIHRoZXkgYXJlIGNv cGllZC4NCj4gICAJICovDQo+ICsJaG93dG8gPSAwOw0KPiAgIAlmb3IgKGkgPSAxOyBpIDwgYXJn YzsgaSsrKSB7DQo+IC0JCXZhcmdvb2QgPSAwOw0KPiAtCQlmb3IgKGogPSAwOyBhcmd2W2ldW2pd ICE9IDA7IGorKykgew0KPiAtCQkJaWYgKGogPT0gc2l6ZW9mKHZhcikpIHsNCj4gLQkJCQl2YXJn b29kID0gMDsNCj4gLQkJCQlicmVhazsNCj4gKwkJaWYgKGFyZ3ZbaV1bMF0gPT0gJy0nKSB7DQo+ ICsJCQlmb3IgKGogPSAxOyBhcmd2W2ldW2pdICE9IDA7IGorKykgew0KPiArCQkJCWludCBjaDsN Cj4gKw0KPiArCQkJCWNoID0gYXJndltpXVtqXTsNCj4gKwkJCQlzd2l0Y2ggKGNoKSB7DQo+ICsJ CQkJY2FzZSAnYSc6DQo+ICsJCQkJCWhvd3RvIHw9IFJCX0FTS05BTUU7DQo+ICsJCQkJCWJyZWFr Ow0KPiArCQkJCWNhc2UgJ2QnOg0KPiArCQkJCQlob3d0byB8PSBSQl9LREI7DQo+ICsJCQkJCWJy ZWFrOw0KPiArCQkJCWNhc2UgJ0QnOg0KPiArCQkJCQlob3d0byB8PSBSQl9NVUxUSVBMRTsNCj4g KwkJCQkJYnJlYWs7DQo+ICsJCQkJY2FzZSAnbSc6DQo+ICsJCQkJCWhvd3RvIHw9IFJCX01VVEU7 DQo+ICsJCQkJCWJyZWFrOw0KPiArCQkJCWNhc2UgJ2gnOg0KPiArCQkJCQlob3d0byB8PSBSQl9T RVJJQUw7DQo+ICsJCQkJCWJyZWFrOw0KPiArCQkJCWNhc2UgJ3AnOg0KPiArCQkJCQlob3d0byB8 PSBSQl9QQVVTRTsNCj4gKwkJCQkJYnJlYWs7DQo+ICsJCQkJY2FzZSAncic6DQo+ICsJCQkJCWhv d3RvIHw9IFJCX0RGTFRST09UOw0KPiArCQkJCQlicmVhazsNCj4gKwkJCQljYXNlICdzJzoNCj4g KwkJCQkJaG93dG8gfD0gUkJfU0lOR0xFOw0KPiArCQkJCQlicmVhazsNCj4gKwkJCQljYXNlICdT JzoNCj4gKwkJCQkJaWYgKGFyZ3ZbaV1baiArIDFdID09IDApIHsNCj4gKwkJCQkJCWlmIChpICsg MSA9PSBhcmdjKSB7DQo+ICsJCQkJCQkJc2V0ZW52KCJjb21jb25zb2xlX3NwZWVkIiwgIjExNTIw MCIsIDEpOw0KPiArCQkJCQkJfSBlbHNlIHsNCj4gKwkJCQkJCQljcDE2dG84KCZhcmd2W2kgKyAx XVswXSwgdmFyLA0KPiArCQkJCQkJCSAgICBzaXplb2YodmFyKSk7DQo+ICsJCQkJCQkJc2V0ZW52 KCJjb21jb25zb2xlX3NwZWVkc3BlZWQiLCB2YXIsIDEpOw0KPiArCQkJCQkJfQ0KPiArCQkJCQkJ aSsrOw0KPiArCQkJCQkJYnJlYWs7DQo+ICsJCQkJCX0gZWxzZSB7DQo+ICsJCQkJCQljcDE2dG84 KCZhcmd2W2ldW2ogKyAxXSwgdmFyLA0KPiArCQkJCQkJICAgIHNpemVvZih2YXIpKTsNCj4gKwkJ CQkJCXNldGVudigiY29tY29uc29sZV9zcGVlZCIsIHZhciwgMSk7DQo+ICsJCQkJCQlicmVhazsN Cj4gKwkJCQkJfQ0KPiArCQkJCWNhc2UgJ3YnOg0KPiArCQkJCQlob3d0byB8PSBSQl9WRVJCT1NF Ow0KPiArCQkJCQlicmVhazsNCj4gKwkJCQl9DQo+ICsJCQl9DQo+ICsJCX0gZWxzZSB7DQo+ICsJ CQl2YXJnb29kID0gMDsNCj4gKwkJCWZvciAoaiA9IDA7IGFyZ3ZbaV1bal0gIT0gMDsgaisrKSB7 DQo+ICsJCQkJaWYgKGogPT0gc2l6ZW9mKHZhcikpIHsNCj4gKwkJCQkJdmFyZ29vZCA9IDA7DQo+ ICsJCQkJCWJyZWFrOw0KPiArCQkJCX0NCj4gKwkJCQlpZiAoaiA+IDAgJiYgYXJndltpXVtqXSA9 PSAnPScpDQo+ICsJCQkJCXZhcmdvb2QgPSAxOw0KPiArCQkJCXZhcltqXSA9IChjaGFyKWFyZ3Zb aV1bal07DQo+ICsJCQl9DQo+ICsJCQlpZiAodmFyZ29vZCkgew0KPiArCQkJCXZhcltqXSA9IDA7 DQo+ICsJCQkJcHV0ZW52KHZhcik7DQo+ICAgCQkJfQ0KPiAtCQkJaWYgKGogPiAwICYmIGFyZ3Zb aV1bal0gPT0gJz0nKQ0KPiAtCQkJCXZhcmdvb2QgPSAxOw0KPiAtCQkJdmFyW2pdID0gKGNoYXIp YXJndltpXVtqXTsNCj4gLQkJfQ0KPiAtCQlpZiAodmFyZ29vZCkgew0KPiAtCQkJdmFyW2pdID0g MDsNCj4gLQkJCXB1dGVudih2YXIpOw0KPiAgIAkJfQ0KPiAgIAl9DQo+ICsJZm9yIChpID0gMDsg aG93dG9fbmFtZXNbaV0uZXYgIT0gTlVMTDsgaSsrKQ0KPiArCQlpZiAoaG93dG8gJiBob3d0b19u YW1lc1tpXS5tYXNrKQ0KPiArCQkJc2V0ZW52KGhvd3RvX25hbWVzW2ldLmV2LCAiWUVTIiwgMSk7 DQo+ICsJaWYgKGhvd3RvICYgUkJfTVVMVElQTEUpIHsNCj4gKwkJaWYgKGhvd3RvICYgUkJfU0VS SUFMKQ0KPiArCQkJc2V0ZW52KCJjb25zb2xlIiwgImNvbWNvbnNvbGUgZWZpIiAsIDEpOw0KPiAr CQllbHNlDQo+ICsJCQlzZXRlbnYoImNvbnNvbGUiLCAiZWZpIGNvbWNvbnNvbGUiICwgMSk7DQo+ ICsJfSBlbHNlIGlmIChob3d0byAmIFJCX1NFUklBTCkgew0KPiArCQlzZXRlbnYoImNvbnNvbGUi LCAiY29tY29uc29sZSIgLCAxKTsNCj4gKwl9DQo+ICAgDQo+ICAgCWlmIChlZmlfY29weV9pbml0 KCkpIHsNCj4gICAJCXByaW50ZigiZmFpbGVkIHRvIGFsbG9jYXRlIHN0YWdpbmcgYXJlYVxuIik7 DQo+DQoNCg== From owner-svn-src-all@freebsd.org Tue Jan 26 15:12:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 564D6A6E31F; Tue, 26 Jan 2016 15:12:33 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31A096F1; Tue, 26 Jan 2016 15:12:33 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QFCWgM059975; Tue, 26 Jan 2016 15:12:32 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QFCWQT059972; Tue, 26 Jan 2016 15:12:32 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601261512.u0QFCWQT059972@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 26 Jan 2016 15:12:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294837 - in head/sys: compat/linuxkpi/common/include/linux ofed/drivers/net/mlx4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 15:12:33 -0000 Author: hselasky Date: Tue Jan 26 15:12:31 2016 New Revision: 294837 URL: https://svnweb.freebsd.org/changeset/base/294837 Log: LinuxKPI list updates: - Add some new hlist macros. - Update existing hlist macros removing the need for a temporary iteration variable. - Properly define the RCU hlist macros to be SMP safe with regard to RCU. - Safe list macro arguments by adding a pair of parentheses. - Prefix the _list_add() and _list_splice() functions with "linux" to reflect they are LinuxKPI internal functions. Obtained from: Linux MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/list.h head/sys/compat/linuxkpi/common/include/linux/rcupdate.h head/sys/ofed/drivers/net/mlx4/en_netdev.c Modified: head/sys/compat/linuxkpi/common/include/linux/list.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/list.h Tue Jan 26 14:46:39 2016 (r294836) +++ head/sys/compat/linuxkpi/common/include/linux/list.h Tue Jan 26 15:12:31 2016 (r294837) @@ -2,7 +2,7 @@ * Copyright (c) 2010 Isilon Systems, Inc. * Copyright (c) 2010 iX Systems, Inc. * Copyright (c) 2010 Panasas, Inc. - * Copyright (c) 2013, 2014 Mellanox Technologies, Ltd. + * Copyright (c) 2013-2016 Mellanox Technologies, Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -109,7 +109,7 @@ list_replace(struct list_head *old, stru } static inline void -_list_add(struct list_head *new, struct list_head *prev, +linux_list_add(struct list_head *new, struct list_head *prev, struct list_head *next) { @@ -136,47 +136,55 @@ list_del_init(struct list_head *entry) list_entry(((ptr)->member.next), typeof(*(ptr)), member) #define list_for_each(p, head) \ - for (p = (head)->next; p != (head); p = p->next) + for (p = (head)->next; p != (head); p = (p)->next) #define list_for_each_safe(p, n, head) \ - for (p = (head)->next, n = p->next; p != (head); p = n, n = p->next) + for (p = (head)->next, n = (p)->next; p != (head); p = n, n = (p)->next) #define list_for_each_entry(p, h, field) \ - for (p = list_entry((h)->next, typeof(*p), field); &p->field != (h); \ - p = list_entry(p->field.next, typeof(*p), field)) + for (p = list_entry((h)->next, typeof(*p), field); &(p)->field != (h); \ + p = list_entry((p)->field.next, typeof(*p), field)) #define list_for_each_entry_safe(p, n, h, field) \ for (p = list_entry((h)->next, typeof(*p), field), \ - n = list_entry(p->field.next, typeof(*p), field); &p->field != (h);\ + n = list_entry((p)->field.next, typeof(*p), field); &(p)->field != (h);\ p = n, n = list_entry(n->field.next, typeof(*n), field)) +#define list_for_each_entry_from(p, h, field) \ + for ( ; &(p)->field != (h); \ + p = list_entry((p)->field.next, typeof(*p), field)) + #define list_for_each_entry_continue(p, h, field) \ - for (p = list_next_entry((p), field); &p->field != (h); \ + for (p = list_next_entry((p), field); &(p)->field != (h); \ p = list_next_entry((p), field)) #define list_for_each_entry_safe_from(pos, n, head, member) \ - for (n = list_entry(pos->member.next, typeof(*pos), member); \ - &pos->member != (head); \ + for (n = list_entry((pos)->member.next, typeof(*pos), member); \ + &(pos)->member != (head); \ pos = n, n = list_entry(n->member.next, typeof(*n), member)) #define list_for_each_entry_reverse(p, h, field) \ - for (p = list_entry((h)->prev, typeof(*p), field); &p->field != (h); \ - p = list_entry(p->field.prev, typeof(*p), field)) + for (p = list_entry((h)->prev, typeof(*p), field); &(p)->field != (h); \ + p = list_entry((p)->field.prev, typeof(*p), field)) + +#define list_for_each_entry_continue_reverse(p, h, field) \ + for (p = list_entry((p)->field.prev, typeof(*p), field); &(p)->field != (h); \ + p = list_entry((p)->field.prev, typeof(*p), field)) -#define list_for_each_prev(p, h) for (p = (h)->prev; p != (h); p = p->prev) +#define list_for_each_prev(p, h) for (p = (h)->prev; p != (h); p = (p)->prev) static inline void list_add(struct list_head *new, struct list_head *head) { - _list_add(new, head, head->next); + linux_list_add(new, head, head->next); } static inline void list_add_tail(struct list_head *new, struct list_head *head) { - _list_add(new, head->prev, head); + linux_list_add(new, head->prev, head); } static inline void @@ -196,7 +204,7 @@ list_move_tail(struct list_head *entry, } static inline void -_list_splice(const struct list_head *list, struct list_head *prev, +linux_list_splice(const struct list_head *list, struct list_head *prev, struct list_head *next) { struct list_head *first; @@ -216,21 +224,21 @@ static inline void list_splice(const struct list_head *list, struct list_head *head) { - _list_splice(list, head, head->next); + linux_list_splice(list, head, head->next); } static inline void list_splice_tail(struct list_head *list, struct list_head *head) { - _list_splice(list, head->prev, head); + linux_list_splice(list, head->prev, head); } static inline void list_splice_init(struct list_head *list, struct list_head *head) { - _list_splice(list, head, head->next); + linux_list_splice(list, head, head->next); INIT_LIST_HEAD(list); } @@ -238,7 +246,7 @@ static inline void list_splice_tail_init(struct list_head *list, struct list_head *head) { - _list_splice(list, head->prev, head); + linux_list_splice(list, head->prev, head); INIT_LIST_HEAD(list); } @@ -401,10 +409,10 @@ static inline int list_is_last(const str #define hlist_entry(ptr, type, field) container_of(ptr, type, field) #define hlist_for_each(p, head) \ - for (p = (head)->first; p; p = p->next) + for (p = (head)->first; p; p = (p)->next) #define hlist_for_each_safe(p, n, head) \ - for (p = (head)->first; p && ({ n = p->next; 1; }); p = n) + for (p = (head)->first; p && ({ n = (p)->next; 1; }); p = n) #define hlist_entry_safe(ptr, type, member) \ ((ptr) ? hlist_entry(ptr, type, member) : NULL) @@ -414,21 +422,18 @@ static inline int list_is_last(const str pos; \ pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) -#define hlist_for_each_entry_continue(tp, p, field) \ - for (p = (p)->next; \ - p ? (tp = hlist_entry(p, typeof(*tp), field)): NULL; p = p->next) - -#define hlist_for_each_entry_from(tp, p, field) \ - for (; p ? (tp = hlist_entry(p, typeof(*tp), field)): NULL; p = p->next) - -#define hlist_for_each_entry_safe(tpos, pos, n, head, member) \ - for (pos = (head)->first; \ - (pos) != 0 && ({ n = (pos)->next; \ - tpos = hlist_entry((pos), typeof(*(tpos)), member); 1;}); \ - pos = (n)) +#define hlist_for_each_entry_continue(pos, member) \ + for (pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member); \ + (pos); \ + pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) -#define hlist_add_head_rcu(n, h) hlist_add_head(n, h) +#define hlist_for_each_entry_from(pos, member) \ + for (; (pos); \ + pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) -#define hlist_del_init_rcu(n) hlist_del_init(n) +#define hlist_for_each_entry_safe(pos, n, head, member) \ + for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member); \ + (pos) && ({ n = (pos)->member.next; 1; }); \ + pos = hlist_entry_safe(n, typeof(*(pos)), member)) #endif /* _LINUX_LIST_H_ */ Modified: head/sys/compat/linuxkpi/common/include/linux/rcupdate.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/rcupdate.h Tue Jan 26 14:46:39 2016 (r294836) +++ head/sys/compat/linuxkpi/common/include/linux/rcupdate.h Tue Jan 26 15:12:31 2016 (r294837) @@ -73,4 +73,25 @@ synchronize_rcu(void) sx_xunlock(&linux_global_rcu_lock); } +#define hlist_add_head_rcu(n, h) \ +do { \ + sx_xlock(&linux_global_rcu_lock); \ + hlist_add_head(n, h); \ + sx_xunlock(&linux_global_rcu_lock); \ +} while (0) + +#define hlist_del_init_rcu(n) \ +do { \ + sx_xlock(&linux_global_rcu_lock); \ + hlist_del_init(n); \ + sx_xunlock(&linux_global_rcu_lock); \ +} while (0) + +#define hlist_del_rcu(n) \ +do { \ + sx_xlock(&linux_global_rcu_lock); \ + hlist_del(n); \ + sx_xunlock(&linux_global_rcu_lock); \ +} while (0) + #endif /* _LINUX_RCUPDATE_H_ */ Modified: head/sys/ofed/drivers/net/mlx4/en_netdev.c ============================================================================== --- head/sys/ofed/drivers/net/mlx4/en_netdev.c Tue Jan 26 14:46:39 2016 (r294836) +++ head/sys/ofed/drivers/net/mlx4/en_netdev.c Tue Jan 26 15:12:31 2016 (r294837) @@ -606,13 +606,13 @@ static void mlx4_en_put_qp(struct mlx4_e mlx4_unregister_mac(dev, priv->port, mac); } else { struct mlx4_mac_entry *entry; - struct hlist_node *n, *tmp; + struct hlist_node *tmp; struct hlist_head *bucket; unsigned int i; for (i = 0; i < MLX4_EN_MAC_HASH_SIZE; ++i) { bucket = &priv->mac_hash[i]; - hlist_for_each_entry_safe(entry, n, tmp, bucket, hlist) { + hlist_for_each_entry_safe(entry, tmp, bucket, hlist) { mac = mlx4_mac_to_u64(entry->mac); en_dbg(DRV, priv, "Registering MAC: %pM for deleting\n", entry->mac); From owner-svn-src-all@freebsd.org Tue Jan 26 15:22:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 14ED8A6E73F; Tue, 26 Jan 2016 15:22:06 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C8DA2E72; Tue, 26 Jan 2016 15:22:05 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QFM49U062674; Tue, 26 Jan 2016 15:22:04 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QFM4IN062671; Tue, 26 Jan 2016 15:22:04 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601261522.u0QFM4IN062671@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 26 Jan 2016 15:22:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294838 - in head/sys/contrib/alpine-hal: . eth X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 15:22:06 -0000 Author: zbb Date: Tue Jan 26 15:22:04 2016 New Revision: 294838 URL: https://svnweb.freebsd.org/changeset/base/294838 Log: Import Annapurna Labs Alpine HAL for networking Files required for the NIC driver Import from vendor-sys/alpine-hal/2.7 SVN rev.: 294828 HAL version: 2.7 Obtained from: Semihalf Sponsored by: Annapurna Labs Added: head/sys/contrib/alpine-hal/al_hal_iofic.c (contents, props changed) head/sys/contrib/alpine-hal/al_hal_serdes.c (contents, props changed) head/sys/contrib/alpine-hal/al_hal_serdes.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_serdes_internal_regs.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_serdes_regs.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_config.c (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_config.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_debug.c (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_debug.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_iofic.c (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_iofic.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_iofic_regs.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_main.c (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_regs.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_regs_gen.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_regs_m2s.h (contents, props changed) head/sys/contrib/alpine-hal/al_hal_udma_regs_s2m.h (contents, props changed) head/sys/contrib/alpine-hal/eth/ head/sys/contrib/alpine-hal/eth/al_hal_an_lt_wrapper_regs.h (contents, props changed) head/sys/contrib/alpine-hal/eth/al_hal_eth.h (contents, props changed) head/sys/contrib/alpine-hal/eth/al_hal_eth_alu.h (contents, props changed) head/sys/contrib/alpine-hal/eth/al_hal_eth_ec_regs.h (contents, props changed) head/sys/contrib/alpine-hal/eth/al_hal_eth_kr.c (contents, props changed) head/sys/contrib/alpine-hal/eth/al_hal_eth_kr.h (contents, props changed) head/sys/contrib/alpine-hal/eth/al_hal_eth_mac_regs.h (contents, props changed) head/sys/contrib/alpine-hal/eth/al_hal_eth_main.c (contents, props changed) Added: head/sys/contrib/alpine-hal/al_hal_iofic.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/alpine-hal/al_hal_iofic.c Tue Jan 26 15:22:04 2016 (r294838) @@ -0,0 +1,291 @@ +/*- +******************************************************************************* +Copyright (C) 2015 Annapurna Labs Ltd. + +This file may be licensed under the terms of the Annapurna Labs Commercial +License Agreement. + +Alternatively, this file can be distributed under the terms of the GNU General +Public License V2 as published by the Free Software Foundation and can be +found at http://www.gnu.org/licenses/gpl-2.0.html + +Alternatively, redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + + * 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + +*******************************************************************************/ + +/** + * @{ + * @file al_hal_iofic.c + * + * @brief interrupt controller hal + * + */ + +#include "al_hal_iofic.h" +#include "al_hal_iofic_regs.h" + +/* + * configure the interrupt registers, interrupts will are kept masked + */ +int al_iofic_config(void __iomem *regs_base, int group, uint32_t flags) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_reg_write32(®s->ctrl[group].int_control_grp, flags); + + return 0; +} + +/* + * configure the moderation timer resolution for a given group + */ +int al_iofic_moder_res_config(void __iomem *regs_base, int group, + uint8_t resolution) + +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_control_grp); + AL_REG_FIELD_SET(reg, + INT_CONTROL_GRP_MOD_RES_MASK, + INT_CONTROL_GRP_MOD_RES_SHIFT, + resolution); + al_reg_write32(®s->ctrl[group].int_control_grp, reg); + + return 0; +} + +/* + * configure the moderation timer interval for a given legacy interrupt group + */ +int al_iofic_legacy_moder_interval_config(void __iomem *regs_base, int group, + uint8_t interval) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_control_grp); + AL_REG_FIELD_SET(reg, + INT_CONTROL_GRP_MOD_INTV_MASK, + INT_CONTROL_GRP_MOD_INTV_SHIFT, + interval); + al_reg_write32(®s->ctrl[group].int_control_grp, reg); + + return 0; +} + + +/* + * configure the moderation timer interval for a given msix vector. + */ +int al_iofic_msix_moder_interval_config(void __iomem *regs_base, int group, + uint8_t vector, uint8_t interval) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->grp_int_mod[group][vector].grp_int_mod_reg); + AL_REG_FIELD_SET(reg, + INT_MOD_INTV_MASK, + INT_MOD_INTV_SHIFT, + interval); + al_reg_write32(®s->grp_int_mod[group][vector].grp_int_mod_reg, reg); + + return 0; +} + +/* + * configure the vmid attributes for a given msix vector. + */ +int al_iofic_msix_vmid_attributes_config(void __iomem *regs_base, int group, + uint8_t vector, uint32_t vmid, uint8_t vmid_en) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg = 0; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + AL_REG_FIELD_SET(reg, + INT_MSIX_VMID_MASK, + INT_MSIX_VMID_SHIFT, + vmid); + AL_REG_BIT_VAL_SET(reg, + INT_MSIX_VMID_EN_SHIFT, + vmid_en); + + al_reg_write32(®s->grp_int_mod[group][vector].grp_int_vmid_reg, reg); + + return 0; +} + +/* + * return the offset of the unmask register for a given group + */ +uint32_t __iomem * al_iofic_unmask_offset_get(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + return ®s->ctrl[group].int_mask_clear_grp; +} + + +/* + * unmask specific interrupts for a given group + */ +void al_iofic_unmask(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + /* + * use the mask clear register, no need to read the mask register + * itself. write 0 to unmask, 1 has no effect + */ + al_reg_write32_relaxed(®s->ctrl[group].int_mask_clear_grp, ~mask); +} + +/* + * mask specific interrupts for a given group + */ +void al_iofic_mask(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_mask_grp); + + al_reg_write32(®s->ctrl[group].int_mask_grp, reg | mask); +} + +/* + * read the mask for a given group + */ +uint32_t al_iofic_read_mask(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + return al_reg_read32(®s->ctrl[group].int_mask_grp); +} + +/* + * read interrupt cause register for a given group + */ +uint32_t al_iofic_read_cause(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + return al_reg_read32(®s->ctrl[group].int_cause_grp); +} + +/* + * clear bits in the interrupt cause register for a given group + */ +void al_iofic_clear_cause(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + /* inverse mask, writing 1 has no effect */ + al_reg_write32(®s->ctrl[group].int_cause_grp, ~mask); +} + +/* + * Set the cause register for a given group + */ +void al_iofic_set_cause(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_reg_write32(®s->ctrl[group].int_cause_set_grp, mask); +} + + +/* + * unmask specific interrupts from aborting the udma a given group + */ +void al_iofic_abort_mask(void __iomem *regs_base, int group, uint32_t mask) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_reg_write32(®s->ctrl[group].int_abort_msk_grp, mask); + +} + +/* + * trigger all interrupts that are waiting for moderation timers to expire + */ +void al_iofic_interrupt_moderation_reset(void __iomem *regs_base, int group) +{ + struct al_iofic_regs __iomem *regs = (struct al_iofic_regs __iomem *)(regs_base); + uint32_t reg = 0; + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + al_assert(regs_base); + al_assert(group < AL_IOFIC_MAX_GROUPS); + + reg = al_reg_read32(®s->ctrl[group].int_control_grp); + reg |= INT_CONTROL_GRP_MOD_RST; + + al_reg_write32(®s->ctrl[group].int_control_grp, reg); +} + +/** @} end of interrupt controller group */ Added: head/sys/contrib/alpine-hal/al_hal_serdes.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/alpine-hal/al_hal_serdes.c Tue Jan 26 15:22:04 2016 (r294838) @@ -0,0 +1,3228 @@ +/*- +******************************************************************************* +Copyright (C) 2015 Annapurna Labs Ltd. + +This file may be licensed under the terms of the Annapurna Labs Commercial +License Agreement. + +Alternatively, this file can be distributed under the terms of the GNU General +Public License V2 as published by the Free Software Foundation and can be +found at http://www.gnu.org/licenses/gpl-2.0.html + +Alternatively, redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + + * 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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 "al_hal_serdes.h" +#include "al_hal_serdes_regs.h" +#include "al_hal_serdes_internal_regs.h" + +#define SRDS_CORE_REG_ADDR(page, type, offset)\ + (((page) << 13) | ((type) << 12) | (offset)) + +/* Link Training configuration */ +#define AL_SERDES_TX_DEEMPH_SUM_MAX 0x1b + +/* c configurations */ +#define AL_SERDES_TX_DEEMPH_C_ZERO_MAX_VAL 0x1b +#define AL_SERDES_TX_DEEMPH_C_ZERO_MIN_VAL 0 +#define AL_SERDES_TX_DEEMPH_C_ZERO_PRESET AL_SERDES_TX_DEEMPH_C_ZERO_MAX_VAL + +/* c(+1) configurations */ +#define AL_SERDES_TX_DEEMPH_C_PLUS_MAX_VAL 0x9 +#define AL_SERDES_TX_DEEMPH_C_PLUS_MIN_VAL 0 +#define AL_SERDES_TX_DEEMPH_C_PLUS_PRESET AL_SERDES_TX_DEEMPH_C_PLUS_MIN_VAL + +/* c(-1) configurations */ +#define AL_SERDES_TX_DEEMPH_C_MINUS_MAX_VAL 0x6 +#define AL_SERDES_TX_DEEMPH_C_MINUS_MIN_VAL 0 +#define AL_SERDES_TX_DEEMPH_C_MINUS_PRESET AL_SERDES_TX_DEEMPH_C_MINUS_MIN_VAL + +/* Rx equal total delay = MDELAY * TRIES */ +#define AL_SERDES_RX_EQUAL_MDELAY 10 +#define AL_SERDES_RX_EQUAL_TRIES 50 + +/* Rx eye calculation delay = MDELAY * TRIES */ +#define AL_SERDES_RX_EYE_CAL_MDELAY 50 +#define AL_SERDES_RX_EYE_CAL_TRIES 70 + + +/** + * Prototypes for _lane_ compatibility + */ +int al_serdes_lane_read( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t *data); + +int al_serdes_lane_write( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data); + + +/** + * SERDES core reg/lane read + */ +static inline uint8_t al_serdes_grp_reg_read( + struct al_serdes_group_info *grp_info, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset); + +static inline uint8_t al_serdes_grp_lane_read( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane page, + enum al_serdes_reg_type type, + uint16_t offset); + +/** + * SERDES core reg/lane write + */ +static inline void al_serdes_grp_reg_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data); + +static inline void al_serdes_grp_lane_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data); + +/** + * SERDES core masked reg/lane write + */ +static inline void al_serdes_grp_reg_masked_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t mask, + uint8_t data); + +/** + * Lane Rx rate change software flow disable + */ +static void _al_serdes_lane_rx_rate_change_sw_flow_dis( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane); + +/** + * Group Rx rate change software flow enable if all conditions met + */ +static void al_serdes_group_rx_rate_change_sw_flow_dis( + struct al_serdes_group_info *grp_info); + +/** + * Lane Rx rate change software flow enable if all conditions met + */ +static void _al_serdes_lane_rx_rate_change_sw_flow_en_cond( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane); + +/** + * Group Rx rate change software flow enable if all conditions met + */ +static void al_serdes_group_rx_rate_change_sw_flow_en_cond( + struct al_serdes_group_info *grp_info); + + +static inline void al_serdes_grp_lane_masked_write( + struct al_serdes_group_info *grp_info, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t mask, + uint8_t data); + +/******************************************************************************/ +/******************************************************************************/ +int al_serdes_handle_init( + void __iomem *serdes_regs_base, + struct al_serdes_obj *obj) +{ + int i; + + al_dbg( + "%s(%p, %p)\n", + __func__, + serdes_regs_base, + obj); + + al_assert(serdes_regs_base); + + for (i = 0; i < AL_SRDS_NUM_GROUPS; i++) { + obj->grp_info[i].pobj = obj; + + obj->grp_info[i].regs_base = + &((struct al_serdes_regs *)serdes_regs_base)[i]; + } + + return 0; +} + +/******************************************************************************/ +/******************************************************************************/ +int al_serdes_reg_read( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t *data) +{ + int status = 0; + + al_dbg( + "%s(%p, %d, %d, %d, %u)\n", + __func__, + obj, + grp, + page, + type, + offset); + + al_assert(obj); + al_assert(data); + al_assert(((int)grp) >= AL_SRDS_GRP_A); + al_assert(((int)grp) <= AL_SRDS_GRP_D); + al_assert(((int)page) >= AL_SRDS_REG_PAGE_0_LANE_0); + al_assert(((int)page) <= AL_SRDS_REG_PAGE_4_COMMON); + al_assert(((int)type) >= AL_SRDS_REG_TYPE_PMA); + al_assert(((int)type) <= AL_SRDS_REG_TYPE_PCS); + + *data = al_serdes_grp_reg_read( + &obj->grp_info[grp], + page, + type, + offset); + + al_dbg( + "%s: return(%u)\n", + __func__, + *data); + + return status; +} + +int al_serdes_lane_read( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t *data) +{ + return al_serdes_reg_read(obj, grp, (enum al_serdes_reg_page)lane, type, + offset, data); +} +/******************************************************************************/ +/******************************************************************************/ +int al_serdes_reg_write( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_reg_page page, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data) +{ + int status = 0; + + al_dbg( + "%s(%p, %d, %d, %d, %u, %u)\n", + __func__, + obj, + grp, + page, + type, + offset, + data); + + al_assert(obj); + al_assert(((int)grp) >= AL_SRDS_GRP_A); + al_assert(((int)grp) <= AL_SRDS_GRP_D); + al_assert(((int)page) >= AL_SRDS_REG_PAGE_0_LANE_0); + al_assert(((int)page) <= AL_SRDS_REG_PAGE_0123_LANES_0123); + al_assert(((int)type) >= AL_SRDS_REG_TYPE_PMA); + al_assert(((int)type) <= AL_SRDS_REG_TYPE_PCS); + + al_serdes_grp_reg_write( + &obj->grp_info[grp], + page, + type, + offset, + data); + + return status; +} + +int al_serdes_lane_write( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_reg_type type, + uint16_t offset, + uint8_t data) +{ + return al_serdes_reg_write(obj, grp, (enum al_serdes_reg_page)lane, + type, offset, data); +} +/******************************************************************************/ +/******************************************************************************/ +#if (SERDES_IREG_FLD_PCSRX_DATAWIDTH_REG_NUM != SERDES_IREG_FLD_PCSTX_DATAWIDTH_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_PCSRX_DIVRATE_REG_NUM != SERDES_IREG_FLD_PCSTX_DIVRATE_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM != SERDES_IREG_FLD_CMNPCS_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM != SERDES_IREG_FLD_CMNPCSBIST_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM != SERDES_IREG_FLD_CMNPCSPSTATE_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_LB_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSRX_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSRXBIST_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSRXEQ_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +#if (SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM != SERDES_IREG_FLD_PCSTX_LOCWREN_REG_NUM) +#error "Wrong assumption!" +#endif +void al_serdes_bist_overrides_enable( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_rate rate) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + int i; + + uint8_t rx_rate_val; + uint8_t tx_rate_val; + + switch (rate) { + case AL_SRDS_RATE_1_8: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_8; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_8; + break; + case AL_SRDS_RATE_1_4: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_4; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_4; + break; + case AL_SRDS_RATE_1_2: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_2; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_2; + break; + case AL_SRDS_RATE_FULL: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_1; + break; + default: + al_err("%s: invalid rate (%d)\n", __func__, rate); + al_assert(0); + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + tx_rate_val = SERDES_IREG_FLD_PCSTX_DIVRATE_VAL_1_1; + } + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSRX_DATAWIDTH_REG_NUM, + SERDES_IREG_FLD_PCSRX_DATAWIDTH_MASK | + SERDES_IREG_FLD_PCSTX_DATAWIDTH_MASK, + SERDES_IREG_FLD_PCSRX_DATAWIDTH_VAL_20 | + SERDES_IREG_FLD_PCSTX_DATAWIDTH_VAL_20); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSRX_DIVRATE_REG_NUM, + SERDES_IREG_FLD_PCSRX_DIVRATE_MASK | + SERDES_IREG_FLD_PCSTX_DIVRATE_MASK, + rx_rate_val | tx_rate_val); + } + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN | + SERDES_IREG_FLD_CMNPCS_LOCWREN | + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN | + SERDES_IREG_FLD_CMNPCSPSTATE_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN | + SERDES_IREG_FLD_CMNPCS_LOCWREN | + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN | + SERDES_IREG_FLD_CMNPCSPSTATE_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCS_LOCWREN_REG_NUM, + SERDES_IREG_FLD_PCS_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCS_TXENABLE_REG_NUM, + SERDES_IREG_FLD_CMNPCS_TXENABLE, + SERDES_IREG_FLD_CMNPCS_TXENABLE); + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM, + SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN | + SERDES_IREG_FLD_LB_LOCWREN | + SERDES_IREG_FLD_PCSRX_LOCWREN | + SERDES_IREG_FLD_PCSRXBIST_LOCWREN | + SERDES_IREG_FLD_PCSRXEQ_LOCWREN | + SERDES_IREG_FLD_PCSTX_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN_REG_NUM, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_TX_DRV_OVERRIDE_EN_REG_NUM, + SERDES_IREG_FLD_TX_DRV_OVERRIDE_EN, + 0); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_RXLOCK2REF_OVREN_REG_NUM, + SERDES_IREG_FLD_RXLOCK2REF_OVREN, + SERDES_IREG_FLD_RXLOCK2REF_OVREN); + } +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_bist_overrides_disable( + struct al_serdes_obj *obj, + enum al_serdes_group grp) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + int i; + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCIEGEN3_LOCWREN_REG_NUM, + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN, + SERDES_IREG_FLD_CMNPCSBIST_LOCWREN); + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_LANEPCSPSTATE_LOCWREN_REG_NUM, + SERDES_IREG_FLD_LB_LOCWREN | + SERDES_IREG_FLD_PCSRXBIST_LOCWREN, + SERDES_IREG_FLD_LB_LOCWREN | + SERDES_IREG_FLD_PCSRXBIST_LOCWREN); + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN_REG_NUM, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN, + SERDES_IREG_FLD_PCSTXBIST_LOCWREN); + } +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_rx_rate_change( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_rate rate) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + int i; + + uint8_t rx_rate_val; + + switch (rate) { + case AL_SRDS_RATE_1_8: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_8; + break; + case AL_SRDS_RATE_1_4: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_4; + break; + case AL_SRDS_RATE_1_2: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_2; + break; + case AL_SRDS_RATE_FULL: + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + break; + default: + al_err("%s: invalid rate (%d)\n", __func__, rate); + rx_rate_val = SERDES_IREG_FLD_PCSRX_DIVRATE_VAL_1_1; + break; + } + + for (i = 0; i < AL_SRDS_NUM_LANES; i++) { + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)i, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_PCSRX_DIVRATE_REG_NUM, + SERDES_IREG_FLD_PCSRX_DIVRATE_MASK, + rx_rate_val); + } +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_group_pm_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_pm pm) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + uint8_t pm_val; + + switch (pm) { + case AL_SRDS_PM_PD: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_PD; + break; + case AL_SRDS_PM_P2: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P2; + break; + case AL_SRDS_PM_P1: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P1; + break; + case AL_SRDS_PM_P0S: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P0S; + break; + case AL_SRDS_PM_P0: + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P0; + break; + default: + al_err("%s: invalid power mode (%d)\n", __func__, pm); + al_assert(0); + pm_val = SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_VAL_P0; + } + + if (pm == AL_SRDS_PM_PD) + al_serdes_group_rx_rate_change_sw_flow_dis(grp_info); + + al_serdes_grp_reg_masked_write( + grp_info, + AL_SRDS_REG_PAGE_4_COMMON, + AL_SRDS_REG_TYPE_PMA, + SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_REG_NUM, + SERDES_IREG_FLD_CMNPCSPSTATE_SYNTH_MASK, + pm_val); + + if (pm != AL_SRDS_PM_PD) + al_serdes_group_rx_rate_change_sw_flow_en_cond(grp_info); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_rx_rate_change_sw_flow_en( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 201, 0xfc); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 202, 0xff); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 203, 0xff); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 204, 0xff); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 205, 0x7f); + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 205, 0xff); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_rx_rate_change_sw_flow_dis( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + al_serdes_lane_write(obj, grp, lane, AL_SRDS_REG_TYPE_PMA, 205, 0x7f); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_pcie_rate_override_enable_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + al_bool en) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA_REG_NUM, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA, + en ? SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA : 0); +} + +/******************************************************************************/ +/******************************************************************************/ +al_bool al_serdes_lane_pcie_rate_override_is_enabled( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + return (al_serdes_grp_lane_read( + grp_info, + lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA_REG_NUM) & + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_ENA) ? AL_TRUE : AL_FALSE; +} + +/******************************************************************************/ +/******************************************************************************/ +enum al_serdes_pcie_rate al_serdes_lane_pcie_rate_get( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + return (al_serdes_grp_reg_read( + grp_info, + (enum al_serdes_reg_page)lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_REG_NUM) & + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_MASK) >> + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_SHIFT; +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_pcie_rate_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_pcie_rate rate) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + + al_serdes_grp_reg_masked_write( + grp_info, + (enum al_serdes_reg_page)lane, + AL_SRDS_REG_TYPE_PCS, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_REG_NUM, + SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_MASK, + rate << SERDES_IREG_FLD_PCS_VPCSIF_OVR_RATE_SHIFT); +} + +/******************************************************************************/ +/******************************************************************************/ +void al_serdes_lane_pm_set( + struct al_serdes_obj *obj, + enum al_serdes_group grp, + enum al_serdes_lane lane, + enum al_serdes_pm rx_pm, + enum al_serdes_pm tx_pm) +{ + struct al_serdes_group_info *grp_info = &obj->grp_info[grp]; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 26 15:26:37 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EFC96A6E803; Tue, 26 Jan 2016 15:26:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A68411065; Tue, 26 Jan 2016 15:26:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QFQaeX063366; Tue, 26 Jan 2016 15:26:36 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QFQatQ063359; Tue, 26 Jan 2016 15:26:36 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601261526.u0QFQatQ063359@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 26 Jan 2016 15:26:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294839 - in head/sys: compat/linuxkpi/common/include/asm compat/linuxkpi/common/include/linux dev/cxgb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 15:26:38 -0000 Author: hselasky Date: Tue Jan 26 15:26:35 2016 New Revision: 294839 URL: https://svnweb.freebsd.org/changeset/base/294839 Log: Update and add various macros to the LinuxKPI and resolve a macro redefinition issue in the cxgb driver. MFC after: 1 week Sponsored by: Mellanox Technologies Reviewed by: np @ Modified: head/sys/compat/linuxkpi/common/include/asm/atomic.h head/sys/compat/linuxkpi/common/include/linux/clocksource.h head/sys/compat/linuxkpi/common/include/linux/completion.h head/sys/compat/linuxkpi/common/include/linux/gfp.h head/sys/compat/linuxkpi/common/include/linux/kernel.h head/sys/dev/cxgb/cxgb_osdep.h Modified: head/sys/compat/linuxkpi/common/include/asm/atomic.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/asm/atomic.h Tue Jan 26 15:22:04 2016 (r294838) +++ head/sys/compat/linuxkpi/common/include/asm/atomic.h Tue Jan 26 15:26:35 2016 (r294839) @@ -35,6 +35,8 @@ #include #include +#define ATOMIC_INIT(x) { .counter = (x) } + typedef struct { volatile int counter; } atomic_t; Modified: head/sys/compat/linuxkpi/common/include/linux/clocksource.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/clocksource.h Tue Jan 26 15:22:04 2016 (r294838) +++ head/sys/compat/linuxkpi/common/include/linux/clocksource.h Tue Jan 26 15:26:35 2016 (r294839) @@ -2,7 +2,7 @@ * Copyright (c) 2010 Isilon Systems, Inc. * Copyright (c) 2010 iX Systems, Inc. * Copyright (c) 2010 Panasas, Inc. - * Copyright (c) 2013, 2014 Mellanox Technologies, Ltd. + * Copyright (c) 2013-2016 Mellanox Technologies, Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,12 +29,13 @@ * $FreeBSD$ */ #ifndef _LINUX_CLOCKSOURCE_H -#define _LINUX_CLOCKSOURCE_H +#define _LINUX_CLOCKSOURCE_H #include +#define CLOCKSOURCE_MASK(x) ((cycle_t)(-1ULL >> ((-(x)) & 63))) + /* clocksource cycle base type */ typedef u64 cycle_t; - -#endif /* _LINUX_CLOCKSOURCE_H */ +#endif /* _LINUX_CLOCKSOURCE_H */ Modified: head/sys/compat/linuxkpi/common/include/linux/completion.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/completion.h Tue Jan 26 15:22:04 2016 (r294838) +++ head/sys/compat/linuxkpi/common/include/linux/completion.h Tue Jan 26 15:26:35 2016 (r294839) @@ -40,7 +40,9 @@ struct completion { #define INIT_COMPLETION(c) \ ((c).done = 0) #define init_completion(c) \ - ((c)->done = 0) + do { (c)->done = 0; } while (0) +#define reinit_completion(c) \ + do { (c)->done = 0; } while (0) #define complete(c) \ linux_complete_common((c), 0) #define complete_all(c) \ Modified: head/sys/compat/linuxkpi/common/include/linux/gfp.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/gfp.h Tue Jan 26 15:22:04 2016 (r294838) +++ head/sys/compat/linuxkpi/common/include/linux/gfp.h Tue Jan 26 15:26:35 2016 (r294839) @@ -54,6 +54,7 @@ #define GFP_HIGHUSER M_WAITOK #define GFP_HIGHUSER_MOVABLE M_WAITOK #define GFP_IOFS M_NOWAIT +#define GFP_NOIO M_NOWAIT static inline void * page_address(struct page *page) Modified: head/sys/compat/linuxkpi/common/include/linux/kernel.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/kernel.h Tue Jan 26 15:22:04 2016 (r294838) +++ head/sys/compat/linuxkpi/common/include/linux/kernel.h Tue Jan 26 15:26:35 2016 (r294839) @@ -2,7 +2,7 @@ * Copyright (c) 2010 Isilon Systems, Inc. * Copyright (c) 2010 iX Systems, Inc. * Copyright (c) 2010 Panasas, Inc. - * Copyright (c) 2013-2015 Mellanox Technologies, Ltd. + * Copyright (c) 2013-2016 Mellanox Technologies, Ltd. * Copyright (c) 2014-2015 François Tigeot * All rights reserved. * @@ -159,9 +159,10 @@ #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) -#define simple_strtoul strtoul -#define simple_strtol strtol -#define kstrtol(a,b,c) ({*(c) = strtol(a,0,b);}) +#define simple_strtoul(...) strtoul(__VA_ARGS__) +#define simple_strtol(...) strtol(__VA_ARGS__) +#define kstrtol(a,b,c) ({*(c) = strtol(a,0,b); 0;}) +#define kstrtoint(a,b,c) ({*(c) = strtol(a,0,b); 0;}) #define min(x, y) ((x) < (y) ? (x) : (y)) #define max(x, y) ((x) > (y) ? (x) : (y)) @@ -185,6 +186,7 @@ #define round_up(x, y) ((((x)-1) | __round_mask(x, y))+1) #define round_down(x, y) ((x) & ~__round_mask(x, y)) +#define smp_processor_id() PCPU_GET(cpuid) #define num_possible_cpus() mp_ncpus #define num_online_cpus() mp_ncpus Modified: head/sys/dev/cxgb/cxgb_osdep.h ============================================================================== --- head/sys/dev/cxgb/cxgb_osdep.h Tue Jan 26 15:22:04 2016 (r294838) +++ head/sys/dev/cxgb/cxgb_osdep.h Tue Jan 26 15:26:35 2016 (r294839) @@ -231,7 +231,9 @@ static const int debug_flags = DBG_RX; #define le16_to_cpu(x) le16toh(x) #define cpu_to_le32(x) htole32(x) #define swab32(x) bswap32(x) -#define simple_strtoul strtoul +#ifndef simple_strtoul +#define simple_strtoul(...) strtoul(__VA_ARGS__) +#endif #ifndef LINUX_TYPES_DEFINED From owner-svn-src-all@freebsd.org Tue Jan 26 15:43:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D4C5A6EDB0; Tue, 26 Jan 2016 15:43:21 +0000 (UTC) (envelope-from nparhar@gmail.com) Received: from mail-pf0-x230.google.com (mail-pf0-x230.google.com [IPv6:2607:f8b0:400e:c00::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E29D01BDE; Tue, 26 Jan 2016 15:43:20 +0000 (UTC) (envelope-from nparhar@gmail.com) Received: by mail-pf0-x230.google.com with SMTP id q63so103362937pfb.1; Tue, 26 Jan 2016 07:43:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=9Z0NOVw8oUXuI+x7j5OStC9FBM6IKtjgfN84F63dC6s=; b=SmjaZwIW+PPCuajXyDPfeaSryAIuQzs/MGv+ptxwix/glsBlTPaB2WkVYRF2nxfxxO 48muyfyhlAVWFIawm0u2YSMftW3cI5IvzDsmekWNdo6toYMyDAzsckYebxiJgwoKHuGi l57PfBQYsyxjSLwl8Bl4QcEFBPsUxU0r2jdcBKMLOAyfTOrX0TvVWBFLcJJIbJtUAVWk mDqMrlovJjHKXVkKzUxKGafNgy1w8PeY9vA8jCXphLbdzNR9v2FyeQDi9G9wb1EnNbik ubg/uk5nYLFpmlaBK5ScxMfeJNI5JB71PuctJpdc/Py7qKznXzX//XaBAP+PD0RlI1Dh G2wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-type :content-disposition:in-reply-to:user-agent; bh=9Z0NOVw8oUXuI+x7j5OStC9FBM6IKtjgfN84F63dC6s=; b=QCigZvRplYj7yJLMdSzO1Rp56mKLAUE5qicF5Dej1LVQhd5CI8IRzUGWQ9x9xtiskJ DKUHdmV1UwwNS0U4CHT4ipzWk0eaqrFTNwaihmtUeIh46UOPuAGH1ZOYcc8/fhJiZA61 29eKASGvIajHM3uBspAD2wHlmarospiMOqfC9YZMHPSpzU65zlafsH+WwdlqEK+0DCgh 21cUnzdbQMJKKewEsQJVdltG1eBcQlvCn7TDyi69Gqt4yHe4yi1uXRA67QawM1oY/8eS OME3POuFvQXg7Wizmvbi+8BK9kAQCglFmeUy1aZb2wp4/Ffw+Ofem4gmeS1iLP86iryT UsTQ== X-Gm-Message-State: AG10YOQmwE2HYvqzkCxlspJx2djJPvv9tL0DQ/AUjAwGYJ6yyQilwU6U1Rh4YOZA1wqH1A== X-Received: by 10.98.89.139 with SMTP id k11mr35119513pfj.82.1453823000532; Tue, 26 Jan 2016 07:43:20 -0800 (PST) Received: from ox ([2601:641:c001:8a00:cd37:2eca:7ecc:734f]) by smtp.gmail.com with ESMTPSA id y26sm2638720pfi.88.2016.01.26.07.43.18 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Tue, 26 Jan 2016 07:43:19 -0800 (PST) Sender: Navdeep Parhar Date: Tue, 26 Jan 2016 07:43:12 -0800 From: Navdeep Parhar To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294839 - in head/sys: compat/linuxkpi/common/include/asm compat/linuxkpi/common/include/linux dev/cxgb Message-ID: <20160126154312.GD2170@ox> Mail-Followup-To: Hans Petter Selasky , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201601261526.u0QFQatQ063359@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201601261526.u0QFQatQ063359@repo.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 15:43:21 -0000 On Tue, Jan 26, 2016 at 03:26:36PM +0000, Hans Petter Selasky wrote: > Author: hselasky > Date: Tue Jan 26 15:26:35 2016 > New Revision: 294839 > URL: https://svnweb.freebsd.org/changeset/base/294839 > > Log: > Update and add various macros to the LinuxKPI and resolve a macro > redefinition issue in the cxgb driver. > > MFC after: 1 week > Sponsored by: Mellanox Technologies > Reviewed by: np @ ^^^^ only the cxgb_osdep.h part. Regards, Navdeep > > Modified: > head/sys/compat/linuxkpi/common/include/asm/atomic.h > head/sys/compat/linuxkpi/common/include/linux/clocksource.h > head/sys/compat/linuxkpi/common/include/linux/completion.h > head/sys/compat/linuxkpi/common/include/linux/gfp.h > head/sys/compat/linuxkpi/common/include/linux/kernel.h > head/sys/dev/cxgb/cxgb_osdep.h > > > > Modified: head/sys/dev/cxgb/cxgb_osdep.h > ============================================================================== > --- head/sys/dev/cxgb/cxgb_osdep.h Tue Jan 26 15:22:04 2016 (r294838) > +++ head/sys/dev/cxgb/cxgb_osdep.h Tue Jan 26 15:26:35 2016 (r294839) > @@ -231,7 +231,9 @@ static const int debug_flags = DBG_RX; > #define le16_to_cpu(x) le16toh(x) > #define cpu_to_le32(x) htole32(x) > #define swab32(x) bswap32(x) > -#define simple_strtoul strtoul > +#ifndef simple_strtoul > +#define simple_strtoul(...) strtoul(__VA_ARGS__) > +#endif > > > #ifndef LINUX_TYPES_DEFINED > From owner-svn-src-all@freebsd.org Tue Jan 26 16:33:40 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C721A6E26F; Tue, 26 Jan 2016 16:33:40 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EC5761647; Tue, 26 Jan 2016 16:33:39 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QGXcqG083561; Tue, 26 Jan 2016 16:33:38 GMT (envelope-from hiren@FreeBSD.org) Received: (from hiren@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QGXcdh083557; Tue, 26 Jan 2016 16:33:38 GMT (envelope-from hiren@FreeBSD.org) Message-Id: <201601261633.u0QGXcdh083557@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hiren set sender to hiren@FreeBSD.org using -f From: Hiren Panchasara Date: Tue, 26 Jan 2016 16:33:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294840 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 16:33:40 -0000 Author: hiren Date: Tue Jan 26 16:33:38 2016 New Revision: 294840 URL: https://svnweb.freebsd.org/changeset/base/294840 Log: Persist timers TCPTV_PERSMIN and TCPTV_PERSMAX are hardcoded with 5 seconds and 60 seconds, respectively. Turn them into sysctls that can be tuned live. The default values of 5 seconds and 60 seconds have been retained. Submitted by: Jason Wolfe (j at nitrology dot com) Reviewed by: gnn, rrs, hiren, bz MFC after: 1 week Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D5024 Modified: head/sys/netinet/tcp_output.c head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_timer.c head/sys/netinet/tcp_timer.h Modified: head/sys/netinet/tcp_output.c ============================================================================== --- head/sys/netinet/tcp_output.c Tue Jan 26 15:26:35 2016 (r294839) +++ head/sys/netinet/tcp_output.c Tue Jan 26 16:33:38 2016 (r294840) @@ -1626,7 +1626,7 @@ tcp_setpersist(struct tcpcb *tp) * Start/restart persistance timer. */ TCPT_RANGESET(tt, t * tcp_backoff[tp->t_rxtshift], - TCPTV_PERSMIN, TCPTV_PERSMAX); + tcp_persmin, tcp_persmax); tcp_timer_activate(tp, TT_PERSIST, tt); if (tp->t_rxtshift < TCP_MAXRXTSHIFT) tp->t_rxtshift++; Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Tue Jan 26 15:26:35 2016 (r294839) +++ head/sys/netinet/tcp_subr.c Tue Jan 26 16:33:38 2016 (r294840) @@ -675,6 +675,8 @@ tcp_init(void) tcp_rexmit_min = TCPTV_MIN; if (tcp_rexmit_min < 1) tcp_rexmit_min = 1; + tcp_persmin = TCPTV_PERSMIN; + tcp_persmax = TCPTV_PERSMAX; tcp_rexmit_slop = TCPTV_CPU_VAR; tcp_finwait2_timeout = TCPTV_FINWAIT2_TIMEOUT; tcp_tcbhashsize = hashsize; Modified: head/sys/netinet/tcp_timer.c ============================================================================== --- head/sys/netinet/tcp_timer.c Tue Jan 26 15:26:35 2016 (r294839) +++ head/sys/netinet/tcp_timer.c Tue Jan 26 16:33:38 2016 (r294840) @@ -77,6 +77,14 @@ __FBSDID("$FreeBSD$"); #include #endif +int tcp_persmin; +SYSCTL_PROC(_net_inet_tcp, OID_AUTO, persmin, CTLTYPE_INT|CTLFLAG_RW, + &tcp_persmin, 0, sysctl_msec_to_ticks, "I", "minimum persistence interval"); + +int tcp_persmax; +SYSCTL_PROC(_net_inet_tcp, OID_AUTO, persmax, CTLTYPE_INT|CTLFLAG_RW, + &tcp_persmax, 0, sysctl_msec_to_ticks, "I", "maximum persistence interval"); + int tcp_keepinit; SYSCTL_PROC(_net_inet_tcp, TCPCTL_KEEPINIT, keepinit, CTLTYPE_INT|CTLFLAG_RW, &tcp_keepinit, 0, sysctl_msec_to_ticks, "I", "time to establish connection"); Modified: head/sys/netinet/tcp_timer.h ============================================================================== --- head/sys/netinet/tcp_timer.h Tue Jan 26 15:26:35 2016 (r294839) +++ head/sys/netinet/tcp_timer.h Tue Jan 26 16:33:38 2016 (r294840) @@ -77,7 +77,7 @@ if 0, no idea yet */ #define TCPTV_RTOBASE ( 3*hz) /* assumed RTO if no info */ -#define TCPTV_PERSMIN ( 5*hz) /* retransmit persistence */ +#define TCPTV_PERSMIN ( 5*hz) /* minimum persist interval */ #define TCPTV_PERSMAX ( 60*hz) /* maximum persist interval */ #define TCPTV_KEEP_INIT ( 75*hz) /* initial connect keepalive */ @@ -173,6 +173,8 @@ struct tcp_timer { #define TP_KEEPCNT(tp) ((tp)->t_keepcnt ? (tp)->t_keepcnt : tcp_keepcnt) #define TP_MAXIDLE(tp) (TP_KEEPCNT(tp) * TP_KEEPINTVL(tp)) +extern int tcp_persmin; /* minimum persist interval */ +extern int tcp_persmax; /* maximum persist interval */ extern int tcp_keepinit; /* time to establish connection */ extern int tcp_keepidle; /* time before keepalive probes begin */ extern int tcp_keepintvl; /* time between keepalive probes */ From owner-svn-src-all@freebsd.org Tue Jan 26 16:34:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41FF0A6E2D3; Tue, 26 Jan 2016 16:34:29 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 061E018D1; Tue, 26 Jan 2016 16:34:28 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QGYSjt083633; Tue, 26 Jan 2016 16:34:28 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QGYRon083631; Tue, 26 Jan 2016 16:34:27 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201601261634.u0QGYRon083631@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Tue, 26 Jan 2016 16:34:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294841 - head/sys/dev/rtwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 16:34:29 -0000 Author: avos Date: Tue Jan 26 16:34:27 2016 New Revision: 294841 URL: https://svnweb.freebsd.org/changeset/base/294841 Log: rtwn: use ieee80211_restart_all() for device reset Tested by: kevlo Reviewed by: kevlo Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5057 Modified: head/sys/dev/rtwn/if_rtwn.c head/sys/dev/rtwn/if_rtwnreg.h Modified: head/sys/dev/rtwn/if_rtwn.c ============================================================================== --- head/sys/dev/rtwn/if_rtwn.c Tue Jan 26 16:33:38 2016 (r294840) +++ head/sys/dev/rtwn/if_rtwn.c Tue Jan 26 16:34:27 2016 (r294841) @@ -186,11 +186,9 @@ static void rtwn_iq_calib(struct rtwn_so static void rtwn_lc_calib(struct rtwn_softc *); static void rtwn_temp_calib(struct rtwn_softc *); static void rtwn_init_locked(struct rtwn_softc *); -static void rtwn_init(struct rtwn_softc *); static void rtwn_stop_locked(struct rtwn_softc *); static void rtwn_stop(struct rtwn_softc *); static void rtwn_intr(void *); -static void rtwn_hw_reset(void *, int); /* Aliases. */ #define rtwn_bb_write rtwn_write_4 @@ -295,7 +293,6 @@ rtwn_attach(device_t dev) RTWN_LOCK_INIT(sc); callout_init_mtx(&sc->calib_to, &sc->sc_mtx, 0); callout_init_mtx(&sc->watchdog_to, &sc->sc_mtx, 0); - TASK_INIT(&sc->sc_reinit_task, 0, rtwn_hw_reset, sc); mbufq_init(&sc->sc_snd, ifqmaxlen); error = rtwn_read_chipid(sc); @@ -406,7 +403,6 @@ rtwn_detach(device_t dev) int i; if (sc->sc_ic.ic_softc != NULL) { - ieee80211_draintask(&sc->sc_ic, &sc->sc_reinit_task); rtwn_stop(sc); callout_drain(&sc->calib_to); @@ -1899,7 +1895,7 @@ rtwn_watchdog(void *arg) if (sc->sc_tx_timer != 0 && --sc->sc_tx_timer == 0) { ic_printf(ic, "device timeout\n"); - ieee80211_runtask(ic, &sc->sc_reinit_task); + ieee80211_restart_all(ic); return; } callout_reset(&sc->watchdog_to, hz, rtwn_watchdog, sc); @@ -3361,18 +3357,6 @@ fail: } static void -rtwn_init(struct rtwn_softc *sc) -{ - - RTWN_LOCK(sc); - rtwn_init_locked(sc); - RTWN_UNLOCK(sc); - - if (sc->sc_flags & RTWN_RUNNING) - ieee80211_start_all(&sc->sc_ic); -} - -static void rtwn_stop_locked(struct rtwn_softc *sc) { uint16_t reg; @@ -3481,14 +3465,3 @@ rtwn_intr(void *arg) RTWN_UNLOCK(sc); } - -static void -rtwn_hw_reset(void *arg0, int pending) -{ - struct rtwn_softc *sc = arg0; - struct ieee80211com *ic = &sc->sc_ic; - - rtwn_stop(sc); - rtwn_init(sc); - ieee80211_notify_radio(ic, 1); -} Modified: head/sys/dev/rtwn/if_rtwnreg.h ============================================================================== --- head/sys/dev/rtwn/if_rtwnreg.h Tue Jan 26 16:33:38 2016 (r294840) +++ head/sys/dev/rtwn/if_rtwnreg.h Tue Jan 26 16:34:27 2016 (r294841) @@ -1295,7 +1295,6 @@ struct rtwn_softc { bus_size_t sc_mapsize; int sc_cap_off; - struct task sc_reinit_task; struct callout calib_to; struct callout watchdog_to; From owner-svn-src-all@freebsd.org Tue Jan 26 16:51:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16394A6EB97; Tue, 26 Jan 2016 16:51:01 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CD99D39E; Tue, 26 Jan 2016 16:51:00 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QGoxjf086768; Tue, 26 Jan 2016 16:50:59 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QGoxjx086767; Tue, 26 Jan 2016 16:50:59 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201601261650.u0QGoxjx086767@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Tue, 26 Jan 2016 16:50:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294842 - head/sys/dev/rtwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 16:51:01 -0000 Author: avos Date: Tue Jan 26 16:50:59 2016 New Revision: 294842 URL: https://svnweb.freebsd.org/changeset/base/294842 Log: rtwn: do not start vap when initialization fails - Start vap(s) (via ieee80211_start_all()) only when initialization succeeds; stop the first vap otherwise (via ieee80211_stop()); - Do not try to stop a device multiple times (move (sc->sc_flags & RTWN_RUNNING) check to urtwn_stop_locked()). Tested by: kevlo Reviewed by: kevlo Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5058 Modified: head/sys/dev/rtwn/if_rtwn.c Modified: head/sys/dev/rtwn/if_rtwn.c ============================================================================== --- head/sys/dev/rtwn/if_rtwn.c Tue Jan 26 16:34:27 2016 (r294841) +++ head/sys/dev/rtwn/if_rtwn.c Tue Jan 26 16:50:59 2016 (r294842) @@ -185,7 +185,7 @@ static void rtwn_iq_calib_write_results( static void rtwn_iq_calib(struct rtwn_softc *); static void rtwn_lc_calib(struct rtwn_softc *); static void rtwn_temp_calib(struct rtwn_softc *); -static void rtwn_init_locked(struct rtwn_softc *); +static int rtwn_init(struct rtwn_softc *); static void rtwn_stop_locked(struct rtwn_softc *); static void rtwn_stop(struct rtwn_softc *); static void rtwn_intr(void *); @@ -1845,19 +1845,15 @@ static void rtwn_parent(struct ieee80211com *ic) { struct rtwn_softc *sc = ic->ic_softc; - int startall = 0; + struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps); - RTWN_LOCK(sc); - if (ic->ic_nrunning> 0) { - if (!(sc->sc_flags & RTWN_RUNNING)) { - rtwn_init_locked(sc); - startall = 1; - } - } else if (sc->sc_flags & RTWN_RUNNING) - rtwn_stop_locked(sc); - RTWN_UNLOCK(sc); - if (startall) - ieee80211_start_all(ic); + if (ic->ic_nrunning > 0) { + if (rtwn_init(sc) == 0) + ieee80211_start_all(ic); + else + ieee80211_stop(vap); + } else + rtwn_stop(sc); } static void @@ -3218,8 +3214,8 @@ rtwn_temp_calib(struct rtwn_softc *sc) } } -static void -rtwn_init_locked(struct rtwn_softc *sc) +static int +rtwn_init(struct rtwn_softc *sc) { struct ieee80211com *ic = &sc->sc_ic; struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps); @@ -3227,7 +3223,13 @@ rtwn_init_locked(struct rtwn_softc *sc) uint8_t macaddr[IEEE80211_ADDR_LEN]; int i, error; - RTWN_LOCK_ASSERT(sc); + RTWN_LOCK(sc); + + if (sc->sc_flags & RTWN_RUNNING) { + RTWN_UNLOCK(sc); + return 0; + } + sc->sc_flags |= RTWN_RUNNING; /* Init firmware commands ring. */ sc->fwcur = 0; @@ -3347,13 +3349,15 @@ rtwn_init_locked(struct rtwn_softc *sc) /* Enable interrupts. */ rtwn_write_4(sc, R92C_HIMR, RTWN_INT_ENABLE); - sc->sc_flags |= RTWN_RUNNING; - callout_reset(&sc->watchdog_to, hz, rtwn_watchdog, sc); - return; fail: - rtwn_stop_locked(sc); + if (error != 0) + rtwn_stop_locked(sc); + + RTWN_UNLOCK(sc); + + return error; } static void @@ -3364,6 +3368,9 @@ rtwn_stop_locked(struct rtwn_softc *sc) RTWN_LOCK_ASSERT(sc); + if (!(sc->sc_flags & RTWN_RUNNING)) + return; + sc->sc_tx_timer = 0; callout_stop(&sc->watchdog_to); callout_stop(&sc->calib_to); From owner-svn-src-all@freebsd.org Tue Jan 26 17:00:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE41CA6EFA4; Tue, 26 Jan 2016 17:00:32 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7FC3FA4D; Tue, 26 Jan 2016 17:00:32 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QH0Vgn089477; Tue, 26 Jan 2016 17:00:31 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QH0V0Z089475; Tue, 26 Jan 2016 17:00:31 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201601261700.u0QH0V0Z089475@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Tue, 26 Jan 2016 17:00:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294843 - stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 17:00:32 -0000 Author: asomers Date: Tue Jan 26 17:00:31 2016 New Revision: 294843 URL: https://svnweb.freebsd.org/changeset/base/294843 Log: MFC r292066, r292069, r293708, r294027, and r294358, mostly to vdev_geom.c r292066 | asomers | 2015-12-10 14:46:21 -0700 (Thu, 10 Dec 2015) | 25 lines During vdev_geom_open, require that the vdev guids match the device's label except during split, add, or create operations. This fixes a bug where the wrong disk could be returned, and higher layers of ZFS would immediately eject it again. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c: o When opening by GUID, require both the pool and vdev GUIDs to match. While it is highly unlikely for two vdevs to have the same vdev GUIDs, the ZFS storage pool allocator only guarantees they are unique within a pool. o Modify the open behavior to: - If we are opening a vdev that hasn't previously been opened, open by path without checking GUIDs. - Otherwise, open by path and verify GUIDs. - If that fails, search all geom providers for a device with matching GUIDs. - If that fails, return ENOENT. r292069 | asomers | 2015-12-10 17:04:13 -0700 (Thu, 10 Dec 2015) | 6 lines Change an important error message from ZFS_LOG to printf r293708 | asomers | 2016-01-11 15:15:46 -0700 (Mon, 11 Jan 2016) | 16 lines Fix importing l2arc device by guid After r292066, vdev_geom verifies both the vdev and pool guids of device labels during open. However, spare and l2arc devices don't have pool guids, so opening them by guid will fail (opening by path, when the pathname is known, still succeeds). This change allows a vdev to be opened by guid if the label contains no pool_guid, which is the case for inactive spares and l2arc devices. r294027 | asomers | 2016-01-14 11:19:05 -0700 (Thu, 14 Jan 2016) | 14 lines Fix race condition involving ZFS remove events When a ZFS drive disappears, ZFS sends a resource.fs.zfs.removed event to userland. A userland program like zfsd(8) can use that event, for example to activate a hotspare. The current code contains a race condition: vdev_geom will sent the sysevent _before_ spa.c would update the vdev's status, causing userland processes to see pool state that does not reflect the device removal. This change moves the sysevent to spa.c, closing the race. r294358 | asomers | 2016-01-19 16:16:24 -0700 (Tue, 19 Jan 2016) | 10 lines Quell harmless CID about unchecked return value in nvlist_get_guids. The return value doesn't need to be checked, because nvlist_get_guid's callers check the returned values of the guids. Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c ============================================================================== --- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Tue Jan 26 16:50:59 2016 (r294842) +++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Tue Jan 26 17:00:31 2016 (r294843) @@ -5951,6 +5951,8 @@ spa_async_remove(spa_t *spa, vdev_t *vd) vd->vdev_stat.vs_checksum_errors = 0; vdev_state_dirty(vd->vdev_top); + /* Tell userspace that the vdev is gone. */ + zfs_post_remove(spa, vd); } for (int c = 0; c < vd->vdev_children; c++) Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c ============================================================================== --- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Tue Jan 26 16:50:59 2016 (r294842) +++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Tue Jan 26 17:00:31 2016 (r294843) @@ -116,7 +116,6 @@ vdev_geom_orphan(struct g_consumer *cp) * async removal support to invoke a close on this * vdev once it is safe to do so. */ - zfs_post_remove(vd->vdev_spa, vd); vd->vdev_remove_wanted = B_TRUE; spa_async_request(vd->vdev_spa, SPA_ASYNC_REMOVE); } @@ -208,14 +207,12 @@ vdev_geom_detach(void *arg, int flag __u } } -static uint64_t -nvlist_get_guid(nvlist_t *list) +static void +nvlist_get_guids(nvlist_t *list, uint64_t *pguid, uint64_t *vguid) { - uint64_t value; - value = 0; - nvlist_lookup_uint64(list, ZPOOL_CONFIG_GUID, &value); - return (value); + (void) nvlist_lookup_uint64(list, ZPOOL_CONFIG_GUID, vguid); + (void) nvlist_lookup_uint64(list, ZPOOL_CONFIG_POOL_GUID, pguid); } static int @@ -270,7 +267,7 @@ vdev_geom_read_config(struct g_consumer size_t buflen; uint64_t psize; off_t offset, size; - uint64_t guid, state, txg; + uint64_t state, txg; int error, l, len; g_topology_assert_not(); @@ -284,7 +281,6 @@ vdev_geom_read_config(struct g_consumer size = sizeof(*label) + pp->sectorsize - ((sizeof(*label) - 1) % pp->sectorsize) - 1; - guid = 0; label = kmem_alloc(size, KM_SLEEP); buflen = sizeof(label->vl_vdev_phys.vp_nvlist); @@ -479,30 +475,29 @@ vdev_geom_read_pool_label(const char *na return (*count > 0 ? 0 : ENOENT); } -static uint64_t -vdev_geom_read_guid(struct g_consumer *cp) +static void +vdev_geom_read_guids(struct g_consumer *cp, uint64_t *pguid, uint64_t *vguid) { nvlist_t *config; - uint64_t guid; g_topology_assert_not(); - guid = 0; + *pguid = 0; + *vguid = 0; if (vdev_geom_read_config(cp, &config) == 0) { - guid = nvlist_get_guid(config); + nvlist_get_guids(config, pguid, vguid); nvlist_free(config); } - return (guid); } static struct g_consumer * -vdev_geom_attach_by_guid(uint64_t guid) +vdev_geom_attach_by_guids(uint64_t pool_guid, uint64_t vdev_guid) { struct g_class *mp; struct g_geom *gp, *zgp; struct g_provider *pp; struct g_consumer *cp, *zcp; - uint64_t pguid; + uint64_t pguid, vguid; g_topology_assert(); @@ -522,15 +517,24 @@ vdev_geom_attach_by_guid(uint64_t guid) if (vdev_geom_attach_taster(zcp, pp) != 0) continue; g_topology_unlock(); - pguid = vdev_geom_read_guid(zcp); + vdev_geom_read_guids(zcp, &pguid, &vguid); g_topology_lock(); vdev_geom_detach_taster(zcp); - if (pguid != guid) + /* + * Check that the label's vdev guid matches the + * desired guid. If the label has a pool guid, + * check that it matches too. (Inactive spares + * and L2ARCs do not have any pool guid in the + * label.) + */ + if ((pguid != 0 && + pguid != pool_guid) || + vguid != vdev_guid) continue; cp = vdev_geom_attach(pp); if (cp == NULL) { - printf("ZFS WARNING: Unable to attach to %s.\n", - pp->name); + printf("ZFS WARNING: Unable to " + "attach to %s.\n", pp->name); continue; } break; @@ -548,7 +552,7 @@ end: } static struct g_consumer * -vdev_geom_open_by_guid(vdev_t *vd) +vdev_geom_open_by_guids(vdev_t *vd) { struct g_consumer *cp; char *buf; @@ -557,7 +561,7 @@ vdev_geom_open_by_guid(vdev_t *vd) g_topology_assert(); ZFS_LOG(1, "Searching by guid [%ju].", (uintmax_t)vd->vdev_guid); - cp = vdev_geom_attach_by_guid(vd->vdev_guid); + cp = vdev_geom_attach_by_guids(spa_guid(vd->vdev_spa), vd->vdev_guid); if (cp != NULL) { len = strlen(cp->provider->name) + strlen("/dev/") + 1; buf = kmem_alloc(len, KM_SLEEP); @@ -566,10 +570,12 @@ vdev_geom_open_by_guid(vdev_t *vd) spa_strfree(vd->vdev_path); vd->vdev_path = buf; - ZFS_LOG(1, "Attach by guid [%ju] succeeded, provider %s.", + ZFS_LOG(1, "Attach by guid [%ju:%ju] succeeded, provider %s.", + (uintmax_t)spa_guid(vd->vdev_spa), (uintmax_t)vd->vdev_guid, vd->vdev_path); } else { - ZFS_LOG(1, "Search by guid [%ju] failed.", + ZFS_LOG(1, "Search by guid [%ju:%ju] failed.", + (uintmax_t)spa_guid(vd->vdev_spa), (uintmax_t)vd->vdev_guid); } @@ -581,7 +587,7 @@ vdev_geom_open_by_path(vdev_t *vd, int c { struct g_provider *pp; struct g_consumer *cp; - uint64_t guid; + uint64_t pguid, vguid; g_topology_assert(); @@ -593,14 +599,17 @@ vdev_geom_open_by_path(vdev_t *vd, int c if (cp != NULL && check_guid && ISP2(pp->sectorsize) && pp->sectorsize <= VDEV_PAD_SIZE) { g_topology_unlock(); - guid = vdev_geom_read_guid(cp); + vdev_geom_read_guids(cp, &pguid, &vguid); g_topology_lock(); - if (guid != vd->vdev_guid) { + if (pguid != spa_guid(vd->vdev_spa) || + vguid != vd->vdev_guid) { vdev_geom_detach(cp, 0); cp = NULL; ZFS_LOG(1, "guid mismatch for provider %s: " - "%ju != %ju.", vd->vdev_path, - (uintmax_t)vd->vdev_guid, (uintmax_t)guid); + "%ju:%ju != %ju:%ju.", vd->vdev_path, + (uintmax_t)spa_guid(vd->vdev_spa), + (uintmax_t)vd->vdev_guid, + (uintmax_t)pguid, (uintmax_t)vguid); } else { ZFS_LOG(1, "guid match for provider %s.", vd->vdev_path); @@ -634,23 +643,38 @@ vdev_geom_open(vdev_t *vd, uint64_t *psi g_topology_lock(); error = 0; - /* - * If we're creating or splitting a pool, just find the GEOM provider - * by its name and ignore GUID mismatches. - */ - if (vd->vdev_spa->spa_load_state == SPA_LOAD_NONE || - vd->vdev_spa->spa_splitting_newspa == B_TRUE) + if (vd->vdev_spa->spa_splitting_newspa || + (vd->vdev_prevstate == VDEV_STATE_UNKNOWN && + vd->vdev_spa->spa_load_state == SPA_LOAD_NONE)) { + /* + * We are dealing with a vdev that hasn't been previously + * opened (since boot), and we are not loading an + * existing pool configuration. This looks like a + * vdev add operation to a new or existing pool. + * Assume the user knows what he/she is doing and find + * GEOM provider by its name, ignoring GUID mismatches. + * + * XXPOLICY: It would be safer to only allow a device + * that is unlabeled or labeled but missing + * GUID information to be opened in this fashion, + * unless we are doing a split, in which case we + * should allow any guid. + */ cp = vdev_geom_open_by_path(vd, 0); - else { + } else { + /* + * Try using the recorded path for this device, but only + * accept it if its label data contains the expected GUIDs. + */ cp = vdev_geom_open_by_path(vd, 1); if (cp == NULL) { /* * The device at vd->vdev_path doesn't have the - * expected guid. The disks might have merely + * expected GUIDs. The disks might have merely * moved around so try all other GEOM providers - * to find one with the right guid. + * to find one with the right GUIDs. */ - cp = vdev_geom_open_by_guid(vd); + cp = vdev_geom_open_by_guids(vd); } } From owner-svn-src-all@freebsd.org Tue Jan 26 18:20:26 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82EC3A462EE; Tue, 26 Jan 2016 18:20:26 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4EA24199D; Tue, 26 Jan 2016 18:20:26 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QIKPYg013132; Tue, 26 Jan 2016 18:20:25 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QIKPaB013131; Tue, 26 Jan 2016 18:20:25 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201601261820.u0QIKPaB013131@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 26 Jan 2016 18:20:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294844 - head/sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 18:20:26 -0000 Author: emaste Date: Tue Jan 26 18:20:25 2016 New Revision: 294844 URL: https://svnweb.freebsd.org/changeset/base/294844 Log: Add STT_SPARC_REGISTER ELF definition MFC after: 1 week Modified: head/sys/sys/elf_common.h Modified: head/sys/sys/elf_common.h ============================================================================== --- head/sys/sys/elf_common.h Tue Jan 26 17:00:31 2016 (r294843) +++ head/sys/sys/elf_common.h Tue Jan 26 18:20:25 2016 (r294844) @@ -771,8 +771,9 @@ typedef struct { #define STT_LOOS 10 /* Reserved range for operating system */ #define STT_GNU_IFUNC 10 #define STT_HIOS 12 /* specific semantics. */ -#define STT_LOPROC 13 /* reserved range for processor */ -#define STT_HIPROC 15 /* specific semantics. */ +#define STT_LOPROC 13 /* Start of processor reserved range. */ +#define STT_SPARC_REGISTER 13 /* SPARC register information. */ +#define STT_HIPROC 15 /* End of processor reserved range. */ /* Symbol visibility - ELFNN_ST_VISIBILITY - st_other */ #define STV_DEFAULT 0x0 /* Default visibility (see binding). */ From owner-svn-src-all@freebsd.org Tue Jan 26 18:32:49 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C31B7A4689C; Tue, 26 Jan 2016 18:32:49 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 91C008D9; Tue, 26 Jan 2016 18:32:49 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QIWmwl019129; Tue, 26 Jan 2016 18:32:48 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QIWmgA019128; Tue, 26 Jan 2016 18:32:48 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201601261832.u0QIWmgA019128@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 26 Jan 2016 18:32:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r294845 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 18:32:49 -0000 Author: jhb Date: Tue Jan 26 18:32:48 2016 New Revision: 294845 URL: https://svnweb.freebsd.org/changeset/base/294845 Log: Release Ravi from mentorship. Modified: svnadmin/conf/mentors Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Tue Jan 26 18:20:25 2016 (r294844) +++ svnadmin/conf/mentors Tue Jan 26 18:32:48 2016 (r294845) @@ -28,7 +28,6 @@ mahrens mckusick miwi rwatson monthadar adrian peterj jhb Co-mentor: grog -rpokala jhb sephe adrian Co-mentor: delphij slm ken Co-mentor: scottl, ambrisko snb dwmalone From owner-svn-src-all@freebsd.org Tue Jan 26 18:39:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7B124A46A3E; Tue, 26 Jan 2016 18:39:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 487BDB5C; Tue, 26 Jan 2016 18:39:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QIdNuj019392; Tue, 26 Jan 2016 18:39:23 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QIdNKO019391; Tue, 26 Jan 2016 18:39:23 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601261839.u0QIdNKO019391@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 26 Jan 2016 18:39:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294846 - head/sys/mips/mips X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 18:39:24 -0000 Author: imp Date: Tue Jan 26 18:39:23 2016 New Revision: 294846 URL: https://svnweb.freebsd.org/changeset/base/294846 Log: Add a comment about why at is turned off in the exception handler. Only k0 and k1 may be touched until we save registers somewhere. MFC After: 2 days Modified: head/sys/mips/mips/exception.S Modified: head/sys/mips/mips/exception.S ============================================================================== --- head/sys/mips/mips/exception.S Tue Jan 26 18:32:48 2016 (r294845) +++ head/sys/mips/mips/exception.S Tue Jan 26 18:39:23 2016 (r294846) @@ -177,6 +177,12 @@ MipsDoTLBMiss: VECTOR(MipsException, unknown) /* * Find out what mode we came from and jump to the proper handler. + * + * Note: at turned off here because we cannot trash the at register + * in this exception code. Only k0 and k1 may be modified before + * we save registers. This is true of all functions called through + * the pointer magic: Mips{User,Kern}Intr, Mips{User,Kern}GenException + * and MipsTLBInvalidException */ .set noat mfc0 k0, MIPS_COP_0_STATUS # Get the status register From owner-svn-src-all@freebsd.org Tue Jan 26 18:39:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E365A46A8E; Tue, 26 Jan 2016 18:39:32 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 11CF9C93; Tue, 26 Jan 2016 18:39:32 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QIdVuI019439; Tue, 26 Jan 2016 18:39:31 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QIdUZ1019437; Tue, 26 Jan 2016 18:39:30 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601261839.u0QIdUZ1019437@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 26 Jan 2016 18:39:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294847 - in head/sys/boot: mips/beri/boot2 pc98/boot2 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 18:39:32 -0000 Author: imp Date: Tue Jan 26 18:39:30 2016 New Revision: 294847 URL: https://svnweb.freebsd.org/changeset/base/294847 Log: Remove static from these two. They slipped through the cracks. MFC After: 1 week Modified: head/sys/boot/mips/beri/boot2/boot2.c head/sys/boot/pc98/boot2/boot2.c Modified: head/sys/boot/mips/beri/boot2/boot2.c ============================================================================== --- head/sys/boot/mips/beri/boot2/boot2.c Tue Jan 26 18:39:23 2016 (r294846) +++ head/sys/boot/mips/beri/boot2/boot2.c Tue Jan 26 18:39:30 2016 (r294847) @@ -132,7 +132,7 @@ static struct dsk { } dsk; static char cmd[512], cmddup[512], knamebuf[1024]; static const char *kname; -static uint32_t opts; +uint32_t opts; #if 0 static int comspeed = SIOSPD; #endif Modified: head/sys/boot/pc98/boot2/boot2.c ============================================================================== --- head/sys/boot/pc98/boot2/boot2.c Tue Jan 26 18:39:23 2016 (r294846) +++ head/sys/boot/pc98/boot2/boot2.c Tue Jan 26 18:39:30 2016 (r294847) @@ -104,7 +104,7 @@ static struct dsk { } dsk; static char cmd[512], cmddup[512], knamebuf[1024]; static const char *kname; -static uint32_t opts; +uint32_t opts; static struct bootinfo bootinfo; #if SERIAL static int comspeed = SIOSPD; From owner-svn-src-all@freebsd.org Tue Jan 26 18:39:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 34CC5A46A98; Tue, 26 Jan 2016 18:39:33 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 07200CA1; Tue, 26 Jan 2016 18:39:32 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QIdWXQ019482; Tue, 26 Jan 2016 18:39:32 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QIdW1U019481; Tue, 26 Jan 2016 18:39:32 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601261839.u0QIdW1U019481@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 26 Jan 2016 18:39:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294848 - head/tools/tools/nanobsd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 18:39:33 -0000 Author: imp Date: Tue Jan 26 18:39:31 2016 New Revision: 294848 URL: https://svnweb.freebsd.org/changeset/base/294848 Log: Default NANO_DRIVE to ada0 not ad0. This shouldn't affect working configs (since they'd have to change NANO_DRIVE to be ada0 to work), but will fix old ones that used to work. MFC After: 1 week Modified: head/tools/tools/nanobsd/defaults.sh (contents, props changed) Modified: head/tools/tools/nanobsd/defaults.sh ============================================================================== --- head/tools/tools/nanobsd/defaults.sh Tue Jan 26 18:39:30 2016 (r294847) +++ head/tools/tools/nanobsd/defaults.sh Tue Jan 26 18:39:31 2016 (r294848) @@ -93,7 +93,7 @@ NANO_LATE_CUSTOMIZE="" NANO_NEWFS="-b 4096 -f 512 -i 8192 -U" # The drive name of the media at runtime -NANO_DRIVE=ad0 +NANO_DRIVE=ada0 # Target media size in 512 bytes sectors NANO_MEDIASIZE=2000000 From owner-svn-src-all@freebsd.org Tue Jan 26 19:07:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA8F6A6E729; Tue, 26 Jan 2016 19:07:13 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7115E277; Tue, 26 Jan 2016 19:07:13 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QJ7CRa028514; Tue, 26 Jan 2016 19:07:12 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QJ7A4r028489; Tue, 26 Jan 2016 19:07:10 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201601261907.u0QJ7A4r028489@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 26 Jan 2016 19:07:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294849 - in head: lib/libsysdecode usr.bin/kdump usr.bin/truss X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 19:07:14 -0000 Author: jhb Date: Tue Jan 26 19:07:09 2016 New Revision: 294849 URL: https://svnweb.freebsd.org/changeset/base/294849 Log: Add support to libsysdecode for decoding system call names. A new sysdecode_syscallname() function accepts a system call code and returns a string of the corresponding name (or NULL if the code is unknown). To support different process ABIs, the new function accepts a value from a new sysdecode_abi enum as its first argument to select the ABI in use. Current ABIs supported include FREEBSD (native binaries), FREEBSD32, LINUX, LINUX32, and CLOUDABI64. Note that not all ABIs are supported by all platforms. In general, a given ABI is only supported if a platform can execute binaries for that ABI. To simplify the implementation, libsysdecode's build reuses the existing pre-generated files from the kernel source tree rather than duplicating new copies of said files during the build. kdump(1) and truss(1) now use these functions to map system call identifiers to names. For kdump(1), a new 'syscallname()' function consolidates duplicated code from ktrsyscall() and ktrsyscallret(). The Linux ABI no longer requires custom handling for ktrsyscall() and linux_ktrsyscall() has been removed as a result. Reviewed by: bdrewery Differential Revision: https://reviews.freebsd.org/D4823 Added: head/lib/libsysdecode/syscallnames.c (contents, props changed) head/lib/libsysdecode/sysdecode_syscallnames.3 (contents, props changed) Modified: head/lib/libsysdecode/Makefile head/lib/libsysdecode/sysdecode.3 head/lib/libsysdecode/sysdecode.h head/usr.bin/kdump/Makefile head/usr.bin/kdump/kdump.c head/usr.bin/truss/Makefile head/usr.bin/truss/aarch64-cloudabi64.c head/usr.bin/truss/aarch64-freebsd.c head/usr.bin/truss/amd64-cloudabi64.c head/usr.bin/truss/amd64-freebsd.c head/usr.bin/truss/amd64-freebsd32.c head/usr.bin/truss/amd64-linux32.c head/usr.bin/truss/arm-freebsd.c head/usr.bin/truss/i386-freebsd.c head/usr.bin/truss/i386-linux.c head/usr.bin/truss/main.c head/usr.bin/truss/mips-freebsd.c head/usr.bin/truss/powerpc-freebsd.c head/usr.bin/truss/powerpc64-freebsd.c head/usr.bin/truss/powerpc64-freebsd32.c head/usr.bin/truss/setup.c head/usr.bin/truss/sparc64-freebsd.c head/usr.bin/truss/truss.h Modified: head/lib/libsysdecode/Makefile ============================================================================== --- head/lib/libsysdecode/Makefile Tue Jan 26 18:39:31 2016 (r294848) +++ head/lib/libsysdecode/Makefile Tue Jan 26 19:07:09 2016 (r294849) @@ -4,11 +4,14 @@ LIB= sysdecode -SRCS= ioctl.c utrace.c +SRCS= ioctl.c syscallnames.c utrace.c INCS= sysdecode.h +CFLAGS+= -I${.CURDIR}/../../sys + MAN+= sysdecode.3 \ sysdecode_ioctlname.3 \ + sysdecode_syscallnames.3 \ sysdecode_utrace.3 CLEANFILES= ioctl.c @@ -23,6 +26,10 @@ CFLAGS+=-DPF # Workaround duplicate declarations in CFLAGS.gcc.ioctl.c+= -Wno-redundant-decls + +# Workaround warning for unused ssi_cables[] in +CFLAGS.gcc.ioctl.c+= -Wno-unused + CFLAGS.gcc+= ${CFLAGS.gcc.${.IMPSRC}} ioctl.c: mkioctls Added: head/lib/libsysdecode/syscallnames.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libsysdecode/syscallnames.c Tue Jan 26 19:07:09 2016 (r294849) @@ -0,0 +1,105 @@ +/*- + * Copyright (c) 2015 John H. Baldwin + * 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$"); + +/* + * Map system call codes to names for the supported ABIs on each + * platform. Rather than regnerating system call name tables locally + * during the build, use the generated tables in the kernel source + * tree. + */ + +#include +#include +#include + +static +#include + +#if defined(__amd64__) || defined(__powerpc64__) +static +#include +#endif + +#if defined(__amd64__) || defined(__i386__) +static +#ifdef __amd64__ +#include +#else +#include +#endif +#endif + +#ifdef __amd64__ +static +#include +#endif + +#if defined(__amd64__) || defined(__aarch64__) +static +#include +#endif + +const char * +sysdecode_syscallname(enum sysdecode_abi abi, unsigned int code) +{ + + switch (abi) { + case FREEBSD: + if (code < nitems(syscallnames)) + return (syscallnames[code]); + break; +#if defined(__amd64__) || defined(__powerpc64__) + case FREEBSD32: + if (code < nitems(freebsd32_syscallnames)) + return (freebsd32_syscallnames[code]); + break; +#endif +#if defined(__amd64__) || defined(__i386__) + case LINUX: + if (code < nitems(linux_syscallnames)) + return (linux_syscallnames[code]); + break; +#endif +#ifdef __amd64__ + case LINUX32: + if (code < nitems(linux32_syscallnames)) + return (linux32_syscallnames[code]); + break; +#endif +#if defined(__amd64__) || defined(__aarch64__) + case CLOUDABI64: + if (code < nitems(cloudabi64_syscallnames)) + return (cloudabi64_syscallnames[code]); + break; +#endif + default: + break; + } + return (NULL); +} Modified: head/lib/libsysdecode/sysdecode.3 ============================================================================== --- head/lib/libsysdecode/sysdecode.3 Tue Jan 26 18:39:31 2016 (r294848) +++ head/lib/libsysdecode/sysdecode.3 Tue Jan 26 19:07:09 2016 (r294849) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 10, 2015 +.Dd January 24, 2016 .Dt SYSDECODE 3 .Os .Sh NAME @@ -38,8 +38,34 @@ The .Nm library includes several functions that provide descriptive names of values associated with system calls. +.Ss Supported ABIs +Some functions in this library provide ABI-specific descriptions. +The supported ABIs are named by the +.Vt enum sysdecode_abi +enumeration. +.Pp +.Bl -tag -width "Li UNKNOWN_ABI" -compact +.It Li FREEBSD +Native FreeBSD binaries. +Supported on all platforms. +.It Li FREEBSD32 +32-bit FreeBSD binaries. +Supported on amd64 and powerpc64. +.It Li LINUX +Linux binaries of the same platform. +Supported on amd64 and i386. +.It Li LINUX32 +32-bit Linux binaries. +Supported on amd64. +.It Li CLOUDABI64 +64-bit CloudABI binaries. +Supported on aarch64 and amd64. +.It Li UNKNOWN_ABI +A placeholder for use when the ABI is not known. +.El .Sh SEE ALSO .Xr sysdecode_ioctlname 3 , +.Xr sysdecode_syscallnames 3 , .Xr sysdecode_utrace 3 .Sh HISTORY The Modified: head/lib/libsysdecode/sysdecode.h ============================================================================== --- head/lib/libsysdecode/sysdecode.h Tue Jan 26 18:39:31 2016 (r294848) +++ head/lib/libsysdecode/sysdecode.h Tue Jan 26 19:07:09 2016 (r294849) @@ -29,7 +29,17 @@ #ifndef __SYSDECODE_H__ #define __SYSDECODE_H__ +enum sysdecode_abi { + UNKNOWN_ABI = 0, + FREEBSD, + FREEBSD32, + LINUX, + LINUX32, + CLOUDABI64 +}; + const char *sysdecode_ioctlname(unsigned long _val); +const char *sysdecode_syscallname(enum sysdecode_abi _abi, unsigned int _code); int sysdecode_utrace(FILE *_fp, void *_buf, size_t _len); #endif /* !__SYSDECODE_H__ */ Added: head/lib/libsysdecode/sysdecode_syscallnames.3 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libsysdecode/sysdecode_syscallnames.3 Tue Jan 26 19:07:09 2016 (r294849) @@ -0,0 +1,67 @@ +.\" +.\" Copyright (c) 2016 John Baldwin +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd January 24, 2016 +.Dt sysdecode_syscallnames 3 +.Os +.Sh NAME +.Nm sysdecode_syscallnames +.Nd lookup name of system calls +.Sh LIBRARY +.Lb libsysdecode +.Sh SYNOPSIS +.Ft const char * +.Fn sysdecode_syscallnames "enum sysdecode_abi abi" "unsigned int code" +.Sh DESCRIPTION +This function returns a pointer to the name of a system call identified by +.Fa code +for the process ABI +.Fa abi . +If +.Fa code +specifies an unknown system call or +.Fa abi +is an unsupported ABI, +.Nm +returns +.Dv NULL . +.Pp +For the list of supported ABIs, +see +.Xr sysdecode 3 . +.Sh RETURN VALUES +The +.Nm +function returns a pointer to a string on success or +.Dv NULL +if either +.Fa code +or +.Fa ABI +is invalid . +.Sh SEE ALSO +.Xr sysdecode 3 Modified: head/usr.bin/kdump/Makefile ============================================================================== --- head/usr.bin/kdump/Makefile Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/kdump/Makefile Tue Jan 26 19:07:09 2016 (r294849) @@ -19,25 +19,6 @@ NO_WERROR?= YES CLEANFILES= kdump_subr.c kdump_subr.h -.if (${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386") -beforedepend: linux_syscalls.c - -CLEANFILES+= linux_syscalls.c -kdump.o: linux_syscalls.c -linux_syscalls.c: linux_syscalls.conf - sh ${.CURDIR}/../../sys/kern/makesyscalls.sh \ - ${.CURDIR}/../../sys/${MACHINE_ARCH}/linux/syscalls.master ${.CURDIR}/linux_syscalls.conf -.endif -.if (${MACHINE_ARCH} == "amd64") -beforedepend: linux32_syscalls.c - -CLEANFILES+= linux32_syscalls.c -kdump.o: linux32_syscalls.c -linux32_syscalls.c: linux32_syscalls.conf - sh ${.CURDIR}/../../sys/kern/makesyscalls.sh \ - ${.CURDIR}/../../sys/${MACHINE_ARCH}/linux32/syscalls.master ${.CURDIR}/linux32_syscalls.conf -.endif - kdump_subr.h: mksubr sh ${.CURDIR}/mksubr ${DESTDIR}${INCLUDEDIR} | \ sed -n 's/^\([a-z].*)\)$$/void \1;/p' >${.TARGET} Modified: head/usr.bin/kdump/kdump.c ============================================================================== --- head/usr.bin/kdump/kdump.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/kdump/kdump.c Tue Jan 26 19:07:09 2016 (r294849) @@ -122,8 +122,7 @@ void usage(void); #define TIMESTAMP_ELAPSED 0x2 #define TIMESTAMP_RELATIVE 0x4 -extern const char *signames[], *syscallnames[]; -extern int nsyscalls; +extern const char *signames[]; static int timestamp, decimal, fancy = 1, suppressdata, tail, threads, maxdata, resolv = 0, abiflag = 0, syscallno = 0; @@ -145,11 +144,7 @@ static struct ktr_header ktr_header; #if defined(__amd64__) || defined(__i386__) -void linux_ktrsyscall(struct ktr_syscall *, u_int); void linux_ktrsysret(struct ktr_sysret *, u_int); -extern const char *linux_syscallnames[]; - -#include /* * from linux.h @@ -169,12 +164,6 @@ static int bsd_to_linux_errno[ELAST + 1] }; #endif -#if defined(__amd64__) -extern const char *linux32_syscallnames[]; - -#include -#endif - struct proc_info { TAILQ_ENTRY(proc_info) info; @@ -401,13 +390,7 @@ main(int argc, char *argv[]) drop_logged = 0; switch (ktr_header.ktr_type) { case KTR_SYSCALL: -#if defined(__amd64__) || defined(__i386__) - if ((sv_flags & SV_ABI_MASK) == SV_ABI_LINUX) - linux_ktrsyscall((struct ktr_syscall *)m, - sv_flags); - else -#endif - ktrsyscall((struct ktr_syscall *)m, sv_flags); + ktrsyscall((struct ktr_syscall *)m, sv_flags); break; case KTR_SYSRET: #if defined(__amd64__) || defined(__i386__) @@ -687,10 +670,6 @@ dumpheader(struct ktr_header *kth) } #include -#define KTRACE -#include -#undef KTRACE -int nsyscalls = sizeof (syscallnames) / sizeof (syscallnames[0]); static void ioctlname(unsigned long val) @@ -706,26 +685,57 @@ ioctlname(unsigned long val) printf("%#lx", val); } +static enum sysdecode_abi +syscallabi(u_int sv_flags) +{ + + if (sv_flags == 0) + return (FREEBSD); + switch (sv_flags & SV_ABI_MASK) { + case SV_ABI_FREEBSD: + return (FREEBSD); +#if defined(__amd64__) || defined(__i386__) + case SV_ABI_LINUX: +#ifdef __amd64__ + if (sv_flags & SV_ILP32) + return (LINUX32); +#endif + return (LINUX); +#endif + default: + return (UNKNOWN_ABI); + } +} + +static void +syscallname(u_int code, u_int sv_flags) +{ + const char *name; + + name = sysdecode_syscallname(syscallabi(sv_flags), code); + if (name == NULL) + printf("[%d]", code); + else { + printf("%s", name); + if (syscallno) + printf("[%d]", code); + } +} + void -ktrsyscall(struct ktr_syscall *ktr, u_int flags) +ktrsyscall(struct ktr_syscall *ktr, u_int sv_flags) { int narg = ktr->ktr_narg; register_t *ip; intmax_t arg; - if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) || - (ktr->ktr_code >= nsyscalls || ktr->ktr_code < 0)) - printf("[%d]", ktr->ktr_code); - else { - printf("%s", syscallnames[ktr->ktr_code]); - if (syscallno) - printf("[%d]", ktr->ktr_code); - } + syscallname(ktr->ktr_code, sv_flags); ip = &ktr->ktr_args[0]; if (narg) { char c = '('; if (fancy && - (flags == 0 || (flags & SV_ABI_MASK) == SV_ABI_FREEBSD)) { + (sv_flags == 0 || + (sv_flags & SV_ABI_MASK) == SV_ABI_FREEBSD)) { switch (ktr->ktr_code) { case SYS_bindat: case SYS_connectat: @@ -1332,21 +1342,13 @@ ktrsyscall(struct ktr_syscall *ktr, u_in } void -ktrsysret(struct ktr_sysret *ktr, u_int flags) +ktrsysret(struct ktr_sysret *ktr, u_int sv_flags) { register_t ret = ktr->ktr_retval; int error = ktr->ktr_error; - int code = ktr->ktr_code; - if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) || - (code >= nsyscalls || code < 0)) - printf("[%d] ", code); - else { - printf("%s", syscallnames[code]); - if (syscallno) - printf("[%d]", code); - printf(" "); - } + syscallname(ktr->ktr_code, sv_flags); + printf(" "); if (error == 0) { if (fancy) { @@ -1851,56 +1853,14 @@ ktrfaultend(struct ktr_faultend *ktr) } #if defined(__amd64__) || defined(__i386__) - -#if defined(__amd64__) -#define NLINUX_SYSCALLS(v) ((v) & SV_ILP32 ? \ - nitems(linux32_syscallnames) : nitems(linux_syscallnames)) -#define LINUX_SYSCALLNAMES(v, i) ((v) & SV_ILP32 ? \ - linux32_syscallnames[i] : linux_syscallnames[i]) -#else -#define NLINUX_SYSCALLS(v) (nitems(linux_syscallnames)) -#define LINUX_SYSCALLNAMES(v, i) (linux_syscallnames[i]) -#endif - -void -linux_ktrsyscall(struct ktr_syscall *ktr, u_int sv_flags) -{ - int narg = ktr->ktr_narg; - unsigned code = ktr->ktr_code; - register_t *ip; - - if (ktr->ktr_code < 0 || code >= NLINUX_SYSCALLS(sv_flags)) - printf("[%d]", ktr->ktr_code); - else { - printf("%s", LINUX_SYSCALLNAMES(sv_flags, ktr->ktr_code)); - if (syscallno) - printf("[%d]", ktr->ktr_code); - } - ip = &ktr->ktr_args[0]; - if (narg) { - char c = '('; - while (narg > 0) - print_number(ip, narg, c); - putchar(')'); - } - putchar('\n'); -} - void linux_ktrsysret(struct ktr_sysret *ktr, u_int sv_flags) { register_t ret = ktr->ktr_retval; - unsigned code = ktr->ktr_code; int error = ktr->ktr_error; - if (ktr->ktr_code < 0 || code >= NLINUX_SYSCALLS(sv_flags)) - printf("[%d] ", ktr->ktr_code); - else { - printf("%s ", LINUX_SYSCALLNAMES(sv_flags, code)); - if (syscallno) - printf("[%d]", code); - printf(" "); - } + syscallname(ktr->ktr_code, sv_flags); + printf(" "); if (error == 0) { if (fancy) { Modified: head/usr.bin/truss/Makefile ============================================================================== --- head/usr.bin/truss/Makefile Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/Makefile Tue Jan 26 19:07:09 2016 (r294849) @@ -8,13 +8,6 @@ LIBADD= sysdecode CFLAGS+= -I${.CURDIR} -I. -I${.CURDIR}/../../sys -# Define where to generate syscalls for each ABI. -ABI_SYSPATH.freebsd= sys/kern -ABI_SYSPATH.freebsd32= sys/compat/freebsd32 -ABI_SYSPATH.cloudabi64= sys/compat/cloudabi64 -ABI_SYSPATH.i386-linux= sys/i386/linux -ABI_SYSPATH.amd64-linux32= sys/amd64/linux32 - ABIS+= freebsd # Each ABI is expected to have an ABI.c, MACHINE_ARCH-ABI.c or # MACHINE_CPUARCH-ABI.c file that will be used to map the syscall arguments. @@ -42,21 +35,7 @@ ABI_SRCS= ${abi}.c ${MACHINE_ARCH}-${abi abi_src= ${f} .endif .endfor -SRCS:= ${SRCS} ${abi_src} ${abi}_syscalls.h -CLEANFILES+= ${abi}_syscalls.conf ${abi}_syscalls.master ${abi}_syscalls.h -${abi}_syscalls.conf: ${.CURDIR}/makesyscallsconf.sh - /bin/sh ${.CURDIR}/makesyscallsconf.sh ${abi} ${.TARGET} - -${abi}_syscalls.master: ${.CURDIR:H:H}/${ABI_SYSPATH.${abi}}/syscalls.master - cp -f ${.ALLSRC} ${.TARGET} - -${abi}_syscalls.h: ${abi}_syscalls.master ${abi}_syscalls.conf \ - ${.CURDIR:H:H}/sys/kern/makesyscalls.sh - /bin/sh ${.CURDIR:H:H}/sys/kern/makesyscalls.sh \ - ${abi}_syscalls.master ${abi}_syscalls.conf -# Eliminate compiler warning about non-static global. - sed -i '' '/^const char \*/s/^/static /' ${.TARGET}.tmp - mv ${.TARGET}.tmp ${.TARGET} +SRCS:= ${SRCS} ${abi_src} .endfor .include Modified: head/usr.bin/truss/aarch64-cloudabi64.c ============================================================================== --- head/usr.bin/truss/aarch64-cloudabi64.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/aarch64-cloudabi64.c Tue Jan 26 19:07:09 2016 (r294849) @@ -33,9 +33,9 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "cloudabi.h" -#include "cloudabi64_syscalls.h" #include "truss.h" static int @@ -81,8 +81,7 @@ aarch64_cloudabi64_fetch_retval(struct t static struct procabi aarch64_cloudabi64 = { "CloudABI ELF64", - syscallnames, - nitems(syscallnames), + CLOUDABI64, aarch64_cloudabi64_fetch_args, aarch64_cloudabi64_fetch_retval }; Modified: head/usr.bin/truss/aarch64-freebsd.c ============================================================================== --- head/usr.bin/truss/aarch64-freebsd.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/aarch64-freebsd.c Tue Jan 26 19:07:09 2016 (r294849) @@ -39,11 +39,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd_syscalls.h" - static int aarch64_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -100,8 +99,7 @@ aarch64_fetch_retval(struct trussinfo *t static struct procabi aarch64_freebsd = { "FreeBSD ELF64", - syscallnames, - nitems(syscallnames), + FREEBSD, aarch64_fetch_args, aarch64_fetch_retval }; Modified: head/usr.bin/truss/amd64-cloudabi64.c ============================================================================== --- head/usr.bin/truss/amd64-cloudabi64.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/amd64-cloudabi64.c Tue Jan 26 19:07:09 2016 (r294849) @@ -33,9 +33,9 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "cloudabi.h" -#include "cloudabi64_syscalls.h" #include "truss.h" static int @@ -90,8 +90,7 @@ amd64_cloudabi64_fetch_retval(struct tru static struct procabi amd64_cloudabi64 = { "CloudABI ELF64", - syscallnames, - nitems(syscallnames), + CLOUDABI64, amd64_cloudabi64_fetch_args, amd64_cloudabi64_fetch_retval }; Modified: head/usr.bin/truss/amd64-freebsd.c ============================================================================== --- head/usr.bin/truss/amd64-freebsd.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/amd64-freebsd.c Tue Jan 26 19:07:09 2016 (r294849) @@ -41,11 +41,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd_syscalls.h" - static int amd64_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -122,8 +121,7 @@ amd64_fetch_retval(struct trussinfo *tru static struct procabi amd64_freebsd = { "FreeBSD ELF64", - syscallnames, - nitems(syscallnames), + FREEBSD, amd64_fetch_args, amd64_fetch_retval }; Modified: head/usr.bin/truss/amd64-freebsd32.c ============================================================================== --- head/usr.bin/truss/amd64-freebsd32.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/amd64-freebsd32.c Tue Jan 26 19:07:09 2016 (r294849) @@ -42,11 +42,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd32_syscalls.h" - static int amd64_freebsd32_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -118,8 +117,7 @@ amd64_freebsd32_fetch_retval(struct trus static struct procabi amd64_freebsd32 = { "FreeBSD ELF32", - syscallnames, - nitems(syscallnames), + FREEBSD32, amd64_freebsd32_fetch_args, amd64_freebsd32_fetch_retval }; @@ -128,8 +126,7 @@ PROCABI(amd64_freebsd32); static struct procabi amd64_freebsd32_aout = { "FreeBSD a.out", - syscallnames, - nitems(syscallnames), + FREEBSD32, amd64_freebsd32_fetch_args, amd64_freebsd32_fetch_retval }; Modified: head/usr.bin/truss/amd64-linux32.c ============================================================================== --- head/usr.bin/truss/amd64-linux32.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/amd64-linux32.c Tue Jan 26 19:07:09 2016 (r294849) @@ -40,11 +40,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "amd64-linux32_syscalls.h" - static int amd64_linux32_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -132,8 +131,7 @@ amd64_linux32_fetch_retval(struct trussi static struct procabi amd64_linux32 = { "Linux ELF32", - syscallnames, - nitems(syscallnames), + LINUX32, amd64_linux32_fetch_args, amd64_linux32_fetch_retval }; Modified: head/usr.bin/truss/arm-freebsd.c ============================================================================== --- head/usr.bin/truss/arm-freebsd.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/arm-freebsd.c Tue Jan 26 19:07:09 2016 (r294849) @@ -42,11 +42,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd_syscalls.h" - static int arm_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -129,8 +128,7 @@ arm_fetch_retval(struct trussinfo *truss static struct procabi arm_freebsd = { "FreeBSD ELF32", - syscallnames, - nitems(syscallnames), + FREEBSD, arm_fetch_args, arm_fetch_retval }; Modified: head/usr.bin/truss/i386-freebsd.c ============================================================================== --- head/usr.bin/truss/i386-freebsd.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/i386-freebsd.c Tue Jan 26 19:07:09 2016 (r294849) @@ -41,11 +41,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd_syscalls.h" - static int i386_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -111,8 +110,7 @@ i386_fetch_retval(struct trussinfo *trus static struct procabi i386_freebsd = { "FreeBSD ELF32", - syscallnames, - nitems(syscallnames), + FREEBSD, i386_fetch_args, i386_fetch_retval }; @@ -121,8 +119,7 @@ PROCABI(i386_freebsd); static struct procabi i386_freebsd_aout = { "FreeBSD a.out", - syscallnames, - nitems(syscallnames), + FREEBSD, i386_fetch_args, i386_fetch_retval }; Modified: head/usr.bin/truss/i386-linux.c ============================================================================== --- head/usr.bin/truss/i386-linux.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/i386-linux.c Tue Jan 26 19:07:09 2016 (r294849) @@ -40,11 +40,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "i386-linux_syscalls.h" - static int i386_linux_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -131,8 +130,7 @@ i386_linux_fetch_retval(struct trussinfo static struct procabi i386_linux = { "Linux ELF32", - syscallnames, - nitems(syscallnames), + LINUX, i386_linux_fetch_args, i386_linux_fetch_retval }; Modified: head/usr.bin/truss/main.c ============================================================================== --- head/usr.bin/truss/main.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/main.c Tue Jan 26 19:07:09 2016 (r294849) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/usr.bin/truss/mips-freebsd.c ============================================================================== --- head/usr.bin/truss/mips-freebsd.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/mips-freebsd.c Tue Jan 26 19:07:09 2016 (r294849) @@ -41,11 +41,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd_syscalls.h" - static int mips_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -132,8 +131,7 @@ static struct procabi mips_freebsd = { #else "FreeBSD ELF32", #endif - syscallnames, - nitems(syscallnames), + FREEBSD, mips_fetch_args, mips_fetch_retval }; Modified: head/usr.bin/truss/powerpc-freebsd.c ============================================================================== --- head/usr.bin/truss/powerpc-freebsd.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/powerpc-freebsd.c Tue Jan 26 19:07:09 2016 (r294849) @@ -37,11 +37,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd_syscalls.h" - static int powerpc_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -113,8 +112,7 @@ powerpc_fetch_retval(struct trussinfo *t static struct procabi powerpc_freebsd = { "FreeBSD ELF32", - syscallnames, - nitems(syscallnames), + FREEBSD, powerpc_fetch_args, powerpc_fetch_retval }; Modified: head/usr.bin/truss/powerpc64-freebsd.c ============================================================================== --- head/usr.bin/truss/powerpc64-freebsd.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/powerpc64-freebsd.c Tue Jan 26 19:07:09 2016 (r294849) @@ -37,11 +37,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd_syscalls.h" - static int powerpc64_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -109,8 +108,7 @@ powerpc64_fetch_retval(struct trussinfo static struct procabi powerpc64_freebsd = { "FreeBSD ELF64", - syscallnames, - nitems(syscallnames), + FREEBSD, powerpc64_fetch_args, powerpc64_fetch_retval }; Modified: head/usr.bin/truss/powerpc64-freebsd32.c ============================================================================== --- head/usr.bin/truss/powerpc64-freebsd32.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/powerpc64-freebsd32.c Tue Jan 26 19:07:09 2016 (r294849) @@ -37,11 +37,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd32_syscalls.h" - static int powerpc64_freebsd32_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -118,8 +117,7 @@ powerpc64_freebsd32_fetch_retval(struct static struct procabi powerpc64_freebsd32 = { "FreeBSD ELF32", - syscallnames, - nitems(syscallnames), + FREEBSD32, powerpc64_freebsd32_fetch_args, powerpc64_freebsd32_fetch_retval }; Modified: head/usr.bin/truss/setup.c ============================================================================== --- head/usr.bin/truss/setup.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/setup.c Tue Jan 26 19:07:09 2016 (r294849) @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -335,8 +336,7 @@ enter_syscall(struct trussinfo *info, st return; } - if (t->cs.number >= 0 && t->cs.number < t->proc->abi->nsyscalls) - t->cs.name = t->proc->abi->syscallnames[t->cs.number]; + t->cs.name = sysdecode_syscallname(t->proc->abi->abi, t->cs.number); if (t->cs.name == NULL) fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d --\n", t->proc->abi->type, t->cs.number); Modified: head/usr.bin/truss/sparc64-freebsd.c ============================================================================== --- head/usr.bin/truss/sparc64-freebsd.c Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/sparc64-freebsd.c Tue Jan 26 19:07:09 2016 (r294849) @@ -43,11 +43,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "truss.h" -#include "freebsd_syscalls.h" - static int sparc64_fetch_args(struct trussinfo *trussinfo, u_int narg) { @@ -116,8 +115,7 @@ sparc64_fetch_retval(struct trussinfo *t static struct procabi sparc64_freebsd = { "FreeBSD ELF64", - syscallnames, - nitems(syscallnames), + FREEBSD, sparc64_fetch_args, sparc64_fetch_retval }; Modified: head/usr.bin/truss/truss.h ============================================================================== --- head/usr.bin/truss/truss.h Tue Jan 26 18:39:31 2016 (r294848) +++ head/usr.bin/truss/truss.h Tue Jan 26 19:07:09 2016 (r294849) @@ -41,8 +41,7 @@ struct trussinfo; struct procabi { const char *type; - const char **syscallnames; - int nsyscalls; + enum sysdecode_abi abi; int (*fetch_args)(struct trussinfo *, u_int); int (*fetch_retval)(struct trussinfo *, long *, int *); }; From owner-svn-src-all@freebsd.org Tue Jan 26 20:45:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73622A6EAB0; Tue, 26 Jan 2016 20:45:42 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 412BB7B5; Tue, 26 Jan 2016 20:45:42 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QKjfQB059676; Tue, 26 Jan 2016 20:45:41 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QKjfvd059675; Tue, 26 Jan 2016 20:45:41 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201601262045.u0QKjfvd059675@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Tue, 26 Jan 2016 20:45:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294850 - stable/10/usr.bin/truncate/tests X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 20:45:42 -0000 Author: asomers Date: Tue Jan 26 20:45:41 2016 New Revision: 294850 URL: https://svnweb.freebsd.org/changeset/base/294850 Log: MFC r294347 Fix usr.bin.truncate.truncate_test.bad_truncate with ZFS /tmp. The bad_truncate test sets the uimmutable flag to produce an error in truncate, but that flag isn't supported by ZFS. If /tmp is on a ZFS filesystem, the test will fail. Change it to use readonly permissions and an unpriveleged user instead. Modified: stable/10/usr.bin/truncate/tests/truncate_test.sh Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/truncate/tests/truncate_test.sh ============================================================================== --- stable/10/usr.bin/truncate/tests/truncate_test.sh Tue Jan 26 19:07:09 2016 (r294849) +++ stable/10/usr.bin/truncate/tests/truncate_test.sh Tue Jan 26 20:45:41 2016 (r294850) @@ -173,26 +173,23 @@ bad_refer_body() [ ! -e afile ] || atf_fail "afile should not exist" } -atf_test_case bad_truncate cleanup +atf_test_case bad_truncate bad_truncate_head() { atf_set "descr" "Verifies that truncate reports an error during" \ "truncation" + atf_set "require.user" "unprivileged" } bad_truncate_body() { - create_stderr_file "truncate: exists.txt: Operation not permitted" + create_stderr_file "truncate: exists.txt: Permission denied" # Trying to get the ftruncate() call to return -1. > exists.txt - atf_check chflags uimmutable exists.txt + atf_check chmod 444 exists.txt atf_check -s not-exit:0 -e file:stderr.txt truncate -s1 exists.txt } -bad_truncate_cleanup() -{ - chflags 0 exists.txt -} atf_test_case new_absolute_grow new_absolute_grow_head() From owner-svn-src-all@freebsd.org Tue Jan 26 21:24:51 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 121D9A6F915; Tue, 26 Jan 2016 21:24:51 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E0E37FB0; Tue, 26 Jan 2016 21:24:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QLOneY071840; Tue, 26 Jan 2016 21:24:49 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QLOn5W071839; Tue, 26 Jan 2016 21:24:49 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201601262124.u0QLOn5W071839@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 26 Jan 2016 21:24:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294851 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 21:24:51 -0000 Author: jhb Date: Tue Jan 26 21:24:49 2016 New Revision: 294851 URL: https://svnweb.freebsd.org/changeset/base/294851 Log: Various style fixes. - Wrap long lines. - Fix indentation. - Remove excessive parens. - Whitespace fixes in struct definitions. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D5025 Modified: head/sys/kern/vfs_aio.c Modified: head/sys/kern/vfs_aio.c ============================================================================== --- head/sys/kern/vfs_aio.c Tue Jan 26 20:45:41 2016 (r294850) +++ head/sys/kern/vfs_aio.c Tue Jan 26 21:24:49 2016 (r294851) @@ -125,17 +125,16 @@ FEATURE(aio, "Asynchronous I/O"); static MALLOC_DEFINE(M_LIO, "lio", "listio aio control block list"); -static SYSCTL_NODE(_vfs, OID_AUTO, aio, CTLFLAG_RW, 0, "Async IO management"); +static SYSCTL_NODE(_vfs, OID_AUTO, aio, CTLFLAG_RW, 0, + "Async IO management"); static int max_aio_procs = MAX_AIO_PROCS; -SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_procs, - CTLFLAG_RW, &max_aio_procs, 0, - "Maximum number of kernel processes to use for handling async IO "); +SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_procs, CTLFLAG_RW, &max_aio_procs, 0, + "Maximum number of kernel processes to use for handling async IO "); static int num_aio_procs = 0; -SYSCTL_INT(_vfs_aio, OID_AUTO, num_aio_procs, - CTLFLAG_RD, &num_aio_procs, 0, - "Number of presently active kernel processes for async IO"); +SYSCTL_INT(_vfs_aio, OID_AUTO, num_aio_procs, CTLFLAG_RD, &num_aio_procs, 0, + "Number of presently active kernel processes for async IO"); /* * The code will adjust the actual number of AIO processes towards this @@ -143,7 +142,8 @@ SYSCTL_INT(_vfs_aio, OID_AUTO, num_aio_p */ static int target_aio_procs = TARGET_AIO_PROCS; SYSCTL_INT(_vfs_aio, OID_AUTO, target_aio_procs, CTLFLAG_RW, &target_aio_procs, - 0, "Preferred number of ready kernel processes for async IO"); + 0, + "Preferred number of ready kernel processes for async IO"); static int max_queue_count = MAX_AIO_QUEUE; SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_queue, CTLFLAG_RW, &max_queue_count, 0, @@ -172,7 +172,8 @@ SYSCTL_INT(_vfs_aio, OID_AUTO, unloadabl static int max_aio_per_proc = MAX_AIO_PER_PROC; SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_per_proc, CTLFLAG_RW, &max_aio_per_proc, - 0, "Maximum active aio requests per process (stored in the process)"); + 0, + "Maximum active aio requests per process (stored in the process)"); static int max_aio_queue_per_proc = MAX_AIO_QUEUE_PER_PROC; SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_queue_per_proc, CTLFLAG_RW, @@ -231,7 +232,7 @@ struct aiocblist { struct vm_page *pages[btoc(MAXPHYS)+1]; /* BIO backend pages */ int npages; /* BIO backend number of pages */ struct proc *userproc; /* (*) user process */ - struct ucred *cred; /* (*) active credential when created */ + struct ucred *cred; /* (*) active credential when created */ struct file *fd_file; /* (*) pointer to file structure */ struct aioliojob *lio; /* (*) optional lio job */ struct aiocb *uuaiocb; /* (*) pointer in userspace of aiocb */ @@ -254,9 +255,9 @@ struct aiocblist { #define AIOP_FREE 0x1 /* proc on free queue */ struct aioproc { - int aioprocflags; /* (c) AIO proc flags */ + int aioprocflags; /* (c) AIO proc flags */ TAILQ_ENTRY(aioproc) list; /* (c) list of processes */ - struct proc *aioproc; /* (*) the AIO proc */ + struct proc *aioproc; /* (*) the AIO proc */ }; /* @@ -268,7 +269,7 @@ struct aioliojob { int lioj_finished_count; /* (a) listio flags */ struct sigevent lioj_signal; /* (a) signal on all I/O done */ TAILQ_ENTRY(aioliojob) lioj_list; /* (a) lio list */ - struct knlist klist; /* (a) list of knotes */ + struct knlist klist; /* (a) list of knotes */ ksiginfo_t lioj_ksi; /* (a) Realtime signal info */ }; @@ -280,7 +281,7 @@ struct aioliojob { * per process aio data structure */ struct kaioinfo { - struct mtx kaio_mtx; /* the lock to protect this struct */ + struct mtx kaio_mtx; /* the lock to protect this struct */ int kaio_flags; /* (a) per process kaio flags */ int kaio_maxactive_count; /* (*) maximum number of AIOs */ int kaio_active_count; /* (c) number of currently used AIOs */ @@ -288,13 +289,13 @@ struct kaioinfo { int kaio_count; /* (a) size of AIO queue */ int kaio_ballowed_count; /* (*) maximum number of buffers */ int kaio_buffer_count; /* (a) number of physio buffers */ - TAILQ_HEAD(,aiocblist) kaio_all; /* (a) all AIOs in the process */ + TAILQ_HEAD(,aiocblist) kaio_all; /* (a) all AIOs in a process */ TAILQ_HEAD(,aiocblist) kaio_done; /* (a) done queue for process */ TAILQ_HEAD(,aioliojob) kaio_liojoblist; /* (a) list of lio jobs */ TAILQ_HEAD(,aiocblist) kaio_jobqueue; /* (a) job queue for process */ - TAILQ_HEAD(,aiocblist) kaio_bufqueue; /* (a) buffer job queue for process */ + TAILQ_HEAD(,aiocblist) kaio_bufqueue; /* (a) buffer job queue */ TAILQ_HEAD(,aiocblist) kaio_syncqueue; /* (a) queue for aio_fsync */ - struct task kaio_task; /* (*) task to kick aio processes */ + struct task kaio_task; /* (*) task to kick aio processes */ }; #define AIO_LOCK(ki) mtx_lock(&(ki)->kaio_mtx) @@ -303,7 +304,7 @@ struct kaioinfo { #define AIO_MTX(ki) (&(ki)->kaio_mtx) #define KAIO_RUNDOWN 0x1 /* process is being run down */ -#define KAIO_WAKEUP 0x2 /* wakeup process when there is a significant event */ +#define KAIO_WAKEUP 0x2 /* wakeup process when AIO completes */ /* * Operations used to interact with userland aio control blocks. @@ -333,15 +334,17 @@ static void aio_process_sync(struct aioc static void aio_process_mlock(struct aiocblist *aiocbe); static int aio_newproc(int *); int aio_aqueue(struct thread *td, struct aiocb *job, - struct aioliojob *lio, int type, struct aiocb_ops *ops); + struct aioliojob *lio, int type, struct aiocb_ops *ops); static void aio_physwakeup(struct bio *bp); static void aio_proc_rundown(void *arg, struct proc *p); -static void aio_proc_rundown_exec(void *arg, struct proc *p, struct image_params *imgp); +static void aio_proc_rundown_exec(void *arg, struct proc *p, + struct image_params *imgp); static int aio_qphysio(struct proc *p, struct aiocblist *iocb); static void aio_daemon(void *param); static void aio_swake_cb(struct socket *, struct sockbuf *); static int aio_unload(void); -static void aio_bio_done_notify(struct proc *userp, struct aiocblist *aiocbe, int type); +static void aio_bio_done_notify(struct proc *userp, + struct aiocblist *aiocbe, int type); #define DONE_BUF 1 #define DONE_QUEUE 2 static int aio_kick(struct proc *userp); @@ -472,8 +475,8 @@ aio_onceonly(void) aio_swake = &aio_swake_cb; exit_tag = EVENTHANDLER_REGISTER(process_exit, aio_proc_rundown, NULL, EVENTHANDLER_PRI_ANY); - exec_tag = EVENTHANDLER_REGISTER(process_exec, aio_proc_rundown_exec, NULL, - EVENTHANDLER_PRI_ANY); + exec_tag = EVENTHANDLER_REGISTER(process_exec, aio_proc_rundown_exec, + NULL, EVENTHANDLER_PRI_ANY); kqueue_add_filteropts(EVFILT_AIO, &aio_filtops); kqueue_add_filteropts(EVFILT_LIO, &lio_filtops); TAILQ_INIT(&aio_freeproc); @@ -700,7 +703,8 @@ aio_free_entry(struct aiocblist *aiocbe) } static void -aio_proc_rundown_exec(void *arg, struct proc *p, struct image_params *imgp __unused) +aio_proc_rundown_exec(void *arg, struct proc *p, + struct image_params *imgp __unused) { aio_proc_rundown(arg, p); } @@ -819,8 +823,8 @@ aio_selectjob(struct aioproc *aiop) } /* - * Move all data to a permanent storage device, this code - * simulates fsync syscall. + * Move all data to a permanent storage device. This code + * simulates the fsync syscall. */ static int aio_fsync_vnode(struct thread *td, struct vnode *vp) @@ -1027,7 +1031,8 @@ notification_done: if (--scb->pending == 0) { mtx_lock(&aio_job_mtx); scb->jobstate = JOBST_JOBQGLOBAL; - TAILQ_REMOVE(&ki->kaio_syncqueue, scb, list); + TAILQ_REMOVE(&ki->kaio_syncqueue, scb, + list); TAILQ_INSERT_TAIL(&aio_jobs, scb, list); aio_kick_nowait(userp); mtx_unlock(&aio_job_mtx); @@ -1788,9 +1793,9 @@ aio_kick_nowait(struct proc *userp) TAILQ_REMOVE(&aio_freeproc, aiop, list); aiop->aioprocflags &= ~AIOP_FREE; wakeup(aiop->aioproc); - } else if (((num_aio_resv_start + num_aio_procs) < max_aio_procs) && - ((ki->kaio_active_count + num_aio_resv_start) < - ki->kaio_maxactive_count)) { + } else if (num_aio_resv_start + num_aio_procs < max_aio_procs && + ki->kaio_active_count + num_aio_resv_start < + ki->kaio_maxactive_count) { taskqueue_enqueue(taskqueue_aiod_kick, &ki->kaio_task); } } @@ -1808,9 +1813,9 @@ retryproc: TAILQ_REMOVE(&aio_freeproc, aiop, list); aiop->aioprocflags &= ~AIOP_FREE; wakeup(aiop->aioproc); - } else if (((num_aio_resv_start + num_aio_procs) < max_aio_procs) && - ((ki->kaio_active_count + num_aio_resv_start) < - ki->kaio_maxactive_count)) { + } else if (num_aio_resv_start + num_aio_procs < max_aio_procs && + ki->kaio_active_count + num_aio_resv_start < + ki->kaio_maxactive_count) { num_aio_resv_start++; mtx_unlock(&aio_job_mtx); error = aio_newproc(&num_aio_resv_start); @@ -2643,8 +2648,8 @@ typedef struct aiocb32 { uint32_t __spare2__; int aio_lio_opcode; /* LIO opcode */ int aio_reqprio; /* Request priority -- ignored */ - struct __aiocb_private32 _aiocb_private; - struct sigevent32 aio_sigevent; /* Signal to deliver */ + struct __aiocb_private32 _aiocb_private; + struct sigevent32 aio_sigevent; /* Signal to deliver */ } aiocb32_t; static int From owner-svn-src-all@freebsd.org Tue Jan 26 21:35:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98FEDA6FC83; Tue, 26 Jan 2016 21:35:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 502BC175A; Tue, 26 Jan 2016 21:35:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QLZl2i075102; Tue, 26 Jan 2016 21:35:47 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QLZlDn075100; Tue, 26 Jan 2016 21:35:47 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201601262135.u0QLZlDn075100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Tue, 26 Jan 2016 21:35:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294852 - in stable: 10/sys/boot/i386/libi386 9/sys/boot/i386/libi386 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 21:35:48 -0000 Author: jkim Date: Tue Jan 26 21:35:47 2016 New Revision: 294852 URL: https://svnweb.freebsd.org/changeset/base/294852 Log: MFC: r256940 Allow users to set UUID in network byte order regardless of SMBIOS version. Modified: stable/10/sys/boot/i386/libi386/Makefile stable/10/sys/boot/i386/libi386/smbios.c Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/9/sys/boot/i386/libi386/Makefile stable/9/sys/boot/i386/libi386/smbios.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/boot/ (props changed) Modified: stable/10/sys/boot/i386/libi386/Makefile ============================================================================== --- stable/10/sys/boot/i386/libi386/Makefile Tue Jan 26 21:24:49 2016 (r294851) +++ stable/10/sys/boot/i386/libi386/Makefile Tue Jan 26 21:35:47 2016 (r294852) @@ -36,6 +36,9 @@ CFLAGS+= -DSMBIOS_SERIAL_NUMBERS .if defined(BOOT_LITTLE_ENDIAN_UUID) # Use little-endian UUID format as defined in SMBIOS 2.6. CFLAGS+= -DSMBIOS_LITTLE_ENDIAN_UUID +.elif defined(BOOT_NETWORK_ENDIAN_UUID) +# Use network-endian UUID format for backward compatibility. +CFLAGS+= -DSMBIOS_NETWORK_ENDIAN_UUID .endif .endif Modified: stable/10/sys/boot/i386/libi386/smbios.c ============================================================================== --- stable/10/sys/boot/i386/libi386/smbios.c Tue Jan 26 21:24:49 2016 (r294851) +++ stable/10/sys/boot/i386/libi386/smbios.c Tue Jan 26 21:35:47 2016 (r294852) @@ -152,7 +152,7 @@ static void smbios_setuuid(const char *name, const caddr_t addr, const int ver) { char uuid[37]; - int i, ones, zeros; + int byteorder, i, ones, zeros; UUID_TYPE n; uint32_t f1; uint16_t f2, f3; @@ -182,14 +182,18 @@ smbios_setuuid(const char *name, const c * Note: We use network byte order for backward compatibility * unless SMBIOS version is 2.6+ or little-endian is forced. */ -#ifndef SMBIOS_LITTLE_ENDIAN_UUID - if (ver < 0x0206) { +#if defined(SMBIOS_LITTLE_ENDIAN_UUID) + byteorder = LITTLE_ENDIAN; +#elif defined(SMBIOS_NETWORK_ENDIAN_UUID) + byteorder = BIG_ENDIAN; +#else + byteorder = ver < 0x0206 ? BIG_ENDIAN : LITTLE_ENDIAN; +#endif + if (byteorder != LITTLE_ENDIAN) { f1 = ntohl(SMBIOS_GET32(addr, 0)); f2 = ntohs(SMBIOS_GET16(addr, 4)); f3 = ntohs(SMBIOS_GET16(addr, 6)); - } else -#endif - { + } else { f1 = le32toh(SMBIOS_GET32(addr, 0)); f2 = le16toh(SMBIOS_GET16(addr, 4)); f3 = le16toh(SMBIOS_GET16(addr, 6)); From owner-svn-src-all@freebsd.org Tue Jan 26 21:35:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E893BA6FC87; Tue, 26 Jan 2016 21:35:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9FC28175B; Tue, 26 Jan 2016 21:35:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QLZlq3075109; Tue, 26 Jan 2016 21:35:47 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QLZlon075107; Tue, 26 Jan 2016 21:35:47 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201601262135.u0QLZlon075107@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Tue, 26 Jan 2016 21:35: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: r294852 - in stable: 10/sys/boot/i386/libi386 9/sys/boot/i386/libi386 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 21:35:49 -0000 Author: jkim Date: Tue Jan 26 21:35:47 2016 New Revision: 294852 URL: https://svnweb.freebsd.org/changeset/base/294852 Log: MFC: r256940 Allow users to set UUID in network byte order regardless of SMBIOS version. Modified: stable/9/sys/boot/i386/libi386/Makefile stable/9/sys/boot/i386/libi386/smbios.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/boot/ (props changed) Changes in other areas also in this revision: Modified: stable/10/sys/boot/i386/libi386/Makefile stable/10/sys/boot/i386/libi386/smbios.c Directory Properties: stable/10/ (props changed) Modified: stable/9/sys/boot/i386/libi386/Makefile ============================================================================== --- stable/9/sys/boot/i386/libi386/Makefile Tue Jan 26 21:24:49 2016 (r294851) +++ stable/9/sys/boot/i386/libi386/Makefile Tue Jan 26 21:35:47 2016 (r294852) @@ -36,6 +36,9 @@ CFLAGS+= -DSMBIOS_SERIAL_NUMBERS .if defined(BOOT_LITTLE_ENDIAN_UUID) # Use little-endian UUID format as defined in SMBIOS 2.6. CFLAGS+= -DSMBIOS_LITTLE_ENDIAN_UUID +.elif defined(BOOT_NETWORK_ENDIAN_UUID) +# Use network-endian UUID format for backward compatibility. +CFLAGS+= -DSMBIOS_NETWORK_ENDIAN_UUID .endif .endif Modified: stable/9/sys/boot/i386/libi386/smbios.c ============================================================================== --- stable/9/sys/boot/i386/libi386/smbios.c Tue Jan 26 21:24:49 2016 (r294851) +++ stable/9/sys/boot/i386/libi386/smbios.c Tue Jan 26 21:35:47 2016 (r294852) @@ -122,7 +122,7 @@ static void smbios_setuuid(const char *name, const caddr_t addr, const int ver) { char uuid[37]; - int i, ones, zeros; + int byteorder, i, ones, zeros; UUID_TYPE n; uint32_t f1; uint16_t f2, f3; @@ -152,14 +152,18 @@ smbios_setuuid(const char *name, const c * Note: We use network byte order for backward compatibility * unless SMBIOS version is 2.6+ or little-endian is forced. */ -#ifndef SMBIOS_LITTLE_ENDIAN_UUID - if (ver < 0x0206) { +#if defined(SMBIOS_LITTLE_ENDIAN_UUID) + byteorder = LITTLE_ENDIAN; +#elif defined(SMBIOS_NETWORK_ENDIAN_UUID) + byteorder = BIG_ENDIAN; +#else + byteorder = ver < 0x0206 ? BIG_ENDIAN : LITTLE_ENDIAN; +#endif + if (byteorder != LITTLE_ENDIAN) { f1 = ntohl(SMBIOS_GET32(addr, 0)); f2 = ntohs(SMBIOS_GET16(addr, 4)); f3 = ntohs(SMBIOS_GET16(addr, 6)); - } else -#endif - { + } else { f1 = le32toh(SMBIOS_GET32(addr, 0)); f2 = le16toh(SMBIOS_GET16(addr, 4)); f3 = le16toh(SMBIOS_GET16(addr, 6)); From owner-svn-src-all@freebsd.org Tue Jan 26 22:14:56 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D46D6A469A9; Tue, 26 Jan 2016 22:14:56 +0000 (UTC) (envelope-from rpokala@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A1746D71; Tue, 26 Jan 2016 22:14:56 +0000 (UTC) (envelope-from rpokala@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QMEtPP086876; Tue, 26 Jan 2016 22:14:55 GMT (envelope-from rpokala@FreeBSD.org) Received: (from rpokala@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QMEtiY086875; Tue, 26 Jan 2016 22:14:55 GMT (envelope-from rpokala@FreeBSD.org) Message-Id: <201601262214.u0QMEtiY086875@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rpokala set sender to rpokala@FreeBSD.org using -f From: Ravi Pokala Date: Tue, 26 Jan 2016 22:14:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294853 - stable/10/sys/fs/nandfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 22:14:56 -0000 Author: rpokala Date: Tue Jan 26 22:14:55 2016 New Revision: 294853 URL: https://svnweb.freebsd.org/changeset/base/294853 Log: MFC r294200: [PR 206224] bv_cnt is sometimes examined without holding the bufobj lock Add locking around access to bv_cnt which is currently being done unlocked Approved by: jhb Sponsored by: Panasas, Inc. Modified: stable/10/sys/fs/nandfs/nandfs_segment.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nandfs/nandfs_segment.c ============================================================================== --- stable/10/sys/fs/nandfs/nandfs_segment.c Tue Jan 26 21:35:47 2016 (r294852) +++ stable/10/sys/fs/nandfs/nandfs_segment.c Tue Jan 26 22:14:55 2016 (r294853) @@ -479,6 +479,7 @@ nandfs_iterate_dirty_vnodes(struct mount struct nandfs_node *nandfs_node; struct vnode *vp, *mvp; struct thread *td; + struct bufobj *bo; int error, update; td = curthread; @@ -499,17 +500,21 @@ nandfs_iterate_dirty_vnodes(struct mount update = 1; } + bo = &vp->v_bufobj; + BO_LOCK(bo); if (vp->v_bufobj.bo_dirty.bv_cnt) { error = nandfs_iterate_dirty_buf(vp, seginfo, 0); if (error) { nandfs_error("%s: cannot iterate vnode:%p " "err:%d\n", __func__, vp, error); vput(vp); + BO_UNLOCK(bo); return (error); } update = 1; } else vput(vp); + BO_UNLOCK(bo); if (update) nandfs_node_update(nandfs_node); From owner-svn-src-all@freebsd.org Tue Jan 26 22:33:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5773FA6E1D4; Tue, 26 Jan 2016 22:33:00 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F3C8AD6E; Tue, 26 Jan 2016 22:32:59 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QMWxlx092688; Tue, 26 Jan 2016 22:32:59 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QMWwTT092685; Tue, 26 Jan 2016 22:32:58 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201601262232.u0QMWwTT092685@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Tue, 26 Jan 2016 22:32:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294854 - head/sys/dev/qlxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 22:33:00 -0000 Author: davidcs Date: Tue Jan 26 22:32:58 2016 New Revision: 294854 URL: https://svnweb.freebsd.org/changeset/base/294854 Log: Upgrade FW to 5.4.56 Update driver version to 3.10.26 Modified: head/sys/dev/qlxgbe/ql_fw.c head/sys/dev/qlxgbe/ql_ver.h Modified: head/sys/dev/qlxgbe/ql_fw.c ============================================================================== --- head/sys/dev/qlxgbe/ql_fw.c Tue Jan 26 22:14:55 2016 (r294853) +++ head/sys/dev/qlxgbe/ql_fw.c Tue Jan 26 22:32:58 2016 (r294854) @@ -35,31 +35,31 @@ __FBSDID("$FreeBSD$"); unsigned int ql83xx_firmware_version_major = 5; unsigned int ql83xx_firmware_version_minor = 4; -unsigned int ql83xx_firmware_version_sub = 55; +unsigned int ql83xx_firmware_version_sub = 56; unsigned char ql83xx_firmware[] = { - 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xa4, 0x44, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdf, 0xab, 0xb2, 0x6d, 0x14, 0xbc, 0xac, 0x79, + 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x44, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x65, 0x29, 0xa5, 0xc3, 0x36, 0x3d, 0x7d, 0x98, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xea, 0x03, 0x00, + 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xea, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x2c, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xf3, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x45, 0x8f, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf3, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf7, 0x8e, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x9b, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x34, 0x83, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe7, 0x82, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -69,117 +69,117 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xab, 0x8d, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5e, 0x8d, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x29, 0xa3, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, + 0xdc, 0xa2, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0xa7, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xa7, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x8b, 0xba, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0xba, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc1, 0xd8, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x0b, 0x00, 0x00, + 0x74, 0xd8, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xe4, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xe4, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x5e, 0xeb, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x11, 0xeb, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xd5, 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0b, 0x00, 0x00, + 0x88, 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x19, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x19, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x6a, 0x36, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1d, 0x36, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x94, 0x3f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x08, 0x00, 0x00, + 0x47, 0x3f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x47, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x47, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x4a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xad, 0x4a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x22, 0x4d, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x0a, 0x00, 0x00, + 0xd5, 0x4c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x57, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x57, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xa2, 0x78, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7b, 0x9e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x55, 0x78, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x81, 0x9e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1d, 0x17, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xd6, 0x16, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xd7, 0x17, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x17, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -189,7 +189,7 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3d, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd5, 0x3c, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x58, 0xe0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -232,8 +232,8 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x46, 0x1a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x21, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x1a, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x25, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xae, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -250,664 +250,664 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xda, 0xec, 0x3d, 0x6d, 0x70, 0x5c, 0xd5, 0x75, 0xf7, 0x7d, 0xec, 0xee, 0xd3, 0x6a, 0x57, - 0x5a, 0x1b, 0xd9, 0x11, 0x46, 0xae, 0x9f, 0x8d, 0xb1, 0xc5, 0x47, 0x98, - 0x67, 0x63, 0x1c, 0x63, 0xdc, 0xf0, 0x24, 0xcb, 0x8e, 0x6d, 0x24, 0x50, - 0x43, 0x03, 0xe6, 0x23, 0x20, 0xd2, 0x06, 0x04, 0x21, 0x58, 0x74, 0xa0, - 0x23, 0x83, 0x07, 0x3f, 0xd9, 0x92, 0x6c, 0x40, 0x4e, 0x64, 0xec, 0x38, - 0x0e, 0xa1, 0xb0, 0x92, 0x6d, 0x4a, 0x52, 0xda, 0x2e, 0x93, 0x8f, 0x32, - 0x6d, 0x67, 0x58, 0xdb, 0x99, 0xd8, 0x10, 0x3c, 0x71, 0x7e, 0xd0, 0x86, - 0x74, 0x68, 0xb6, 0x93, 0xa6, 0xa3, 0x12, 0xa0, 0x9b, 0x76, 0x4a, 0x64, - 0x52, 0x43, 0xef, 0xf7, 0x7b, 0xf7, 0xee, 0x7b, 0x6f, 0xf7, 0xca, 0xb2, - 0x33, 0xed, 0x58, 0x99, 0x09, 0x3a, 0xbe, 0xf7, 0x9c, 0x77, 0xee, 0xb9, - 0xe7, 0x9e, 0x73, 0xee, 0x39, 0xe7, 0x3d, 0x01, 0x0d, 0x90, 0x1f, 0x13, - 0x18, 0x40, 0x07, 0x77, 0x83, 0xf3, 0xf0, 0xff, 0x4d, 0x98, 0xfc, 0xf4, - 0x50, 0xf8, 0xe4, 0x3b, 0x6f, 0xe3, 0xff, 0x7d, 0xb9, 0x02, 0x16, 0x7f, + 0x5a, 0x1b, 0xd9, 0x11, 0x42, 0xd4, 0xcf, 0xc6, 0xd8, 0xe2, 0x23, 0xcc, + 0xb3, 0x31, 0x8e, 0x31, 0x6e, 0x78, 0x92, 0x65, 0xc7, 0x36, 0x12, 0xa8, + 0xa1, 0x01, 0xf3, 0x11, 0x10, 0x69, 0x43, 0x04, 0x21, 0x58, 0x74, 0xa0, + 0x23, 0x13, 0x0f, 0x7e, 0xb2, 0x25, 0xd9, 0x80, 0x9c, 0xc8, 0xd8, 0x71, + 0x1c, 0x42, 0x61, 0x25, 0xdb, 0x94, 0xb4, 0xb4, 0x5d, 0x26, 0x1f, 0x65, + 0xda, 0xce, 0xb0, 0xb6, 0x33, 0xb1, 0x21, 0x78, 0xe2, 0xfc, 0xa0, 0x0d, + 0xe9, 0xd0, 0x6c, 0x27, 0x4d, 0x47, 0x25, 0x40, 0x37, 0xed, 0x94, 0xc8, + 0xa4, 0x86, 0xde, 0xef, 0xf7, 0xee, 0xdd, 0xf7, 0xde, 0xee, 0x95, 0x65, + 0x67, 0xd2, 0xb1, 0x32, 0x13, 0x74, 0x7c, 0xef, 0x39, 0xef, 0xdc, 0x73, + 0xcf, 0x3d, 0xe7, 0xdc, 0x73, 0xce, 0x7b, 0x02, 0x1a, 0x20, 0x3f, 0x26, + 0x30, 0x80, 0x0e, 0xee, 0x01, 0xe7, 0xe1, 0xdf, 0x4d, 0x98, 0xfc, 0xf4, + 0x52, 0xf8, 0xe4, 0xdb, 0x6f, 0xe1, 0xff, 0x7d, 0xa9, 0x02, 0x16, 0x7f, 0x0a, 0x12, 0x9c, 0x57, 0x84, 0x3d, 0x1d, 0xd8, 0xf8, 0x97, 0x3d, 0x29, - 0xfc, 0x9f, 0xbe, 0x8a, 0xf9, 0x1a, 0xf0, 0xdc, 0x5c, 0x00, 0xa6, 0xbf, + 0xfc, 0x9f, 0xfe, 0x8a, 0xf9, 0x1a, 0xf0, 0xdc, 0x5c, 0x00, 0xa6, 0xbf, 0xdb, 0xf9, 0x0c, 0xe1, 0x17, 0x14, 0x0d, 0xc6, 0x3a, 0x00, 0x75, 0x79, - 0x93, 0x00, 0xdd, 0xb7, 0x91, 0x9f, 0xfb, 0xa3, 0x9e, 0xb7, 0x0e, 0x44, - 0x3c, 0x4f, 0x11, 0x66, 0xf4, 0x4e, 0x4c, 0x33, 0xbd, 0x85, 0xda, 0xf4, - 0xd2, 0x5b, 0x3a, 0xcd, 0xf4, 0x36, 0xe9, 0x53, 0xa3, 0xc7, 0xf0, 0x6f, - 0x37, 0xa7, 0x84, 0x1f, 0xa2, 0x6f, 0x8e, 0x87, 0x48, 0x5d, 0xba, 0xf4, - 0xce, 0xf5, 0x33, 0xc0, 0xe0, 0xd7, 0x20, 0x49, 0x04, 0x9f, 0x6c, 0x1d, - 0x7c, 0xf3, 0xf5, 0x4e, 0x2d, 0xb7, 0x1b, 0xa2, 0x20, 0x38, 0xff, 0xc0, - 0xdc, 0x55, 0x2b, 0x01, 0x1e, 0x2f, 0xb3, 0xf1, 0x77, 0x1f, 0xd4, 0xf2, - 0x70, 0xdc, 0x19, 0x40, 0xf8, 0xf7, 0xdf, 0x74, 0xec, 0xca, 0x8b, 0x09, - 0xfe, 0x00, 0x1d, 0x6f, 0xd8, 0xad, 0x39, 0x4f, 0x43, 0xfc, 0x01, 0x46, - 0xff, 0x27, 0x04, 0x7f, 0x40, 0xa4, 0xef, 0x6c, 0x83, 0x70, 0xf7, 0xfa, - 0x2b, 0x13, 0x97, 0x7e, 0x92, 0xe0, 0x6f, 0xa3, 0xe3, 0x9f, 0x7d, 0x53, - 0xeb, 0xde, 0x03, 0xf1, 0x11, 0xdc, 0xb3, 0xf2, 0xb6, 0x17, 0x1e, 0x48, - 0x12, 0x7c, 0x36, 0xfe, 0xf0, 0x6f, 0xb4, 0x9e, 0x51, 0x88, 0xbf, 0x9d, - 0xd3, 0xd7, 0x30, 0xfe, 0x76, 0x89, 0x7f, 0x04, 0xe7, 0x5f, 0xfd, 0xf5, - 0xc2, 0xe5, 0x16, 0xc1, 0x67, 0xe3, 0xaf, 0x5c, 0x0b, 0xba, 0xd1, 0xf3, - 0x07, 0x21, 0xdc, 0x97, 0x3b, 0xe6, 0x36, 0x91, 0xf5, 0xf5, 0x0d, 0xd2, - 0xf1, 0x9f, 0x7d, 0xfe, 0x71, 0x0b, 0xd2, 0x2f, 0x20, 0xb8, 0x27, 0x33, - 0xec, 0xe4, 0xe6, 0x10, 0x7c, 0x36, 0xbe, 0xea, 0x0b, 0x8f, 0xef, 0x44, - 0xcf, 0x1f, 0x42, 0xfc, 0x5b, 0x6b, 0xec, 0x0c, 0x5d, 0xff, 0x10, 0x1d, - 0x6f, 0x1f, 0x7c, 0xdc, 0x42, 0xcf, 0x47, 0xb0, 0x6b, 0x9a, 0x39, 0x2b, - 0x43, 0xf0, 0xd9, 0xf8, 0x1f, 0xbf, 0xf0, 0xf8, 0x4e, 0xf4, 0xfc, 0x61, - 0xd3, 0xdf, 0x0f, 0x48, 0xaf, 0x4f, 0x82, 0x0b, 0x12, 0x5c, 0x96, 0x60, + 0x93, 0x00, 0x3d, 0xb7, 0x93, 0x9f, 0xfb, 0xa3, 0x9e, 0xb7, 0x0e, 0x44, + 0x3c, 0x4f, 0x11, 0x66, 0xf4, 0x4e, 0xcc, 0x30, 0xbd, 0x85, 0xda, 0xcc, + 0xd2, 0x5b, 0x3a, 0xc3, 0xf4, 0x36, 0xe9, 0xd3, 0xa3, 0xc7, 0xf0, 0xef, + 0x30, 0xa7, 0x85, 0x1f, 0xa2, 0x6f, 0x8e, 0x87, 0x48, 0x5d, 0xb6, 0xf4, + 0xae, 0xf5, 0xb3, 0xc0, 0xd0, 0xd7, 0x20, 0x49, 0x04, 0x9f, 0x6c, 0x1b, + 0x7a, 0xe3, 0xb5, 0x2e, 0x2d, 0xb7, 0x1b, 0xa2, 0x20, 0x38, 0xff, 0xc0, + 0xc5, 0xab, 0x56, 0x02, 0x3c, 0x5e, 0x66, 0xe3, 0xef, 0x3c, 0xa8, 0xe5, + 0xe1, 0xb8, 0x33, 0x88, 0xf0, 0xef, 0xbf, 0xf9, 0xd8, 0x55, 0x97, 0x10, + 0xfc, 0x41, 0x3a, 0xde, 0xb0, 0x5b, 0x73, 0x9e, 0x82, 0xf8, 0x83, 0x8c, + 0xfe, 0x8f, 0x09, 0xfe, 0xa0, 0x48, 0xdf, 0xd9, 0x06, 0xe1, 0x9e, 0xf5, + 0x57, 0x25, 0x2e, 0xfb, 0x38, 0xc1, 0xdf, 0x46, 0xc7, 0x3f, 0xfd, 0x86, + 0xd6, 0xb3, 0x07, 0xe2, 0x23, 0xb8, 0x77, 0xe5, 0xed, 0xcf, 0x3f, 0x90, + 0x24, 0xf8, 0x6c, 0xfc, 0xe1, 0x5f, 0x6b, 0xbd, 0x63, 0x10, 0x7f, 0x3b, + 0xa7, 0xaf, 0x61, 0xfc, 0xed, 0x12, 0xff, 0x08, 0xce, 0xbf, 0xf2, 0xab, + 0x85, 0xcb, 0x2d, 0x82, 0xcf, 0xc6, 0x5f, 0xbe, 0x0e, 0xf4, 0xa0, 0xe7, + 0x0f, 0x41, 0xb8, 0x3f, 0x77, 0xcc, 0x6d, 0x22, 0xeb, 0xeb, 0x1f, 0xa2, + 0xe3, 0x3f, 0xfd, 0xec, 0x63, 0x16, 0xa4, 0x5f, 0x40, 0x70, 0x6f, 0x66, + 0xc4, 0xc9, 0xb5, 0x10, 0x7c, 0x36, 0xbe, 0xea, 0x73, 0x8f, 0xed, 0x44, + 0xcf, 0x1f, 0x46, 0xfc, 0x5b, 0x6b, 0xec, 0x0c, 0x5d, 0xff, 0x30, 0x1d, + 0xef, 0x18, 0x7a, 0xcc, 0x42, 0xcf, 0x47, 0xb0, 0x6b, 0x9a, 0x39, 0x2b, + 0x43, 0xf0, 0xd9, 0xf8, 0x1f, 0x3f, 0xff, 0xd8, 0x4e, 0xf4, 0xfc, 0x11, + 0xd3, 0xdf, 0x0f, 0x48, 0xaf, 0x5f, 0x82, 0x0b, 0x12, 0x5c, 0x96, 0x60, 0x67, 0x87, 0x84, 0x2f, 0xc1, 0x05, 0x09, 0x2e, 0x4b, 0xb0, 0xb3, 0x13, - 0xf1, 0xd7, 0xb4, 0xf6, 0xee, 0x16, 0x3b, 0x77, 0xf5, 0x33, 0x10, 0x1f, - 0xc1, 0x79, 0xe7, 0x0b, 0xe6, 0xe5, 0x9b, 0xb6, 0xa2, 0xf5, 0x15, 0x10, - 0xdc, 0xdd, 0xbc, 0xe3, 0xa1, 0xa6, 0x4b, 0xf1, 0x78, 0x99, 0x8d, 0x77, - 0xed, 0xde, 0x8a, 0xd6, 0xe7, 0x3c, 0x81, 0xe4, 0xd3, 0x72, 0x44, 0x33, - 0x97, 0x12, 0xfc, 0x27, 0xe8, 0xf8, 0xa6, 0xef, 0x6c, 0x45, 0xeb, 0x2b, - 0x20, 0xb8, 0xaf, 0x45, 0xcb, 0x59, 0xd7, 0x12, 0x7c, 0x36, 0xbe, 0xfb, - 0xcd, 0xad, 0x16, 0xd4, 0x0f, 0xe7, 0x49, 0xc2, 0xcf, 0xa2, 0x16, 0x9b, - 0xf0, 0x8f, 0xe1, 0xfa, 0x0c, 0xb0, 0xba, 0xee, 0xc6, 0xfc, 0xd3, 0xf1, - 0x65, 0x74, 0xbc, 0x8c, 0xe1, 0xa7, 0x34, 0x36, 0xee, 0x3c, 0x25, 0xad, - 0x5f, 0x82, 0x0b, 0x12, 0x5c, 0x96, 0x60, 0x67, 0x44, 0xc2, 0x97, 0xe0, + 0xf1, 0xd7, 0xb4, 0xf6, 0x9e, 0x56, 0x3b, 0x77, 0xcd, 0xd3, 0x10, 0x1f, + 0xc1, 0x79, 0xe7, 0x73, 0xe6, 0x15, 0x9b, 0xb6, 0xa2, 0xf5, 0x15, 0x10, + 0xdc, 0xd3, 0xbc, 0xe3, 0xa1, 0xa6, 0xcb, 0xf0, 0x78, 0x99, 0x8d, 0x77, + 0xef, 0xde, 0x8a, 0xd6, 0xe7, 0x3c, 0x8e, 0xe4, 0xd3, 0x7a, 0x44, 0x33, + 0x97, 0x12, 0xfc, 0xc7, 0xe9, 0xf8, 0xa6, 0x6f, 0x6f, 0x45, 0xeb, 0x2b, + 0x20, 0xb8, 0xbf, 0x55, 0xcb, 0x59, 0xd7, 0x11, 0x7c, 0x36, 0xbe, 0xfb, + 0x8d, 0xad, 0x16, 0xd4, 0x0f, 0xe7, 0x09, 0xc2, 0xcf, 0xa2, 0x56, 0x9b, + 0xf0, 0x8f, 0xe1, 0xfa, 0x0c, 0xb0, 0xba, 0xef, 0xc1, 0xfc, 0xd3, 0xf1, + 0x65, 0x74, 0xbc, 0x8c, 0xe1, 0x27, 0x35, 0x36, 0xee, 0x3c, 0x29, 0xad, + 0x5f, 0x82, 0x0b, 0x12, 0x5c, 0x96, 0x60, 0x67, 0x54, 0xc2, 0x97, 0xe0, 0x82, 0x04, 0x97, 0x25, 0xd8, 0xd9, 0x25, 0xe1, 0x4b, 0x70, 0x41, 0x82, 0xcb, 0x12, 0xec, 0x7c, 0x45, 0xc2, 0x97, 0xe0, 0x82, 0x04, 0x97, 0x25, 0xd8, 0xf9, 0xaa, 0x84, 0x2f, 0xc1, 0x05, 0x09, 0x2e, 0x4b, 0xb0, 0xe3, - 0x42, 0xd8, 0xeb, 0x7d, 0x37, 0xc9, 0xf0, 0x11, 0x5c, 0xba, 0xf8, 0x67, - 0x7f, 0xca, 0xf0, 0x11, 0x5c, 0xfc, 0xf0, 0xf8, 0xb0, 0x41, 0xf1, 0x11, - 0x9c, 0x7f, 0xf9, 0xa3, 0x0f, 0x28, 0xec, 0xb4, 0x41, 0x38, 0xb7, 0xeb, - 0xea, 0x3a, 0x97, 0xe2, 0x23, 0xb8, 0xaf, 0xe3, 0xe2, 0xcd, 0x14, 0x2e, - 0x20, 0xb8, 0x7b, 0xde, 0xee, 0x5d, 0xab, 0x29, 0x3e, 0x82, 0x9d, 0x7f, - 0xd8, 0x71, 0x9a, 0xc2, 0x4e, 0xbb, 0xc4, 0xbf, 0x04, 0x17, 0x24, 0xb8, + 0x42, 0xd8, 0xeb, 0x7b, 0x27, 0xc9, 0xf0, 0x11, 0x5c, 0xba, 0xe4, 0xa7, + 0x7f, 0xca, 0xf0, 0x11, 0x5c, 0xfc, 0xe0, 0xf8, 0x88, 0x41, 0xf1, 0x11, + 0x9c, 0x7f, 0xe9, 0xc3, 0xf7, 0x29, 0xec, 0xb4, 0x43, 0x38, 0xb7, 0xeb, + 0x9a, 0x3a, 0x97, 0xe2, 0x23, 0xb8, 0xbf, 0xf3, 0x92, 0xcd, 0x14, 0x2e, + 0x20, 0xb8, 0x67, 0xde, 0xee, 0x5d, 0xab, 0x29, 0x3e, 0x82, 0x9d, 0x7f, + 0xdc, 0x71, 0x9a, 0xc2, 0x4e, 0x87, 0xc4, 0xbf, 0x04, 0x17, 0x24, 0xb8, 0x2c, 0xc1, 0xce, 0x6a, 0x09, 0x5f, 0x82, 0x0b, 0x12, 0x5c, 0x96, 0x60, - 0xa7, 0x43, 0xc2, 0x97, 0xe0, 0x82, 0x04, 0x97, 0x25, 0xd8, 0x59, 0x23, + 0xa7, 0x53, 0xc2, 0x97, 0xe0, 0x82, 0x04, 0x97, 0x25, 0xd8, 0x59, 0x23, 0xe1, 0x4b, 0x70, 0x41, 0x82, 0xcb, 0x12, 0xec, 0xac, 0x95, 0xf0, 0x25, - 0xb8, 0x20, 0xc1, 0x65, 0x09, 0x76, 0x3e, 0x23, 0xe1, 0x4b, 0x70, 0x41, - 0x82, 0xcb, 0x12, 0xec, 0xac, 0x43, 0xfb, 0xf3, 0xb9, 0x37, 0xd9, 0x7e, - 0xf6, 0x21, 0xf8, 0xe4, 0x23, 0x6f, 0x33, 0xb8, 0x80, 0xc7, 0xf7, 0xfd, - 0x92, 0xc1, 0x65, 0x3c, 0xfe, 0xfd, 0xf7, 0xf8, 0xfe, 0xaf, 0x47, 0xe7, - 0xff, 0xda, 0xbf, 0x38, 0xcd, 0xf0, 0x31, 0x7c, 0xfb, 0x77, 0x19, 0x5c, - 0xc0, 0xf0, 0x63, 0x43, 0x0c, 0x2e, 0x23, 0xb8, 0xfc, 0xfc, 0x57, 0x18, - 0xec, 0x6c, 0x40, 0xf0, 0xab, 0xa3, 0x1c, 0x1f, 0xc3, 0x3f, 0xff, 0x06, - 0xc7, 0x47, 0x30, 0x98, 0xb1, 0xe0, 0x14, 0xc3, 0x47, 0xf0, 0xe8, 0xd5, - 0x97, 0x33, 0xd8, 0xb9, 0x1e, 0xc2, 0x76, 0xbb, 0xc9, 0xe0, 0x3e, 0x04, - 0x17, 0xee, 0xc9, 0x32, 0xb8, 0x80, 0x60, 0x77, 0x67, 0x8e, 0xe3, 0x23, - 0xf8, 0xe4, 0x4b, 0x17, 0x72, 0xfc, 0x4e, 0x44, 0xbf, 0x78, 0x8c, 0xaf, - 0xbf, 0x93, 0xc8, 0xa7, 0xcc, 0xf0, 0x25, 0xb8, 0x2c, 0xc1, 0x4e, 0x97, - 0x08, 0xf7, 0x49, 0x70, 0x41, 0x82, 0xcb, 0x12, 0xec, 0xdc, 0x20, 0xe1, - 0x4b, 0x70, 0x41, 0x82, 0xcb, 0x12, 0xec, 0xdc, 0x28, 0xe1, 0x4b, 0x70, - 0x41, 0x82, 0xcb, 0x12, 0x2c, 0xc6, 0x77, 0x95, 0xf1, 0xc1, 0x8c, 0x20, - 0x5c, 0x35, 0xde, 0xb0, 0xd9, 0x6f, 0x1a, 0x0d, 0x2a, 0xe9, 0xc3, 0x1a, - 0x35, 0x1e, 0x64, 0x56, 0x89, 0x57, 0xfa, 0x34, 0x37, 0xa0, 0x9f, 0x84, - 0x5e, 0x22, 0x01, 0xed, 0x3f, 0x8a, 0xb9, 0xe1, 0xf8, 0x6d, 0x09, 0x3a, - 0xf6, 0xd1, 0x3c, 0x60, 0x77, 0x57, 0xa7, 0xa7, 0xc6, 0x3f, 0x3d, 0x1b, - 0xa5, 0x8f, 0xc9, 0xcf, 0x26, 0xf5, 0x78, 0x6a, 0x5a, 0xe1, 0x42, 0xf5, - 0xfd, 0x51, 0x83, 0xe9, 0xfa, 0xca, 0x11, 0xeb, 0xab, 0xfa, 0xbc, 0x2a, - 0xf8, 0x55, 0xef, 0x2b, 0x8a, 0xcf, 0xf3, 0xb8, 0xad, 0x72, 0x99, 0xfe, - 0x64, 0xe9, 0x7d, 0xa5, 0x17, 0x8e, 0x6a, 0xfc, 0x3e, 0x03, 0x80, 0x85, - 0xc7, 0x7d, 0xe3, 0x6c, 0x83, 0xfd, 0x47, 0xb5, 0x01, 0x90, 0x2b, 0x02, - 0xab, 0x99, 0xcc, 0xb7, 0xb7, 0xc1, 0xf9, 0xe0, 0x0a, 0x9d, 0x92, 0xfe, - 0x38, 0x5c, 0x7f, 0x32, 0x22, 0x7d, 0xf0, 0x06, 0x1d, 0x9a, 0xa0, 0xf0, - 0xef, 0x76, 0xff, 0xaa, 0xc9, 0xeb, 0x3c, 0x7c, 0x66, 0xe7, 0xff, 0xec, - 0xc3, 0xd3, 0xcb, 0x8f, 0x0d, 0xa4, 0xfc, 0x03, 0xfc, 0x87, 0x4f, 0xcf, - 0x09, 0xcc, 0xa7, 0xf6, 0x97, 0x8f, 0x83, 0x1f, 0x00, 0x51, 0xbf, 0x73, + 0xb8, 0x20, 0xc1, 0x65, 0x09, 0x76, 0x3e, 0x25, 0xe1, 0x4b, 0x70, 0x41, + 0x82, 0xcb, 0x12, 0xec, 0xac, 0x43, 0xfb, 0xf3, 0x99, 0x37, 0xd8, 0x7e, + 0xf6, 0x23, 0xf8, 0xe4, 0x23, 0x6f, 0x31, 0xb8, 0x80, 0xc7, 0xf7, 0xfd, + 0x82, 0xc1, 0x65, 0x3c, 0xfe, 0xbd, 0x77, 0xf9, 0xfe, 0xaf, 0x47, 0xe7, + 0xff, 0xba, 0xbf, 0x3c, 0xcd, 0xf0, 0x31, 0x7c, 0xc7, 0x77, 0x18, 0x5c, + 0xc0, 0xf0, 0x97, 0x87, 0x19, 0x5c, 0x46, 0x70, 0xf9, 0xb9, 0xaf, 0x30, + 0xd8, 0xd9, 0x80, 0xe0, 0x57, 0xc6, 0x38, 0x3e, 0x86, 0x7f, 0xf6, 0x0d, + 0x8e, 0x8f, 0x60, 0x30, 0x6b, 0xc1, 0x29, 0x86, 0x8f, 0xe0, 0xb1, 0x6b, + 0xae, 0x60, 0xb0, 0x73, 0x03, 0x84, 0xed, 0x0e, 0x93, 0xc1, 0xfd, 0x08, + 0x2e, 0xdc, 0x9b, 0x65, 0x70, 0x01, 0xc1, 0xee, 0xce, 0x1c, 0xc7, 0x47, + 0xf0, 0xc9, 0x17, 0x2f, 0xe4, 0xf8, 0x5d, 0x88, 0x7e, 0xf1, 0x18, 0x5f, + 0x7f, 0x17, 0x91, 0x4f, 0x99, 0xe1, 0x4b, 0x70, 0x59, 0x82, 0x9d, 0x6e, + 0x11, 0xee, 0x97, 0xe0, 0x82, 0x04, 0x97, 0x25, 0xd8, 0xb9, 0x51, 0xc2, + 0x97, 0xe0, 0x82, 0x04, 0x97, 0x25, 0xd8, 0xb9, 0x49, 0xc2, 0x97, 0xe0, + 0x82, 0x04, 0x97, 0x25, 0x58, 0x8c, 0xef, 0x2a, 0xe3, 0x83, 0x59, 0x41, + 0xb8, 0x6a, 0xbc, 0x61, 0xb3, 0xdf, 0x34, 0x1a, 0x54, 0xd2, 0x87, 0x35, + 0x6a, 0x3c, 0xc8, 0xac, 0x12, 0xaf, 0xf4, 0x6b, 0x6e, 0x40, 0x3f, 0x09, + 0xbd, 0x44, 0x02, 0xda, 0x7f, 0x14, 0x73, 0xc3, 0xf1, 0xdb, 0x13, 0x74, + 0xec, 0xc3, 0x79, 0xc0, 0xee, 0xa9, 0x4e, 0x4f, 0x8d, 0x7f, 0x7a, 0x36, + 0x4a, 0x1f, 0x91, 0x9f, 0x4d, 0xea, 0xf1, 0xd4, 0x8c, 0xc2, 0x85, 0xea, + 0xfb, 0xa3, 0x06, 0xd3, 0xf5, 0x95, 0x23, 0xd6, 0x57, 0xf5, 0x79, 0x55, + 0xf0, 0xab, 0xde, 0x57, 0x14, 0x9f, 0xe7, 0x71, 0x5b, 0xe5, 0x32, 0xfd, + 0xc9, 0xd2, 0xfb, 0x4a, 0x1f, 0x1c, 0xd5, 0xf8, 0x7d, 0x06, 0x00, 0x0b, + 0x8f, 0xfb, 0xc6, 0xd9, 0x06, 0xfb, 0x8f, 0x6a, 0x83, 0x20, 0x57, 0x04, + 0x56, 0x33, 0x99, 0x6f, 0x6f, 0x83, 0xf3, 0xc1, 0x95, 0x3a, 0x25, 0xfd, + 0x51, 0xb8, 0xfe, 0x64, 0x44, 0xfa, 0xe0, 0x75, 0x3a, 0x34, 0x49, 0xe1, + 0xdf, 0xee, 0xfe, 0x55, 0x93, 0xd7, 0x79, 0xf8, 0xcc, 0xce, 0xff, 0xd9, + 0x87, 0x67, 0x96, 0x1f, 0x1b, 0x48, 0xf9, 0x07, 0xf8, 0x0f, 0x9f, 0x6c, + 0x09, 0xcc, 0xa7, 0xf6, 0x97, 0x8f, 0x83, 0xef, 0x03, 0x51, 0xbf, 0x73, 0x19, 0x11, 0x46, 0x27, 0x2a, 0x09, 0xfc, 0x73, 0x05, 0x91, 0xd2, 0xce, - 0x60, 0x7b, 0x5b, 0x2b, 0x91, 0x2f, 0xa4, 0x9f, 0x9e, 0x43, 0xce, 0x97, - 0xad, 0x07, 0xed, 0xb1, 0x77, 0xfa, 0x6c, 0xd8, 0xe3, 0xea, 0x70, 0x63, - 0x00, 0xac, 0xe5, 0xf9, 0x6c, 0xbe, 0xd7, 0xa0, 0x36, 0x1f, 0xcc, 0x55, - 0xa4, 0x7f, 0xb9, 0x22, 0xfd, 0x95, 0x8a, 0xf4, 0xd7, 0x29, 0xd2, 0xbf, - 0x45, 0x91, 0xfe, 0x17, 0x15, 0xe9, 0x3f, 0xac, 0x48, 0x7f, 0x9b, 0x22, - 0xfd, 0xdd, 0x8a, 0xf4, 0x9f, 0x57, 0xa4, 0xff, 0x57, 0x8a, 0xf4, 0xff, - 0x5e, 0x91, 0xfe, 0x8f, 0x14, 0xe9, 0xbf, 0xa5, 0x48, 0x7f, 0x42, 0x91, - 0xfe, 0x07, 0x8a, 0xf4, 0x13, 0x9a, 0x1a, 0xfd, 0x0b, 0xd4, 0xe6, 0x83, - 0x05, 0x8a, 0xf4, 0x1d, 0x45, 0xfa, 0xd7, 0x29, 0xd2, 0xef, 0x52, 0xa4, - 0x7f, 0x87, 0x22, 0xfd, 0xfb, 0x15, 0xe9, 0x6f, 0x56, 0xa4, 0xbf, 0x43, - 0x91, 0xfe, 0x3e, 0x45, 0xfa, 0x07, 0x15, 0xe9, 0x7f, 0x47, 0x91, 0xfe, - 0x61, 0x45, 0xfa, 0x27, 0x15, 0xe9, 0xff, 0xb3, 0x22, 0xfd, 0xf7, 0x14, - 0xe9, 0xff, 0x56, 0x91, 0x7e, 0x5a, 0x57, 0xa3, 0xdf, 0xac, 0x36, 0x1f, - 0x2c, 0x56, 0xa4, 0x7f, 0xb5, 0x22, 0xfd, 0x0e, 0x45, 0xfa, 0x9f, 0x55, - 0xa4, 0x7f, 0xb7, 0x22, 0xfd, 0x4d, 0x8a, 0xf4, 0x1f, 0x57, 0xa4, 0x3f, - 0xa2, 0x48, 0xff, 0x9b, 0x8a, 0xf4, 0xbf, 0xa5, 0x48, 0xff, 0x15, 0x45, - 0xfa, 0x3f, 0x54, 0xa4, 0xff, 0xa6, 0x22, 0xfd, 0x5f, 0x28, 0xd2, 0xff, - 0x4f, 0x45, 0xfa, 0xc0, 0x50, 0xa3, 0xdf, 0xa8, 0x36, 0xdf, 0x9b, 0xab, - 0x48, 0xff, 0x0a, 0x45, 0xfa, 0x2b, 0x15, 0xe9, 0xaf, 0x57, 0xa4, 0x7f, - 0x8b, 0x22, 0xfd, 0x7b, 0x14, 0xe9, 0x3f, 0xac, 0x48, 0x7f, 0xbb, 0x22, - 0xfd, 0xdd, 0x8a, 0xf4, 0xf3, 0xc6, 0xb9, 0xb8, 0x7f, 0x78, 0x5d, 0xe0, - 0xca, 0xdf, 0x43, 0xbf, 0xfe, 0xea, 0x3a, 0x80, 0xf3, 0x09, 0x27, 0x68, - 0x05, 0xb8, 0x37, 0x41, 0xee, 0x4f, 0x59, 0x9a, 0x5f, 0x98, 0x30, 0x11, - 0xcc, 0xea, 0x75, 0x07, 0xba, 0xd9, 0xf3, 0x76, 0xb1, 0xfc, 0x82, 0x49, - 0xe7, 0xb3, 0xfb, 0x98, 0x06, 0x06, 0xb4, 0x3c, 0xb9, 0x76, 0x3d, 0x03, - 0x6f, 0x6d, 0x8b, 0x40, 0xc9, 0xf4, 0xeb, 0xb5, 0x79, 0xf7, 0x1a, 0x7c, - 0x15, 0x83, 0xff, 0xd4, 0xd4, 0x6a, 0x80, 0x16, 0xc4, 0x4a, 0xfe, 0xa8, - 0x36, 0xc0, 0xeb, 0x81, 0x63, 0x84, 0xbe, 0x05, 0x34, 0xe0, 0xa2, 0x54, - 0xfe, 0xc6, 0x7e, 0x40, 0xf8, 0x13, 0xf9, 0x67, 0xf3, 0x0f, 0x3f, 0x1c, - 0xbe, 0x7e, 0xdb, 0x02, 0xc0, 0x4d, 0xdb, 0xf5, 0x60, 0xf2, 0x53, 0xa0, - 0x94, 0x02, 0x07, 0x80, 0x4e, 0xf3, 0x3d, 0x9f, 0xc2, 0x09, 0x98, 0x1e, - 0x7e, 0xc1, 0x6e, 0x75, 0x29, 0x3f, 0xee, 0x2c, 0xc8, 0xcf, 0xb3, 0x3f, - 0x5c, 0xd8, 0x9c, 0x5c, 0xd2, 0x34, 0xec, 0x59, 0x60, 0xd7, 0xc0, 0x1e, - 0x5c, 0x4a, 0x98, 0x30, 0x82, 0xeb, 0x67, 0xfc, 0x01, 0xad, 0xeb, 0x28, - 0xa9, 0x47, 0xf7, 0xea, 0x78, 0xfd, 0x2e, 0xbb, 0x63, 0x62, 0x39, 0xf4, - 0xa0, 0x2c, 0x0e, 0xe6, 0xdf, 0x72, 0x00, 0x7c, 0x36, 0xcb, 0x37, 0x81, - 0x9b, 0x69, 0xbd, 0xda, 0xda, 0x3e, 0x56, 0x8f, 0x94, 0x63, 0x3e, 0x55, - 0x92, 0x4a, 0xfa, 0x75, 0x47, 0x28, 0x7d, 0x21, 0x3f, 0x74, 0x37, 0xa5, - 0x8f, 0x96, 0xe3, 0xea, 0x95, 0xf4, 0x6f, 0xa1, 0xf4, 0xd3, 0x03, 0x63, - 0x88, 0x05, 0xef, 0xd2, 0x48, 0xfa, 0x9a, 0x48, 0xdf, 0xcd, 0x1e, 0x99, - 0xdf, 0x42, 0xf7, 0x0f, 0xc2, 0x56, 0x85, 0x7c, 0xc8, 0xcf, 0x46, 0x4a, - 0xbf, 0x82, 0x1e, 0xd7, 0x87, 0x09, 0x8a, 0xbf, 0xcb, 0xc0, 0xeb, 0xa7, - 0xf4, 0xd8, 0xfc, 0xbf, 0xa6, 0xf3, 0x4d, 0x89, 0x3e, 0x00, 0x23, 0x2c, - 0xfc, 0xc7, 0xf2, 0x76, 0xc1, 0x1b, 0x9a, 0x8b, 0x1e, 0xd5, 0xfc, 0x80, - 0x8e, 0xf2, 0x5d, 0x94, 0x1f, 0xef, 0x56, 0x56, 0xef, 0xc7, 0xfb, 0x39, - 0x5c, 0x87, 0xf2, 0xa9, 0x5e, 0x02, 0x2a, 0x51, 0x5b, 0xd7, 0x11, 0xad, - 0x05, 0xee, 0xfa, 0xe4, 0x26, 0xa3, 0x34, 0xa4, 0x8d, 0xdd, 0x71, 0x83, - 0x67, 0x96, 0xc0, 0x0a, 0x5d, 0x03, 0x2f, 0x26, 0x5e, 0x07, 0x60, 0x07, - 0xdc, 0xaf, 0x23, 0xd9, 0x9c, 0xcf, 0x5f, 0x25, 0xff, 0x4c, 0xdf, 0xd9, - 0xfa, 0x4f, 0x68, 0xab, 0x42, 0xf8, 0xbf, 0x5d, 0xe4, 0xdf, 0xfb, 0x3c, - 0xe3, 0x07, 0xe9, 0xdb, 0x6c, 0xc4, 0x2f, 0xd9, 0x0f, 0xc4, 0x6f, 0x12, - 0xf5, 0x32, 0x1c, 0x27, 0x30, 0x00, 0x2b, 0x52, 0x14, 0x25, 0x19, 0x7e, - 0x5f, 0xe1, 0xe7, 0x4f, 0x23, 0xe7, 0xa9, 0x93, 0x9d, 0x2f, 0x2c, 0x0f, - 0x26, 0xaf, 0xbb, 0x22, 0xe4, 0x6f, 0x81, 0x2e, 0x83, 0xf0, 0x4b, 0xd6, - 0xc7, 0xf8, 0x5b, 0x13, 0x39, 0x5f, 0x94, 0x27, 0xd7, 0x57, 0xe9, 0x7c, - 0xcd, 0x4c, 0x08, 0xeb, 0xed, 0xd6, 0x48, 0x22, 0xa6, 0xc7, 0xcf, 0x2f, - 0x4e, 0xe8, 0x61, 0xf9, 0x44, 0x24, 0x6a, 0x17, 0x11, 0xdd, 0xbf, 0x80, - 0xae, 0xbf, 0x93, 0xb1, 0x94, 0xa8, 0xe5, 0xbe, 0x16, 0x21, 0x6f, 0xf0, - 0x47, 0x94, 0xdf, 0xb3, 0xbd, 0x3e, 0x0b, 0xda, 0x33, 0x2c, 0xcf, 0xc9, - 0xcd, 0x71, 0xfb, 0x0f, 0xee, 0xe1, 0xfd, 0x27, 0xe1, 0xfc, 0x1f, 0x68, - 0x20, 0xf3, 0xd1, 0xac, 0x55, 0xa6, 0x6d, 0x20, 0x7d, 0x2d, 0x25, 0xc0, - 0x18, 0xb1, 0x17, 0xe3, 0x0d, 0xdc, 0x3e, 0x82, 0x06, 0xc0, 0x8f, 0xaa, - 0x82, 0x7c, 0xde, 0x06, 0x3e, 0x3f, 0xa8, 0xa0, 0x09, 0x5a, 0x99, 0xbe, - 0xf1, 0xf3, 0xa4, 0x07, 0xf9, 0xdf, 0x9c, 0xae, 0xcd, 0x5f, 0xb0, 0xf9, - 0x77, 0xd5, 0xab, 0xcd, 0x97, 0xcf, 0x47, 0x6f, 0x15, 0xf9, 0x2c, 0x3c, - 0x43, 0xfa, 0xf7, 0x71, 0xfa, 0x9d, 0x6c, 0xbd, 0x89, 0xf0, 0xfc, 0xf6, - 0x88, 0xe4, 0xaf, 0x3c, 0x13, 0x46, 0x52, 0xa8, 0xa4, 0xa6, 0xbd, 0x72, - 0x14, 0x0c, 0x54, 0xf8, 0x53, 0xe8, 0x20, 0x1a, 0xb0, 0x7f, 0xbc, 0x98, - 0xca, 0x53, 0xa6, 0x67, 0x06, 0xca, 0x8f, 0x15, 0xf5, 0xa7, 0x80, 0x7f, - 0x3d, 0x85, 0xfd, 0xab, 0x0d, 0x77, 0xd5, 0x9d, 0xb9, 0x37, 0x01, 0x6c, - 0x07, 0x14, 0x53, 0x70, 0xff, 0xc1, 0xad, 0x54, 0x1b, 0xbd, 0x26, 0xb4, - 0xdf, 0x1e, 0x38, 0xd1, 0xe6, 0x36, 0x04, 0xce, 0x3f, 0x55, 0xe0, 0x1f, - 0xff, 0x39, 0x5d, 0x1f, 0x7e, 0xda, 0x50, 0x1a, 0xe9, 0x8f, 0x1d, 0xf0, - 0xa7, 0x60, 0x3f, 0x32, 0xdf, 0x84, 0x3f, 0xa8, 0xb4, 0x66, 0xed, 0xf9, - 0xe4, 0x0b, 0x62, 0xe3, 0x07, 0x7e, 0x5e, 0x7e, 0xba, 0x28, 0x74, 0xfd, - 0x6c, 0x3f, 0xbc, 0xbb, 0x92, 0xc2, 0x79, 0xf0, 0x80, 0x6b, 0x04, 0xfd, - 0x85, 0xee, 0xad, 0x35, 0x82, 0xe7, 0x93, 0xcd, 0xa7, 0xcb, 0x2b, 0x7c, - 0xf9, 0x22, 0x10, 0xaa, 0x1f, 0xec, 0x97, 0x67, 0xf5, 0xda, 0xf8, 0x8b, - 0xe6, 0xa7, 0xcd, 0x38, 0xbb, 0xf4, 0xdb, 0xcf, 0x32, 0xfd, 0xd5, 0x67, - 0x99, 0xfe, 0xf5, 0x74, 0x7f, 0x40, 0xb1, 0x4d, 0x8f, 0x8b, 0x1f, 0xdf, - 0x90, 0xfc, 0x53, 0xd4, 0x79, 0x59, 0x12, 0x7e, 0x5e, 0xd8, 0x79, 0x70, - 0xdf, 0x95, 0xe2, 0xcd, 0x89, 0x14, 0xa2, 0x97, 0x83, 0xfe, 0x17, 0xfb, - 0x8b, 0xe6, 0x4d, 0xa9, 0xe2, 0x36, 0xdf, 0x5e, 0x1d, 0xbe, 0x89, 0xd9, - 0xcf, 0x5d, 0x46, 0x43, 0x72, 0x10, 0xda, 0xb2, 0xd3, 0xc9, 0xfc, 0x30, - 0xc4, 0xc7, 0xbc, 0x8e, 0xd7, 0xf9, 0xf6, 0xb3, 0x4e, 0x0b, 0xfa, 0x17, - 0x84, 0xbd, 0x34, 0x2d, 0x9c, 0x7f, 0xe6, 0xdf, 0x93, 0xa0, 0x44, 0xce, - 0x17, 0xf6, 0xd7, 0x93, 0x57, 0x11, 0x7e, 0xa1, 0x3d, 0x5e, 0x34, 0x17, - 0xa1, 0x53, 0xfe, 0x59, 0x3f, 0xe4, 0xa8, 0x81, 0x6a, 0xc0, 0xf0, 0xbc, - 0x6e, 0x8c, 0xb7, 0xcf, 0x34, 0xfe, 0x73, 0x57, 0x5f, 0x23, 0xe8, 0xf3, - 0xf7, 0xf9, 0xfe, 0x3c, 0xc1, 0xe2, 0xe9, 0x6c, 0x30, 0x5e, 0x64, 0xf3, - 0xe9, 0x79, 0xe8, 0x4b, 0x8d, 0x2d, 0xa4, 0xf8, 0xaf, 0x01, 0x61, 0x3e, - 0x38, 0xae, 0x05, 0x61, 0x66, 0xff, 0xbc, 0x87, 0x0c, 0xc1, 0xff, 0x31, - 0x79, 0x59, 0xe0, 0x35, 0xad, 0x01, 0x6d, 0xb5, 0x77, 0x8a, 0xc4, 0xcf, - 0xd8, 0x5e, 0x8c, 0x67, 0x7c, 0x79, 0x65, 0x04, 0x79, 0x21, 0xe6, 0x56, - 0x08, 0xfb, 0xcf, 0xe3, 0x0f, 0x22, 0x2f, 0x6c, 0xbf, 0x7c, 0x79, 0x21, - 0xf6, 0x17, 0x64, 0x03, 0xf2, 0x42, 0x0b, 0xc8, 0xdf, 0x50, 0xef, 0xe3, - 0x5f, 0xa4, 0xe4, 0xcf, 0xd8, 0x2f, 0xc7, 0xb9, 0xbc, 0xd6, 0xb3, 0xf8, - 0xa2, 0x01, 0xaf, 0x9f, 0xf6, 0x2d, 0xa6, 0x0e, 0x33, 0xf9, 0xd4, 0xe9, - 0xc1, 0x71, 0xf4, 0x78, 0xb2, 0xde, 0x25, 0x82, 0xbe, 0x33, 0x79, 0x50, - 0x79, 0xb9, 0x4c, 0x5e, 0xc4, 0x52, 0x8e, 0xa7, 0x7d, 0x79, 0xa4, 0x2b, - 0xf4, 0x67, 0x59, 0x3a, 0x54, 0xff, 0x89, 0x3c, 0xa0, 0x3c, 0xdd, 0x66, - 0x5f, 0x1e, 0x48, 0xbc, 0xad, 0x75, 0x01, 0x79, 0xd0, 0x75, 0xbc, 0x60, - 0x32, 0xfc, 0x5b, 0xa7, 0x24, 0x8f, 0xb7, 0xb8, 0x3c, 0x5e, 0x63, 0xcf, - 0x6f, 0x20, 0xf1, 0x31, 0x95, 0xc7, 0xcb, 0x4c, 0x1e, 0x4f, 0x08, 0xe3, - 0x35, 0xca, 0x03, 0x0c, 0x32, 0x79, 0x60, 0x05, 0x1c, 0xaf, 0xf7, 0xe5, - 0x51, 0x5f, 0xa1, 0x1f, 0xcb, 0xe3, 0xf4, 0x03, 0xce, 0xc6, 0xf7, 0x09, - 0x76, 0x9e, 0x50, 0x33, 0xcb, 0xac, 0x80, 0x3c, 0x98, 0xbf, 0x7a, 0x11, - 0x85, 0x23, 0xe8, 0x3c, 0xb5, 0x4c, 0x49, 0x1e, 0xbf, 0xaa, 0xd0, 0x8f, - 0xde, 0x46, 0x62, 0x3f, 0x68, 0xbc, 0xd9, 0x0c, 0xd7, 0x69, 0x30, 0xf9, - 0x0f, 0xc2, 0x1d, 0x71, 0x50, 0x5c, 0x04, 0xf1, 0xd7, 0xeb, 0xc1, 0xf9, - 0xb5, 0xea, 0x4b, 0xad, 0xf2, 0x41, 0xd8, 0xcb, 0x45, 0x7b, 0x23, 0xe8, - 0x0b, 0xb7, 0xc7, 0x4c, 0x3e, 0x78, 0x74, 0x8f, 0x85, 0xf8, 0x03, 0x28, - 0x1e, 0x84, 0x51, 0xc9, 0xee, 0xa6, 0x20, 0xfe, 0x6d, 0x53, 0x92, 0xcf, - 0xff, 0xf8, 0xf6, 0x86, 0x3d, 0x3f, 0x17, 0xb8, 0x3f, 0xda, 0x86, 0xc5, - 0xfc, 0x6d, 0x9d, 0x11, 0x1c, 0xaf, 0x51, 0x1e, 0x1e, 0x97, 0x07, 0x1e, - 0x1e, 0xcf, 0xfa, 0xf2, 0xc8, 0x56, 0xe8, 0xcb, 0x4a, 0x51, 0x5f, 0x62, - 0xed, 0x2f, 0x0a, 0x50, 0x16, 0x35, 0x4a, 0xf6, 0xd7, 0xbe, 0xd1, 0xf2, - 0xf1, 0x9b, 0xa7, 0x24, 0x0f, 0xda, 0x65, 0xd1, 0xe7, 0xef, 0xff, 0x44, - 0x63, 0xe0, 0x7e, 0x9b, 0xf3, 0xe5, 0xc1, 0xed, 0x6d, 0x63, 0x58, 0xfc, - 0xc8, 0xe4, 0x31, 0xfe, 0xb9, 0x88, 0x7c, 0x03, 0x19, 0x4d, 0x30, 0x79, - 0x50, 0x79, 0x15, 0x07, 0x22, 0xed, 0xf3, 0x7a, 0x62, 0x9f, 0x8b, 0x9b, - 0x69, 0x7e, 0x83, 0xe9, 0xcb, 0x44, 0xf0, 0xbe, 0xe7, 0x45, 0xe2, 0x6b, - 0x68, 0xbf, 0x86, 0x2d, 0x50, 0x5c, 0x82, 0xca, 0xdc, 0x63, 0x81, 0xfb, - 0x18, 0xc6, 0x47, 0xd3, 0xdd, 0x39, 0xa2, 0x7d, 0xba, 0xac, 0xce, 0xf7, - 0xcf, 0xfb, 0x68, 0xb8, 0x9c, 0x04, 0x2b, 0x96, 0xed, 0x35, 0xc0, 0x8e, - 0x3e, 0xd7, 0xe0, 0x8b, 0x71, 0x75, 0x0d, 0xc6, 0xc3, 0xa0, 0xc5, 0xce, - 0x6e, 0x8f, 0x8a, 0x27, 0xf3, 0xdb, 0xa0, 0x27, 0x71, 0x97, 0xdb, 0xa9, - 0x5c, 0x16, 0x55, 0xd0, 0xc1, 0x41, 0xfd, 0xf0, 0xd8, 0x56, 0xf8, 0xef, - 0x4d, 0x87, 0x1f, 0xc2, 0x02, 0x1d, 0x6a, 0xb2, 0x5f, 0x24, 0xca, 0x60, - 0x5d, 0x41, 0xf0, 0x6d, 0x16, 0xaf, 0xc2, 0x87, 0xe3, 0x78, 0x95, 0xe5, - 0x8b, 0xe0, 0x69, 0x0d, 0xdd, 0x4f, 0x3a, 0xee, 0xf6, 0x0b, 0xf7, 0xd9, - 0xd5, 0xd4, 0x5f, 0x32, 0x79, 0xec, 0x95, 0xee, 0x7b, 0x7a, 0xe0, 0xbe, - 0x17, 0xd4, 0x67, 0x66, 0x7f, 0x3a, 0x56, 0x5f, 0x13, 0xbc, 0x3f, 0xba, - 0x4c, 0xbe, 0x80, 0x3b, 0xfc, 0x7e, 0x10, 0xbc, 0x2f, 0x31, 0x79, 0xc3, - 0xf3, 0x42, 0x35, 0xa6, 0x7f, 0x86, 0xef, 0x8f, 0xc6, 0x2d, 0x5f, 0xff, - 0xad, 0x0a, 0x7b, 0xe0, 0xc4, 0xd8, 0x03, 0x6e, 0xaf, 0x98, 0x3d, 0xc0, - 0xda, 0xb9, 0xb7, 0x2e, 0x68, 0x0f, 0xf6, 0x4c, 0x83, 0x3d, 0x58, 0x65, - 0xc8, 0xf6, 0x60, 0x82, 0xf0, 0xcf, 0xd6, 0xb3, 0xff, 0xd4, 0x0c, 0x85, - 0xf3, 0x5f, 0xdc, 0x51, 0xdd, 0x1e, 0x26, 0x6b, 0xf2, 0x17, 0x55, 0xf9, - 0x9f, 0xcb, 0x7e, 0x37, 0xc3, 0xd6, 0xeb, 0x21, 0x7f, 0x53, 0xb0, 0x53, - 0xe8, 0x3e, 0x45, 0xe2, 0xcd, 0xfe, 0xe4, 0x54, 0xe4, 0x73, 0x83, 0x51, - 0xe1, 0x4f, 0x34, 0x41, 0x3e, 0xb9, 0x7e, 0x0a, 0x5b, 0x52, 0xfc, 0x2b, - 0xd1, 0x23, 0x6b, 0xf5, 0x0c, 0x96, 0x9f, 0xc0, 0xf1, 0x01, 0x8c, 0x57, - 0x2d, 0x07, 0xd8, 0x49, 0xe4, 0x0f, 0xb3, 0x9e, 0x85, 0xfc, 0xa1, 0xfd, - 0x1e, 0xd5, 0x67, 0x57, 0x43, 0xf9, 0xcf, 0x61, 0x30, 0x79, 0xdd, 0x65, - 0xf0, 0xfe, 0xe9, 0x82, 0x2e, 0x7d, 0x05, 0x56, 0xf9, 0x07, 0xb5, 0x12, - 0xb4, 0x07, 0xd0, 0xda, 0xed, 0xef, 0x34, 0xc1, 0xb3, 0x8f, 0xec, 0x21, - 0xf9, 0x51, 0x84, 0xd9, 0x63, 0x1d, 0x48, 0x20, 0xd2, 0x1b, 0x43, 0xf2, - 0xa5, 0x30, 0x9e, 0x66, 0xf6, 0x55, 0x0f, 0x9e, 0x97, 0xa7, 0x22, 0xed, - 0x8f, 0x74, 0x3e, 0x94, 0xed, 0x79, 0x26, 0xd6, 0xff, 0xa3, 0x5f, 0x6d, - 0x39, 0x1e, 0xf2, 0x3a, 0xeb, 0x7c, 0xfc, 0x0b, 0xa7, 0xa4, 0xcf, 0xf7, - 0xf1, 0xfd, 0xe2, 0xfe, 0xab, 0x49, 0xd8, 0xaf, 0xfe, 0xfe, 0x26, 0x15, - 0x7d, 0x7e, 0xaa, 0x6a, 0x3c, 0x18, 0x65, 0x9f, 0xc4, 0xf3, 0x1c, 0xc5, - 0xef, 0xc3, 0x95, 0xe7, 0x4f, 0xe4, 0x17, 0x4c, 0xaa, 0xf0, 0x0b, 0x46, - 0xaa, 0x9e, 0xbf, 0x28, 0x7e, 0x6b, 0x3b, 0x7f, 0x5b, 0x2b, 0xcf, 0xc3, - 0x2c, 0x91, 0xdf, 0xfe, 0x59, 0x71, 0xfe, 0xd1, 0xaf, 0x0f, 0x44, 0xd8, - 0x73, 0xf0, 0x3e, 0xd6, 0x7f, 0xe2, 0x50, 0xc6, 0x53, 0x8c, 0x7f, 0x66, - 0xbf, 0xd9, 0xf9, 0x99, 0x43, 0xf4, 0xbf, 0x45, 0x83, 0xf6, 0x18, 0xe7, - 0x6f, 0xa1, 0x81, 0xee, 0x69, 0x48, 0xa1, 0x16, 0xff, 0xc4, 0x0a, 0x72, - 0x1e, 0x4e, 0x92, 0xfe, 0x2e, 0xcb, 0x06, 0x49, 0x1b, 0x84, 0x9c, 0x07, - 0x2d, 0x78, 0x1e, 0x90, 0xfa, 0x35, 0xa0, 0xff, 0xcb, 0x2f, 0xe1, 0xf1, - 0x06, 0x32, 0xc1, 0x4c, 0x9e, 0x39, 0xd0, 0x05, 0x56, 0x59, 0x81, 0xfc, - 0x91, 0x96, 0xd5, 0x68, 0x7e, 0x3c, 0x29, 0xf5, 0x4f, 0x26, 0xc2, 0xfc, - 0x03, 0xd9, 0x9f, 0xe7, 0x75, 0x7f, 0x3f, 0x02, 0xf2, 0xf6, 0xe2, 0xee, - 0x5f, 0x6c, 0xbf, 0x58, 0x3b, 0xf0, 0xe4, 0x6c, 0xf2, 0x3c, 0x1e, 0x0f, - 0xd4, 0x68, 0x2f, 0x87, 0xd8, 0xfc, 0xd9, 0x2c, 0x7f, 0x94, 0x46, 0xf1, - 0x95, 0x4b, 0xec, 0x63, 0x0e, 0x8d, 0xe6, 0x6c, 0x13, 0x58, 0xcb, 0x88, - 0x3d, 0x02, 0xeb, 0x58, 0x3e, 0xfa, 0xd4, 0x3c, 0x92, 0x7f, 0x82, 0xbc, - 0xa7, 0x52, 0xc8, 0x8e, 0xba, 0x83, 0x48, 0x1f, 0x69, 0xfe, 0xd3, 0x7d, - 0x40, 0xb3, 0x63, 0xf6, 0x7b, 0xaf, 0x94, 0x0f, 0x3d, 0xca, 0xef, 0xbf, - 0x3b, 0x59, 0x3d, 0x08, 0x20, 0xfe, 0xd9, 0xfc, 0x4f, 0xdc, 0x2c, 0xfa, - 0xeb, 0x7f, 0xe2, 0xf3, 0x59, 0xfe, 0xae, 0xd7, 0x22, 0xeb, 0x0f, 0xe0, - 0x13, 0x79, 0x18, 0x5c, 0x1e, 0x84, 0x9f, 0x14, 0xc9, 0xdf, 0x95, 0xe2, - 0xf3, 0x77, 0xee, 0x42, 0x62, 0x7f, 0x58, 0xfe, 0xa1, 0x78, 0x8a, 0xe6, - 0x1f, 0xb2, 0x82, 0xbd, 0xf4, 0xf3, 0x6f, 0x62, 0xbe, 0xf4, 0x99, 0xee, - 0xf0, 0xfa, 0x86, 0xec, 0xff, 0xd9, 0x7a, 0xd2, 0x11, 0xf9, 0x68, 0x26, - 0x9f, 0x7a, 0x29, 0x7f, 0x9d, 0xa9, 0x92, 0xbf, 0xce, 0xd2, 0xf1, 0x1c, - 0x4b, 0x16, 0x4a, 0xf8, 0xb3, 0x02, 0xf1, 0x0e, 0x96, 0x6f, 0x64, 0x7d, - 0x26, 0xab, 0x89, 0xf5, 0x8d, 0xf0, 0x7c, 0xf8, 0xb1, 0x6e, 0x31, 0xde, - 0x4f, 0xeb, 0xb3, 0xcd, 0xb8, 0xfc, 0xb9, 0x34, 0xbf, 0xa8, 0x38, 0x1f, - 0xd4, 0xd3, 0xf9, 0xec, 0x79, 0x33, 0x29, 0x2c, 0xcf, 0xa7, 0xeb, 0x2b, - 0x3d, 0x3a, 0xf6, 0x7e, 0x22, 0x2e, 0x9f, 0xfc, 0x8f, 0xb7, 0xab, 0xe5, - 0x93, 0xbf, 0xf8, 0x27, 0xb5, 0xd6, 0x4f, 0x79, 0x7c, 0xa7, 0x94, 0x9f, - 0xdf, 0x68, 0xab, 0xf1, 0x33, 0xae, 0xab, 0xcd, 0x7f, 0x6f, 0x95, 0x2a, - 0xff, 0xe1, 0xf1, 0x14, 0xaf, 0x1f, 0x48, 0xf4, 0xef, 0xbd, 0x5d, 0x90, - 0x3f, 0x28, 0xda, 0xd9, 0xd8, 0x7c, 0xed, 0x2f, 0x8d, 0x70, 0x7e, 0x6a, - 0xa5, 0x9f, 0x9f, 0x97, 0x8d, 0xad, 0x17, 0xec, 0x79, 0x44, 0x79, 0xbd, - 0x29, 0x95, 0xfd, 0xfa, 0xf6, 0x6d, 0xa2, 0x7e, 0xda, 0x55, 0xf8, 0xf9, - 0xad, 0xa6, 0xb6, 0x5f, 0xff, 0xb2, 0x5f, 0xa4, 0x5f, 0x4d, 0x9e, 0x69, - 0x53, 0x8d, 0xfe, 0x75, 0x91, 0xf5, 0x9d, 0x7a, 0xa9, 0x5e, 0xc1, 0xfc, - 0x31, 0xa9, 0x6f, 0xb1, 0xfb, 0x51, 0xe9, 0xa3, 0x0b, 0x89, 0xff, 0xdd, - 0x63, 0xe3, 0x6c, 0xee, 0x67, 0xe6, 0xf7, 0x6a, 0x61, 0xf7, 0x3f, 0xb9, - 0x9e, 0x9b, 0x61, 0xe7, 0x1d, 0x5e, 0xee, 0x5c, 0x85, 0xf5, 0x57, 0xdb, - 0xef, 0xf6, 0x3f, 0x50, 0x5b, 0xff, 0x8d, 0xfb, 0xaa, 0xe4, 0xc3, 0xc1, - 0x92, 0xb8, 0x7c, 0x38, 0xbc, 0x56, 0x90, 0xfa, 0x45, 0xed, 0xf3, 0xdb, - 0xc4, 0xf9, 0x65, 0x27, 0x76, 0x3e, 0x00, 0xf3, 0x95, 0xec, 0xa3, 0x46, - 0xed, 0x61, 0xd4, 0x7a, 0xaf, 0x58, 0xa6, 0x26, 0x9f, 0xc5, 0x8d, 0x22, - 0xfd, 0xa6, 0x3b, 0xb4, 0x58, 0xf9, 0xff, 0x78, 0x49, 0x95, 0xf3, 0x9c, - 0x17, 0xd7, 0xbb, 0xb5, 0x5e, 0x3c, 0xcf, 0xb7, 0x6c, 0x01, 0xdc, 0x5f, - 0xe1, 0xf9, 0x3d, 0xe2, 0xfc, 0x51, 0x69, 0x7e, 0xc3, 0x31, 0x23, 0x96, - 0x9f, 0x27, 0xaf, 0x52, 0x5b, 0xef, 0xcd, 0x75, 0x6a, 0xf3, 0x3f, 0xb8, - 0x40, 0x6d, 0xfe, 0xf6, 0x55, 0x6a, 0xf3, 0xff, 0x4e, 0xb1, 0xde, 0x79, - 0x2a, 0xab, 0xe8, 0x3f, 0xd6, 0xa8, 0xcd, 0xdf, 0x70, 0xe3, 0xd4, 0xfa, - 0x87, 0x18, 0xfe, 0x5b, 0xd7, 0xab, 0x3d, 0xef, 0xde, 0x1f, 0x19, 0x6a, - 0xe7, 0xf9, 0x27, 0x6a, 0xf3, 0x8f, 0xbd, 0xae, 0x36, 0xff, 0x7b, 0x9f, - 0x56, 0xe3, 0xff, 0x5b, 0xcf, 0xa9, 0xd1, 0xdf, 0xa6, 0x68, 0xbf, 0xc7, - 0x93, 0xe1, 0xf3, 0x75, 0x30, 0x72, 0x94, 0xd4, 0xe7, 0x68, 0xfc, 0x09, - 0x32, 0x42, 0xfc, 0xea, 0xd7, 0x27, 0x58, 0x3f, 0x46, 0x44, 0x3c, 0x5c, - 0x5c, 0x22, 0xc6, 0xc3, 0x2e, 0x8b, 0x87, 0xc5, 0x7a, 0x76, 0x20, 0x1e, - 0xd6, 0xe2, 0xee, 0x7b, 0xff, 0x61, 0x51, 0xfa, 0x2e, 0x8a, 0x8f, 0xf7, - 0x42, 0x8c, 0x7e, 0xad, 0x38, 0xa4, 0x8d, 0x45, 0xcd, 0x6f, 0x54, 0x3c, - 0x8f, 0xff, 0x9a, 0x94, 0xfa, 0x1b, 0x54, 0xe7, 0x5b, 0x4e, 0x6c, 0xfd, - 0xfa, 0x70, 0xcd, 0xdf, 0x9f, 0x68, 0x98, 0x52, 0xfc, 0xf7, 0xed, 0x88, - 0x78, 0x88, 0x57, 0xea, 0x69, 0xbc, 0x8e, 0xea, 0x39, 0x19, 0x74, 0xd6, - 0x69, 0xff, 0x10, 0xf6, 0xc7, 0x6e, 0x32, 0x13, 0xa4, 0xaf, 0x52, 0xdf, - 0xd7, 0xc1, 0x55, 0xb1, 0xf5, 0xfd, 0xca, 0x7a, 0xef, 0x88, 0x94, 0xff, - 0xe2, 0xfa, 0x14, 0x9e, 0xef, 0x92, 0xf4, 0xcb, 0xa4, 0xfa, 0x95, 0x6b, - 0xab, 0x56, 0xff, 0xa5, 0xfa, 0x96, 0x63, 0x05, 0x39, 0xe6, 0xff, 0x77, - 0x09, 0xcf, 0xf7, 0xda, 0x4f, 0x68, 0x6e, 0xcb, 0x85, 0xa9, 0x51, 0x93, - 0x3c, 0xdf, 0x05, 0x2e, 0xe9, 0x07, 0x9b, 0xdc, 0x04, 0x4a, 0x07, 0x48, - 0x3d, 0x52, 0x9f, 0x89, 0x23, 0x34, 0xfa, 0xfe, 0xd6, 0x7d, 0x2c, 0x81, - 0x4d, 0xde, 0x87, 0xec, 0x86, 0x1a, 0x89, 0x4b, 0x4c, 0x9a, 0xe7, 0xcd, - 0xb0, 0xfd, 0x7a, 0x03, 0xda, 0x17, 0x1d, 0x8c, 0xb1, 0x7c, 0xb4, 0x3b, - 0xc0, 0xfa, 0xe9, 0x72, 0x16, 0xee, 0xa7, 0x43, 0xf4, 0xb7, 0xcf, 0x1f, - 0x43, 0xf3, 0x93, 0xb3, 0x83, 0xf4, 0x2f, 0x12, 0xe9, 0xf7, 0x00, 0x6f, - 0x04, 0xd1, 0x77, 0x35, 0x2f, 0x8f, 0xe8, 0x57, 0xeb, 0x07, 0x09, 0xcd, - 0x17, 0x76, 0xe2, 0x7c, 0xaf, 0x4d, 0xea, 0xd7, 0x6c, 0x2b, 0xeb, 0xc3, - 0xf4, 0x8b, 0xd6, 0xfb, 0xca, 0x1f, 0xeb, 0xac, 0x5e, 0xf1, 0x25, 0x16, - 0x52, 0x44, 0xe4, 0x7b, 0x90, 0x84, 0xd1, 0x17, 0x0d, 0x2c, 0x80, 0x9f, - 0x25, 0xad, 0x47, 0xaf, 0xa0, 0xc7, 0xd6, 0xe7, 0x7d, 0x14, 0xb6, 0x3e, - 0x39, 0x5f, 0x8d, 0xfa, 0x59, 0x96, 0xa3, 0x7e, 0x16, 0xc4, 0x7f, 0x02, - 0xf7, 0xb3, 0x30, 0x7e, 0xac, 0x28, 0xfe, 0xc9, 0xfe, 0x5d, 0xc5, 0xfb, - 0xe3, 0x00, 0xd8, 0x67, 0xf8, 0xf8, 0x28, 0x03, 0xef, 0x6a, 0x98, 0x5f, - 0xab, 0x92, 0x5f, 0x00, 0xae, 0x95, 0xe5, 0x4f, 0xde, 0xdf, 0x1b, 0x35, - 0xbc, 0xa2, 0x61, 0x47, 0xfa, 0xab, 0x97, 0xcd, 0xe8, 0xf8, 0x05, 0xfd, - 0xfc, 0x7c, 0x3c, 0xfe, 0xfe, 0xfd, 0x8b, 0xf1, 0xa9, 0xf5, 0x8f, 0x55, - 0x3b, 0x5f, 0x26, 0x3c, 0x5f, 0xab, 0xcc, 0xe0, 0xf9, 0x8a, 0xca, 0x5f, - 0x84, 0x9f, 0x27, 0xbe, 0x1f, 0xd6, 0x7c, 0xac, 0xcf, 0xe8, 0x81, 0x6e, - 0xda, 0xae, 0x6b, 0xaf, 0x5f, 0x06, 0x4a, 0x8d, 0xe0, 0x80, 0x9d, 0xc9, - 0x18, 0x7a, 0xfd, 0xd0, 0x97, 0xb4, 0xa1, 0x7e, 0xcd, 0x1e, 0xd6, 0xc6, - 0xe6, 0x3c, 0x63, 0x97, 0xb6, 0xff, 0xed, 0x42, 0xaf, 0x1d, 0xde, 0x86, - 0xf6, 0xcf, 0x48, 0x78, 0x69, 0x6f, 0x09, 0x59, 0x87, 0xd5, 0x9a, 0xc3, - 0x79, 0x88, 0xa1, 0xf9, 0x88, 0x3f, 0xef, 0xbb, 0xc4, 0x92, 0x78, 0xe6, - 0x37, 0xec, 0x92, 0x81, 0xee, 0xe3, 0x16, 0xb3, 0x2f, 0x37, 0x09, 0xef, - 0xb3, 0x57, 0xed, 0x3f, 0xe6, 0xfd, 0x4f, 0xef, 0xe0, 0xf3, 0xee, 0xbf, - 0x86, 0xb9, 0x82, 0xe8, 0x1b, 0xcd, 0x97, 0x27, 0x1e, 0xe4, 0xfd, 0x12, - 0x46, 0x09, 0xe7, 0xf7, 0xf2, 0xa0, 0x48, 0xf2, 0x7b, 0x7a, 0xb1, 0x31, - 0x35, 0x68, 0x10, 0x0d, 0xdf, 0x01, 0xc0, 0x7a, 0x76, 0x3e, 0x72, 0x58, - 0xbf, 0x34, 0x11, 0x1f, 0xed, 0x86, 0x9b, 0x16, 0xfb, 0x13, 0x00, 0xf8, - 0x5a, 0x12, 0xf5, 0x4b, 0x41, 0x61, 0x8f, 0x51, 0xcb, 0x59, 0x5a, 0x9c, - 0x60, 0xfb, 0x91, 0x06, 0x53, 0xb1, 0xe7, 0x72, 0x3e, 0xe7, 0xdf, 0x0e, - 0x4a, 0xfd, 0x9f, 0xac, 0x1f, 0x57, 0x03, 0xc5, 0xf9, 0x68, 0xd1, 0xc5, - 0xc1, 0xb4, 0x9b, 0x43, 0xfa, 0xd9, 0x9a, 0x0a, 0xe6, 0xd3, 0xe1, 0x25, - 0xc9, 0x73, 0x5b, 0x94, 0x9f, 0xe7, 0xbd, 0x73, 0x50, 0xc8, 0xff, 0x80, - 0x5f, 0x1f, 0x8c, 0xd7, 0xdf, 0xff, 0x3a, 0x38, 0xc5, 0xfe, 0x4e, 0xa9, - 0x7e, 0x68, 0x85, 0xec, 0x5f, 0x1a, 0xc5, 0xca, 0x2f, 0x8a, 0xf1, 0xfc, - 0xdf, 0x98, 0x8c, 0x5e, 0x97, 0x4e, 0xfc, 0x35, 0xf3, 0x27, 0xbb, 0x24, - 0xff, 0xc2, 0xfb, 0xcb, 0x85, 0xfa, 0xde, 0x7f, 0xc7, 0xaf, 0x87, 0x3f, - 0xdf, 0x77, 0x78, 0x2b, 0xd9, 0x79, 0x13, 0x60, 0xff, 0x7b, 0x66, 0x14, - 0xf6, 0xeb, 0xc7, 0x39, 0x2a, 0x7f, 0x61, 0xbc, 0xc2, 0xbe, 0x91, 0xec, - 0x66, 0x22, 0x50, 0x8f, 0x43, 0x3f, 0x27, 0xa7, 0x5b, 0x7f, 0x3e, 0x94, - 0xf7, 0x87, 0xe9, 0x8f, 0x0b, 0x8a, 0x9f, 0x6c, 0xd9, 0xae, 0xd3, 0xe7, - 0x43, 0x7a, 0x57, 0x8a, 0xfa, 0x23, 0x7f, 0x0f, 0xad, 0x46, 0xfd, 0xf9, - 0xe8, 0x5c, 0xe9, 0x8f, 0xd4, 0x1f, 0x63, 0xc9, 0xfb, 0x03, 0xd1, 0x2d, - 0xd4, 0x22, 0xe4, 0x45, 0xea, 0x8f, 0x41, 0xe2, 0xb7, 0x7e, 0x4d, 0xca, - 0xd7, 0x4a, 0xfa, 0x24, 0xe8, 0x0f, 0x48, 0x1c, 0xaa, 0xa6, 0x3f, 0x2b, - 0xa5, 0x7c, 0x33, 0xad, 0x97, 0x57, 0xd6, 0x77, 0x0c, 0x31, 0xbe, 0x86, - 0xfb, 0x8c, 0xf3, 0xcd, 0x45, 0x10, 0xdf, 0x2f, 0xba, 0x20, 0x3e, 0xfe, - 0xf1, 0xde, 0x89, 0x8a, 0xb7, 0x35, 0x1c, 0x6f, 0x4f, 0x3e, 0x66, 0xa2, - 0xf1, 0xf4, 0xd7, 0xe7, 0x23, 0x6b, 0xe2, 0xbd, 0xf4, 0x74, 0x11, 0x94, - 0xb1, 0x3d, 0xe4, 0xfd, 0x6d, 0x1a, 0xee, 0x17, 0x6d, 0xcb, 0x6e, 0x73, - 0x1b, 0xf6, 0xae, 0xc8, 0xa5, 0x26, 0x0d, 0x14, 0x6f, 0x93, 0xf3, 0x80, - 0xac, 0xfb, 0x32, 0xe0, 0x26, 0x82, 0xf5, 0x96, 0x7e, 0xa1, 0x7f, 0xf9, - 0xc5, 0x05, 0x81, 0x7c, 0x0d, 0xea, 0x47, 0x9e, 0x5c, 0x8c, 0xca, 0x28, - 0xfe, 0x7c, 0xab, 0xc6, 0xf9, 0x26, 0x9a, 0x6f, 0xc3, 0x43, 0xb0, 0x45, - 0x03, 0x83, 0xe1, 0xf3, 0x4d, 0xa8, 0x1b, 0xa3, 0x9b, 0x69, 0x3c, 0x6b, - 0x65, 0xa9, 0x7d, 0x24, 0xfb, 0x19, 0x36, 0x3f, 0x19, 0x9c, 0x1f, 0xa1, - 0xcf, 0x7f, 0x19, 0x91, 0x9f, 0xae, 0xe8, 0x9f, 0xcf, 0x21, 0xfd, 0x40, - 0xce, 0xfb, 0x7d, 0xad, 0x34, 0xe8, 0xeb, 0x47, 0x3a, 0x52, 0x3f, 0xb2, - 0x86, 0x93, 0x0c, 0xde, 0x9f, 0x3a, 0x63, 0xfb, 0xdb, 0x43, 0xea, 0x5b, - 0xcc, 0xe2, 0x64, 0x43, 0xeb, 0xd5, 0xf8, 0x3f, 0x3b, 0x52, 0xe8, 0x3c, - 0x7b, 0x7e, 0x7f, 0x08, 0xe7, 0x9f, 0x1c, 0x65, 0xfe, 0x49, 0xa3, 0x7c, - 0x78, 0xbf, 0xec, 0x41, 0x23, 0x50, 0x5f, 0xd2, 0xd4, 0xf8, 0xbb, 0x93, - 0xf1, 0x97, 0x88, 0xea, 0x5f, 0x6c, 0xc0, 0xf1, 0x1e, 0xd3, 0xdf, 0x9d, - 0x5a, 0xb0, 0xfe, 0x22, 0xe7, 0xf7, 0xc3, 0xf3, 0xf3, 0x2f, 0x04, 0xf8, - 0x0b, 0xe7, 0xa7, 0x2b, 0x11, 0x9d, 0x9f, 0xeb, 0xc4, 0x16, 0x0e, 0xe2, - 0xeb, 0xd5, 0xeb, 0x0b, 0xaa, 0xf4, 0x23, 0xef, 0x8b, 0xa0, 0xe6, 0x7c, - 0x72, 0xac, 0xbd, 0x97, 0xed, 0x77, 0x44, 0xfe, 0xaf, 0x68, 0x04, 0xfa, - 0xa3, 0xc5, 0xfb, 0x69, 0xeb, 0x34, 0xd1, 0x6f, 0x63, 0xfd, 0xbc, 0xe4, - 0xfd, 0xa0, 0x1c, 0xa3, 0xdf, 0x3c, 0x4d, 0xf4, 0x49, 0xbf, 0x33, 0xd2, - 0x67, 0x6c, 0xaf, 0x9a, 0x79, 0xff, 0xc5, 0x34, 0xd1, 0x27, 0xfd, 0xce, - 0xdc, 0x1f, 0xf3, 0xfe, 0x8e, 0x75, 0xd3, 0x44, 0x9f, 0xf4, 0x3b, 0x33, - 0xff, 0x5f, 0xe4, 0xf5, 0xc7, 0x75, 0xcc, 0xbf, 0x98, 0x31, 0xe7, 0xc9, - 0x5b, 0xbd, 0xc8, 0x9a, 0xec, 0xee, 0x41, 0xb7, 0xdd, 0x47, 0xd9, 0xf7, - 0x42, 0x4c, 0x16, 0x8f, 0xd6, 0xe2, 0x8f, 0x77, 0x7e, 0x2f, 0x90, 0x9f, - 0x48, 0xf8, 0xfa, 0x8e, 0xd9, 0xc9, 0x04, 0xf4, 0x01, 0x9f, 0xbe, 0xe7, - 0x02, 0xfd, 0x45, 0xfd, 0xec, 0x7b, 0x3f, 0x35, 0x7d, 0x9f, 0xa4, 0xba, - 0x7e, 0x73, 0xff, 0x67, 0x56, 0xf1, 0x7f, 0xd4, 0x3f, 0xc2, 0x28, 0x1c, - 0xfb, 0x3f, 0x10, 0x5f, 0x6f, 0xf5, 0x88, 0xfd, 0xc8, 0x61, 0x7f, 0x07, - 0x6f, 0xb6, 0xc5, 0xd3, 0xd7, 0xc1, 0xfb, 0x47, 0x9e, 0xc7, 0xe7, 0x16, - 0xb9, 0xcf, 0xb9, 0x26, 0xf2, 0xe7, 0x83, 0x4f, 0xb6, 0xad, 0xde, 0xa2, - 0x7b, 0x23, 0xda, 0x18, 0x48, 0x43, 0x7b, 0xed, 0xb6, 0x3f, 0x75, 0xe4, - 0x8a, 0x49, 0x0d, 0x9a, 0x9e, 0xfc, 0x95, 0x6b, 0x07, 0x74, 0x74, 0x1f, - 0xf8, 0x41, 0xdb, 0x3a, 0xf0, 0x53, 0x72, 0x1f, 0x08, 0x5d, 0xdf, 0xf3, - 0x29, 0x5f, 0x9e, 0x4e, 0x30, 0x3f, 0x84, 0xf7, 0x62, 0x43, 0xc6, 0xff, - 0xde, 0x16, 0xaf, 0xb7, 0x47, 0x7c, 0x6f, 0x8b, 0xd5, 0xf7, 0xc5, 0xf7, - 0xbd, 0x0e, 0xf9, 0xf4, 0x8b, 0x6d, 0x35, 0xe4, 0x9f, 0xd8, 0x7c, 0x52, - 0x0f, 0x49, 0xe9, 0xa8, 0xde, 0x4e, 0xfc, 0x2b, 0xaf, 0x6f, 0x57, 0x89, - 0x37, 0x78, 0xbe, 0x85, 0xc6, 0x1b, 0xf9, 0xf8, 0x78, 0x83, 0xe6, 0xf3, - 0x68, 0x36, 0x3a, 0xc1, 0xfc, 0x8b, 0x4b, 0xe4, 0x9f, 0x44, 0xf2, 0x77, - 0x87, 0x03, 0xfd, 0xf5, 0x56, 0x2f, 0x7e, 0x9f, 0xce, 0xd3, 0x91, 0xbf, - 0x1c, 0x4c, 0x1d, 0xed, 0x38, 0xad, 0xbb, 0x23, 0x10, 0x36, 0xa1, 0xfc, - 0xed, 0xf6, 0x0f, 0xc7, 0x0d, 0x56, 0xdf, 0xde, 0x85, 0xfa, 0x01, 0x2c, - 0x14, 0x3f, 0xd8, 0x83, 0xd1, 0xf9, 0xbf, 0x48, 0xf9, 0x63, 0x73, 0xb9, - 0xa1, 0xde, 0x97, 0x7f, 0xfd, 0xff, 0x6b, 0xf9, 0xcb, 0xfd, 0x05, 0x26, - 0x37, 0x56, 0x6b, 0x0c, 0x31, 0x3e, 0x61, 0xfe, 0x5a, 0xec, 0x3f, 0xa8, - 0xf4, 0xf7, 0xf4, 0xfd, 0xc9, 0xdc, 0x24, 0x8e, 0x97, 0xb8, 0x7d, 0xcb, - 0xc5, 0xdb, 0x37, 0xf6, 0x3c, 0x93, 0x37, 0x97, 0xac, 0x89, 0x7b, 0xff, - 0xc6, 0xc6, 0xf7, 0x8b, 0xa0, 0xbd, 0x65, 0xf6, 0x87, 0xcb, 0x9a, 0x7c, - 0x8f, 0xcc, 0x86, 0x06, 0xca, 0x6d, 0x19, 0x4c, 0x20, 0x7b, 0xef, 0xa5, - 0x84, 0x7e, 0xc4, 0x19, 0xd8, 0xfe, 0xe9, 0xe2, 0x7c, 0xee, 0x2e, 0x19, - 0xcc, 0xbe, 0xf4, 0x1b, 0x55, 0x8f, 0x65, 0xf7, 0x05, 0xf6, 0x7c, 0x5b, - 0xc4, 0xc7, 0xac, 0xa1, 0xbd, 0x2d, 0x30, 0x7f, 0xf0, 0xfb, 0xec, 0xf9, - 0x59, 0x76, 0x9f, 0xc3, 0xf7, 0xe9, 0xc0, 0xfb, 0xb0, 0x41, 0xff, 0x4a, - 0xd8, 0xdb, 0xa6, 0x21, 0x7d, 0xec, 0x49, 0x08, 0xfd, 0x67, 0xf5, 0x02, - 0x7e, 0xce, 0x89, 0x78, 0xdf, 0x8b, 0xfc, 0xbc, 0x15, 0x11, 0x5f, 0x70, - 0x7f, 0x28, 0xd8, 0x6f, 0x9f, 0x7f, 0xe2, 0x1a, 0xd0, 0x27, 0x6b, 0xe9, - 0xfb, 0xaa, 0xbe, 0x3f, 0x4b, 0x09, 0xcf, 0x67, 0xfe, 0x4e, 0x5a, 0x0f, - 0xcf, 0x0f, 0x9f, 0x64, 0xfc, 0xdd, 0x07, 0xa4, 0x7c, 0x02, 0x99, 0xdf, - 0x2a, 0xe1, 0x57, 0xb9, 0x7f, 0x66, 0x0f, 0x89, 0xf7, 0xc1, 0xc6, 0xf8, - 0xfb, 0x93, 0x37, 0xe3, 0xd0, 0x14, 0xef, 0x83, 0xf4, 0x1f, 0xee, 0x79, - 0x4c, 0x13, 0xfa, 0x57, 0xaa, 0xe8, 0x27, 0x7e, 0xff, 0xa6, 0x27, 0x90, - 0xaf, 0x6b, 0x8c, 0x9f, 0x9f, 0x07, 0x3b, 0x2d, 0x91, 0xbf, 0xe2, 0x62, - 0x9a, 0xef, 0x0c, 0x3f, 0x2f, 0x26, 0x3b, 0x9f, 0x8c, 0xc0, 0xa3, 0x59, - 0x81, 0xbf, 0x14, 0x1d, 0x47, 0xc3, 0x6b, 0x91, 0xfe, 0xb5, 0x8a, 0xf1, - 0x29, 0xa3, 0x07, 0xf7, 0xbb, 0x18, 0xf4, 0xff, 0x68, 0xbe, 0x13, 0x22, - 0x1f, 0xf9, 0xf9, 0x8c, 0x3e, 0xf7, 0x8f, 0xad, 0x0b, 0xd0, 0xe2, 0x2a, - 0xe6, 0x13, 0x7b, 0x36, 0x84, 0xf3, 0x01, 0xe8, 0x7e, 0x17, 0x25, 0x7f, - 0x89, 0x3e, 0xd4, 0x82, 0x35, 0x46, 0xdc, 0x7e, 0x55, 0xd6, 0xb3, 0xc3, - 0xe7, 0x47, 0xd9, 0x5b, 0x79, 0x3d, 0x0c, 0x5f, 0x8e, 0x87, 0x30, 0xbd, - 0x40, 0x7c, 0xef, 0xd7, 0xc3, 0xc3, 0xf7, 0x13, 0x72, 0x5e, 0x0c, 0xea, - 0x2f, 0xc2, 0x5f, 0x55, 0x9d, 0x7f, 0xa0, 0xcb, 0xfc, 0xc7, 0xc7, 0x83, - 0xae, 0x6f, 0x9f, 0xc3, 0xd7, 0xb7, 0x2f, 0x6a, 0xbe, 0x0d, 0x3c, 0x77, - 0x4e, 0xe8, 0xfd, 0x2f, 0xd4, 0xbf, 0xf1, 0x78, 0x1c, 0xde, 0x9f, 0x7b, - 0x98, 0x7d, 0xc8, 0x05, 0xe3, 0xff, 0x66, 0x96, 0xdf, 0xfe, 0xcd, 0xbc, - 0x88, 0xfe, 0x1c, 0x12, 0xbf, 0xc6, 0x9f, 0x97, 0xd2, 0xab, 0xf7, 0x8b, - 0xeb, 0xf7, 0x6a, 0xd3, 0x7f, 0x6e, 0xbf, 0x68, 0xbe, 0x86, 0xad, 0x37, - 0x59, 0x45, 0x3e, 0xe2, 0xf3, 0xbf, 0x8e, 0xf3, 0xf9, 0xc0, 0x04, 0x63, - 0x35, 0xca, 0x13, 0x86, 0xbc, 0x6b, 0x0c, 0xdf, 0x3e, 0xa2, 0x4f, 0x22, - 0x93, 0x7c, 0x97, 0x3c, 0x5e, 0xc3, 0x7d, 0xf8, 0x77, 0xe4, 0xdf, 0x3b, - 0xa6, 0xc5, 0xbf, 0xfb, 0xfe, 0xba, 0xe3, 0xbc, 0xbf, 0x9e, 0x46, 0x7f, - 0xfd, 0x87, 0x11, 0xf5, 0x74, 0x6e, 0x9f, 0x22, 0xe4, 0xe7, 0x11, 0x67, - 0x13, 0xf8, 0x7e, 0xc3, 0xa3, 0x4a, 0xfe, 0x1a, 0x91, 0xce, 0xd4, 0x05, - 0xfd, 0xf5, 0xfa, 0xe9, 0xf0, 0xd7, 0xde, 0x4c, 0x45, 0x7f, 0xdd, 0x34, - 0x45, 0x7f, 0xcd, 0xeb, 0x75, 0x3b, 0x85, 0xef, 0x8b, 0x78, 0x4c, 0x3f, - 0x89, 0x98, 0x86, 0xeb, 0xd9, 0x79, 0x8d, 0xf4, 0xdf, 0xfb, 0x89, 0xff, - 0xe6, 0xcf, 0x77, 0x2f, 0xae, 0x62, 0x8f, 0x3a, 0x54, 0xfc, 0x15, 0xf4, - 0x9f, 0x1d, 0xa2, 0xff, 0xdc, 0x19, 0xfe, 0xbe, 0x73, 0xd0, 0x7f, 0xf6, - 0x28, 0xf9, 0xcf, 0x0e, 0x45, 0xff, 0xa9, 0xc6, 0x3f, 0x9b, 0x5f, 0xbb, - 0xbf, 0xec, 0x98, 0x66, 0x7f, 0xd9, 0xa1, 0xe8, 0x2f, 0x3b, 0x14, 0xfd, - 0x65, 0xc7, 0x19, 0xfb, 0x4b, 0xfb, 0x8c, 0xfc, 0x65, 0x47, 0xbc, 0xbf, - 0x7c, 0x5e, 0xf2, 0x97, 0xa0, 0x36, 0xfd, 0x94, 0xdf, 0x77, 0xf1, 0xfd, - 0x65, 0xf4, 0xf3, 0x6c, 0xbc, 0x9f, 0xac, 0x9e, 0x7b, 0x8e, 0xfc, 0x15, - 0xfd, 0xfe, 0x84, 0xfc, 0x7d, 0x89, 0xa8, 0xfd, 0x02, 0x3c, 0xbf, 0x7b, - 0x66, 0xdf, 0x03, 0x20, 0xfd, 0x20, 0x1b, 0x20, 0x85, 0xab, 0xd1, 0xf7, - 0x97, 0x02, 0xf5, 0x8f, 0xf0, 0x7e, 0x23, 0x0e, 0xf8, 0xf9, 0x5d, 0x0d, - 0xd5, 0x7f, 0xeb, 0x2d, 0x0f, 0xae, 0xd7, 0x7f, 0xdf, 0x89, 0xf1, 0x0b, - 0xda, 0xb2, 0xba, 0xdb, 0xb2, 0x17, 0x8a, 0x75, 0x32, 0xb4, 0xdf, 0x08, - 0x1a, 0x56, 0x4d, 0xb0, 0xd7, 0x35, 0xe6, 0xcb, 0xa2, 0xe4, 0x61, 0x27, - 0xa1, 0xfe, 0xce, 0xdc, 0x90, 0x1e, 0xbd, 0x6c, 0x19, 0x28, 0x65, 0x41, - 0xde, 0x86, 0x7b, 0xbf, 0xb7, 0x39, 0x91, 0x40, 0xf9, 0x05, 0xfc, 0x7d, - 0x29, 0x80, 0x3f, 0x92, 0xed, 0x69, 0xa4, 0x63, 0xc1, 0x06, 0xad, 0xc0, - 0x6d, 0x83, 0xfa, 0x3e, 0x9a, 0xf0, 0xf3, 0x21, 0xb4, 0xb4, 0x0e, 0x7a, - 0x06, 0x4a, 0x5a, 0x85, 0xfe, 0x77, 0x00, 0xd0, 0x84, 0xde, 0x0f, 0xdb, - 0x3f, 0x00, 0x50, 0x3f, 0x03, 0xd2, 0x97, 0xa5, 0x35, 0xd8, 0x1b, 0xd6, - 0x4f, 0xea, 0xf7, 0x87, 0xf5, 0x4a, 0xfd, 0x61, 0x13, 0x52, 0xbf, 0x41, - 0x6f, 0x7c, 0x7f, 0x98, 0xb7, 0x24, 0xd6, 0x9f, 0x56, 0xd6, 0xf7, 0xe9, - 0xf7, 0x4d, 0xc8, 0xe6, 0x25, 0x50, 0xfd, 0x0b, 0x7d, 0xdc, 0x2b, 0x67, - 0x9e, 0xd0, 0x5c, 0x6b, 0x4e, 0x1a, 0xbf, 0x3f, 0x87, 0xf7, 0x7b, 0x83, - 0xc1, 0x4d, 0x0e, 0xaa, 0x5f, 0xa5, 0x47, 0xa0, 0x3e, 0x0e, 0x5d, 0x3b, - 0x6a, 0xf6, 0x1b, 0xee, 0x10, 0xeb, 0x07, 0xd2, 0x33, 0xa0, 0x74, 0x09, - 0xc6, 0x47, 0xf2, 0xb2, 0x3e, 0x01, 0x78, 0x7f, 0x69, 0x25, 0x3f, 0x62, - 0x3d, 0x0c, 0x89, 0x67, 0x18, 0xd9, 0x17, 0xdb, 0x7f, 0x9f, 0x0d, 0xc3, - 0x11, 0xdf, 0xa3, 0x08, 0xf3, 0x0f, 0x2b, 0x4d, 0xbf, 0x7e, 0x31, 0xdd, - 0xdf, 0xc3, 0xa8, 0x90, 0xcf, 0x36, 0x9c, 0x9f, 0x5b, 0x38, 0x6a, 0x9e, - 0xc2, 0xf9, 0x51, 0xff, 0x7d, 0x2b, 0x22, 0x9f, 0xa2, 0x89, 0xce, 0xeb, - 0xd0, 0xf2, 0x5c, 0xa2, 0x5f, 0xc3, 0xf2, 0xc1, 0x06, 0x4b, 0xaf, 0x67, - 0xf2, 0x41, 0xfe, 0x39, 0x99, 0x8d, 0x93, 0x4f, 0x5a, 0x94, 0x0f, 0x96, - 0xef, 0xda, 0x0c, 0xf2, 0x7f, 0x45, 0x14, 0x9f, 0x07, 0x60, 0xaf, 0xc6, - 0x78, 0x7d, 0x85, 0x19, 0xd7, 0x3f, 0x76, 0x66, 0xf2, 0xa9, 0xb4, 0x0f, - 0x62, 0x7f, 0x40, 0xc0, 0x7e, 0x09, 0xf1, 0x34, 0xcf, 0x3f, 0xb6, 0xc1, - 0x78, 0xba, 0xc5, 0xd6, 0x2f, 0xc9, 0x6c, 0xd1, 0x8a, 0x5f, 0x0d, 0xf4, - 0x9b, 0xc0, 0x70, 0xcb, 0xe3, 0xef, 0x67, 0x3f, 0x9b, 0xf0, 0xf7, 0x37, - 0x24, 0x5f, 0x68, 0x82, 0xee, 0xb1, 0x7f, 0x67, 0xfe, 0x2f, 0xfe, 0x3c, - 0x05, 0xd6, 0x57, 0xdb, 0x79, 0x3a, 0x27, 0xeb, 0x03, 0xee, 0x4b, 0x7a, - 0xb0, 0x5f, 0xec, 0xcf, 0x92, 0x55, 0xd6, 0xdb, 0x73, 0xe8, 0x6c, 0xaf, - 0x97, 0xf6, 0xfb, 0x8d, 0xe2, 0xf5, 0xcd, 0x31, 0xe5, 0xef, 0xaf, 0xf1, - 0xf5, 0xb9, 0x70, 0x7d, 0x66, 0x67, 0x03, 0x98, 0xd8, 0xa2, 0x81, 0x60, - 0xbd, 0xc0, 0xf6, 0xf3, 0x5f, 0xa0, 0x38, 0x94, 0x14, 0xfb, 0xe7, 0x9e, - 0xab, 0x8b, 0x5d, 0xdf, 0xc2, 0x76, 0x03, 0x4c, 0xf0, 0xfb, 0x84, 0x62, - 0xbf, 0x63, 0x95, 0x7e, 0x2c, 0x7c, 0x7e, 0xe7, 0xd4, 0x31, 0xfb, 0x17, - 0xe8, 0xdf, 0xc3, 0xe7, 0x2d, 0x8f, 0xd7, 0x6b, 0x27, 0x68, 0x3f, 0xac, - 0xbf, 0x9e, 0x72, 0x7c, 0x7d, 0x3b, 0x90, 0x4f, 0x77, 0xdb, 0xce, 0xe6, - 0x79, 0x03, 0x83, 0x29, 0xb1, 0x5f, 0x71, 0x38, 0xa5, 0xd2, 0xbf, 0x98, - 0xb4, 0xf3, 0xc7, 0xec, 0xfb, 0xe6, 0x83, 0x35, 0xad, 0xd6, 0x24, 0xf1, - 0x43, 0x2b, 0x53, 0xf1, 0xf9, 0xfd, 0xf8, 0xfe, 0xd1, 0xe8, 0x7e, 0x89, - 0x53, 0xf2, 0xf7, 0x29, 0x89, 0xfe, 0xe9, 0xd9, 0x6d, 0xf8, 0x7b, 0x34, - 0x7c, 0xbf, 0xea, 0xd8, 0xf3, 0x4d, 0xd2, 0x1f, 0x81, 0xce, 0xcb, 0x9c, - 0xe6, 0x51, 0xa3, 0x37, 0xb6, 0x7f, 0xf9, 0xa2, 0x88, 0xbf, 0x37, 0x88, - 0xee, 0xcf, 0x99, 0x16, 0xb8, 0x7f, 0x3c, 0xde, 0xbc, 0x33, 0x19, 0x1f, - 0xaf, 0x9e, 0xa5, 0xf3, 0x13, 0xf1, 0xbe, 0x62, 0x65, 0xbe, 0x41, 0xec, - 0x87, 0xa9, 0x78, 0x7f, 0x51, 0xdb, 0x45, 0xef, 0x17, 0x94, 0x3f, 0x1d, - 0xc5, 0x33, 0x61, 0xfe, 0x14, 0x15, 0xa2, 0xc9, 0xf7, 0x0b, 0xdc, 0x74, - 0xf5, 0xfa, 0x8c, 0x7c, 0x3f, 0x9d, 0x75, 0x28, 0xfe, 0x7b, 0x6f, 0xfb, - 0x22, 0xe2, 0x17, 0x7e, 0xdf, 0x14, 0xee, 0xe3, 0xc3, 0x69, 0xe4, 0x9f, - 0x4a, 0x09, 0x5a, 0x4f, 0x72, 0x37, 0x04, 0xbe, 0x2f, 0x54, 0x2f, 0xde, - 0xa7, 0xa7, 0xd8, 0x7f, 0x35, 0x5b, 0xf1, 0x3e, 0xdd, 0x7c, 0xe8, 0x4c, - 0xbf, 0x97, 0x48, 0xe5, 0x4f, 0x0c, 0xb4, 0x3b, 0xef, 0xb8, 0x21, 0x3c, - 0xdf, 0x04, 0x49, 0x2c, 0x8f, 0x39, 0x9d, 0x79, 0xfc, 0xde, 0x55, 0xc7, - 0x7c, 0x3c, 0xc1, 0x3b, 0x8e, 0xcb, 0xfa, 0x10, 0xf3, 0x5e, 0x72, 0xde, - 0xaa, 0xdd, 0xff, 0xfc, 0x7a, 0xab, 0xf8, 0x7d, 0x50, 0x46, 0x9f, 0xac, - 0x67, 0x08, 0xe7, 0xeb, 0x8a, 0xe1, 0xf7, 0xf7, 0xe2, 0x48, 0x32, 0xe4, - 0x3e, 0x46, 0xe9, 0x91, 0x58, 0x76, 0x80, 0xf4, 0xb3, 0x24, 0x6a, 0x8e, - 0xa7, 0xf9, 0xf3, 0xc9, 0xf2, 0xc7, 0xb9, 0x7f, 0xa2, 0xf9, 0x97, 0xbe, - 0x40, 0x7f, 0x1d, 0xd3, 0xc7, 0x7a, 0x95, 0xfd, 0xbd, 0x24, 0x50, 0x8f, - 0xc4, 0xf9, 0xa4, 0x6e, 0x87, 0xc7, 0x5f, 0x58, 0x1e, 0xf9, 0x88, 0xfb, - 0x24, 0x84, 0x9d, 0x19, 0xfe, 0x7d, 0x1b, 0x80, 0x8d, 0xac, 0x1f, 0xfa, - 0xd4, 0xbc, 0xa9, 0xeb, 0x97, 0x77, 0xe1, 0x39, 0xd3, 0xaf, 0x70, 0xfe, - 0x7a, 0xa2, 0xfe, 0x9e, 0xaa, 0xac, 0x8f, 0x51, 0xf5, 0xac, 0xc8, 0xfc, - 0xda, 0x16, 0xb1, 0x9f, 0x88, 0xf5, 0x8b, 0xca, 0xf9, 0x35, 0xc5, 0xfb, - 0x16, 0xd7, 0x4f, 0xa4, 0x20, 0x2d, 0xb6, 0x81, 0xee, 0x57, 0x3d, 0x49, - 0x42, 0xaf, 0x53, 0xd8, 0x1f, 0xfe, 0x3d, 0x55, 0xd2, 0x0f, 0x81, 0xc9, - 0xf9, 0xdf, 0xaf, 0xe0, 0xfa, 0xba, 0x22, 0x10, 0x3f, 0x80, 0x81, 0x24, - 0xd3, 0x77, 0x38, 0xdd, 0xfb, 0x66, 0x3a, 0xac, 0x1f, 0x62, 0x7a, 0xee, - 0xe3, 0xe4, 0xfe, 0x3b, 0x57, 0xe7, 0xf7, 0xf1, 0xca, 0xfb, 0x4b, 0x95, - 0xf7, 0x05, 0x24, 0x7a, 0x28, 0x3b, 0x8e, 0xf6, 0xbe, 0xb4, 0x78, 0xda, - 0xe8, 0x3d, 0x1d, 0xf3, 0x7e, 0x4c, 0x35, 0x18, 0xc9, 0x4f, 0xf4, 0x0f, - 0xf2, 0xfc, 0x76, 0xb5, 0x7e, 0x71, 0x65, 0xfa, 0x37, 0x9d, 0x11, 0x7d, - 0xf4, 0xb2, 0x41, 0xbc, 0x7e, 0x2e, 0x8d, 0xa5, 0x87, 0x54, 0xcb, 0xd1, - 0x6b, 0x97, 0xd7, 0x14, 0xff, 0x7e, 0x1b, 0xff, 0xfb, 0xc5, 0x96, 0x04, - 0xe7, 0x24, 0xd8, 0x96, 0x60, 0x57, 0x82, 0x69, 0xbe, 0xdf, 0x87, 0x4d, - 0x09, 0xb6, 0x24, 0x38, 0x27, 0xc1, 0xb6, 0x04, 0x9f, 0xdb, 0xbf, 0x47, - 0xe5, 0x49, 0x70, 0xd5, 0xbf, 0xb7, 0x36, 0xcd, 0xfc, 0x9d, 0xff, 0x39, - 0xff, 0x73, 0xfe, 0x27, 0xe6, 0xe7, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, - 0xec, 0x5d, 0x7b, 0x90, 0x1c, 0x47, 0x79, 0xef, 0xee, 0x79, 0xec, 0xec, - 0xde, 0xde, 0x6a, 0x75, 0x3e, 0x89, 0x95, 0xac, 0xc7, 0x9c, 0x74, 0x96, - 0x8e, 0x60, 0x54, 0x67, 0x21, 0x9b, 0x93, 0xa3, 0xe0, 0x39, 0xf9, 0x6c, - 0x4e, 0xb6, 0x44, 0x14, 0xf3, 0x92, 0x81, 0x72, 0x56, 0xb8, 0x5c, 0x25, - 0x1b, 0x47, 0x36, 0x89, 0x93, 0x9c, 0xb1, 0x53, 0xee, 0xbd, 0xdb, 0x7b, - 0x18, 0x74, 0xae, 0xb3, 0x10, 0x46, 0x18, 0x63, 0xf6, 0x24, 0x19, 0x2b, - 0x40, 0x02, 0x55, 0x4e, 0x52, 0x4e, 0xfe, 0x48, 0xd6, 0x7a, 0x10, 0x41, - 0x59, 0x55, 0x22, 0x4e, 0x5c, 0x24, 0x45, 0x25, 0x6b, 0x43, 0x11, 0x05, - 0x88, 0xa2, 0x14, 0x98, 0x9c, 0x41, 0x46, 0xe9, 0xf7, 0x4c, 0xf7, 0xce, - 0xcc, 0xee, 0xe9, 0x41, 0x91, 0xc0, 0xfe, 0x21, 0xdf, 0x78, 0x67, 0x7b, + 0x50, 0x47, 0x7b, 0x1b, 0x91, 0x2f, 0xa4, 0x9f, 0x6e, 0x21, 0xe7, 0xcb, + 0xd6, 0x83, 0xf6, 0xd8, 0x3b, 0x7d, 0x36, 0xec, 0x71, 0x75, 0xb8, 0x31, + 0x00, 0xd6, 0xf2, 0x7c, 0x36, 0xdf, 0x6b, 0x50, 0x9b, 0x0f, 0x2e, 0x56, + 0xa4, 0x7f, 0x85, 0x22, 0xfd, 0x95, 0x8a, 0xf4, 0xd7, 0x29, 0xd2, 0xbf, + 0x55, 0x91, 0xfe, 0xe7, 0x15, 0xe9, 0x3f, 0xac, 0x48, 0x7f, 0x9b, 0x22, + 0xfd, 0xdd, 0x8a, 0xf4, 0x9f, 0x53, 0xa4, 0xff, 0xd7, 0x8a, 0xf4, 0xff, + 0x41, 0x91, 0xfe, 0x0f, 0x15, 0xe9, 0xbf, 0xa9, 0x48, 0x7f, 0x52, 0x91, + 0xfe, 0xfb, 0x8a, 0xf4, 0x13, 0x9a, 0x1a, 0xfd, 0x0b, 0xd4, 0xe6, 0x83, + 0x05, 0x8a, 0xf4, 0x1d, 0x45, 0xfa, 0xd7, 0x2b, 0xd2, 0xef, 0x56, 0xa4, + 0x7f, 0xa7, 0x22, 0xfd, 0xfb, 0x15, 0xe9, 0x6f, 0x56, 0xa4, 0xbf, 0x43, + 0x91, 0xfe, 0x3e, 0x45, 0xfa, 0x07, 0x15, 0xe9, 0x7f, 0x5b, 0x91, 0xfe, + 0x61, 0x45, 0xfa, 0x27, 0x15, 0xe9, 0xff, 0x8b, 0x22, 0xfd, 0x77, 0x15, + 0xe9, 0xff, 0x46, 0x91, 0x7e, 0x5a, 0x57, 0xa3, 0xdf, 0xac, 0x36, 0x1f, + 0x2c, 0x56, 0xa4, 0x7f, 0x8d, 0x22, 0xfd, 0x4e, 0x45, 0xfa, 0x9f, 0x56, + 0xa4, 0x7f, 0x8f, 0x22, 0xfd, 0x4d, 0x8a, 0xf4, 0x1f, 0x53, 0xa4, 0x3f, + 0xaa, 0x48, 0xff, 0x9b, 0x8a, 0xf4, 0xbf, 0xa5, 0x48, 0xff, 0x65, 0x45, + 0xfa, 0x3f, 0x50, 0xa4, 0xff, 0x86, 0x22, 0xfd, 0x9f, 0x2b, 0xd2, 0xff, + 0x2f, 0x45, 0xfa, 0xc0, 0x50, 0xa3, 0xdf, 0xa8, 0x36, 0xdf, 0xbb, 0x58, + 0x91, 0xfe, 0x95, 0x8a, 0xf4, 0x57, 0x2a, 0xd2, 0x5f, 0xaf, 0x48, 0xff, + 0x56, 0x45, 0xfa, 0xf7, 0x2a, 0xd2, 0x7f, 0x58, 0x91, 0xfe, 0x76, 0x45, + 0xfa, 0xbb, 0x15, 0xe9, 0xe7, 0x8d, 0x73, 0x71, 0xff, 0xf0, 0xba, 0xc1, + 0x55, 0xbf, 0x87, 0x7e, 0xfd, 0xe5, 0xf5, 0x00, 0xe7, 0x13, 0x4e, 0xd0, + 0x0a, 0x70, 0x5f, 0x82, 0xdc, 0x9f, 0xb2, 0x34, 0xbf, 0x30, 0x69, 0x22, + 0x98, 0xd5, 0xeb, 0x0e, 0xf4, 0xb0, 0xe7, 0xed, 0x62, 0xf9, 0x05, 0x93, + 0xce, 0x67, 0xf7, 0x31, 0x0d, 0x0c, 0x6a, 0x79, 0x72, 0xed, 0x7a, 0x1a, + 0xde, 0xda, 0x16, 0x81, 0x92, 0xe9, 0xd7, 0x6b, 0xf3, 0xee, 0xb5, 0xf8, + 0x2a, 0x06, 0xff, 0xa9, 0xa9, 0xcd, 0x00, 0xad, 0x88, 0x95, 0xfc, 0x51, + 0x6d, 0x90, 0xd7, 0x03, 0xc7, 0x09, 0x7d, 0x0b, 0x68, 0xc0, 0x45, 0xa9, + 0xfc, 0x8d, 0x03, 0x80, 0xf0, 0x27, 0xf2, 0xcf, 0xe6, 0x1f, 0x7e, 0x38, + 0x7c, 0xfd, 0xb6, 0x05, 0x80, 0x9b, 0xb6, 0xeb, 0xc1, 0xd4, 0x27, 0x40, + 0x29, 0x05, 0x0e, 0x00, 0x9d, 0xe6, 0x7b, 0x3e, 0x81, 0x13, 0x30, 0xbd, + 0xfc, 0x82, 0xdd, 0xe6, 0x52, 0x7e, 0xdc, 0x39, 0x90, 0x9f, 0x67, 0x7e, + 0xb0, 0xb0, 0x39, 0xb9, 0xa4, 0x69, 0xc4, 0xb3, 0xc0, 0xae, 0xc1, 0x3d, + 0xb8, 0x94, 0x30, 0x69, 0x04, 0xd7, 0xcf, 0xf8, 0x03, 0x5a, 0xf7, 0x51, + 0x52, 0x8f, 0xee, 0xd3, 0xf1, 0xfa, 0x5d, 0x76, 0xc7, 0xc4, 0x72, 0xe8, + 0x45, 0x59, 0x1c, 0xcc, 0xbf, 0xe5, 0x00, 0xf8, 0x6c, 0x96, 0x6f, 0x02, + 0xb7, 0xd0, 0x7a, 0xb5, 0xb5, 0x7d, 0xbc, 0x1e, 0x29, 0xc7, 0x7c, 0xaa, + 0x24, 0x95, 0xf4, 0xeb, 0x8e, 0x50, 0xfa, 0x42, 0x7e, 0xe8, 0x1e, 0x4a, + 0x1f, 0x2d, 0xc7, 0xd5, 0x2b, 0xe9, 0xdf, 0x4a, 0xe9, 0xa7, 0x07, 0xc7, + 0x11, 0x0b, 0xde, 0x65, 0x91, 0xf4, 0x35, 0x91, 0xbe, 0x9b, 0x3d, 0x32, + 0xbf, 0x95, 0xee, 0x1f, 0x84, 0xad, 0x0a, 0xf9, 0x90, 0x9f, 0x8d, 0x94, + 0x7e, 0x05, 0x3d, 0xae, 0x0f, 0x93, 0x14, 0x7f, 0x97, 0x81, 0xd7, 0x4f, + 0xe9, 0xb1, 0xf9, 0x7f, 0x43, 0xe7, 0x9b, 0x12, 0x7d, 0x00, 0x46, 0x59, + 0xf8, 0x8f, 0xe5, 0xed, 0x82, 0xd7, 0x35, 0x17, 0x3d, 0xaa, 0xf9, 0x01, + 0x1d, 0xe5, 0xbb, 0x28, 0x3f, 0xde, 0x6d, 0xac, 0xde, 0x8f, 0xf7, 0x73, + 0xa4, 0x0e, 0xe5, 0x53, 0xbd, 0x04, 0x54, 0xa2, 0xf6, 0xee, 0x23, 0x5a, + 0x2b, 0xdc, 0xf5, 0xa9, 0x4d, 0x46, 0x69, 0x58, 0x1b, 0xbf, 0xf3, 0x46, + 0xcf, 0x2c, 0x81, 0x15, 0xba, 0x06, 0x5e, 0x48, 0xbc, 0x06, 0xc0, 0x0e, + 0xb8, 0x5f, 0x47, 0xb2, 0x39, 0x9f, 0xbf, 0x4a, 0xfe, 0x99, 0xbe, 0xb3, + 0xf5, 0x9f, 0xd0, 0x56, 0x85, 0xf0, 0x7f, 0x87, 0xc8, 0xbf, 0xf7, 0x59, + 0xc6, 0x0f, 0xd2, 0xb7, 0xb9, 0x88, 0x5f, 0xb2, 0x1f, 0x88, 0xdf, 0x24, + 0xea, 0x65, 0x38, 0x4e, 0x60, 0x00, 0x56, 0xa4, 0x28, 0x4a, 0x32, 0xfc, + 0xbe, 0xc2, 0xcf, 0x9f, 0x46, 0xce, 0x53, 0x17, 0x3b, 0x5f, 0x58, 0x1e, + 0x4c, 0x5e, 0x77, 0x47, 0xc8, 0xdf, 0x02, 0xdd, 0x06, 0xe1, 0x97, 0xac, + 0x8f, 0xf1, 0xb7, 0x26, 0x72, 0xbe, 0x28, 0x4f, 0xae, 0xaf, 0xd2, 0xf9, + 0x9a, 0x9d, 0x10, 0xd6, 0xdb, 0xa3, 0x91, 0x44, 0x4c, 0xaf, 0x9f, 0x5f, + 0x9c, 0xd4, 0xc3, 0xf2, 0x89, 0x48, 0xd4, 0x2e, 0x22, 0xba, 0x7f, 0x01, + 0x5d, 0x7f, 0x17, 0x63, 0x29, 0x51, 0xcb, 0x7d, 0x2d, 0x42, 0xde, 0xe0, + 0x8f, 0x28, 0xbf, 0x67, 0x7b, 0x7d, 0x16, 0xb4, 0x67, 0x58, 0x9e, 0x53, + 0x9b, 0xe3, 0xf6, 0x1f, 0xdc, 0xcb, 0xfb, 0x4f, 0xc2, 0xf9, 0x3f, 0xd0, + 0x40, 0xe6, 0xa3, 0x59, 0xab, 0x4c, 0xdb, 0x40, 0xfa, 0x5a, 0x4a, 0x80, + 0x71, 0x62, 0x2f, 0x26, 0x1a, 0xb8, 0x7d, 0x04, 0x0d, 0x80, 0x1f, 0x55, + 0x05, 0xf9, 0xbc, 0x05, 0x7c, 0x7e, 0x50, 0x41, 0x13, 0xb4, 0x31, 0x7d, + 0xe3, 0xe7, 0x49, 0x0f, 0xf2, 0xbf, 0x39, 0x5d, 0x9b, 0xbf, 0x60, 0xf3, + 0xef, 0xae, 0x57, 0x9b, 0x2f, 0x9f, 0x8f, 0xbe, 0x2a, 0xf2, 0x59, 0x78, + 0x86, 0xf4, 0xef, 0xe3, 0xf4, 0xbb, 0xd8, 0x7a, 0x13, 0xe1, 0xf9, 0xed, + 0x51, 0xc9, 0x5f, 0x79, 0x26, 0x8c, 0xa4, 0x50, 0x49, 0x4d, 0x7b, 0xf9, + 0x28, 0x18, 0xac, 0xf0, 0xa7, 0xd0, 0x41, 0x34, 0x60, 0xff, 0x78, 0x09, + 0x95, 0xa7, 0x4c, 0xcf, 0x0c, 0x94, 0x1f, 0x2b, 0xea, 0x4f, 0x01, 0xff, + 0x7a, 0x0a, 0xfb, 0x57, 0x1b, 0xee, 0xaa, 0x3b, 0x7b, 0x6f, 0x02, 0xd8, + 0x0e, 0x28, 0xa6, 0xe0, 0xfe, 0x83, 0xdb, 0xa8, 0x36, 0x7a, 0x4d, 0x68, + 0xbf, 0x3d, 0x70, 0xa2, 0xdd, 0x6d, 0x08, 0x9c, 0x7f, 0xaa, 0xc0, 0x3f, + 0xfa, 0x73, 0xba, 0x3e, 0xfc, 0xb4, 0xe1, 0x34, 0xd2, 0x1f, 0x3b, 0xe0, + 0x4f, 0xc1, 0x7e, 0x64, 0xbe, 0x09, 0x7f, 0x50, 0x69, 0xcd, 0xda, 0xf3, + 0xc9, 0x17, 0xc4, 0xc6, 0x0f, 0xfc, 0xbc, 0xfc, 0x64, 0x51, 0xe8, 0xfa, + 0xd9, 0x7e, 0x78, 0x77, 0x27, 0x85, 0xf3, 0xe0, 0x01, 0xd7, 0x08, 0xfa, + 0x0b, 0xdd, 0x5b, 0x6b, 0x04, 0xcf, 0x27, 0x9b, 0x4f, 0x97, 0x57, 0xf8, + 0xd2, 0x45, 0x20, 0x54, 0x3f, 0xd8, 0x2f, 0xcf, 0xe8, 0xb5, 0xf1, 0x17, + 0xcd, 0x4f, 0xbb, 0x71, 0x76, 0xe9, 0x77, 0x9c, 0x65, 0xfa, 0xab, 0xcf, + 0x32, 0xfd, 0x1b, 0xe8, 0xfe, 0x80, 0x62, 0xbb, 0x1e, 0x17, 0x3f, 0xbe, + 0x2e, 0xf9, 0xa7, 0xa8, 0xf3, 0xb2, 0x24, 0xfc, 0xbc, 0xb0, 0xf3, 0xe0, + 0xbe, 0x23, 0xc5, 0x9b, 0x93, 0x29, 0x44, 0x2f, 0x07, 0xfd, 0x2f, 0xf6, + 0x17, 0xcd, 0x9b, 0x52, 0xc5, 0x6d, 0xbe, 0xbd, 0x3a, 0x7c, 0x33, 0xb3, + 0x9f, 0xbb, 0x8c, 0x86, 0xe4, 0x10, 0xb4, 0x65, 0xa7, 0x93, 0xf9, 0x11, + 0x88, 0x8f, 0x79, 0x9d, 0xa8, 0xf3, 0xed, 0x67, 0x9d, 0x16, 0xf4, 0x2f, + 0x08, 0x7b, 0x69, 0x5a, 0x38, 0xff, 0xcc, 0xbf, 0x27, 0x41, 0x89, 0x9c, + 0x2f, 0xec, 0xaf, 0xa7, 0xae, 0x26, 0xfc, 0x42, 0x7b, 0xbc, 0xe8, 0x62, + 0x84, 0x4e, 0xf9, 0x67, 0xfd, 0x90, 0x63, 0x06, 0xaa, 0x01, 0xc3, 0xf3, + 0xba, 0x31, 0xde, 0x3e, 0xd3, 0xf8, 0xcf, 0x5d, 0x7d, 0xad, 0xa0, 0xcf, + 0xdf, 0xe3, 0xfb, 0xf3, 0x38, 0x8b, 0xa7, 0xb3, 0xc1, 0x78, 0x91, 0xcd, + 0xa7, 0xe7, 0xa1, 0x3f, 0x35, 0xbe, 0x90, 0xe2, 0xbf, 0x0a, 0x84, 0xf9, + 0xe0, 0xb8, 0x16, 0x84, 0x99, 0xfd, 0xf3, 0x1e, 0x32, 0x04, 0xff, 0xc7, + 0xe4, 0x65, 0x81, 0x57, 0xb5, 0x06, 0xb4, 0xd5, 0xde, 0x29, 0x12, 0x3f, + 0x63, 0x7b, 0x31, 0x91, 0xf1, 0xe5, 0x95, 0x11, 0xe4, 0x85, 0x98, 0x5b, + 0x21, 0xec, 0x3f, 0x8f, 0x3f, 0x88, 0xbc, 0xb0, 0xfd, 0xf2, 0xe5, 0x85, + 0xd8, 0x5f, 0x90, 0x0d, 0xc8, 0x0b, 0x2d, 0x20, 0x7f, 0x63, 0xbd, 0x8f, + 0x7f, 0x91, 0x92, 0x3f, 0x63, 0xbf, 0x1c, 0xe7, 0xf2, 0x5a, 0xcf, 0xe2, + 0x8b, 0x06, 0xbc, 0x7e, 0xda, 0xb7, 0x98, 0x3a, 0xcc, 0xe4, 0x53, 0xa7, + 0x07, 0xc7, 0xd1, 0xe3, 0xc9, 0x7a, 0x97, 0x08, 0xfa, 0xce, 0xe4, 0x41, + 0xe5, 0xe5, 0x32, 0x79, 0x11, 0x4b, 0x39, 0x91, 0xf6, 0xe5, 0x91, 0xae, + 0xd0, 0x9f, 0x65, 0xe9, 0x50, 0xfd, 0x27, 0xf2, 0x80, 0xf2, 0x74, 0x9b, + 0x7d, 0x79, 0x20, 0xf1, 0xb6, 0xd5, 0x05, 0xe4, 0x41, 0xd7, 0xf1, 0xbc, + 0xc9, 0xf0, 0x6f, 0x9b, 0x96, 0x3c, 0xde, 0xe4, 0xf2, 0x78, 0x95, 0x3d, + 0xbf, 0x81, 0xc4, 0xc7, 0x54, 0x1e, 0x2f, 0x31, 0x79, 0x3c, 0x2e, 0x8c, + 0xd7, 0x28, 0x0f, 0x30, 0xc4, 0xe4, 0x81, 0x15, 0x70, 0xa2, 0xde, 0x97, + 0x47, 0x7d, 0x85, 0x7e, 0x2c, 0x8f, 0xd3, 0x0f, 0x38, 0x1b, 0xdf, 0x27, + 0xd8, 0x79, 0x42, 0xcd, 0x2c, 0x73, 0x02, 0xf2, 0x60, 0xfe, 0xea, 0x05, + 0x14, 0x8e, 0xa0, 0xf3, 0xd4, 0x3a, 0x2d, 0x79, 0xfc, 0xb2, 0x42, 0x3f, + 0xfa, 0x1a, 0x89, 0xfd, 0xa0, 0xf1, 0x66, 0x33, 0x5c, 0xa7, 0xc1, 0xe4, + 0x3f, 0x04, 0x77, 0xc4, 0x41, 0x71, 0x11, 0xc4, 0x5f, 0xaf, 0x07, 0xe7, + 0xd7, 0xaa, 0x2f, 0xb5, 0xca, 0x07, 0x61, 0x2f, 0x17, 0xed, 0x8d, 0xa0, + 0x2f, 0xdc, 0x1e, 0x33, 0xf9, 0xe0, 0xd1, 0x3d, 0x16, 0xe2, 0x0f, 0xa0, + 0x78, 0x10, 0x46, 0x25, 0xbb, 0x9b, 0x82, 0xf8, 0xb7, 0x4f, 0x4b, 0x3e, + 0xff, 0xeb, 0xdb, 0x1b, 0xf6, 0xfc, 0x5c, 0xe0, 0xfe, 0x68, 0x1b, 0x16, + 0xf3, 0xb7, 0x75, 0x46, 0x70, 0xbc, 0x46, 0x79, 0x78, 0x5c, 0x1e, 0x78, + 0x78, 0x22, 0xeb, 0xcb, 0x23, 0x5b, 0xa1, 0x2f, 0x2b, 0x45, 0x7d, 0x89, + 0xb5, 0xbf, 0x28, 0x40, 0x59, 0xd4, 0x28, 0xd9, 0x5f, 0xfb, 0x26, 0xcb, + 0xc7, 0x6f, 0x9e, 0x96, 0x3c, 0x68, 0x97, 0x45, 0xbf, 0xbf, 0xff, 0x93, + 0x8d, 0x81, 0xfb, 0x6d, 0xce, 0x97, 0x07, 0xb7, 0xb7, 0x8d, 0x61, 0xf1, + 0x23, 0x93, 0xc7, 0xc4, 0x67, 0x22, 0xf2, 0x0d, 0x64, 0x34, 0xc1, 0xe4, + 0x41, 0xe5, 0x55, 0x1c, 0x8c, 0xb4, 0xcf, 0xeb, 0x89, 0x7d, 0x2e, 0x6e, + 0xa6, 0xf9, 0x0d, 0xa6, 0x2f, 0x93, 0xc1, 0xfb, 0x9e, 0x17, 0x89, 0xaf, + 0xa1, 0xfd, 0x1a, 0xb1, 0x40, 0x71, 0x09, 0x2a, 0x73, 0x8f, 0x07, 0xee, + 0x63, 0x18, 0x1f, 0x4d, 0x77, 0x5b, 0x44, 0xfb, 0x74, 0x79, 0x9d, 0xef, + 0x9f, 0xf7, 0xd1, 0x70, 0x39, 0x09, 0x56, 0x2c, 0xdb, 0x6b, 0x80, 0x1d, + 0xfd, 0xae, 0xc1, 0x17, 0xe3, 0xea, 0x1a, 0x8c, 0x87, 0x41, 0xab, 0x9d, + 0xdd, 0x1e, 0x15, 0x4f, 0xe6, 0xb7, 0x41, 0x4f, 0xe2, 0x2e, 0xb7, 0x53, + 0xb9, 0x2c, 0xaa, 0xa0, 0x83, 0x83, 0xfa, 0xe1, 0xf1, 0xad, 0xf0, 0xdf, + 0x9b, 0x0e, 0x3f, 0x84, 0x05, 0x3a, 0xdc, 0x64, 0xbf, 0x40, 0x94, 0xc1, + 0xba, 0x92, 0xe0, 0xdb, 0x2c, 0x5e, 0x85, 0x0f, 0xc7, 0xf1, 0x2a, 0xcb, + 0x17, 0xc1, 0xd3, 0x1a, 0xba, 0x9f, 0x74, 0xdc, 0x1d, 0x10, 0xee, 0xb3, + 0xab, 0xa9, 0xbf, 0x64, 0xf2, 0xd8, 0x2b, 0xdd, 0xf7, 0xf4, 0xc0, 0x7d, + 0x2f, 0xa8, 0xcf, 0xcc, 0xfe, 0x74, 0xae, 0xbe, 0x36, 0x78, 0x7f, 0x74, + 0x99, 0x7c, 0x01, 0x77, 0xf8, 0x03, 0x20, 0x78, 0x5f, 0x62, 0xf2, 0x86, + 0xe7, 0x85, 0x6a, 0xcc, 0xc0, 0x2c, 0xdf, 0x1f, 0x4d, 0x58, 0xbe, 0xfe, + 0x5b, 0x15, 0xf6, 0xc0, 0x89, 0xb1, 0x07, 0xdc, 0x5e, 0x31, 0x7b, 0x80, + 0xb5, 0x73, 0x6f, 0x5d, 0xd0, 0x1e, 0xec, 0x99, 0x01, 0x7b, 0xb0, 0xca, + 0x90, 0xed, 0xc1, 0x24, 0xe1, 0x9f, 0xad, 0x67, 0xff, 0xa9, 0x59, 0x0a, + 0xe7, 0xbf, 0xb8, 0xa3, 0xba, 0x3d, 0x4c, 0xd6, 0xe4, 0x2f, 0xaa, 0xf2, + 0x7f, 0x31, 0xfb, 0xdd, 0x0c, 0x5b, 0xaf, 0x87, 0xfc, 0x4d, 0xc1, 0x4e, + 0xa1, 0xfb, 0x14, 0x89, 0x37, 0x07, 0x92, 0xd3, 0x91, 0xcf, 0x8d, 0x46, + 0x85, 0x3f, 0xd1, 0x04, 0xf9, 0xe4, 0x06, 0x28, 0x6c, 0x49, 0xf1, 0xaf, + 0x44, 0x8f, 0xac, 0xd5, 0x33, 0x58, 0x7e, 0x02, 0xc7, 0x07, 0x30, 0x5e, + 0xb5, 0x1c, 0x60, 0x27, 0x91, 0x3f, 0xcc, 0x7a, 0x16, 0xf2, 0x87, 0xf6, + 0xbb, 0x54, 0x9f, 0x5d, 0x0d, 0xe5, 0x3f, 0x47, 0xc0, 0xd4, 0xf5, 0x97, + 0xc3, 0xfb, 0xa7, 0x0b, 0xba, 0xf5, 0x15, 0x58, 0xe5, 0x1f, 0xd4, 0x4a, + 0xd0, 0x1e, 0x40, 0x6b, 0xb7, 0xbf, 0xcb, 0x04, 0xcf, 0x3c, 0xb2, 0x87, + 0xe4, 0x47, 0x11, 0x66, 0xaf, 0x75, 0x20, 0x81, 0x48, 0x6f, 0x0c, 0xc9, + 0x97, 0xc2, 0x78, 0x9a, 0xd9, 0x57, 0x3d, 0x78, 0x5e, 0x9e, 0x8c, 0xb4, + 0x3f, 0xd2, 0xf9, 0x50, 0xb6, 0xe7, 0x99, 0x58, 0xff, 0x8f, 0x7e, 0xb5, + 0xe5, 0x78, 0xc8, 0xeb, 0xaa, 0xf3, 0xf1, 0x2f, 0x9c, 0x96, 0x3e, 0xdf, + 0xc7, 0xf7, 0x8b, 0xfb, 0xaf, 0x26, 0x61, 0xbf, 0x06, 0x06, 0x9a, 0x54, + 0xf4, 0xf9, 0xc9, 0xaa, 0xf1, 0x60, 0x94, 0x7d, 0x12, 0xcf, 0x73, 0x14, + 0xbf, 0x0f, 0x57, 0x9e, 0x3f, 0x91, 0x5f, 0x30, 0xa5, 0xc2, 0x2f, 0x18, + 0xad, 0x7a, 0xfe, 0xa2, 0xf8, 0xad, 0xed, 0xfc, 0x6d, 0xad, 0x3c, 0x0f, + 0x73, 0x44, 0x7e, 0x07, 0xe6, 0xc4, 0xf9, 0x47, 0xbf, 0x3e, 0x10, 0x61, + 0xcf, 0xc1, 0x7b, 0x58, 0xff, 0x89, 0x43, 0x99, 0x48, 0x31, 0xfe, 0x99, + 0xfd, 0x66, 0xe7, 0xa7, 0x85, 0xe8, 0x7f, 0xab, 0x06, 0xed, 0x31, 0xce, + 0xdf, 0x42, 0x03, 0xdd, 0xdb, 0x90, 0x42, 0x2d, 0xfe, 0x89, 0x15, 0xe4, + 0x3c, 0x9c, 0x24, 0xfd, 0x5d, 0x96, 0x0d, 0x92, 0x36, 0x08, 0x39, 0x0f, + 0x5a, 0xf0, 0x3c, 0x20, 0xf5, 0x6b, 0x40, 0xff, 0x97, 0x5f, 0xc2, 0xe3, + 0x0d, 0x64, 0x82, 0x99, 0x3c, 0x73, 0xa0, 0x1b, 0xac, 0xb2, 0x02, 0xf9, + 0x23, 0x2d, 0xab, 0xd1, 0xfc, 0x78, 0x52, 0xea, 0x9f, 0x4c, 0x84, 0xf9, + 0x07, 0xb2, 0x3f, 0xcf, 0xe9, 0xfe, 0x7e, 0x04, 0xe4, 0xed, 0xc5, 0xdd, + 0xbf, 0xd8, 0x7e, 0xb1, 0x76, 0xe0, 0xa9, 0xb9, 0xe4, 0x79, 0x3c, 0x1e, + 0xa8, 0xd1, 0x5e, 0x0e, 0xb3, 0xf9, 0x73, 0x59, 0xfe, 0x28, 0x8d, 0xe2, + 0x2b, 0x97, 0xd8, 0xc7, 0x1c, 0x1a, 0xcd, 0xd9, 0x26, 0xb0, 0x96, 0x11, + 0x7b, 0x04, 0xd6, 0xb1, 0x7c, 0xf4, 0xa9, 0x79, 0x24, 0xff, 0x04, 0x79, + 0x4f, 0xa5, 0x90, 0x1d, 0x75, 0x87, 0x90, 0x3e, 0xd2, 0xfc, 0xa7, 0xfb, + 0x80, 0x66, 0xc7, 0xec, 0xf7, 0x5e, 0x29, 0x1f, 0x7a, 0x94, 0xdf, 0x7f, + 0x77, 0xb2, 0x7a, 0x10, 0x40, 0xfc, 0xb3, 0xf9, 0x1f, 0xbb, 0x45, 0xf4, + 0xd7, 0xff, 0xcc, 0xe7, 0xb3, 0xfc, 0x5d, 0x9f, 0x45, 0xd6, 0x1f, 0xc0, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 26 22:44:41 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62C5CA6E57E; Tue, 26 Jan 2016 22:44:41 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4EF4B1442; Tue, 26 Jan 2016 22:44:40 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id u0QMidvs015682 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 26 Jan 2016 14:44:39 -0800 (PST) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id u0QMidUJ015681; Tue, 26 Jan 2016 14:44:39 -0800 (PST) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 26 Jan 2016 14:44:39 -0800 From: Gleb Smirnoff To: Sepherosa Ziehau , adrian@FreeBSD.org Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294788 - head/sys/dev/hyperv/netvsc Message-ID: <20160126224439.GT6885@FreeBSD.org> References: <201601260942.u0Q9gD14062309@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201601260942.u0Q9gD14062309@repo.freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 22:44:41 -0000 Sepherosa, On Tue, Jan 26, 2016 at 09:42:13AM +0000, Sepherosa Ziehau wrote: S> Author: sephe S> Date: Tue Jan 26 09:42:13 2016 S> New Revision: 294788 S> URL: https://svnweb.freebsd.org/changeset/base/294788 S> S> Log: S> hyperv/hn: Improve sending performance S> S> - Avoid main lock contention by trylock for if_start, if that fails, S> schedule TX taskqueue for if_start S> - Don't do direct sending if the packet to be sent is large, e.g. S> TSO packet. S> S> This change gives me stable 9.1Gbps TCP sending performance w/ TSO S> over a 10Gbe directly connected network (the performance fluctuated S> between 4Gbps and 9Gbps before this commit). It also improves non- S> TSO TCP sending performance a lot. S> S> Reviewed by: adrian, royger S> Approved by: adrian (mentor) S> Sponsored by: Microsoft OSTC S> Differential Revision: https://reviews.freebsd.org/D5074 Why do you actually use if_start, not if_transmit? -- Totus tuus, Glebius. From owner-svn-src-all@freebsd.org Tue Jan 26 22:45:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B695A6E5E4; Tue, 26 Jan 2016 22:45:06 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6D1BC15F1; Tue, 26 Jan 2016 22:45:06 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QMj5vj095915; Tue, 26 Jan 2016 22:45:05 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QMj5Pi095914; Tue, 26 Jan 2016 22:45:05 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201601262245.u0QMj5Pi095914@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Tue, 26 Jan 2016 22:45:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294855 - head/sys/netpfil/ipfw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 22:45:06 -0000 Author: luigi Date: Tue Jan 26 22:45:05 2016 New Revision: 294855 URL: https://svnweb.freebsd.org/changeset/base/294855 Log: avoid warnings for signed/unsigned comparison and unused arguments Modified: head/sys/netpfil/ipfw/dn_heap.c Modified: head/sys/netpfil/ipfw/dn_heap.c ============================================================================== --- head/sys/netpfil/ipfw/dn_heap.c Tue Jan 26 22:32:58 2016 (r294854) +++ head/sys/netpfil/ipfw/dn_heap.c Tue Jan 26 22:45:05 2016 (r294855) @@ -81,7 +81,7 @@ heap_resize(struct dn_heap *h, unsigned { struct dn_heap_entry *p; - if (h->size >= new_size ) /* have enough room */ + if ((unsigned int)h->size >= new_size ) /* have enough room */ return 0; #if 1 /* round to the next power of 2 */ new_size |= new_size >> 1; @@ -419,6 +419,8 @@ dn_ht_init(struct dn_ht *ht, int buckets static int do_del(void *obj, void *arg) { + (void)obj; + (void)arg; return DNHT_SCAN_DEL; } From owner-svn-src-all@freebsd.org Tue Jan 26 22:45:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04384A6E63F; Tue, 26 Jan 2016 22:45:47 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CB246184B; Tue, 26 Jan 2016 22:45:46 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QMjjC3095979; Tue, 26 Jan 2016 22:45:45 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QMjjCA095978; Tue, 26 Jan 2016 22:45:45 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201601262245.u0QMjjCA095978@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Tue, 26 Jan 2016 22:45:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294856 - head/sys/netpfil/ipfw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 22:45:47 -0000 Author: luigi Date: Tue Jan 26 22:45:45 2016 New Revision: 294856 URL: https://svnweb.freebsd.org/changeset/base/294856 Log: prevent warning for unused argument Modified: head/sys/netpfil/ipfw/dn_sched_fifo.c Modified: head/sys/netpfil/ipfw/dn_sched_fifo.c ============================================================================== --- head/sys/netpfil/ipfw/dn_sched_fifo.c Tue Jan 26 22:45:05 2016 (r294855) +++ head/sys/netpfil/ipfw/dn_sched_fifo.c Tue Jan 26 22:45:45 2016 (r294856) @@ -61,6 +61,7 @@ fifo_enqueue(struct dn_sch_inst *si, str * re-enqueue from an existing scheduler, which we should * handle. */ + (void)q; return dn_enqueue((struct dn_queue *)(si+1), m, 0); } From owner-svn-src-all@freebsd.org Tue Jan 26 22:46:59 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EBA88A6E6B1; Tue, 26 Jan 2016 22:46:59 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A1B4A19FB; Tue, 26 Jan 2016 22:46:59 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QMkwgF096058; Tue, 26 Jan 2016 22:46:58 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QMkwTM096057; Tue, 26 Jan 2016 22:46:58 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201601262246.u0QMkwTM096057@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Tue, 26 Jan 2016 22:46:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294857 - head/sys/netpfil/ipfw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 22:47:00 -0000 Author: luigi Date: Tue Jan 26 22:46:58 2016 New Revision: 294857 URL: https://svnweb.freebsd.org/changeset/base/294857 Log: prevent warnings for signed/unsigned comparisons and unused arguments. Add checks for parameters overflowing 32 bit. Modified: head/sys/netpfil/ipfw/dn_sched_rr.c Modified: head/sys/netpfil/ipfw/dn_sched_rr.c ============================================================================== --- head/sys/netpfil/ipfw/dn_sched_rr.c Tue Jan 26 22:45:45 2016 (r294856) +++ head/sys/netpfil/ipfw/dn_sched_rr.c Tue Jan 26 22:46:58 2016 (r294857) @@ -52,8 +52,8 @@ struct rr_queue { struct dn_queue q; /* Standard queue */ int status; /* 1: queue is in the list */ - int credit; /* Number of bytes to transmit */ - int quantum; /* quantum * C */ + uint32_t credit; /* max bytes we can transmit */ + uint32_t quantum; /* quantum * weight */ struct rr_queue *qnext; /* */ }; @@ -61,9 +61,9 @@ struct rr_queue { * and is right after dn_schk */ struct rr_schk { - int min_q; /* Min quantum */ - int max_q; /* Max quantum */ - int q_bytes; /* Bytes per quantum */ + uint32_t min_q; /* Min quantum */ + uint32_t max_q; /* Max quantum */ + uint32_t q_bytes; /* default quantum in bytes */ }; /* per-instance round robin list, right after dn_sch_inst */ @@ -227,6 +227,7 @@ rr_new_sched(struct dn_sch_inst *_si) static int rr_free_sched(struct dn_sch_inst *_si) { + (void)_si; ND("called"); /* Nothing to do? */ return 0; @@ -237,6 +238,7 @@ rr_new_fsk(struct dn_fsk *fs) { struct rr_schk *schk = (struct rr_schk *)(fs->sched + 1); /* par[0] is the weight, par[1] is the quantum step */ + /* make sure the product fits an uint32_t */ ipdn_bound_var(&fs->fs.par[0], 1, 1, 65536, "RR weight"); ipdn_bound_var(&fs->fs.par[1], schk->q_bytes, @@ -248,10 +250,16 @@ static int rr_new_queue(struct dn_queue *_q) { struct rr_queue *q = (struct rr_queue *)_q; + uint64_t quantum; _q->ni.oid.subtype = DN_SCHED_RR; - q->quantum = _q->fs->fs.par[0] * _q->fs->fs.par[1]; + quantum = (uint64_t)_q->fs->fs.par[0] * _q->fs->fs.par[1]; + if (quantum >= (1ULL<< 32)) { + D("quantum too large, truncating to 4G - 1"); + quantum = (1ULL<< 32) - 1; + } + q->quantum = quantum; ND("called, q->quantum %d", q->quantum); q->credit = q->quantum; q->status = 0; From owner-svn-src-all@freebsd.org Tue Jan 26 22:53:34 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A654CA6EA70; Tue, 26 Jan 2016 22:53:34 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 944201DB; Tue, 26 Jan 2016 22:53:34 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id u0QMrXDr015760 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 26 Jan 2016 14:53:33 -0800 (PST) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id u0QMrWrs015759; Tue, 26 Jan 2016 14:53:32 -0800 (PST) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 26 Jan 2016 14:53:32 -0800 From: Gleb Smirnoff To: Hiren Panchasara Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294840 - head/sys/netinet Message-ID: <20160126225332.GU6885@FreeBSD.org> References: <201601261633.u0QGXcdh083557@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201601261633.u0QGXcdh083557@repo.freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 22:53:34 -0000 Hiren, On Tue, Jan 26, 2016 at 04:33:38PM +0000, Hiren Panchasara wrote: H> Author: hiren H> Date: Tue Jan 26 16:33:38 2016 H> New Revision: 294840 H> URL: https://svnweb.freebsd.org/changeset/base/294840 H> H> Log: H> Persist timers TCPTV_PERSMIN and TCPTV_PERSMAX are hardcoded with 5 seconds and H> 60 seconds, respectively. Turn them into sysctls that can be tuned live. The H> default values of 5 seconds and 60 seconds have been retained. H> H> Submitted by: Jason Wolfe (j at nitrology dot com) H> Reviewed by: gnn, rrs, hiren, bz H> MFC after: 1 week H> Sponsored by: Limelight Networks H> Differential Revision: https://reviews.freebsd.org/D5024 A theoretical question: could it be useful to make them socket options like the TCP_KEEP* timeouts? -- Totus tuus, Glebius. From owner-svn-src-all@freebsd.org Tue Jan 26 22:58:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6F109A6EB9F; Tue, 26 Jan 2016 22:58:02 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 5D2233DF; Tue, 26 Jan 2016 22:58:02 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id u0QMw0j5015815 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 26 Jan 2016 14:58:01 -0800 (PST) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id u0QMw0jQ015814; Tue, 26 Jan 2016 14:58:00 -0800 (PST) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 26 Jan 2016 14:58:00 -0800 From: Gleb Smirnoff To: Luigi Rizzo Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294855 - head/sys/netpfil/ipfw Message-ID: <20160126225800.GV6885@FreeBSD.org> References: <201601262245.u0QMj5Pi095914@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201601262245.u0QMj5Pi095914@repo.freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 22:58:02 -0000 Luigi, On Tue, Jan 26, 2016 at 10:45:05PM +0000, Luigi Rizzo wrote: L> Modified: head/sys/netpfil/ipfw/dn_heap.c L> ============================================================================== L> --- head/sys/netpfil/ipfw/dn_heap.c Tue Jan 26 22:32:58 2016 (r294854) L> +++ head/sys/netpfil/ipfw/dn_heap.c Tue Jan 26 22:45:05 2016 (r294855) L> @@ -81,7 +81,7 @@ heap_resize(struct dn_heap *h, unsigned L> { L> struct dn_heap_entry *p; L> L> - if (h->size >= new_size ) /* have enough room */ L> + if ((unsigned int)h->size >= new_size ) /* have enough room */ L> return 0; L> #if 1 /* round to the next power of 2 */ L> new_size |= new_size >> 1; L> @@ -419,6 +419,8 @@ dn_ht_init(struct dn_ht *ht, int buckets L> static int L> do_del(void *obj, void *arg) L> { L> + (void)obj; L> + (void)arg; L> return DNHT_SCAN_DEL; L> } Are there any benefits of this syntax comparing to __unused macro that expands to proper attribute? The latter syntax is used in FreeBSD more often. -- Totus tuus, Glebius. From owner-svn-src-all@freebsd.org Tue Jan 26 23:36:19 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B40A3A6F8EC; Tue, 26 Jan 2016 23:36:19 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 78A951DE9; Tue, 26 Jan 2016 23:36:19 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QNaIEc011858; Tue, 26 Jan 2016 23:36:18 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QNaI8I011857; Tue, 26 Jan 2016 23:36:18 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201601262336.u0QNaI8I011857@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Tue, 26 Jan 2016 23:36:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294858 - head/sys/netpfil/ipfw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 23:36:19 -0000 Author: luigi Date: Tue Jan 26 23:36:18 2016 New Revision: 294858 URL: https://svnweb.freebsd.org/changeset/base/294858 Log: fix various warnings (signed/unsigned, printf types, unused arguments) Modified: head/sys/netpfil/ipfw/dn_sched_qfq.c Modified: head/sys/netpfil/ipfw/dn_sched_qfq.c ============================================================================== --- head/sys/netpfil/ipfw/dn_sched_qfq.c Tue Jan 26 22:46:58 2016 (r294857) +++ head/sys/netpfil/ipfw/dn_sched_qfq.c Tue Jan 26 23:36:18 2016 (r294858) @@ -48,6 +48,7 @@ #endif #ifdef QFQ_DEBUG +#define _P64 unsigned long long /* cast for printing uint64_t */ struct qfq_sched; static void dump_sched(struct qfq_sched *q, const char *msg); #define NO(x) x @@ -84,19 +85,19 @@ static inline unsigned long __fls(unsign #if !defined(_KERNEL) || !defined(__linux__) #ifdef QFQ_DEBUG -int test_bit(int ix, bitmap *p) +static int test_bit(int ix, bitmap *p) { if (ix < 0 || ix > 31) D("bad index %d", ix); return *p & (1< 31) D("bad index %d", ix); *p |= (1< 31) D("bad index %d", ix); @@ -230,9 +231,9 @@ struct qfq_sched { uint64_t V; /* Precise virtual time. */ uint32_t wsum; /* weight sum */ uint32_t iwsum; /* inverse weight sum */ - NO(uint32_t i_wsum; /* ONE_FP/w_sum */ - uint32_t _queued; /* debugging */ - uint32_t loops; /* debugging */) + NO(uint32_t i_wsum;) /* ONE_FP/w_sum */ + NO(uint32_t queued;) /* debugging */ + NO(uint32_t loops;) /* debugging */ bitmap bitmaps[QFQ_MAX_STATE]; /* Group bitmaps. */ struct qfq_group groups[QFQ_MAX_INDEX + 1]; /* The groups. */ }; @@ -486,6 +487,7 @@ qfq_slot_rotate(struct qfq_sched *q, str { unsigned int i = (grp->S - roundedS) >> grp->slot_shift; + (void)q; grp->full_slots <<= i; grp->front = (grp->front - i) % QFQ_MAX_SLOTS; } @@ -516,6 +518,7 @@ qfq_update_class(struct qfq_sched *q, st struct qfq_class *cl) { + (void)q; cl->S = cl->F; if (cl->_q.mq.head == NULL) { qfq_front_slot_remove(grp); @@ -853,9 +856,9 @@ dump_groups(struct qfq_sched *q, uint32_ if (g->slots[j]) D(" bucket %d %p", j, g->slots[j]); } - D("full_slots 0x%x", g->full_slots); + D("full_slots 0x%llx", (_P64)g->full_slots); D(" %2d S 0x%20llx F 0x%llx %c", i, - g->S, g->F, + (_P64)g->S, (_P64)g->F, mask & (1<loops, q->queued, q->V); - D(" ER 0x%08x", q->bitmaps[ER]); - D(" EB 0x%08x", q->bitmaps[EB]); - D(" IR 0x%08x", q->bitmaps[IR]); - D(" IB 0x%08x", q->bitmaps[IB]); + D("loops %d queued %d V 0x%llx", q->loops, q->queued, (_P64)q->V); + D(" ER 0x%08x", (unsigned)q->bitmaps[ER]); + D(" EB 0x%08x", (unsigned)q->bitmaps[EB]); + D(" IR 0x%08x", (unsigned)q->bitmaps[IR]); + D(" IB 0x%08x", (unsigned)q->bitmaps[IB]); dump_groups(q, 0xffffffff); }; #endif /* QFQ_DEBUG */ From owner-svn-src-all@freebsd.org Tue Jan 26 23:37:09 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2ECBBA6F954; Tue, 26 Jan 2016 23:37:09 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D98A01F4E; Tue, 26 Jan 2016 23:37:08 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QNb7Ns011931; Tue, 26 Jan 2016 23:37:07 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QNb7eJ011928; Tue, 26 Jan 2016 23:37:07 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201601262337.u0QNb7eJ011928@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Tue, 26 Jan 2016 23:37:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294859 - head/sys/netpfil/ipfw/test X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 23:37:09 -0000 Author: luigi Date: Tue Jan 26 23:37:07 2016 New Revision: 294859 URL: https://svnweb.freebsd.org/changeset/base/294859 Log: fix various warnings to compile the test code with -Wextra Modified: head/sys/netpfil/ipfw/test/Makefile head/sys/netpfil/ipfw/test/main.c head/sys/netpfil/ipfw/test/test_dn_sched.c Modified: head/sys/netpfil/ipfw/test/Makefile ============================================================================== --- head/sys/netpfil/ipfw/test/Makefile Tue Jan 26 23:36:18 2016 (r294858) +++ head/sys/netpfil/ipfw/test/Makefile Tue Jan 26 23:37:07 2016 (r294859) @@ -20,7 +20,7 @@ HEAP_OBJS=$(HEAP_SRCS:.c=.o) VPATH= .:.. -CFLAGS = -I.. -I. -Wall -Werror -O3 -DIPFW +CFLAGS = -I.. -I. -Wall -Werror -O3 -DIPFW -Wextra TARGETS= test_sched # no test_heap by default all: $(TARGETS) Modified: head/sys/netpfil/ipfw/test/main.c ============================================================================== --- head/sys/netpfil/ipfw/test/main.c Tue Jan 26 23:36:18 2016 (r294858) +++ head/sys/netpfil/ipfw/test/main.c Tue Jan 26 23:37:07 2016 (r294859) @@ -594,9 +594,9 @@ controller(struct cfg_s *c) int flow_id; /* histeresis between max and min */ - if (c->state == 0 && c->pending >= c->th_max) + if (c->state == 0 && c->pending >= (uint32_t)c->th_max) c->state = 1; - else if (c->state == 1 && c->pending <= c->th_min) + else if (c->state == 1 && c->pending <= (uint32_t)c->th_min) c->state = 0; ND(1, "state %d pending %2d", c->state, c->pending); c->can_dequeue = c->state; Modified: head/sys/netpfil/ipfw/test/test_dn_sched.c ============================================================================== --- head/sys/netpfil/ipfw/test/test_dn_sched.c Tue Jan 26 23:36:18 2016 (r294858) +++ head/sys/netpfil/ipfw/test/test_dn_sched.c Tue Jan 26 23:37:07 2016 (r294859) @@ -15,6 +15,9 @@ m_freem(struct mbuf *m) int dn_sched_modevent(module_t mod, int cmd, void *arg) { + (void)mod; + (void)cmd; + (void)arg; return 0; } @@ -32,6 +35,8 @@ int dn_delete_queue(void *_q, void *do_free) { struct dn_queue *q = _q; + + (void)do_free; if (q->mq.head) dn_free_pkts(q->mq.head); free(q); @@ -66,6 +71,7 @@ drop: int ipdn_bound_var(int *v, int dflt, int lo, int hi, const char *msg) { + (void)msg; if (*v < lo) { *v = dflt; } else if (*v > hi) { From owner-svn-src-all@freebsd.org Tue Jan 26 23:56:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 61F6DA6FE02; Tue, 26 Jan 2016 23:56:29 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4040CB68; Tue, 26 Jan 2016 23:56:29 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QNuS1l017906; Tue, 26 Jan 2016 23:56:28 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QNuR47017900; Tue, 26 Jan 2016 23:56:27 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601262356.u0QNuR47017900@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Tue, 26 Jan 2016 23:56:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294860 - in head: lib/libdpv sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 23:56:29 -0000 Author: dteske Date: Tue Jan 26 23:56:27 2016 New Revision: 294860 URL: https://svnweb.freebsd.org/changeset/base/294860 Log: Add keep_tite configuration option Similar to dialog(3) keep_tite option used to prevent visually disturbing initialization or exit that could occur when run from a script using dpv(3) by way of dpv(1) in sequence with other dialog(1) invocations. Modified: head/lib/libdpv/dpv.3 head/lib/libdpv/dpv.c head/lib/libdpv/dpv.h head/lib/libdpv/dpv_private.h head/sys/sys/param.h Modified: head/lib/libdpv/dpv.3 ============================================================================== --- head/lib/libdpv/dpv.3 Tue Jan 26 23:37:07 2016 (r294859) +++ head/lib/libdpv/dpv.3 Tue Jan 26 23:56:27 2016 (r294860) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2013-2015 Devin Teske +.\" Copyright (c) 2013-2016 Devin Teske .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Oct 22, 2015 +.Dd Jan 26, 2016 .Dt DPV 3 .Os .Sh NAME @@ -64,6 +64,7 @@ argument contains the following properti features: .Bd -literal -offset indent struct dpv_config { + uint8_t keep_tite; /* Cleaner exit for scripts */ enum dpv_display display_type; /* Def. DPV_DISPLAY_LIBDIALOG */ enum dpv_output output_type; /* Default DPV_OUTPUT_NONE */ int debug; /* Enable debug on stderr */ Modified: head/lib/libdpv/dpv.c ============================================================================== --- head/lib/libdpv/dpv.c Tue Jan 26 23:37:07 2016 (r294859) +++ head/lib/libdpv/dpv.c Tue Jan 26 23:56:27 2016 (r294860) @@ -69,6 +69,7 @@ long long dpv_overall_read = 0; static char pathbuf[PATH_MAX]; /* Extra display information */ +uint8_t keep_tite = FALSE; /* dpv_config.keep_tite */ uint8_t no_labels = FALSE; /* dpv_config.options & DPV_NO_LABELS */ uint8_t wide = FALSE; /* dpv_config.options & DPV_WIDE_MODE */ char *aprompt = NULL; /* dpv_config.aprompt */ @@ -150,6 +151,7 @@ dpv(struct dpv_config *config, struct dp dialog_updates_per_second = DIALOG_UPDATES_PER_SEC; display_limit = DISPLAY_LIMIT_DEFAULT; display_type = DPV_DISPLAY_LIBDIALOG; + keep_tite = FALSE; label_size = LABEL_SIZE_DEFAULT; msg_done = NULL; msg_fail = NULL; @@ -193,6 +195,7 @@ dpv(struct dpv_config *config, struct dp dialog_updates_per_second = config->dialog_updates_per_second; display_limit = config->display_limit; display_type = config->display_type; + keep_tite = config->keep_tite; label_size = config->label_size; msg_done = (char *)config->msg_done; msg_fail = (char *)config->msg_fail; @@ -695,7 +698,7 @@ dpv(struct dpv_config *config, struct dp close(dialog_out); waitpid(pid, (int *)NULL, 0); } - if (!dpv_interrupt) + if (!keep_tite && !dpv_interrupt) printf("\n"); } else warnx("%s: %lli overall read", __func__, dpv_overall_read); Modified: head/lib/libdpv/dpv.h ============================================================================== --- head/lib/libdpv/dpv.h Tue Jan 26 23:37:07 2016 (r294859) +++ head/lib/libdpv/dpv.h Tue Jan 26 23:56:27 2016 (r294860) @@ -97,6 +97,7 @@ struct dpv_file_node { * Anatomy of config option to pass as dpv() config argument */ struct dpv_config { + uint8_t keep_tite; /* Prevent visually distracting exit */ enum dpv_display display_type; /* Display (default TYPE_LIBDIALOG) */ enum dpv_output output_type; /* Output (default TYPE_NONE) */ int debug; /* Enable debugging output on stderr */ Modified: head/lib/libdpv/dpv_private.h ============================================================================== --- head/lib/libdpv/dpv_private.h Tue Jan 26 23:37:07 2016 (r294859) +++ head/lib/libdpv/dpv_private.h Tue Jan 26 23:56:27 2016 (r294860) @@ -38,6 +38,7 @@ extern uint8_t debug; extern unsigned int dpv_nfiles; /* Extra display information */ +extern uint8_t keep_tite; extern uint8_t no_labels; extern uint8_t wide; extern char *msg_done, *msg_fail, *msg_pending; Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Tue Jan 26 23:37:07 2016 (r294859) +++ head/sys/sys/param.h Tue Jan 26 23:56:27 2016 (r294860) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1100096 /* Master, propagated to newvers */ +#define __FreeBSD_version 1100097 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Tue Jan 26 23:59:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4BE11A4606E; Tue, 26 Jan 2016 23:59:32 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F3793D0F; Tue, 26 Jan 2016 23:59:31 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0QNxUMl018043; Tue, 26 Jan 2016 23:59:30 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0QNxUnM018041; Tue, 26 Jan 2016 23:59:30 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601262359.u0QNxUnM018041@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Tue, 26 Jan 2016 23:59:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294861 - head/usr.bin/dpv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jan 2016 23:59:32 -0000 Author: dteske Date: Tue Jan 26 23:59:30 2016 New Revision: 294861 URL: https://svnweb.freebsd.org/changeset/base/294861 Log: Add `-k' for dpv(3) `keep_tite' config option For scripts using dialog(1) several times, it can be visually distracting running dpv(1) several times amidst other dialogs. The `-k' option, similar to dialog(1) `--keep-tite', enables the same functionality to smooth ti/te. Modified: head/usr.bin/dpv/dpv.1 head/usr.bin/dpv/dpv.c Modified: head/usr.bin/dpv/dpv.1 ============================================================================== --- head/usr.bin/dpv/dpv.1 Tue Jan 26 23:56:27 2016 (r294860) +++ head/usr.bin/dpv/dpv.1 Tue Jan 26 23:59:30 2016 (r294861) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2013-2015 Devin Teske +.\" Copyright (c) 2013-2016 Devin Teske .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Oct 22, 2015 +.Dd Jan 26, 2016 .Dt DPV 1 .Os .Sh NAME @@ -138,6 +138,11 @@ Default value is .Dq Li %'10lli bytes read @ %'9.1f bytes/sec. [%i/%i busy/wait] . This format is used when handling more than one file. +.It Fl k +Keep tite. +Prevent visually distracting initialization/exit routines for scripts running +.Xr dialog 1 +several times. .It Fl l Line mode. Read lines from input instead of bytes. .It Fl L Ar size Modified: head/usr.bin/dpv/dpv.c ============================================================================== --- head/usr.bin/dpv/dpv.c Tue Jan 26 23:56:27 2016 (r294860) +++ head/usr.bin/dpv/dpv.c Tue Jan 26 23:59:30 2016 (r294861) @@ -271,7 +271,7 @@ main(int argc, char *argv[]) * Process command-line options */ while ((ch = getopt(argc, argv, - "a:b:dDhi:I:lL:mn:No:p:P:t:TU:wx:X")) != -1) { + "a:b:dDhi:I:klL:mn:No:p:P:t:TU:wx:X")) != -1) { switch(ch) { case 'a': /* additional message text to append */ if (config->aprompt == NULL) { @@ -307,6 +307,9 @@ main(int argc, char *argv[]) case 'I': /* status line format string for many-files */ config->status_many = optarg; break; + case 'k': /* keep tite */ + config->keep_tite = TRUE; + break; case 'l': /* Line mode */ line_mode = TRUE; break; @@ -467,7 +470,8 @@ main(int argc, char *argv[]) if (dpv(config, file_list) != 0 && debug) warnx("dpv(3) returned error!?"); - end_dialog(); + if (!config->keep_tite) + end_dialog(); dpv_free(); exit(EXIT_SUCCESS); From owner-svn-src-all@freebsd.org Wed Jan 27 00:02:53 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3158DA46262; Wed, 27 Jan 2016 00:02:53 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0059110C0; Wed, 27 Jan 2016 00:02:52 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R02pxh020786; Wed, 27 Jan 2016 00:02:51 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R02pRo020783; Wed, 27 Jan 2016 00:02:51 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270002.u0R02pRo020783@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 00:02:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294862 - head/lib/libdpv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:02:53 -0000 Author: dteske Date: Wed Jan 27 00:02:51 2016 New Revision: 294862 URL: https://svnweb.freebsd.org/changeset/base/294862 Log: Bump copyrights Modified: head/lib/libdpv/dpv.c head/lib/libdpv/dpv.h head/lib/libdpv/dpv_private.h Modified: head/lib/libdpv/dpv.c ============================================================================== --- head/lib/libdpv/dpv.c Tue Jan 26 23:59:30 2016 (r294861) +++ head/lib/libdpv/dpv.c Wed Jan 27 00:02:51 2016 (r294862) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2013-2014 Devin Teske + * Copyright (c) 2013-2016 Devin Teske * All rights reserved. * * Redistribution and use in source and binary forms, with or without Modified: head/lib/libdpv/dpv.h ============================================================================== --- head/lib/libdpv/dpv.h Tue Jan 26 23:59:30 2016 (r294861) +++ head/lib/libdpv/dpv.h Wed Jan 27 00:02:51 2016 (r294862) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2013-2014 Devin Teske + * Copyright (c) 2013-2016 Devin Teske * All rights reserved. * * Redistribution and use in source and binary forms, with or without Modified: head/lib/libdpv/dpv_private.h ============================================================================== --- head/lib/libdpv/dpv_private.h Tue Jan 26 23:59:30 2016 (r294861) +++ head/lib/libdpv/dpv_private.h Wed Jan 27 00:02:51 2016 (r294862) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2013-2014 Devin Teske + * Copyright (c) 2013-2016 Devin Teske * All rights reserved. * * Redistribution and use in source and binary forms, with or without From owner-svn-src-all@freebsd.org Wed Jan 27 00:03:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E2D8A462DA; Wed, 27 Jan 2016 00:03:45 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D18BF1277; Wed, 27 Jan 2016 00:03:44 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R03h52020868; Wed, 27 Jan 2016 00:03:43 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R03h83020867; Wed, 27 Jan 2016 00:03:43 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270003.u0R03h83020867@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 00:03:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294863 - head/usr.bin/dpv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:03:45 -0000 Author: dteske Date: Wed Jan 27 00:03:43 2016 New Revision: 294863 URL: https://svnweb.freebsd.org/changeset/base/294863 Log: Bump copyright Modified: head/usr.bin/dpv/dpv.c Modified: head/usr.bin/dpv/dpv.c ============================================================================== --- head/usr.bin/dpv/dpv.c Wed Jan 27 00:02:51 2016 (r294862) +++ head/usr.bin/dpv/dpv.c Wed Jan 27 00:03:43 2016 (r294863) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2013-2014 Devin Teske + * Copyright (c) 2013-2016 Devin Teske * All rights reserved. * * Redistribution and use in source and binary forms, with or without From owner-svn-src-all@freebsd.org Wed Jan 27 00:08:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27C08A4647E; Wed, 27 Jan 2016 00:08:25 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EF5FD14BB; Wed, 27 Jan 2016 00:08:24 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R08ODk021060; Wed, 27 Jan 2016 00:08:24 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R08Oqf021059; Wed, 27 Jan 2016 00:08:24 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270008.u0R08Oqf021059@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 00:08:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294864 - head/usr.sbin/bsdconfig/share/packages X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:08:25 -0000 Author: dteske Date: Wed Jan 27 00:08:23 2016 New Revision: 294864 URL: https://svnweb.freebsd.org/changeset/base/294864 Log: Change incorrect path Modified: head/usr.sbin/bsdconfig/share/packages/index.subr Modified: head/usr.sbin/bsdconfig/share/packages/index.subr ============================================================================== --- head/usr.sbin/bsdconfig/share/packages/index.subr Wed Jan 27 00:03:43 2016 (r294863) +++ head/usr.sbin/bsdconfig/share/packages/index.subr Wed Jan 27 00:08:23 2016 (r294864) @@ -1,6 +1,6 @@ if [ ! "$_PACKAGES_INDEX_SUBR" ]; then _PACKAGES_INDEX_SUBR=1 # -# Copyright (c) 2013 Devin Teske +# Copyright (c) 2013-2016 Devin Teske # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -47,7 +47,7 @@ _INDEX_INITTED= # # Default path to pkg(8) repo-packagesite.sqlite database # -SQLITE_REPO="/var/db/pkg/repo-packagesite.sqlite" +SQLITE_REPO="/var/db/pkg/repo-FreeBSD.sqlite" # # Default path to on-disk cache INDEX file From owner-svn-src-all@freebsd.org Wed Jan 27 00:09:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D47BAA4651D; Wed, 27 Jan 2016 00:09:54 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A6CE1164C; Wed, 27 Jan 2016 00:09:54 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R09rNH021147; Wed, 27 Jan 2016 00:09:53 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R09rQF021146; Wed, 27 Jan 2016 00:09:53 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270009.u0R09rQF021146@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 00:09:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294865 - head/usr.sbin/bsdconfig/share/packages X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:09:54 -0000 Author: dteske Date: Wed Jan 27 00:09:53 2016 New Revision: 294865 URL: https://svnweb.freebsd.org/changeset/base/294865 Log: Fix ABI parsing Modified: head/usr.sbin/bsdconfig/share/packages/musthavepkg.subr Modified: head/usr.sbin/bsdconfig/share/packages/musthavepkg.subr ============================================================================== --- head/usr.sbin/bsdconfig/share/packages/musthavepkg.subr Wed Jan 27 00:08:23 2016 (r294864) +++ head/usr.sbin/bsdconfig/share/packages/musthavepkg.subr Wed Jan 27 00:09:53 2016 (r294865) @@ -1,6 +1,6 @@ if [ ! "$_PACKAGES_MUSTHAVEPKG_SUBR" ]; then _PACKAGES_MUSTHAVEPKG_SUBR=1 # -# Copyright (c) 2014 Devin Teske +# Copyright (c) 2014-2016 Devin Teske # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -45,7 +45,11 @@ f_include $BSDCFG_SHARE/mustberoot.subr f_musthavepkg_init() { local funcname=f_musthavepkg_init - local pkg_abi_awk='$1~/^ABI/{print $NF; exit}' + local pkg_abi_awk=' # BEGIN-AWK + $1 ~ /^ABI/ && $0 = $NF, sub(/^"/, "") && sub(/".*/, "") { + print; found = 1; exit + } END { exit ! found } + ' # END-AWK if [ "$PKG_ABI" ]; then # Already set f_dprintf "PKG_ABI=[%s]" "$PKG_ABI" From owner-svn-src-all@freebsd.org Wed Jan 27 00:13:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 175C3A466EB; Wed, 27 Jan 2016 00:13:00 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D03A31AFC; Wed, 27 Jan 2016 00:12:59 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R0Cw8L023871; Wed, 27 Jan 2016 00:12:58 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R0Cwcb023868; Wed, 27 Jan 2016 00:12:58 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270012.u0R0Cwcb023868@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 00:12:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294866 - in head/usr.sbin/bsdconfig: include share/packages X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:13:00 -0000 Author: dteske Date: Wed Jan 27 00:12:58 2016 New Revision: 294866 URL: https://svnweb.freebsd.org/changeset/base/294866 Log: Use dpv(1) in `bsdconfig packages' Modified: head/usr.sbin/bsdconfig/include/messages.subr head/usr.sbin/bsdconfig/share/packages/index.subr head/usr.sbin/bsdconfig/share/packages/packages.subr Modified: head/usr.sbin/bsdconfig/include/messages.subr ============================================================================== --- head/usr.sbin/bsdconfig/include/messages.subr Wed Jan 27 00:09:53 2016 (r294865) +++ head/usr.sbin/bsdconfig/include/messages.subr Wed Jan 27 00:12:58 2016 (r294866) @@ -1,5 +1,5 @@ # Copyright (c) 2012 Ron McDowell -# Copyright (c) 2012-2013 Devin Teske +# Copyright (c) 2012-2016 Devin Teske # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -60,6 +60,7 @@ msg_biology_desc="Software related to bi msg_bootstrapping_pkg="Bootstrapping pkg(8)..." msg_brazil="Brazil" msg_building_package_menus="Building package menu(s)..." +msg_building_package_main_menu="Building package main menu..." msg_cad_desc="Computer Aided Design utilities." msg_canada="Canada" msg_cancel="Cancel" @@ -201,7 +202,6 @@ msg_linux_desc="Linux programs that can msg_lisp_desc="Software related to the Lisp language." msg_lithuania="Lithuania" msg_loading_of_dependent_package_failed="Loading of dependent package %s failed" -msg_located_index_now_reading_package_data_from_it="Located INDEX, now reading package data from it..." msg_logging_in_to_user_at_host="Logging in to %s@%s.." msg_looking_for_keymap_files="Looking for keymap files..." msg_looking_up_host="Looking up host %s" @@ -313,6 +313,7 @@ msg_proceed="Proceed" msg_processing_selection="Processing selection..." msg_python_desc="Software related to the Python language." msg_quick_start_how_to_use_this_menu_system="Quick start - How to use this menu system" +msg_reading_package_index_data="Reading package index data" msg_reinstall="Reinstall" msg_reinstall_desc="Mark this package for reinstall" msg_release_name="Release Name" Modified: head/usr.sbin/bsdconfig/share/packages/index.subr ============================================================================== --- head/usr.sbin/bsdconfig/share/packages/index.subr Wed Jan 27 00:09:53 2016 (r294865) +++ head/usr.sbin/bsdconfig/share/packages/index.subr Wed Jan 27 00:12:58 2016 (r294866) @@ -162,8 +162,6 @@ f_index_initialize() fi ) < "$PACKAGES_INDEX_CACHEFILE" 2> /dev/null )'; then - f_show_info \ - "$msg_located_index_now_reading_package_data_from_it" if ! f_index_read "$__var_to_set"; then f_show_err \ "$msg_io_or_format_error_on_index_file" @@ -179,8 +177,11 @@ f_index_initialize() # If we reach this point, we need to generate the data from scratch # - f_show_info "$msg_generating_index_from_pkg_database" - eval "$__var_to_set"='$( pkg rquery -I | sort )' + eval "$__var_to_set"='$( pkg rquery -I | ( + exec 2<&1; dpv -ko /dev/stderr >&$TERMINAL_STDOUT_PASSTHRU \ + -b "$DIALOG_BACKTITLE" \ + -- "$msg_generating_index_from_pkg_database" + ) | sort )' # # Attempt to create the persistant on-disk cache @@ -204,7 +205,6 @@ f_index_initialize() "$__tmpfile" "$PACKAGES_INDEX_CACHEFILE" fi - f_show_info "$msg_located_index_now_reading_package_data_from_it" if ! f_index_read "$__var_to_set"; then f_show_err "$msg_io_or_format_error_on_index_file" return $FAILURE @@ -329,7 +329,9 @@ f_index_read() sub(/^ /, "", category_list) print "PACKAGE_CATEGORIES=\"" category_list "\"" - }' )" # End-Quote + }' | ( exec 2<&1; dpv -ko /dev/stderr >&$TERMINAL_STDOUT_PASSTHRU \ + -b "$DIALOG_BACKTITLE" -- "$msg_reading_package_index_data" + ) )" # End-Quote } # f_index_extract_pages $var_to_get $var_basename $pagesize [$category] Modified: head/usr.sbin/bsdconfig/share/packages/packages.subr ============================================================================== --- head/usr.sbin/bsdconfig/share/packages/packages.subr Wed Jan 27 00:09:53 2016 (r294865) +++ head/usr.sbin/bsdconfig/share/packages/packages.subr Wed Jan 27 00:12:58 2016 (r294866) @@ -1,6 +1,6 @@ if [ ! "$_PACKAGES_PACKAGES_SUBR" ]; then _PACKAGES_PACKAGES_SUBR=1 # -# Copyright (c) 2013 Devin Teske +# Copyright (c) 2013-2016 Devin Teske # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -668,6 +668,8 @@ f_package_config() # CATEGORY_MENU_LIST _categories_{varpkg} _rundeps_{varpkg} # PACKAGE_CATEGORIES _npkgs + f_show_info "$msg_building_package_main_menu" + # Detect installed packages (updates marks/SELECTED_PACKAGES) f_package_detect_installed export PACKAGES_DETECTED=1 # exported for awk(1) ENVIRON[] From owner-svn-src-all@freebsd.org Wed Jan 27 00:20:09 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09B63A469FF; Wed, 27 Jan 2016 00:20:09 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CC22F1E4C; Wed, 27 Jan 2016 00:20:08 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R0K7mQ024151; Wed, 27 Jan 2016 00:20:07 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R0K7Ed024149; Wed, 27 Jan 2016 00:20:07 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201601270020.u0R0K7Ed024149@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 27 Jan 2016 00:20:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294867 - in head/sys: net netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:20:09 -0000 Author: glebius Date: Wed Jan 27 00:20:07 2016 New Revision: 294867 URL: https://svnweb.freebsd.org/changeset/base/294867 Log: Provide TCPSTAT_DEC() and TCPSTAT_FETCH() macros. Modified: head/sys/net/vnet.h head/sys/netinet/tcp_var.h Modified: head/sys/net/vnet.h ============================================================================== --- head/sys/net/vnet.h Wed Jan 27 00:12:58 2016 (r294866) +++ head/sys/net/vnet.h Wed Jan 27 00:20:07 2016 (r294867) @@ -101,6 +101,9 @@ struct vnet { #define VNET_PCPUSTAT_ADD(type, name, f, v) \ counter_u64_add(VNET(name)[offsetof(type, f) / sizeof(uint64_t)], (v)) +#define VNET_PCPUSTAT_FETCH(type, name, f) \ + counter_u64_fetch(VNET(name)[offsetof(type, f) / sizeof(uint64_t)]) + #define VNET_PCPUSTAT_SYSINIT(name) \ static void \ vnet_##name##_init(const void *unused) \ Modified: head/sys/netinet/tcp_var.h ============================================================================== --- head/sys/netinet/tcp_var.h Wed Jan 27 00:12:58 2016 (r294866) +++ head/sys/netinet/tcp_var.h Wed Jan 27 00:20:07 2016 (r294867) @@ -605,6 +605,9 @@ VNET_PCPUSTAT_DECLARE(struct tcpstat, tc #define TCPSTAT_ADD(name, val) \ VNET_PCPUSTAT_ADD(struct tcpstat, tcpstat, name, (val)) #define TCPSTAT_INC(name) TCPSTAT_ADD(name, 1) +#define TCPSTAT_DEC(name) TCPSTAT_ADD(name, -1) +#define TCPSTAT_FETCH(name) VNET_PCPUSTAT_FETCH(struct tcpstat, tcpstat, \ + name) /* * Kernel module consumers must use this accessor macro. From owner-svn-src-all@freebsd.org Wed Jan 27 00:24:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75BD8A46C6D; Wed, 27 Jan 2016 00:24:25 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46B602E9; Wed, 27 Jan 2016 00:24:25 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R0OO5j026887; Wed, 27 Jan 2016 00:24:24 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R0OODK026886; Wed, 27 Jan 2016 00:24:24 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601270024.u0R0OODK026886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 00:24:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294868 - head/lib/libc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:24:25 -0000 Author: bdrewery Date: Wed Jan 27 00:24:24 2016 New Revision: 294868 URL: https://svnweb.freebsd.org/changeset/base/294868 Log: Remove excess whitespace Modified: head/lib/libc/Makefile Modified: head/lib/libc/Makefile ============================================================================== --- head/lib/libc/Makefile Wed Jan 27 00:20:07 2016 (r294867) +++ head/lib/libc/Makefile Wed Jan 27 00:24:24 2016 (r294868) @@ -173,7 +173,7 @@ CFLAGS+= -I${SRCTOP}/lib/libutil # Same issue with libm MSUN_ARCH_SUBDIR != ${MAKE} -B -C ${SRCTOP}/lib/msun -V ARCH_SUBDIR # unfortunately msun/src contains both private and public headers -CFLAGS+= -I${SRCTOP}/lib/msun/${MSUN_ARCH_SUBDIR} +CFLAGS+= -I${SRCTOP}/lib/msun/${MSUN_ARCH_SUBDIR} .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" CFLAGS+= -I${SRCTOP}/lib/msun/x86 .endif From owner-svn-src-all@freebsd.org Wed Jan 27 00:45:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 293E5A6E73C; Wed, 27 Jan 2016 00:45:48 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 05112F75; Wed, 27 Jan 2016 00:45:47 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R0jlHW032754; Wed, 27 Jan 2016 00:45:47 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R0jkfl032745; Wed, 27 Jan 2016 00:45:46 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201601270045.u0R0jkfl032745@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 27 Jan 2016 00:45:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294869 - in head: sys/dev/cxgbe/tom sys/netinet usr.bin/systat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:45:48 -0000 Author: glebius Date: Wed Jan 27 00:45:46 2016 New Revision: 294869 URL: https://svnweb.freebsd.org/changeset/base/294869 Log: Augment struct tcpstat with tcps_states[], which is used for book-keeping the amount of TCP connections by state. Provides a cheap way to get connection count without traversing the whole pcb list. Sponsored by: Netflix Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c head/sys/netinet/tcp_offload.c head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_syncache.c head/sys/netinet/tcp_timewait.c head/sys/netinet/tcp_usrreq.c head/sys/netinet/tcp_var.h head/usr.bin/systat/netstat.c Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Jan 27 00:24:24 2016 (r294868) +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Jan 27 00:45:46 2016 (r294869) @@ -45,10 +45,10 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #define TCPSTATES #include #include +#include #include #include "common/common.h" Modified: head/sys/netinet/tcp_offload.c ============================================================================== --- head/sys/netinet/tcp_offload.c Wed Jan 27 00:24:24 2016 (r294868) +++ head/sys/netinet/tcp_offload.c Wed Jan 27 00:45:46 2016 (r294869) @@ -42,10 +42,10 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #define TCPOUTFLAGS #include +#include #include int registered_toedevs; Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Wed Jan 27 00:24:24 2016 (r294868) +++ head/sys/netinet/tcp_subr.c Wed Jan 27 00:45:46 2016 (r294869) @@ -1468,6 +1468,7 @@ tcp_close(struct tcpcb *tp) #endif in_pcbdrop(inp); TCPSTAT_INC(tcps_closed); + TCPSTAT_DEC(tcps_states[tp->t_state]); KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL")); so = inp->inp_socket; soisdisconnected(so); @@ -2910,6 +2911,8 @@ tcp_state_change(struct tcpcb *tp, int n int pstate = tp->t_state; #endif + TCPSTAT_DEC(tcps_states[tp->t_state]); + TCPSTAT_INC(tcps_states[newstate]); tp->t_state = newstate; TCP_PROBE6(state__change, NULL, tp, NULL, tp, NULL, pstate); } Modified: head/sys/netinet/tcp_syncache.c ============================================================================== --- head/sys/netinet/tcp_syncache.c Wed Jan 27 00:24:24 2016 (r294868) +++ head/sys/netinet/tcp_syncache.c Wed Jan 27 00:45:46 2016 (r294869) @@ -351,6 +351,7 @@ syncache_insert(struct syncache *sc, str SCH_UNLOCK(sch); + TCPSTAT_INC(tcps_states[TCPS_SYN_RECEIVED]); TCPSTAT_INC(tcps_sc_added); } @@ -364,6 +365,7 @@ syncache_drop(struct syncache *sc, struc SCH_LOCK_ASSERT(sch); + TCPSTAT_DEC(tcps_states[TCPS_SYN_RECEIVED]); TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash); sch->sch_length--; @@ -992,7 +994,16 @@ syncache_expand(struct in_conninfo *inc, goto failed; } } else { - /* Pull out the entry to unlock the bucket row. */ + /* + * Pull out the entry to unlock the bucket row. + * + * NOTE: We must decrease TCPS_SYN_RECEIVED count here, not + * tcp_state_change(). The tcpcb is not existent at this + * moment. A new one will be allocated via syncache_socket-> + * sonewconn->tcp_usr_attach in TCPS_CLOSED state, then + * syncache_socket() will change it to TCPS_SYN_RECEIVED. + */ + TCPSTAT_DEC(tcps_states[TCPS_SYN_RECEIVED]); TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash); sch->sch_length--; #ifdef TCP_OFFLOAD Modified: head/sys/netinet/tcp_timewait.c ============================================================================== --- head/sys/netinet/tcp_timewait.c Wed Jan 27 00:24:24 2016 (r294868) +++ head/sys/netinet/tcp_timewait.c Wed Jan 27 00:45:46 2016 (r294869) @@ -660,6 +660,7 @@ tcp_tw_2msl_stop(struct tcptw *tw, int r if (!reuse) uma_zfree(V_tcptw_zone, tw); + TCPSTAT_DEC(tcps_states[TCPS_TIME_WAIT]); } struct tcptw * Modified: head/sys/netinet/tcp_usrreq.c ============================================================================== --- head/sys/netinet/tcp_usrreq.c Wed Jan 27 00:24:24 2016 (r294868) +++ head/sys/netinet/tcp_usrreq.c Wed Jan 27 00:45:46 2016 (r294869) @@ -1883,6 +1883,7 @@ tcp_attach(struct socket *so) tp->t_state = TCPS_CLOSED; INP_WUNLOCK(inp); INP_INFO_RUNLOCK(&V_tcbinfo); + TCPSTAT_INC(tcps_states[TCPS_CLOSED]); return (0); } Modified: head/sys/netinet/tcp_var.h ============================================================================== --- head/sys/netinet/tcp_var.h Wed Jan 27 00:24:24 2016 (r294868) +++ head/sys/netinet/tcp_var.h Wed Jan 27 00:45:46 2016 (r294869) @@ -34,6 +34,7 @@ #define _NETINET_TCP_VAR_H_ #include +#include #ifdef _KERNEL #include @@ -587,6 +588,9 @@ struct tcpstat { uint64_t tcps_sig_err_sigopt; /* No signature expected by socket */ uint64_t tcps_sig_err_nosigopt; /* No signature provided by segment */ + /* Running connection count. */ + uint64_t tcps_states[TCP_NSTATES]; + uint64_t _pad[12]; /* 6 UTO, 6 TBD */ }; Modified: head/usr.bin/systat/netstat.c ============================================================================== --- head/usr.bin/systat/netstat.c Wed Jan 27 00:24:24 2016 (r294868) +++ head/usr.bin/systat/netstat.c Wed Jan 27 00:45:46 2016 (r294869) @@ -59,10 +59,10 @@ static const char sccsid[] = "@(#)netsta #include #include #include -#include #define TCPSTATES #include #include +#include #include #include #include From owner-svn-src-all@freebsd.org Wed Jan 27 00:48:07 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8BD7EA6E85C; Wed, 27 Jan 2016 00:48:07 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4491F1176; Wed, 27 Jan 2016 00:48:07 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R0m6UB032875; Wed, 27 Jan 2016 00:48:06 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R0m6ML032872; Wed, 27 Jan 2016 00:48:06 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201601270048.u0R0m6ML032872@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 27 Jan 2016 00:48:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294870 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:48:07 -0000 Author: glebius Date: Wed Jan 27 00:48:05 2016 New Revision: 294870 URL: https://svnweb.freebsd.org/changeset/base/294870 Log: Grab a snap amount of TCP connections in syncache from tcpstat. Modified: head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_syncache.c head/sys/netinet/tcp_syncache.h Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Wed Jan 27 00:45:46 2016 (r294869) +++ head/sys/netinet/tcp_subr.c Wed Jan 27 00:48:05 2016 (r294870) @@ -1590,7 +1590,8 @@ tcp_pcblist(SYSCTL_HANDLER_ARGS) * resource-intensive to repeat twice on every request. */ if (req->oldptr == NULL) { - n = V_tcbinfo.ipi_count + syncache_pcbcount(); + n = V_tcbinfo.ipi_count + + TCPSTAT_FETCH(tcps_states[TCPS_SYN_RECEIVED]); n += imax(n / 8, 10); req->oldidx = 2 * (sizeof xig) + n * sizeof(struct xtcpcb); return (0); @@ -1607,7 +1608,7 @@ tcp_pcblist(SYSCTL_HANDLER_ARGS) n = V_tcbinfo.ipi_count; INP_LIST_RUNLOCK(&V_tcbinfo); - m = syncache_pcbcount(); + m = TCPSTAT_FETCH(tcps_states[TCPS_SYN_RECEIVED]); error = sysctl_wire_old_buffer(req, 2 * (sizeof xig) + (n + m) * sizeof(struct xtcpcb)); Modified: head/sys/netinet/tcp_syncache.c ============================================================================== --- head/sys/netinet/tcp_syncache.c Wed Jan 27 00:45:46 2016 (r294869) +++ head/sys/netinet/tcp_syncache.c Wed Jan 27 00:48:05 2016 (r294870) @@ -2100,25 +2100,6 @@ syncookie_reseed(void *arg) } /* - * Returns the current number of syncache entries. This number - * will probably change before you get around to calling - * syncache_pcblist. - */ -int -syncache_pcbcount(void) -{ - struct syncache_head *sch; - int count, i; - - for (count = 0, i = 0; i < V_tcp_syncache.hashsize; i++) { - /* No need to lock for a read. */ - sch = &V_tcp_syncache.hashbase[i]; - count += sch->sch_length; - } - return count; -} - -/* * Exports the syncache entries to userland so that netstat can display * them alongside the other sockets. This function is intended to be * called only from tcp_pcblist. Modified: head/sys/netinet/tcp_syncache.h ============================================================================== --- head/sys/netinet/tcp_syncache.h Wed Jan 27 00:45:46 2016 (r294869) +++ head/sys/netinet/tcp_syncache.h Wed Jan 27 00:48:05 2016 (r294870) @@ -46,7 +46,6 @@ int syncache_add(struct in_conninfo *, void *, void *); void syncache_chkrst(struct in_conninfo *, struct tcphdr *); void syncache_badack(struct in_conninfo *); -int syncache_pcbcount(void); int syncache_pcblist(struct sysctl_req *req, int max_pcbs, int *pcbs_exported); struct syncache { From owner-svn-src-all@freebsd.org Wed Jan 27 00:50:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0B5BFA6E993; Wed, 27 Jan 2016 00:50:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B821F1332; Wed, 27 Jan 2016 00:50:28 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R0oRGv033002; Wed, 27 Jan 2016 00:50:27 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R0oRDd033001; Wed, 27 Jan 2016 00:50:27 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201601270050.u0R0oRDd033001@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 27 Jan 2016 00:50:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294871 - head/contrib/bsnmp/snmp_mibII X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 00:50:29 -0000 Author: glebius Date: Wed Jan 27 00:50:27 2016 New Revision: 294871 URL: https://svnweb.freebsd.org/changeset/base/294871 Log: Grab value for LEAF_tcpCurrEstab from net.inet.tcp.stats instead of net.inet.tcp.pcblist, which is much cheaper. Modified: head/contrib/bsnmp/snmp_mibII/mibII_tcp.c Modified: head/contrib/bsnmp/snmp_mibII/mibII_tcp.c ============================================================================== --- head/contrib/bsnmp/snmp_mibII/mibII_tcp.c Wed Jan 27 00:48:05 2016 (r294870) +++ head/contrib/bsnmp/snmp_mibII/mibII_tcp.c Wed Jan 27 00:50:27 2016 (r294871) @@ -45,10 +45,10 @@ struct tcp_index { }; static uint64_t tcp_tick; +static uint64_t tcp_stats_tick; static struct tcpstat tcpstat; static struct xinpgen *xinpgen; static size_t xinpgen_len; -static u_int tcp_count; static u_int tcp_total; static u_int oidnum; @@ -64,13 +64,9 @@ tcp_compare(const void *p1, const void * } static int -fetch_tcp(void) +fetch_tcp_stats(void) { size_t len; - struct xinpgen *ptr; - struct xtcpcb *tp; - struct tcp_index *oid; - in_addr_t inaddr; len = sizeof(tcpstat); if (sysctlbyname("net.inet.tcp.stats", &tcpstat, &len, NULL, 0) == -1) { @@ -82,6 +78,20 @@ fetch_tcp(void) return (-1); } + tcp_stats_tick = get_ticks(); + + return (0); +} + +static int +fetch_tcp(void) +{ + size_t len; + struct xinpgen *ptr; + struct xtcpcb *tp; + struct tcp_index *oid; + in_addr_t inaddr; + len = 0; if (sysctlbyname("net.inet.tcp.pcblist", NULL, &len, NULL, 0) == -1) { syslog(LOG_ERR, "net.inet.tcp.pcblist: %m"); @@ -102,7 +112,6 @@ fetch_tcp(void) tcp_tick = get_ticks(); - tcp_count = 0; tcp_total = 0; for (ptr = (struct xinpgen *)(void *)((char *)xinpgen + xinpgen->xig_len); ptr->xig_len > sizeof(struct xinpgen); @@ -114,10 +123,6 @@ fetch_tcp(void) if (tp->xt_inp.inp_vflag & INP_IPV4) tcp_total++; - - if (tp->xt_tp.t_state == TCPS_ESTABLISHED || - tp->xt_tp.t_state == TCPS_CLOSE_WAIT) - tcp_count++; } if (oidnum < tcp_total) { @@ -184,8 +189,8 @@ op_tcp(struct snmp_context *ctx __unused abort(); } - if (tcp_tick < this_tick) - if (fetch_tcp() == -1) + if (tcp_stats_tick < this_tick) + if (fetch_tcp_stats() == -1) return (SNMP_ERR_GENERR); switch (value->var.subs[sub - 1]) { @@ -226,7 +231,8 @@ op_tcp(struct snmp_context *ctx __unused break; case LEAF_tcpCurrEstab: - value->v.uint32 = tcp_count; + value->v.uint32 = tcpstat.tcps_states[TCPS_ESTABLISHED] + + tcpstat.tcps_states[TCPS_CLOSE_WAIT]; break; case LEAF_tcpInSegs: From owner-svn-src-all@freebsd.org Wed Jan 27 01:24:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7D6D8A6F463; Wed, 27 Jan 2016 01:24:06 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4B8DF660; Wed, 27 Jan 2016 01:24:06 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R1O5oQ044276; Wed, 27 Jan 2016 01:24:05 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R1O5t8044275; Wed, 27 Jan 2016 01:24:05 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601270124.u0R1O5t8044275@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 01:24:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294872 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 01:24:06 -0000 Author: bdrewery Date: Wed Jan 27 01:24:05 2016 New Revision: 294872 URL: https://svnweb.freebsd.org/changeset/base/294872 Log: Fix DIRDEPS_BUILD after r294752. DIRDEPS_BUILD does not yet support PROGS having their own dependency file. Overriding .MAKE.DEPENDFILE here causes major problems with the meta mode logic since it creates the Makefile.depend as '.depend' resulting in infinite loops in make due to dirdeps.mk including .depend endlessly. X-MFC-With: r294752 MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.dep.mk Modified: head/share/mk/bsd.dep.mk ============================================================================== --- head/share/mk/bsd.dep.mk Wed Jan 27 00:50:27 2016 (r294871) +++ head/share/mk/bsd.dep.mk Wed Jan 27 01:24:05 2016 (r294872) @@ -56,7 +56,9 @@ _MKDEPCC+= ${DEPFLAGS} .endif MKDEPCMD?= CC='${_MKDEPCC}' mkdep DEPENDFILE?= .depend +.if ${MK_DIRDEPS_BUILD} == "no" .MAKE.DEPENDFILE= ${DEPENDFILE} +.endif DEPENDFILES= ${DEPENDFILE} # Keep `tags' here, before SRCS are mangled below for `depend'. From owner-svn-src-all@freebsd.org Wed Jan 27 01:24:09 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 99226A6F480; Wed, 27 Jan 2016 01:24:09 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 68004678; Wed, 27 Jan 2016 01:24:09 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R1O82G044321; Wed, 27 Jan 2016 01:24:08 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R1O8rN044320; Wed, 27 Jan 2016 01:24:08 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601270124.u0R1O8rN044320@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 01:24:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294873 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 01:24:09 -0000 Author: bdrewery Date: Wed Jan 27 01:24:08 2016 New Revision: 294873 URL: https://svnweb.freebsd.org/changeset/base/294873 Log: Set a value for _RECURSING_PROGS for debugging. MFC after: 3 days Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.progs.mk Modified: head/share/mk/bsd.progs.mk ============================================================================== --- head/share/mk/bsd.progs.mk Wed Jan 27 01:24:05 2016 (r294872) +++ head/share/mk/bsd.progs.mk Wed Jan 27 01:24:08 2016 (r294873) @@ -119,7 +119,7 @@ x.$p= PROG_CXX=$p $p ${p}_p: .PHONY .MAKE (cd ${.CURDIR} && \ DEPENDFILE=.depend.$p \ - NO_SUBDIR=1 ${MAKE} -f ${MAKEFILE} _RECURSING_PROGS= \ + NO_SUBDIR=1 ${MAKE} -f ${MAKEFILE} _RECURSING_PROGS=t \ PROG=$p ${x.$p}) # Pseudo targets for PROG, such as 'install'. @@ -127,7 +127,7 @@ $p ${p}_p: .PHONY .MAKE $p.$t: .PHONY .MAKE (cd ${.CURDIR} && \ DEPENDFILE=.depend.$p \ - NO_SUBDIR=1 ${MAKE} -f ${MAKEFILE} _RECURSING_PROGS= \ + NO_SUBDIR=1 ${MAKE} -f ${MAKEFILE} _RECURSING_PROGS=t \ PROG=$p ${x.$p} ${@:E}) .endfor .endfor From owner-svn-src-all@freebsd.org Wed Jan 27 01:24:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0C17A6F4AA; Wed, 27 Jan 2016 01:24:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6AB9A897; Wed, 27 Jan 2016 01:24:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R1OE55044420; Wed, 27 Jan 2016 01:24:14 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R1OEgA044419; Wed, 27 Jan 2016 01:24:14 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601270124.u0R1OEgA044419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 01:24:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294875 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 01:24:15 -0000 Author: bdrewery Date: Wed Jan 27 01:24:14 2016 New Revision: 294875 URL: https://svnweb.freebsd.org/changeset/base/294875 Log: FAST_DEPEND: Mark some unneeded code for later removal. Sponsored by: EMC / Isilon Storage Division Modified: head/sys/conf/kern.pre.mk Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Wed Jan 27 01:24:11 2016 (r294874) +++ head/sys/conf/kern.pre.mk Wed Jan 27 01:24:14 2016 (r294875) @@ -64,7 +64,7 @@ NOSTDINC= -nostdinc INCLUDES= ${NOSTDINC} ${INCLMAGIC} -I. -I$S -.if make(depend) || make(kernel-depend) +.if ${MK_FAST_DEPEND} == "no" && (make(depend) || make(kernel-depend)) # This hack lets us use the ipfilter code without spamming a new # include path into contrib'ed source files. From owner-svn-src-all@freebsd.org Wed Jan 27 01:24:12 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C60BFA6F48C; Wed, 27 Jan 2016 01:24:12 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 97F6B7F7; Wed, 27 Jan 2016 01:24:12 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R1OBr7044370; Wed, 27 Jan 2016 01:24:11 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R1OBIr044369; Wed, 27 Jan 2016 01:24:11 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601270124.u0R1OBIr044369@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 01:24:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294874 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 01:24:12 -0000 Author: bdrewery Date: Wed Jan 27 01:24:11 2016 New Revision: 294874 URL: https://svnweb.freebsd.org/changeset/base/294874 Log: FAST_DEPEND: Apply missed nofilemon fix from r294351. Sponsored by: EMC / Isilon Storage Division Modified: head/sys/conf/kern.post.mk Modified: head/sys/conf/kern.post.mk ============================================================================== --- head/sys/conf/kern.post.mk Wed Jan 27 01:24:08 2016 (r294873) +++ head/sys/conf/kern.post.mk Wed Jan 27 01:24:11 2016 (r294874) @@ -200,7 +200,8 @@ SRCS= assym.s vnode_if.h ${BEFORE_DEPEND ${SYSTEM_CFILES} ${GEN_CFILES} ${SFILES} \ ${MFILES:T:S/.m$/.h/} DEPENDFILES= .depend -.if ${MK_FAST_DEPEND} == "yes" && ${.MAKE.MODE:Unormal:Mmeta*} == "" +.if ${MK_FAST_DEPEND} == "yes" && \ + (${.MAKE.MODE:Unormal:Mmeta} == "" || ${.MAKE.MODE:Unormal:Mnofilemon} != "") DEPENDFILES+= .depend.* DEPEND_CFLAGS+= -MD -MP -MF.depend.${.TARGET} DEPEND_CFLAGS+= -MT${.TARGET} From owner-svn-src-all@freebsd.org Wed Jan 27 01:33:20 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91C9AA6F830; Wed, 27 Jan 2016 01:33:20 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 65E97F5F; Wed, 27 Jan 2016 01:33:20 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R1XJV0047431; Wed, 27 Jan 2016 01:33:19 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R1XJF6047430; Wed, 27 Jan 2016 01:33:19 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601270133.u0R1XJF6047430@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 01:33:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294876 - head/lib/libc/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 01:33:20 -0000 Author: bdrewery Date: Wed Jan 27 01:33:19 2016 New Revision: 294876 URL: https://svnweb.freebsd.org/changeset/base/294876 Log: nslexer.c does not depend on nsparser.h. nslexer.o depends on nsparser.h, which is already added by bsd.lib.mk and .depend. This reverts r237402. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/lib/libc/net/Makefile.inc Modified: head/lib/libc/net/Makefile.inc ============================================================================== --- head/lib/libc/net/Makefile.inc Wed Jan 27 01:24:14 2016 (r294875) +++ head/lib/libc/net/Makefile.inc Wed Jan 27 01:33:19 2016 (r294876) @@ -36,7 +36,7 @@ LFLAGS+=-P_nsyy CLEANFILES+=nslexer.c nslexer.c.* -nslexer.c: nslexer.l nsparser.h +nslexer.c: nslexer.l ${LEX} ${LFLAGS} -o${.TARGET}.tmp1 ${.IMPSRC} sed -e '/YY_BUF_SIZE/s/16384/1024/' ${.TARGET}.tmp1 >${.TARGET}.tmp2 rm -f ${.TARGET}.tmp1 From owner-svn-src-all@freebsd.org Wed Jan 27 01:33:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6EA1AA6F852; Wed, 27 Jan 2016 01:33:24 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 40FAFFA9; Wed, 27 Jan 2016 01:33:24 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R1XNuZ047476; Wed, 27 Jan 2016 01:33:23 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R1XN9H047475; Wed, 27 Jan 2016 01:33:23 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601270133.u0R1XN9H047475@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 01:33:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294877 - head/lib/libc/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 01:33:24 -0000 Author: bdrewery Date: Wed Jan 27 01:33:23 2016 New Revision: 294877 URL: https://svnweb.freebsd.org/changeset/base/294877 Log: Replace nslexer.l->nslexer.c custom rule with a -D CFLAG. This avoids reproducing the lex logic which had dependencies set wrong and used an intermediate file for modifying the YY_BUF_SIZE. This has only been possible since flex 2.5.37 was imported in r250873, which uses #ifndef YY_BUF_SIZE. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/lib/libc/net/Makefile.inc Modified: head/lib/libc/net/Makefile.inc ============================================================================== --- head/lib/libc/net/Makefile.inc Wed Jan 27 01:33:19 2016 (r294876) +++ head/lib/libc/net/Makefile.inc Wed Jan 27 01:33:23 2016 (r294877) @@ -12,7 +12,7 @@ SRCS+= base64.c ether_addr.c eui64.c \ getproto.c getprotoent.c getprotoname.c getservent.c \ if_indextoname.c if_nameindex.c if_nametoindex.c \ ip6opt.c linkaddr.c map_v4v6.c name6.c ntoh.c \ - nsdispatch.c nslexer.c nsparser.y nss_compat.c \ + nsdispatch.c nslexer.l nsparser.y nss_compat.c \ rcmd.c rcmdsh.c recv.c rthdr.c sctp_sys_calls.c send.c \ sockatmark.c sourcefilter.c vars.c @@ -34,13 +34,8 @@ CFLAGS+=-I${LIBC_SRCTOP}/resolv YFLAGS+=-p_nsyy LFLAGS+=-P_nsyy -CLEANFILES+=nslexer.c nslexer.c.* - -nslexer.c: nslexer.l - ${LEX} ${LFLAGS} -o${.TARGET}.tmp1 ${.IMPSRC} - sed -e '/YY_BUF_SIZE/s/16384/1024/' ${.TARGET}.tmp1 >${.TARGET}.tmp2 - rm -f ${.TARGET}.tmp1 - mv -f ${.TARGET}.tmp2 ${.TARGET} +CFLAGS.nslexer.c= -DYY_BUF_SIZE=1024 +CFLAGS+= ${CFLAGS.${.IMPSRC:T}} MAN+= byteorder.3 ethers.3 eui64.3 \ getaddrinfo.3 gai_strerror.3 gethostbyname.3 \ From owner-svn-src-all@freebsd.org Wed Jan 27 01:33:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BC98CA6F870; Wed, 27 Jan 2016 01:33:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5CD371088; Wed, 27 Jan 2016 01:33:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R1XQNA047523; Wed, 27 Jan 2016 01:33:26 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R1XQge047522; Wed, 27 Jan 2016 01:33:26 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601270133.u0R1XQge047522@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 01:33:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294878 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 01:33:27 -0000 Author: bdrewery Date: Wed Jan 27 01:33:26 2016 New Revision: 294878 URL: https://svnweb.freebsd.org/changeset/base/294878 Log: Revert yacc dependency back to pre-r241298. Several attempts to fix this logic was done after r241298, which were all reverted, yet this change was not. The .h file does not depend on the .c file, so do not impose such a dependency on it. They are generated by the same command but do not depend on each other. Restore the .ORDER which should handle parallel build issues. This fixes an actual bug where the .h file is not recreated when missing [1]. For example: cd lib/libc make cleanobj make nsparser.h rm nsparser.h make nsparser.h # will not rebuild nsparser.h I have been trying to track down a build problem where nsparser.h is missing when nslexer.o is built. It is possible this is related. Reported by: bde [1] https://lists.freebsd.org/pipermail/svn-src-all/2012-October/059481.html https://lists.freebsd.org/pipermail/svn-src-all/2012-October/060038.html MFC after: 3 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.dep.mk Modified: head/share/mk/bsd.dep.mk ============================================================================== --- head/share/mk/bsd.dep.mk Wed Jan 27 01:33:23 2016 (r294877) +++ head/share/mk/bsd.dep.mk Wed Jan 27 01:33:26 2016 (r294878) @@ -110,8 +110,8 @@ ${_YC} y.tab.h: ${_YSRC} CLEANFILES+= y.tab.c y.tab.h .elif !empty(YFLAGS:M-d) .for _YH in ${_YC:R}.h -${_YH}: ${_YC} -${_YC}: ${_YSRC} +.ORDER: ${_YC} ${_YH} +${_YC} ${_YH}: ${_YSRC} ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} SRCS+= ${_YH} CLEANFILES+= ${_YH} From owner-svn-src-all@freebsd.org Wed Jan 27 02:08:31 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83256A6E477; Wed, 27 Jan 2016 02:08:31 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5516C677; Wed, 27 Jan 2016 02:08:31 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R28U07056478; Wed, 27 Jan 2016 02:08:30 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R28UdV056477; Wed, 27 Jan 2016 02:08:30 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201601270208.u0R28UdV056477@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Wed, 27 Jan 2016 02:08:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294879 - head/sys/netpfil/ipfw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 02:08:31 -0000 Author: luigi Date: Wed Jan 27 02:08:30 2016 New Revision: 294879 URL: https://svnweb.freebsd.org/changeset/base/294879 Log: bugfix: the scheduler template (dn_schk) for the round robin scheduler is followed by another structure (rr_schk) whose size must be set in the schk_datalen field of the descriptor. Not allocating the memory may cause other memory to be overwritten (though dn_schk is 192 bytes and rr_schk only 12 so we may be lucky and end up in the padding after the dn_schk). This is a merge candidate for stable and 10.3 MFC after: 3 days Modified: head/sys/netpfil/ipfw/dn_sched_rr.c Modified: head/sys/netpfil/ipfw/dn_sched_rr.c ============================================================================== --- head/sys/netpfil/ipfw/dn_sched_rr.c Wed Jan 27 01:33:26 2016 (r294878) +++ head/sys/netpfil/ipfw/dn_sched_rr.c Wed Jan 27 02:08:30 2016 (r294879) @@ -294,7 +294,7 @@ static struct dn_alg rr_desc = { _SI( .name = ) "RR", _SI( .flags = ) DN_MULTIQUEUE, - _SI( .schk_datalen = ) 0, + _SI( .schk_datalen = ) sizeof(struct rr_schk), _SI( .si_datalen = ) sizeof(struct rr_si), _SI( .q_datalen = ) sizeof(struct rr_queue) - sizeof(struct dn_queue), @@ -311,5 +311,6 @@ static struct dn_alg rr_desc = { _SI( .free_queue = ) rr_free_queue, }; +_Static_assert(sizeof(struct dn_schk) < 193, "a"); DECLARE_DNSCHED_MODULE(dn_rr, &rr_desc); From owner-svn-src-all@freebsd.org Wed Jan 27 02:11:59 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C5FA1A6E629; Wed, 27 Jan 2016 02:11:59 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7B5D78F8; Wed, 27 Jan 2016 02:11:59 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R2BwAW059102; Wed, 27 Jan 2016 02:11:58 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R2Bwvl059101; Wed, 27 Jan 2016 02:11:58 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270211.u0R2Bwvl059101@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 02:11:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294880 - head/usr.sbin/bsdconfig/share X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 02:11:59 -0000 Author: dteske Date: Wed Jan 27 02:11:58 2016 New Revision: 294880 URL: https://svnweb.freebsd.org/changeset/base/294880 Log: Replace awk with more efficient builtins-only algo Modified: head/usr.sbin/bsdconfig/share/strings.subr Modified: head/usr.sbin/bsdconfig/share/strings.subr ============================================================================== --- head/usr.sbin/bsdconfig/share/strings.subr Wed Jan 27 02:08:30 2016 (r294879) +++ head/usr.sbin/bsdconfig/share/strings.subr Wed Jan 27 02:11:58 2016 (r294880) @@ -70,17 +70,63 @@ f_substr() # f_snprintf() { + local __funcname=f_snprintf local __var_to_set="$1" __size="$2" shift 2 # var_to_set size - eval "$__var_to_set"=\$\( printf -- \"\$@\" \| \ - awk -v max=\"\$__size\" \'' - { - len = length($0) - max -= len - print substr($0,0,(max > 0 ? len : max + len)) - if ( max < 0 ) exit - max-- - }'\' \) + + if [ "$__size" -eq 0 ] 2> /dev/null; then + setvar "$__var_to_set" "" + return ${SUCCESS:-0} + elif [ $? -ge 2 ] || [ $__size -lt 0 ]; then + setvar "$__var_to_set" "" + echo "$__funcname: invalid size argument \`__size'" >&2 + return ${FAILURE:-1} + fi + + local __f_snprintf_tmp + f_sprintf __f_snprintf_tmp "$@" + + local __tmp_size=${#__f_snprintf_tmp} + local __trim=$(( $__tmp_size - $__size )) __trimq + local __tbuf __tbuf_len + local __mask __mask_len + while [ $__trim -gt 0 ]; do + __tbuf="?" + __tbuf_len=1 + if [ $__trim -le $__size ]; then + while [ $__tbuf_len -lt $(( $__trim / $__tbuf_len )) ] + do + __tbuf="$__tbuf?" + __tbuf_len=$(( $__tbuf_len + 1 )) + done + __trimq=$(( $__trim / $__tbuf_len )) + __trim=$(( $__trim - $__tbuf_len * $__trimq )) + while [ $__trimq -gt 0 ]; do + __f_snprintf_tmp="${__f_snprintf_tmp%$__tbuf}" + __trimq=$(( $__trimq - 1 )) + done + else + __mask="$__f_snprintf_tmp" + while [ $__tbuf_len -lt $(( $__size / $__tbuf_len )) ] + do + __tbuf="$__tbuf?" + __tbuf_len=$(( $__tbuf_len + 1 )) + done + __trimq=$(( $__size / $__tbuf_len )) + if [ $(( $__trimq * $__tbuf_len )) -ne $__size ]; then + __tbuf="$__tbuf?" + __tbuf_len=$(( $__tbuf_len + 1 )) + fi + __mask_len=$(( $__tmp_size - $__tbuf_len * $__trimq )) + __trim=$(( $__tmp_size - $__mask_len - $__size )) + while [ $__trimq -gt 0 ]; do + __mask="${__mask#$__tbuf}" + __trimq=$(( $__trimq - 1 )) + done + __f_snprintf_tmp="${__f_snprintf_tmp%"$__mask"}" + fi + done + setvar "$__var_to_set" "$__f_snprintf_tmp" } # f_sprintf $var_to_set $format [$arguments ...] From owner-svn-src-all@freebsd.org Wed Jan 27 02:14:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1FF86A6E6F4; Wed, 27 Jan 2016 02:14:10 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E7CF3BC6; Wed, 27 Jan 2016 02:14:09 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R2E8iS059217; Wed, 27 Jan 2016 02:14:08 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R2E8N8059216; Wed, 27 Jan 2016 02:14:08 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201601270214.u0R2E8N8059216@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Wed, 27 Jan 2016 02:14:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294881 - head/sys/netpfil/ipfw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 02:14:10 -0000 Author: luigi Date: Wed Jan 27 02:14:08 2016 New Revision: 294881 URL: https://svnweb.freebsd.org/changeset/base/294881 Log: the _Static_assert was not supposed to be in the commit. Modified: head/sys/netpfil/ipfw/dn_sched_rr.c Modified: head/sys/netpfil/ipfw/dn_sched_rr.c ============================================================================== --- head/sys/netpfil/ipfw/dn_sched_rr.c Wed Jan 27 02:11:58 2016 (r294880) +++ head/sys/netpfil/ipfw/dn_sched_rr.c Wed Jan 27 02:14:08 2016 (r294881) @@ -311,6 +311,5 @@ static struct dn_alg rr_desc = { _SI( .free_queue = ) rr_free_queue, }; -_Static_assert(sizeof(struct dn_schk) < 193, "a"); DECLARE_DNSCHED_MODULE(dn_rr, &rr_desc); From owner-svn-src-all@freebsd.org Wed Jan 27 02:22:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC398A6E9F5; Wed, 27 Jan 2016 02:22:32 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95D8FFEA; Wed, 27 Jan 2016 02:22:32 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R2MVXo061992; Wed, 27 Jan 2016 02:22:31 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R2MVRg061986; Wed, 27 Jan 2016 02:22:31 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201601270222.u0R2MVRg061986@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Wed, 27 Jan 2016 02:22:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294882 - head/sys/netpfil/ipfw/test X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 02:22:33 -0000 Author: luigi Date: Wed Jan 27 02:22:31 2016 New Revision: 294882 URL: https://svnweb.freebsd.org/changeset/base/294882 Log: cleanup and document in some detail the internals of the testing code for dummynet schedulers Modified: head/sys/netpfil/ipfw/test/Makefile head/sys/netpfil/ipfw/test/dn_test.h head/sys/netpfil/ipfw/test/main.c head/sys/netpfil/ipfw/test/mylist.h head/sys/netpfil/ipfw/test/test_dn_sched.c Modified: head/sys/netpfil/ipfw/test/Makefile ============================================================================== --- head/sys/netpfil/ipfw/test/Makefile Wed Jan 27 02:14:08 2016 (r294881) +++ head/sys/netpfil/ipfw/test/Makefile Wed Jan 27 02:22:31 2016 (r294882) @@ -20,7 +20,7 @@ HEAP_OBJS=$(HEAP_SRCS:.c=.o) VPATH= .:.. -CFLAGS = -I.. -I. -Wall -Werror -O3 -DIPFW -Wextra +CFLAGS = -I.. -I. -Wall -Werror -O3 -Wextra TARGETS= test_sched # no test_heap by default all: $(TARGETS) Modified: head/sys/netpfil/ipfw/test/dn_test.h ============================================================================== --- head/sys/netpfil/ipfw/test/dn_test.h Wed Jan 27 02:14:08 2016 (r294881) +++ head/sys/netpfil/ipfw/test/dn_test.h Wed Jan 27 02:22:31 2016 (r294882) @@ -23,8 +23,8 @@ extern "C" { extern int debug; #define ND(fmt, args...) do {} while (0) #define D1(fmt, args...) do {} while (0) -#define D(fmt, args...) fprintf(stderr, "%-8s " fmt "\n", \ - __FUNCTION__, ## args) +#define D(fmt, args...) fprintf(stderr, "%-10s %4d %-8s " fmt "\n", \ + __FILE__, __LINE__, __FUNCTION__, ## args) #define DX(lev, fmt, args...) do { \ if (debug > lev) D(fmt, ## args); } while (0) @@ -53,11 +53,24 @@ enum { DN_SCHED_WF2QP, }; +/* from ip_dummynet.h, fields used in ip_dn_private.h */ struct dn_id { - int type, subtype, len, id; + uint16_t len; /* total len inc. this header */ + uint8_t type; + uint8_t subtype; +// uint32_t id; /* generic id */ }; +/* (from ip_dummynet.h) + * A flowset, which is a template for flows. Contains parameters + * from the command line: id, target scheduler, queue sizes, plr, + * flow masks, buckets for the flow hash, and possibly scheduler- + * specific parameters (weight, quantum and so on). + */ struct dn_fs { + /* generic scheduler parameters. Leave them at -1 if unset. + * Now we use 0: weight, 1: lmax, 2: priority + */ int par[4]; /* flowset parameters */ /* simulation entries. @@ -78,16 +91,29 @@ struct dn_fs { int cur; }; +/* (ip_dummynet.h) + * scheduler template, indicating nam, number, mask and buckets + */ struct dn_sch { }; +/* (from ip_dummynet.h) + * dn_flow collects flow_id and stats for queues and scheduler + * instances, and is used to pass these info to userland. + * oid.type/oid.subtype describe the object, oid.id is number + * of the parent object. + */ struct dn_flow { struct dn_id oid; - int length; - int len_bytes; - int drops; + uint64_t tot_pkts; uint64_t tot_bytes; - uint32_t flow_id; + uint32_t length; /* Queue length, in packets */ + uint32_t len_bytes; /* Queue length, in bytes */ + uint32_t drops; + //uint32_t flow_id; + + /* the following fields are used by the traffic generator. + */ struct list_head h; /* used by the generator */ /* bytes served by the flow since the last backlog time */ @@ -96,6 +122,7 @@ struct dn_flow { uint64_t sch_bytes; }; +/* the link */ struct dn_link { }; @@ -107,9 +134,9 @@ struct mbuf { int len; } m_pkthdr; struct mbuf *m_nextpkt; - int flow_id; /* for testing, index of a flow */ + uint32_t flow_id; /* for testing, index of a flow */ //int flowset_id; /* for testing, index of a flowset */ - void *cfg; /* config args */ + //void *cfg; /* config args */ }; #define MALLOC_DECLARE(x) extern volatile int __dummy__ ## x @@ -131,36 +158,9 @@ typedef struct _md_t moduledata_t; moduledata_t *_g_##name = & b #define MODULE_DEPEND(a, b, c, d, e) -#ifdef IPFW #include #include #include -#else -struct dn_queue { - struct dn_fsk *fs; /* parent flowset. */ - struct dn_sch_inst *_si; /* parent sched instance. */ -}; -struct dn_schk { -}; -struct dn_fsk { - struct dn_fs fs; - struct dn_schk *sched; -}; -struct dn_sch_inst { - struct dn_schk *sched; -}; -struct dn_alg { - int type; - const char *name; - void *enqueue, *dequeue; - int q_datalen, si_datalen, schk_datalen; - int (*config)(struct dn_schk *); - int (*new_sched)(struct dn_sch_inst *); - int (*new_fsk)(struct dn_fsk *); - int (*new_queue)(struct dn_queue *q); -}; - -#endif #ifndef __FreeBSD__ int fls(int); Modified: head/sys/netpfil/ipfw/test/main.c ============================================================================== --- head/sys/netpfil/ipfw/test/main.c Wed Jan 27 02:14:08 2016 (r294881) +++ head/sys/netpfil/ipfw/test/main.c Wed Jan 27 02:22:31 2016 (r294882) @@ -9,11 +9,9 @@ * keeping track of statistics. */ -#include "dn_test.h" +// #define USE_BURST // what is this for ? -struct q_list { - struct list_head h; -}; +#include "dn_test.h" struct cfg_s { int ac; @@ -30,14 +28,19 @@ struct cfg_s { uint32_t dequeue; /* generator parameters */ - int th_min, th_max; + int32_t th_min, th_max; /* thresholds for hysteresis; negative means per flow */ +#ifdef USE_BURST int maxburst; +#endif /* USE_BURST */ int lmin, lmax; /* packet len */ int flows; /* number of flows */ int flowsets; /* number of flowsets */ int wsum; /* sum of weights of all flows */ +#ifdef USE_CUR int max_y; /* max random number in the generation */ - int cur_y, cur_fs; /* used in generation, between 0 and max_y - 1 */ + int cur_y + int cur_fs; /* used in generation, between 0 and max_y - 1 */ +#endif /* USE_CUR */ const char *fs_config; /* flowset config */ int can_dequeue; int burst; /* count of packets sent in a burst */ @@ -52,17 +55,26 @@ struct cfg_s { struct mbuf *); struct mbuf * (*deq)(struct dn_sch_inst *); /* size of the three fields including sched-specific areas */ - int schk_len; - int q_len; /* size of a queue including sched-fields */ - int si_len; /* size of a sch_inst including sched-fields */ + uint32_t schk_len; + uint32_t q_len; /* size of a queue including sched-fields */ + uint32_t si_len; /* size of a sch_inst including sched-fields */ char *q; /* array of flow queues */ /* use a char* because size is variable */ - struct dn_fsk *fs; /* array of flowsets */ - struct dn_sch_inst *si; + /* + * The scheduler template (one) followd by schk_datalen bytes + * for scheduler-specific parameters, total size is schk_len + */ struct dn_schk *sched; + /* + * one scheduler instance, followed by si_datalen bytes + * for scheduler specific parameters of this instance, + * total size is si_len. si->sched points to sched + */ + struct dn_sch_inst *si; + struct dn_fsk *fs; /* array of flowsets */ /* generator state */ - int state; /* 0 = going up, 1: going down */ + int state; /* 0 = going up (enqueue), 1: going down (dequeue) */ /* * We keep lists for each backlog level, and always serve @@ -72,17 +84,18 @@ struct cfg_s { * XXX to optimize things, entry i could contain queues with * 2^{i-1}+1 .. 2^i entries. */ -#define BACKLOG 30 - uint32_t llmask; +#define BACKLOG 30 /* this many backlogged classes, we only need BACKLOG+1 */ + uint64_t llmask; struct list_head ll[BACKLOG + 10]; double *q_wfi; /* (byte) Worst-case Fair Index of the flows */ double wfi; /* (byte) Worst-case Fair Index of the system */ }; -/* FI2Q and Q2FI converts from flow_id to dn_queue and back. - * We cannot easily use pointer arithmetic because it is variable size. - */ +/* FI2Q and Q2FI converts from flow_id (i.e. queue index) + * to dn_queue and back. We cannot simply use pointer arithmetic + * because the queu has variable size, q_len + */ #define FI2Q(c, i) ((struct dn_queue *)((c)->q + (c)->q_len * (i))) #define Q2FI(c, q) (((char *)(q) - (c)->q)/(c)->q_len) @@ -92,10 +105,11 @@ struct dn_parms dn_cfg; static void controller(struct cfg_s *c); -/* release a packet: put the mbuf in the freelist, and the queue in - * the bucket. +/* release a packet for a given flow_id. + * Put the mbuf in the freelist, and in case move the + * flow to the end of the bucket. */ -int +static int drop(struct cfg_s *c, struct mbuf *m) { struct dn_queue *q; @@ -118,31 +132,36 @@ drop(struct cfg_s *c, struct mbuf *m) return 0; } -/* dequeue returns NON-NULL when a packet is dropped */ + +/* + * dn_sch_inst does not have a queue, for the RR we + * allocate a mq right after si + */ static int -enqueue(struct cfg_s *c, void *_m) +default_enqueue(struct dn_sch_inst *si, struct dn_queue *q, struct mbuf *m) { - struct mbuf *m = _m; - if (c->enq) - return c->enq(c->si, FI2Q(c, m->flow_id), m); - if (c->head == NULL) - c->head = m; + struct mq *mq = (struct mq *)si; + + (void)q; + /* this is the default function if no scheduler is provided */ + if (mq->head == NULL) + mq->head = m; else - c->tail->m_nextpkt = m; - c->tail = m; + mq->tail->m_nextpkt = m; + mq->tail = m; return 0; /* default - success */ } -/* dequeue returns NON-NULL when a packet is available */ -static void * -dequeue(struct cfg_s *c) + +static struct mbuf * +default_dequeue(struct dn_sch_inst *si) { + struct mq *mq = (struct mq *)si; struct mbuf *m; - if (c->deq) - return c->deq(c->si); - if ((m = c->head)) { - m = c->head; - c->head = m->m_nextpkt; + /* this is the default function if no scheduler is provided */ + if ((m = mq->head)) { + m = mq->head; + mq->head = m->m_nextpkt; m->m_nextpkt = NULL; } return m; @@ -193,23 +212,34 @@ mainloop(struct cfg_s *c) DX(3, "loop %d enq %d send %p rx %d", i, c->_enqueue, c->tosend, c->can_dequeue); if ( (m = c->tosend) ) { + int ret; + struct dn_queue *q = FI2Q(c, m->flow_id); c->_enqueue++; - if (enqueue(c, m)) { + ret = c->enq(c->si, q, m); + if (ret) { drop(c, m); - ND("loop %d enqueue fail", i ); + D("loop %d enqueue fail", i ); + /* + * XXX do not insist; rather, try dequeue + */ + goto do_dequeue; } else { ND("enqueue ok"); c->pending++; gnet_stats_enq(c, m); } - } - if (c->can_dequeue) { + } else if (c->can_dequeue) { +do_dequeue: c->dequeue++; - if ((m = dequeue(c))) { + m = c->deq(c->si); + if (m) { c->pending--; drop(c, m); c->drop--; /* compensate */ gnet_stats_deq(c, m); + } else { + D("--- ouch, cannot operate on iteration %d, pending %d", i, c->pending); + break; } } } @@ -221,11 +251,10 @@ int dump(struct cfg_s *c) { int i; - struct dn_queue *q; for (i=0; i < c->flows; i++) { - q = FI2Q(c, i); - DX(1, "queue %4d tot %10llu", i, + //struct dn_queue *q = FI2Q(c, i); + ND(1, "queue %4d tot %10llu", i, (unsigned long long)q->ni.tot_bytes); } DX(1, "done %d loops\n", c->loops); @@ -284,20 +313,25 @@ getnum(const char *s, char **next, const * weight:maxlen:flows * indicating how many flows are hooked to that fs. * Both weight and range can be min-max-steps. - * In a first pass we just count the number of flowsets and flows, - * in a second pass we complete the setup. + * The first pass (fs != NULL) justs count the number of flowsets and flows, + * the second pass (fs == NULL) we complete the setup. */ static void -parse_flowsets(struct cfg_s *c, const char *fs, int pass) +parse_flowsets(struct cfg_s *c, const char *fs) { char *s, *cur, *next; int n_flows = 0, n_fs = 0, wsum = 0; int i, j; struct dn_fs *prev = NULL; + int pass = (fs == NULL); DX(3, "--- pass %d flows %d flowsets %d", pass, c->flows, c->flowsets); - if (pass == 0) + if (fs != NULL) { /* first pass */ + if (c->fs_config) + D("warning, overwriting fs %s with %s", + c->fs_config, fs); c->fs_config = fs; + } s = c->fs_config ? strdup(c->fs_config) : NULL; if (s == NULL) { if (pass == 0) @@ -327,7 +361,7 @@ parse_flowsets(struct cfg_s *c, const ch w, w_h, w_steps, len, len_h, l_steps, flows); if (w == 0 || w_h < w || len == 0 || len_h < len || flows == 0) { - DX(4,"wrong parameters %s", fs); + DX(4,"wrong parameters %s", s); return; } n_flows += flows * w_steps * l_steps; @@ -361,7 +395,6 @@ parse_flowsets(struct cfg_s *c, const ch } } } - c->max_y = prev ? prev->base_y + prev->y : 0; c->flows = n_flows; c->flowsets = n_fs; c->wsum = wsum; @@ -369,7 +402,11 @@ parse_flowsets(struct cfg_s *c, const ch return; /* now link all flows to their parent flowsets */ + DX(1,"%d flows on %d flowsets", c->flows, c->flowsets); +#ifdef USE_CUR + c->max_y = prev ? prev->base_y + prev->y : 0; DX(1,"%d flows on %d flowsets max_y %d", c->flows, c->flowsets, c->max_y); +#endif /* USE_CUR */ for (i=0; i < c->flowsets; i++) { struct dn_fs *fs = &c->fs[i].fs; DX(1, "fs %3d w %5d l %4d flow %5d .. %5d y %6d .. %6d", @@ -383,6 +420,18 @@ parse_flowsets(struct cfg_s *c, const ch } } +/* available schedulers */ +extern moduledata_t *_g_dn_fifo; +extern moduledata_t *_g_dn_wf2qp; +extern moduledata_t *_g_dn_rr; +extern moduledata_t *_g_dn_qfq; +#ifdef WITH_QFQP +extern moduledata_t *_g_dn_qfqp; +#endif +#ifdef WITH_KPS +extern moduledata_t *_g_dn_kps; +#endif + static int init(struct cfg_s *c) { @@ -395,7 +444,7 @@ init(struct cfg_s *c) moduledata_t *mod = NULL; struct dn_alg *p = NULL; - c->th_min = 0; + c->th_min = -1; /* 1 packet per flow */ c->th_max = -20;/* 20 packets per flow */ c->lmin = c->lmax = 1280; /* packet len */ c->flows = 1; @@ -408,16 +457,6 @@ init(struct cfg_s *c) } else if (!strcmp(*av, "-d")) { debug = atoi(av[1]); } else if (!strcmp(*av, "-alg")) { - extern moduledata_t *_g_dn_fifo; - extern moduledata_t *_g_dn_wf2qp; - extern moduledata_t *_g_dn_rr; - extern moduledata_t *_g_dn_qfq; -#ifdef WITH_QFQP - extern moduledata_t *_g_dn_qfqp; -#endif -#ifdef WITH_KPS - extern moduledata_t *_g_dn_kps; -#endif if (!strcmp(av[1], "rr")) mod = _g_dn_rr; else if (!strcmp(av[1], "wf2qp")) @@ -443,9 +482,11 @@ init(struct cfg_s *c) c->lmin = getnum(av[1], NULL, av[0]); c->lmax = c->lmin; DX(3, "setting max to %d", c->th_max); +#ifdef USE_BURST } else if (!strcmp(*av, "-burst")) { c->maxburst = getnum(av[1], NULL, av[0]); DX(3, "setting max to %d", c->th_max); +#endif /* USE_BURST */ } else if (!strcmp(*av, "-qmax")) { c->th_max = getnum(av[1], NULL, av[0]); DX(3, "setting max to %d", c->th_max); @@ -456,15 +497,17 @@ init(struct cfg_s *c) c->flows = getnum(av[1], NULL, av[0]); DX(3, "setting flows to %d", c->flows); } else if (!strcmp(*av, "-flowsets")) { - parse_flowsets(c, av[1], 0); + parse_flowsets(c, av[1]); /* first pass */ DX(3, "setting flowsets to %d", c->flowsets); } else { D("option %s not recognised, ignore", *av); } ac -= 2; av += 2; } +#ifdef USE_BURST if (c->maxburst <= 0) c->maxburst = 1; +#endif /* USE_BURST */ if (c->loops <= 0) c->loops = 1; if (c->flows <= 0) @@ -482,45 +525,61 @@ init(struct cfg_s *c) c->th_max = c->flows * -c->th_max; if (c->th_max <= c->th_min) c->th_max = c->th_min + 1; + + /* now load parameters from the module */ if (mod) { p = mod->p; DX(3, "using module %s f %p p %p", mod->name, mod->f, mod->p); DX(3, "modname %s ty %d", p->name, p->type); + // XXX check enq and deq not null c->enq = p->enqueue; c->deq = p->dequeue; c->si_len += p->si_datalen; c->q_len += p->q_datalen; c->schk_len += p->schk_datalen; + } else { + /* make sure c->si has room for a queue */ + c->enq = default_enqueue; + c->deq = default_dequeue; } + /* allocate queues, flowsets and one scheduler */ - c->q = calloc(c->flows, c->q_len); - c->q_wfi = (double *)calloc(c->flows, sizeof(double)); + D("using %d flows, %d flowsets", c->flows, c->flowsets); + D("q_len %d dn_fsk %d si %d sched %d", + c->q_len, (int)sizeof(struct dn_fsk), + c->si_len, c->schk_len); + c->sched = calloc(1, c->schk_len); /* one parent scheduler */ + c->si = calloc(1, c->si_len); /* one scheduler instance */ c->fs = calloc(c->flowsets, sizeof(struct dn_fsk)); - c->si = calloc(1, c->si_len); - c->sched = calloc(c->flows, c->schk_len); - if (c->q == NULL || c->fs == NULL || !c->q_wfi) { - D("error allocating memory for flows"); + c->q = calloc(c->flows, c->q_len); /* one queue per flow */ + c->q_wfi = calloc(c->flows, sizeof(double)); /* stats, one per flow */ + if (!c->sched || !c->si || !c->fs || !c->q || !c->q_wfi) { + D("error allocating memory"); exit(1); } - c->si->sched = c->sched; + c->si->sched = c->sched; /* link scheduler instance to template */ if (p) { + /* run initialization code if needed */ if (p->config) - p->config(c->sched); + p->config(c->si->sched); if (p->new_sched) p->new_sched(c->si); } /* parse_flowsets links queues to their flowsets */ - parse_flowsets(c, av[1], 1); + parse_flowsets(c, NULL); /* second pass */ /* complete the work calling new_fsk */ for (i = 0; i < c->flowsets; i++) { - if (c->fs[i].fs.par[1] == 0) - c->fs[i].fs.par[1] = 1000; /* default pkt len */ - c->fs[i].sched = c->sched; + struct dn_fsk *fsk = &c->fs[i]; + if (fsk->fs.par[1] == 0) + fsk->fs.par[1] = 1000; /* default pkt len */ + fsk->sched = c->si->sched; if (p && p->new_fsk) - p->new_fsk(&c->fs[i]); + p->new_fsk(fsk); } + /* --- now the scheduler is initialized --- */ - /* initialize the lists for the generator, and put + /* + * initialize the lists for the generator, and put * all flows in the list for backlog = 0 */ for (i=0; i <= BACKLOG+5; i++) @@ -536,7 +595,7 @@ init(struct cfg_s *c) INIT_LIST_HEAD(&q->ni.h); list_add_tail(&q->ni.h, &c->ll[0]); } - c->llmask = 1; + c->llmask = 1; /* all flows are in the first list */ return 0; } @@ -545,7 +604,6 @@ int main(int ac, char *av[]) { struct cfg_s c; - struct timeval end; double ll; int i; char msg[40]; @@ -555,16 +613,15 @@ main(int ac, char *av[]) c.av = av; init(&c); gettimeofday(&c.time, NULL); + D("th_min %d th_max %d", c.th_min, c.th_max); + mainloop(&c); - gettimeofday(&end, NULL); - end.tv_sec -= c.time.tv_sec; - end.tv_usec -= c.time.tv_usec; - if (end.tv_usec < 0) { - end.tv_usec += 1000000; - end.tv_sec--; + { + struct timeval end; + gettimeofday(&end, NULL); + timersub(&end, &c.time, &c.time); } - c.time = end; - ll = end.tv_sec*1000000 + end.tv_usec; + ll = c.time.tv_sec*1000000 + c.time.tv_usec; ll *= 1000; /* convert to nanoseconds */ ll /= c._enqueue; sprintf(msg, "1::%d", c.flows); @@ -572,8 +629,10 @@ main(int ac, char *av[]) if (c.wfi < c.q_wfi[i]) c.wfi = c.q_wfi[i]; } - D("sched=%-12s\ttime=%d.%03d sec (%.0f nsec)\twfi=%.02f\tflow=%-16s", - c.name, (int)c.time.tv_sec, (int)c.time.tv_usec / 1000, ll, c.wfi, + D("sched=%-12s\ttime=%d.%03d sec (%.0f nsec) enq %lu %lu deq\n" + "\twfi=%.02f\tflow=%-16s", + c.name, (int)c.time.tv_sec, (int)c.time.tv_usec / 1000, ll, + (unsigned long)c._enqueue, (unsigned long)c.dequeue, c.wfi, c.fs_config ? c.fs_config : msg); dump(&c); DX(1, "done ac %d av %p", ac, av); @@ -593,7 +652,7 @@ controller(struct cfg_s *c) struct dn_fs *fs; int flow_id; - /* histeresis between max and min */ + /* hysteresis between max and min */ if (c->state == 0 && c->pending >= (uint32_t)c->th_max) c->state = 1; else if (c->state == 1 && c->pending <= (uint32_t)c->th_min) @@ -601,9 +660,14 @@ controller(struct cfg_s *c) ND(1, "state %d pending %2d", c->state, c->pending); c->can_dequeue = c->state; c->tosend = NULL; - if (c->state) + if (c->can_dequeue) return; + /* + * locate the flow to use for enqueueing + * We take the queue with the lowest number of queued packets, + * generate a packet for it, and put the queue in the next highest. + */ if (1) { int i; struct dn_queue *q; @@ -611,7 +675,7 @@ controller(struct cfg_s *c) i = ffs(c->llmask) - 1; if (i < 0) { - DX(2, "no candidate"); + D("no candidate"); c->can_dequeue = 1; return; } @@ -633,8 +697,9 @@ controller(struct cfg_s *c) c->llmask |= 1<<(1+i); } fs = &q->fs->fs; - c->cur_fs = q->fs - c->fs; fs->cur = flow_id; +#ifdef USE_CUR + c->cur_fs = q->fs - c->fs; } else { /* XXX this does not work ? */ /* now decide whom to send the packet, and the length */ @@ -650,6 +715,7 @@ controller(struct cfg_s *c) c->cur_y++; if (c->cur_y >= fs->next_y) c->cur_fs++; +#endif /* USE_CUR */ } /* construct a packet */ @@ -662,7 +728,7 @@ controller(struct cfg_s *c) if (m == NULL) return; - m->cfg = c; + //m->cfg = c; m->m_nextpkt = NULL; m->m_pkthdr.len = fs->par[1]; // XXX maxlen m->flow_id = flow_id; @@ -672,15 +738,3 @@ controller(struct cfg_s *c) fs->par[0], m->m_pkthdr.len); } - -/* -Packet allocation: -to achieve a distribution that matches weights, for each X=w/lmax class -we should generate a number of packets proportional to Y = X times the number -of flows in the class. -So we construct an array with the cumulative distribution of Y's, -and use it to identify the flow via inverse mapping (if the Y's are -not too many we can use an array for the lookup). In practice, -each flow will have X entries [virtually] pointing to it. - -*/ Modified: head/sys/netpfil/ipfw/test/mylist.h ============================================================================== --- head/sys/netpfil/ipfw/test/mylist.h Wed Jan 27 02:14:08 2016 (r294881) +++ head/sys/netpfil/ipfw/test/mylist.h Wed Jan 27 02:22:31 2016 (r294882) @@ -6,6 +6,7 @@ #ifndef _MYLIST_H #define _MYLIST_H +/* not just a head, also the link field for a list entry */ struct list_head { struct list_head *prev, *next; }; Modified: head/sys/netpfil/ipfw/test/test_dn_sched.c ============================================================================== --- head/sys/netpfil/ipfw/test/test_dn_sched.c Wed Jan 27 02:14:08 2016 (r294881) +++ head/sys/netpfil/ipfw/test/test_dn_sched.c Wed Jan 27 02:22:31 2016 (r294882) @@ -61,6 +61,7 @@ dn_enqueue(struct dn_queue *q, struct mb mq_append(&q->mq, m); q->ni.length++; q->ni.tot_bytes += m->m_pkthdr.len; + q->ni.tot_pkts++; return 0; drop: From owner-svn-src-all@freebsd.org Wed Jan 27 02:24:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC468A6EAA7; Wed, 27 Jan 2016 02:24:00 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 69615119A; Wed, 27 Jan 2016 02:24:00 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R2Nxaq062128; Wed, 27 Jan 2016 02:23:59 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R2NsQj062076; Wed, 27 Jan 2016 02:23:54 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201601270223.u0R2NsQj062076@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 27 Jan 2016 02:23:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294883 - in head: lib/libdevinfo share/man/man9 sys/arm/arm sys/arm/at91 sys/arm/cavium/cns11xx sys/arm/mv sys/arm/versatile sys/arm/xscale/i8134x sys/arm/xscale/ixp425 sys/arm/xscale/... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 02:24:01 -0000 Author: jhibbits Date: Wed Jan 27 02:23:54 2016 New Revision: 294883 URL: https://svnweb.freebsd.org/changeset/base/294883 Log: Convert rman to use rman_res_t instead of u_long Summary: Migrate to using the semi-opaque type rman_res_t to specify rman resources. For now, this is still compatible with u_long. This is step one in migrating rman to use uintmax_t for resources instead of u_long. Going forward, this could feasibly be used to specify architecture-specific definitions of resource ranges, rather than baking a specific integer type into the API. This change has been broken out to facilitate MFC'ing drivers back to 10 without breaking ABI. Reviewed By: jhb Sponsored by: Alex Perez/Inertial Computing Differential Revision: https://reviews.freebsd.org/D5075 Modified: head/lib/libdevinfo/devinfo.3 head/lib/libdevinfo/devinfo.h head/share/man/man9/bus_adjust_resource.9 head/share/man/man9/bus_alloc_resource.9 head/share/man/man9/bus_get_resource.9 head/share/man/man9/bus_set_resource.9 head/share/man/man9/rman.9 head/sys/arm/arm/nexus.c head/sys/arm/at91/at91.c head/sys/arm/cavium/cns11xx/econa.c head/sys/arm/mv/mv_localbus.c head/sys/arm/mv/mv_pci.c head/sys/arm/versatile/versatile_pci.c head/sys/arm/xscale/i8134x/i81342.c head/sys/arm/xscale/i8134x/i81342_pci.c head/sys/arm/xscale/i8134x/obio.c head/sys/arm/xscale/ixp425/avila_ata.c head/sys/arm/xscale/ixp425/ixp425.c head/sys/arm/xscale/ixp425/ixp425_pci.c head/sys/arm/xscale/pxa/pxa_obio.c head/sys/arm/xscale/pxa/pxa_smi.c head/sys/arm64/arm64/gic_v3_fdt.c head/sys/arm64/arm64/nexus.c head/sys/arm64/cavium/thunder_pcie.c head/sys/arm64/cavium/thunder_pcie_pem.c head/sys/dev/acpica/acpi.c head/sys/dev/acpica/acpi_hpet.c head/sys/dev/acpica/acpi_pcib_acpi.c head/sys/dev/acpica/acpi_resource.c head/sys/dev/acpica/acpi_timer.c head/sys/dev/acpica/acpivar.h head/sys/dev/advansys/adv_isa.c head/sys/dev/ahci/ahci.c head/sys/dev/ahci/ahci.h head/sys/dev/ata/ata-cbus.c head/sys/dev/ata/ata-isa.c head/sys/dev/ata/ata-pci.c head/sys/dev/ata/ata-pci.h head/sys/dev/atkbdc/atkbdc_ebus.c head/sys/dev/atkbdc/atkbdc_isa.c head/sys/dev/atkbdc/atkbdc_subr.c head/sys/dev/cs/if_cs.c head/sys/dev/ctau/if_ct.c head/sys/dev/cx/if_cx.c head/sys/dev/ed/if_ed_3c503.c head/sys/dev/ed/if_ed_cbus.c head/sys/dev/ed/if_ed_hpp.c head/sys/dev/ed/if_ed_wd80x3.c head/sys/dev/eisa/eisaconf.c head/sys/dev/fdt/simplebus.c head/sys/dev/fe/if_fe_cbus.c head/sys/dev/fe/if_fe_isa.c head/sys/dev/gpio/gpiobus.c head/sys/dev/mca/mca_bus.c head/sys/dev/mvs/mvs_pci.c head/sys/dev/mvs/mvs_soc.c head/sys/dev/ncv/ncr53c500_pccard.c head/sys/dev/nsp/nsp_pccard.c head/sys/dev/ofw/ofwbus.c head/sys/dev/pccard/pccard.c head/sys/dev/pccard/pccardvarp.h head/sys/dev/pccbb/pccbb.c head/sys/dev/pccbb/pccbb_pci.c head/sys/dev/pccbb/pccbbvar.h head/sys/dev/pcf/pcf_isa.c head/sys/dev/pci/hostb_pci.c head/sys/dev/pci/isa_pci.c head/sys/dev/pci/pci.c head/sys/dev/pci/pci_host_generic.c head/sys/dev/pci/pci_iov.c head/sys/dev/pci/pci_pci.c head/sys/dev/pci/pci_private.h head/sys/dev/pci/pci_subr.c head/sys/dev/pci/pcib_private.h head/sys/dev/pci/pcivar.h head/sys/dev/pci/vga_pci.c head/sys/dev/ppc/ppc.c head/sys/dev/ppc/ppcvar.h head/sys/dev/puc/puc.c head/sys/dev/puc/puc_bfe.h head/sys/dev/quicc/quicc_bfe.h head/sys/dev/quicc/quicc_core.c head/sys/dev/scc/scc_bfe.h head/sys/dev/scc/scc_core.c head/sys/dev/siba/siba.c head/sys/dev/siba/siba_bwn.c head/sys/dev/siba/siba_pcib.c head/sys/dev/siis/siis.c head/sys/dev/snc/if_snc_cbus.c head/sys/dev/sound/isa/gusc.c head/sys/dev/sound/isa/sbc.c head/sys/dev/sound/pci/csa.c head/sys/dev/sound/pci/fm801.c head/sys/dev/sound/pci/vibes.c head/sys/dev/stg/tmc18c30_subr.c head/sys/dev/wl/if_wl.c head/sys/isa/isa_common.c head/sys/isa/isa_common.h head/sys/kern/bus_if.m head/sys/kern/subr_bus.c head/sys/kern/subr_rman.c head/sys/mips/adm5120/admpci.c head/sys/mips/adm5120/obio.c head/sys/mips/alchemy/obio.c head/sys/mips/atheros/apb.c head/sys/mips/atheros/ar71xx_pci.c head/sys/mips/atheros/ar724x_pci.c head/sys/mips/atheros/qca955x_pci.c head/sys/mips/beri/beri_simplebus.c head/sys/mips/cavium/ciu.c head/sys/mips/cavium/obio.c head/sys/mips/cavium/octopci.c head/sys/mips/idt/idtpci.c head/sys/mips/idt/obio.c head/sys/mips/malta/gt.c head/sys/mips/malta/gt_pci.c head/sys/mips/malta/obio.c head/sys/mips/mips/cpu.c head/sys/mips/mips/nexus.c head/sys/mips/nlm/xlp_simplebus.c head/sys/mips/rmi/iodi.c head/sys/mips/rmi/xlr_pci.c head/sys/mips/rt305x/obio.c head/sys/mips/rt305x/rt305x_gpio.c head/sys/mips/rt305x/rt305x_pci.c head/sys/mips/sentry5/obio.c head/sys/mips/sibyte/sb_zbbus.c head/sys/mips/sibyte/sb_zbpci.c head/sys/pc98/pc98/canbus.c head/sys/powerpc/mpc85xx/lbc.c head/sys/powerpc/ofw/ofw_pci.c head/sys/powerpc/powermac/macgpio.c head/sys/powerpc/powermac/macio.c head/sys/powerpc/powermac/uninorth.c head/sys/powerpc/psim/ata_iobus.c head/sys/powerpc/psim/iobus.c head/sys/sparc64/central/central.c head/sys/sparc64/ebus/ebus.c head/sys/sparc64/fhc/fhc.c head/sys/sparc64/isa/isa.c head/sys/sparc64/pci/apb.c head/sys/sparc64/pci/fire.c head/sys/sparc64/pci/ofw_pci.c head/sys/sparc64/pci/psycho.c head/sys/sparc64/pci/sbbc.c head/sys/sparc64/pci/schizo.c head/sys/sparc64/sbus/sbus.c head/sys/sparc64/sparc64/nexus.c head/sys/sparc64/sparc64/upa.c head/sys/sys/_types.h head/sys/sys/bus.h head/sys/sys/rman.h head/sys/sys/types.h head/sys/x86/include/legacyvar.h head/sys/x86/include/pci_cfgreg.h head/sys/x86/isa/atrtc.c head/sys/x86/isa/clock.c head/sys/x86/isa/isa.c head/sys/x86/pci/pci_bus.c head/sys/x86/pci/qpi.c head/sys/x86/x86/mptable_pci.c head/sys/x86/x86/nexus.c Modified: head/lib/libdevinfo/devinfo.3 ============================================================================== --- head/lib/libdevinfo/devinfo.3 Wed Jan 27 02:22:31 2016 (r294882) +++ head/lib/libdevinfo/devinfo.3 Wed Jan 27 02:23:54 2016 (r294883) @@ -110,8 +110,8 @@ struct devinfo_dev { struct devinfo_rman { devinfo_handle_t dm_handle; /* resource manager handle */ - u_long dm_start; /* resource start */ - u_long dm_size; /* resource size */ + rman_res_t dm_start; /* resource start */ + rman_res_t dm_size; /* resource size */ char *dm_desc; /* resource description */ }; @@ -119,8 +119,8 @@ struct devinfo_res { devinfo_handle_t dr_handle; /* resource handle */ devinfo_handle_t dr_rman; /* resource manager handle */ devinfo_handle_t dr_device; /* owning device */ - u_long dr_start; /* region start */ - u_long dr_size; /* region size */ + rman_res_t dr_start; /* region start */ + rman_res_t dr_size; /* region size */ }; .Ed .Pp Modified: head/lib/libdevinfo/devinfo.h ============================================================================== --- head/lib/libdevinfo/devinfo.h Wed Jan 27 02:22:31 2016 (r294882) +++ head/lib/libdevinfo/devinfo.h Wed Jan 27 02:23:54 2016 (r294883) @@ -56,8 +56,8 @@ struct devinfo_dev { struct devinfo_rman { devinfo_handle_t dm_handle; /* resource manager handle */ - unsigned long dm_start; /* resource start */ - unsigned long dm_size; /* resource size */ + rman_res_t dm_start; /* resource start */ + rman_res_t dm_size; /* resource size */ char *dm_desc; /* resource description */ }; @@ -67,8 +67,8 @@ struct devinfo_res { devinfo_handle_t dr_rman; /* resource manager handle */ devinfo_handle_t dr_device; /* owning device */ - unsigned long dr_start; /* region start */ - unsigned long dr_size; /* region size */ + rman_res_t dr_start; /* region start */ + rman_res_t dr_size; /* region size */ /* XXX add flags */ }; Modified: head/share/man/man9/bus_adjust_resource.9 ============================================================================== --- head/share/man/man9/bus_adjust_resource.9 Wed Jan 27 02:22:31 2016 (r294882) +++ head/share/man/man9/bus_adjust_resource.9 Wed Jan 27 02:23:54 2016 (r294883) @@ -41,7 +41,8 @@ .In sys/rman.h .In machine/resource.h .Ft int -.Fn bus_adjust_resource "device_t dev" "int type" "struct resource *r" "u_long start" "u_long end" +.Fo bus_adjust_resource +.Fa "device_t dev" "int type" "struct resource *r" "rman_res_t start" "rman_res_t end" .Sh DESCRIPTION This function is used to ask the parent bus to adjust the resource range assigned to an allocated resource. Modified: head/share/man/man9/bus_alloc_resource.9 ============================================================================== --- head/share/man/man9/bus_alloc_resource.9 Wed Jan 27 02:22:31 2016 (r294882) +++ head/share/man/man9/bus_alloc_resource.9 Wed Jan 27 02:23:54 2016 (r294883) @@ -43,7 +43,10 @@ .In sys/rman.h .In machine/resource.h .Ft struct resource * -.Fn bus_alloc_resource "device_t dev" "int type" "int *rid" "u_long start" "u_long end" "u_long count" "u_int flags" +.Fo bus_alloc_resource +.Fa "device_t dev" "int type" "int *rid" "rman_res_t start" "rman_res_t end" +.Fa "rman_res_t count" "u_int flags" +.Fc .Ft struct resource * .Fn bus_alloc_resource_any "device_t dev" "int type" "int *rid" "u_int flags" .Sh DESCRIPTION Modified: head/share/man/man9/bus_get_resource.9 ============================================================================== --- head/share/man/man9/bus_get_resource.9 Wed Jan 27 02:22:31 2016 (r294882) +++ head/share/man/man9/bus_get_resource.9 Wed Jan 27 02:23:54 2016 (r294883) @@ -44,7 +44,7 @@ .In sys/rman.h .Ft int .Fo bus_get_resource -.Fa "device_t dev" "int type" "int rid" "u_long *startp" "u_long *countp" +.Fa "device_t dev" "int type" "int rid" "rman_res_t *startp" "rman_res_t *countp" .Fc .Sh DESCRIPTION The Modified: head/share/man/man9/bus_set_resource.9 ============================================================================== --- head/share/man/man9/bus_set_resource.9 Wed Jan 27 02:22:31 2016 (r294882) +++ head/share/man/man9/bus_set_resource.9 Wed Jan 27 02:23:54 2016 (r294883) @@ -43,7 +43,7 @@ .In machine/resource.h .Ft int .Fo bus_set_resource -.Fa "device_t dev" "int type" "int rid" "u_long start" "u_long count" +.Fa "device_t dev" "int type" "int rid" "rman_res_t start" "rman_res_t count" .Fc .Sh DESCRIPTION The Modified: head/share/man/man9/rman.9 ============================================================================== --- head/share/man/man9/rman.9 Wed Jan 27 02:22:31 2016 (r294882) +++ head/share/man/man9/rman.9 Wed Jan 27 02:23:54 2016 (r294883) @@ -65,7 +65,7 @@ .Ft int .Fn rman_activate_resource "struct resource *r" .Ft int -.Fn rman_adjust_resource "struct resource *r" "u_long start" "u_long end" +.Fn rman_adjust_resource "struct resource *r" "rman_res_t start" "rman_res_t end" .Ft int .Fn rman_await_resource "struct resource *r" "int pri2" "int timo" .Ft int @@ -79,32 +79,32 @@ .Ft int .Fn rman_is_region_manager "struct resource *r" "struct rman *rm" .Ft int -.Fn rman_manage_region "struct rman *rm" "u_long start" "u_long end" +.Fn rman_manage_region "struct rman *rm" "rman_res_t start" "rman_res_t end" .Ft int -.Fn rman_first_free_region "struct rman *rm" "u_long *start" "u_long *end" +.Fn rman_first_free_region "struct rman *rm" "rman_res_t *start" "rman_res_t *end" .Ft int -.Fn rman_last_free_region "struct rman *rm" "u_long *start" "u_long *end" +.Fn rman_last_free_region "struct rman *rm" "rman_res_t *start" "rman_res_t *end" .Ft int .Fn rman_release_resource "struct resource *r" .Ft "struct resource *" .Fo rman_reserve_resource -.Fa "struct rman *rm" "u_long start" "u_long end" "u_long count" +.Fa "struct rman *rm" "rman_res_t start" "rman_res_t end" "rman_res_t count" .Fa "u_int flags" "struct device *dev" .Fc .Ft "struct resource *" .Fo rman_reserve_resource_bound -.Fa "struct rman *rm" "u_long start" "u_long end" "u_long count" -.Fa "u_long bound" "u_int flags" "struct device *dev" +.Fa "struct rman *rm" "rman_res_t start" "rman_res_t end" "rman_res_t count" +.Fa "rman_res_t bound" "u_int flags" "struct device *dev" .Fc .Ft uint32_t .Fn rman_make_alignment_flags "uint32_t size" -.Ft u_long +.Ft rman_res_t .Fn rman_get_start "struct resource *r" -.Ft u_long +.Ft rman_res_t .Fn rman_get_end "struct resource *r" .Ft "struct device *" .Fn rman_get_device "struct resource *r" -.Ft u_long +.Ft rman_res_t .Fn rman_get_size "struct resource *r" .Ft u_int .Fn rman_get_flags "struct resource *r" Modified: head/sys/arm/arm/nexus.c ============================================================================== --- head/sys/arm/arm/nexus.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/arm/nexus.c Wed Jan 27 02:23:54 2016 (r294883) @@ -82,7 +82,7 @@ static int nexus_attach(device_t); static int nexus_print_child(device_t, device_t); static device_t nexus_add_child(device_t, u_int, const char *, int); static struct resource *nexus_alloc_resource(device_t, device_t, int, int *, - u_long, u_long, u_long, u_int); + rman_res_t, rman_res_t, rman_res_t, u_int); static int nexus_activate_resource(device_t, device_t, int, int, struct resource *); #ifdef ARM_INTRNG @@ -212,7 +212,7 @@ nexus_add_child(device_t bus, u_int orde */ static struct resource * nexus_alloc_resource(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct resource *rv; struct rman *rm; Modified: head/sys/arm/at91/at91.c ============================================================================== --- head/sys/arm/at91/at91.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/at91/at91.c Wed Jan 27 02:23:54 2016 (r294883) @@ -147,7 +147,7 @@ at91_attach(device_t dev) static struct resource * at91_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct at91_softc *sc = device_get_softc(dev); struct resource_list_entry *rle; @@ -255,7 +255,7 @@ at91_activate_resource(device_t bus, dev struct resource *r) { #if 0 - u_long p; + rman_res_t p; int error; if (type == SYS_RES_MEMORY) { Modified: head/sys/arm/cavium/cns11xx/econa.c ============================================================================== --- head/sys/arm/cavium/cns11xx/econa.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/cavium/cns11xx/econa.c Wed Jan 27 02:23:54 2016 (r294883) @@ -408,7 +408,7 @@ econa_attach(device_t dev) static struct resource * econa_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct econa_softc *sc = device_get_softc(dev); struct resource_list_entry *rle; Modified: head/sys/arm/mv/mv_localbus.c ============================================================================== --- head/sys/arm/mv/mv_localbus.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/mv/mv_localbus.c Wed Jan 27 02:23:54 2016 (r294883) @@ -100,7 +100,7 @@ static int localbus_attach(device_t); static int localbus_print_child(device_t, device_t); static struct resource *localbus_alloc_resource(device_t, device_t, int, - int *, u_long, u_long, u_long, u_int); + int *, rman_res_t, rman_res_t, rman_res_t, u_int); static struct resource_list *localbus_get_resource_list(device_t, device_t); static ofw_bus_get_devinfo_t localbus_get_devinfo; @@ -332,7 +332,7 @@ localbus_print_child(device_t dev, devic static struct resource * localbus_alloc_resource(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct localbus_devinfo *di; struct resource_list_entry *rle; Modified: head/sys/arm/mv/mv_pci.c ============================================================================== --- head/sys/arm/mv/mv_pci.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/mv/mv_pci.c Wed Jan 27 02:23:54 2016 (r294883) @@ -332,7 +332,7 @@ static int mv_pcib_probe(device_t); static int mv_pcib_attach(device_t); static struct resource *mv_pcib_alloc_resource(device_t, device_t, int, int *, - u_long, u_long, u_long, u_int); + rman_res_t, rman_res_t, rman_res_t, u_int); static int mv_pcib_release_resource(device_t, device_t, int, int, struct resource *); static int mv_pcib_read_ivar(device_t, device_t, int, uintptr_t *); @@ -830,7 +830,7 @@ mv_pcib_init_all_bars(struct mv_pcib_sof static struct resource * mv_pcib_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct mv_pcib_softc *sc = device_get_softc(dev); struct rman *rm = NULL; Modified: head/sys/arm/versatile/versatile_pci.c ============================================================================== --- head/sys/arm/versatile/versatile_pci.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/versatile/versatile_pci.c Wed Jan 27 02:23:54 2016 (r294883) @@ -305,7 +305,7 @@ versatile_pci_write_ivar(device_t dev, d static struct resource * versatile_pci_alloc_resource(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct versatile_pci_softc *sc = device_get_softc(bus); Modified: head/sys/arm/xscale/i8134x/i81342.c ============================================================================== --- head/sys/arm/xscale/i8134x/i81342.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/xscale/i8134x/i81342.c Wed Jan 27 02:23:54 2016 (r294883) @@ -409,7 +409,7 @@ i81342_attach(device_t dev) static struct resource * i81342_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct i81342_softc *sc = device_get_softc(dev); struct resource *rv; Modified: head/sys/arm/xscale/i8134x/i81342_pci.c ============================================================================== --- head/sys/arm/xscale/i8134x/i81342_pci.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/xscale/i8134x/i81342_pci.c Wed Jan 27 02:23:54 2016 (r294883) @@ -328,7 +328,7 @@ i81342_pci_write_config(device_t dev, u_ static struct resource * i81342_pci_alloc_resource(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct i81342_pci_softc *sc = device_get_softc(bus); struct resource *rv; @@ -383,7 +383,7 @@ static int i81342_pci_activate_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { - u_long p; + bus_space_handle_t p; int error; if (type == SYS_RES_MEMORY) { Modified: head/sys/arm/xscale/i8134x/obio.c ============================================================================== --- head/sys/arm/xscale/i8134x/obio.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/xscale/i8134x/obio.c Wed Jan 27 02:23:54 2016 (r294883) @@ -91,7 +91,7 @@ obio_attach(device_t dev) static struct resource * obio_alloc_resource(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct resource *rv; struct rman *rm; Modified: head/sys/arm/xscale/ixp425/avila_ata.c ============================================================================== --- head/sys/arm/xscale/ixp425/avila_ata.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/xscale/ixp425/avila_ata.c Wed Jan 27 02:23:54 2016 (r294883) @@ -282,7 +282,7 @@ ata_avila_intr(void *xsc) static struct resource * ata_avila_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct ata_avila_softc *sc = device_get_softc(dev); Modified: head/sys/arm/xscale/ixp425/ixp425.c ============================================================================== --- head/sys/arm/xscale/ixp425/ixp425.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/xscale/ixp425/ixp425.c Wed Jan 27 02:23:54 2016 (r294883) @@ -496,7 +496,7 @@ getvbase(uint32_t hwbase, uint32_t size, static struct resource * ixp425_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct ixp425_softc *sc = device_get_softc(dev); const struct hwvtrans *vtrans; Modified: head/sys/arm/xscale/ixp425/ixp425_pci.c ============================================================================== --- head/sys/arm/xscale/ixp425/ixp425_pci.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/xscale/ixp425/ixp425_pci.c Wed Jan 27 02:23:54 2016 (r294883) @@ -269,7 +269,7 @@ ixppcib_teardown_intr(device_t dev, devi static struct resource * ixppcib_alloc_resource(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct ixppcib_softc *sc = device_get_softc(bus); struct rman *rmanp; Modified: head/sys/arm/xscale/pxa/pxa_obio.c ============================================================================== --- head/sys/arm/xscale/pxa/pxa_obio.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/xscale/pxa/pxa_obio.c Wed Jan 27 02:23:54 2016 (r294883) @@ -50,14 +50,14 @@ static int pxa_read_ivar(device_t, devic static struct resource_list * pxa_get_resource_list(device_t, device_t); static struct resource * pxa_alloc_resource(device_t, device_t, int, - int *, u_long, u_long, u_long, u_int); + int *, rman_res_t, rman_res_t, rman_res_t, u_int); static int pxa_release_resource(device_t, device_t, int, int, struct resource *); static int pxa_activate_resource(device_t, device_t, int, int, struct resource *); static struct resource * pxa_alloc_gpio_irq(device_t, device_t, int, - int *, u_long, u_long, u_long, u_int); + int *, rman_res_t, rman_res_t, rman_res_t, u_int); struct obio_device { const char *od_name; @@ -224,7 +224,7 @@ pxa_get_resource_list(device_t dev, devi static struct resource * pxa_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct obio_softc *sc; struct obio_device *od; @@ -351,7 +351,7 @@ DRIVER_MODULE(pxa, nexus, pxa_driver, px static struct resource * pxa_alloc_gpio_irq(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct obio_softc *sc; struct obio_device *od; Modified: head/sys/arm/xscale/pxa/pxa_smi.c ============================================================================== --- head/sys/arm/xscale/pxa/pxa_smi.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm/xscale/pxa/pxa_smi.c Wed Jan 27 02:23:54 2016 (r294883) @@ -70,7 +70,7 @@ static int pxa_smi_print_child(device_t, static int pxa_smi_read_ivar(device_t, device_t, int, uintptr_t *); static struct resource * pxa_smi_alloc_resource(device_t, device_t, - int, int *, u_long, u_long, u_long, u_int); + int, int *, rman_res_t, rman_res_t, rman_res_t, u_int); static int pxa_smi_release_resource(device_t, device_t, int, int, struct resource *); static int pxa_smi_activate_resource(device_t, device_t, @@ -176,7 +176,7 @@ pxa_smi_read_ivar(device_t dev, device_t static struct resource * pxa_smi_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct pxa_smi_softc *sc; struct smi_ivars *smid; Modified: head/sys/arm64/arm64/gic_v3_fdt.c ============================================================================== --- head/sys/arm64/arm64/gic_v3_fdt.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm64/arm64/gic_v3_fdt.c Wed Jan 27 02:23:54 2016 (r294883) @@ -54,7 +54,7 @@ static int gic_v3_fdt_probe(device_t); static int gic_v3_fdt_attach(device_t); static struct resource *gic_v3_ofw_bus_alloc_res(device_t, device_t, int, int *, - u_long, u_long, u_long, u_int); + rman_res_t, rman_res_t, rman_res_t, u_int); static const struct ofw_bus_devinfo *gic_v3_ofw_get_devinfo(device_t, device_t); static device_method_t gic_v3_fdt_methods[] = { @@ -174,7 +174,7 @@ gic_v3_ofw_get_devinfo(device_t bus __un static struct resource * gic_v3_ofw_bus_alloc_res(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct gic_v3_ofw_devinfo *di; struct resource_list_entry *rle; Modified: head/sys/arm64/arm64/nexus.c ============================================================================== --- head/sys/arm64/arm64/nexus.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm64/arm64/nexus.c Wed Jan 27 02:23:54 2016 (r294883) @@ -99,13 +99,14 @@ static device_attach_t nexus_acpi_attach static int nexus_print_child(device_t, device_t); static device_t nexus_add_child(device_t, u_int, const char *, int); static struct resource *nexus_alloc_resource(device_t, device_t, int, int *, - u_long, u_long, u_long, u_int); + rman_res_t, rman_res_t, rman_res_t, u_int); static int nexus_activate_resource(device_t, device_t, int, int, struct resource *); static int nexus_config_intr(device_t dev, int irq, enum intr_trigger trig, enum intr_polarity pol); static struct resource_list *nexus_get_reslist(device_t, device_t); -static int nexus_set_resource(device_t, device_t, int, int, u_long, u_long); +static int nexus_set_resource(device_t, device_t, int, int, + rman_res_t, rman_res_t); static int nexus_deactivate_resource(device_t, device_t, int, int, struct resource *); @@ -201,7 +202,7 @@ nexus_add_child(device_t bus, u_int orde */ static struct resource * nexus_alloc_resource(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct nexus_device *ndev = DEVTONX(child); struct resource *rv; @@ -332,7 +333,7 @@ nexus_get_reslist(device_t dev, device_t static int nexus_set_resource(device_t dev, device_t child, int type, int rid, - u_long start, u_long count) + rman_res_t start, rman_res_t count) { struct nexus_device *ndev = DEVTONX(child); struct resource_list *rl = &ndev->nx_resources; Modified: head/sys/arm64/cavium/thunder_pcie.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm64/cavium/thunder_pcie.c Wed Jan 27 02:23:54 2016 (r294883) @@ -110,7 +110,7 @@ SYSCTL_INT(_hw, OID_AUTO, thunder_pcie_m /* Forward prototypes */ static struct resource *thunder_pcie_alloc_resource(device_t, - device_t, int, int *, u_long, u_long, u_long, u_int); + device_t, int, int *, rman_res_t, rman_res_t, rman_res_t, u_int); static int thunder_pcie_attach(device_t); static int thunder_pcie_identify_pcib(device_t); static int thunder_pcie_maxslots(device_t); @@ -431,7 +431,7 @@ thunder_pcie_release_resource(device_t d static struct resource * thunder_pcie_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct thunder_pcie_softc *sc = device_get_softc(dev); struct rman *rm = NULL; @@ -519,7 +519,7 @@ static int thunder_pcie_identify_pcib(device_t dev) { struct thunder_pcie_softc *sc; - u_long start; + rman_res_t start; sc = device_get_softc(dev); start = bus_get_resource_start(dev, SYS_RES_MEMORY, 0); Modified: head/sys/arm64/cavium/thunder_pcie_pem.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_pem.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/arm64/cavium/thunder_pcie_pem.c Wed Jan 27 02:23:54 2016 (r294883) @@ -126,7 +126,7 @@ struct thunder_pem_softc { }; static struct resource * thunder_pem_alloc_resource(device_t, device_t, int, - int *, u_long, u_long, u_long, u_int); + int *, rman_res_t, rman_res_t, rman_res_t, u_int); static int thunder_pem_attach(device_t); static int thunder_pem_detach(device_t); static uint64_t thunder_pem_config_reg_read(struct thunder_pem_softc *, int); @@ -230,7 +230,7 @@ static int thunder_pem_identify(device_t dev) { struct thunder_pem_softc *sc; - u_long start; + rman_res_t start; sc = device_get_softc(dev); start = rman_get_start(sc->reg); @@ -426,7 +426,7 @@ thunder_pem_write_config(device_t dev, u static struct resource * thunder_pem_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct thunder_pem_softc *sc = device_get_softc(dev); struct rman *rm = NULL; Modified: head/sys/dev/acpica/acpi.c ============================================================================== --- head/sys/dev/acpica/acpi.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/acpica/acpi.c Wed Jan 27 02:23:54 2016 (r294883) @@ -121,12 +121,12 @@ static struct resource_list *acpi_get_rl static void acpi_reserve_resources(device_t dev); static int acpi_sysres_alloc(device_t dev); static int acpi_set_resource(device_t dev, device_t child, int type, - int rid, u_long start, u_long count); + int rid, rman_res_t start, rman_res_t count); static struct resource *acpi_alloc_resource(device_t bus, device_t child, - int type, int *rid, u_long start, u_long end, - u_long count, u_int flags); + int type, int *rid, rman_res_t start, rman_res_t end, + rman_res_t count, u_int flags); static int acpi_adjust_resource(device_t bus, device_t child, int type, - struct resource *r, u_long start, u_long end); + struct resource *r, rman_res_t start, rman_res_t end); static int acpi_release_resource(device_t bus, device_t child, int type, int rid, struct resource *r); static void acpi_delete_resource(device_t bus, device_t child, int type, @@ -1247,13 +1247,13 @@ acpi_reserve_resources(device_t dev) static int acpi_set_resource(device_t dev, device_t child, int type, int rid, - u_long start, u_long count) + rman_res_t start, rman_res_t count) { struct acpi_softc *sc = device_get_softc(dev); struct acpi_device *ad = device_get_ivars(child); struct resource_list *rl = &ad->ad_rl; ACPI_DEVICE_INFO *devinfo; - u_long end; + rman_res_t end; /* Ignore IRQ resources for PCI link devices. */ if (type == SYS_RES_IRQ && ACPI_ID_PROBE(dev, child, pcilink_ids) != NULL) @@ -1323,7 +1323,7 @@ acpi_set_resource(device_t dev, device_t static struct resource * acpi_alloc_resource(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { ACPI_RESOURCE ares; struct acpi_device *ad; @@ -1399,8 +1399,8 @@ acpi_alloc_resource(device_t bus, device * system resources. */ struct resource * -acpi_alloc_sysres(device_t child, int type, int *rid, u_long start, u_long end, - u_long count, u_int flags) +acpi_alloc_sysres(device_t child, int type, int *rid, rman_res_t start, + rman_res_t end, rman_res_t count, u_int flags) { struct rman *rm; struct resource *res; @@ -1450,7 +1450,7 @@ acpi_is_resource_managed(int type, struc static int acpi_adjust_resource(device_t bus, device_t child, int type, struct resource *r, - u_long start, u_long end) + rman_res_t start, rman_res_t end) { if (acpi_is_resource_managed(type, r)) Modified: head/sys/dev/acpica/acpi_hpet.c ============================================================================== --- head/sys/dev/acpica/acpi_hpet.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/acpica/acpi_hpet.c Wed Jan 27 02:23:54 2016 (r294883) @@ -322,7 +322,7 @@ hpet_find(ACPI_HANDLE handle, UINT32 lev static int hpet_find_irq_rid(device_t dev, u_long start, u_long end) { - u_long irq; + rman_res_t irq; int error, rid; for (rid = 0;; rid++) { Modified: head/sys/dev/acpica/acpi_pcib_acpi.c ============================================================================== --- head/sys/dev/acpica/acpi_pcib_acpi.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/acpica/acpi_pcib_acpi.c Wed Jan 27 02:23:54 2016 (r294883) @@ -91,12 +91,12 @@ static int acpi_pcib_alloc_msix(device_ int *irq); static struct resource *acpi_pcib_acpi_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags); #ifdef NEW_PCIB static int acpi_pcib_acpi_adjust_resource(device_t dev, device_t child, int type, struct resource *r, - u_long start, u_long end); + rman_res_t start, rman_res_t end); #ifdef PCI_RES_BUS static int acpi_pcib_acpi_release_resource(device_t dev, device_t child, int type, int rid, @@ -283,7 +283,7 @@ acpi_pcib_producer_handler(ACPI_RESOURCE #if defined(NEW_PCIB) && defined(PCI_RES_BUS) static int -first_decoded_bus(struct acpi_hpcib_softc *sc, u_long *startp) +first_decoded_bus(struct acpi_hpcib_softc *sc, rman_res_t *startp) { struct resource_list_entry *rle; @@ -304,7 +304,7 @@ acpi_pcib_acpi_attach(device_t dev) u_int slot, func, busok; #if defined(NEW_PCIB) && defined(PCI_RES_BUS) struct resource *bus_res; - u_long start; + rman_res_t start; int rid; #endif uint8_t busno; @@ -584,7 +584,7 @@ acpi_pcib_map_msi(device_t pcib, device_ struct resource * acpi_pcib_acpi_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { #ifdef NEW_PCIB struct acpi_hpcib_softc *sc; @@ -625,7 +625,7 @@ acpi_pcib_acpi_alloc_resource(device_t d #ifdef NEW_PCIB int acpi_pcib_acpi_adjust_resource(device_t dev, device_t child, int type, - struct resource *r, u_long start, u_long end) + struct resource *r, rman_res_t start, rman_res_t end) { struct acpi_hpcib_softc *sc; Modified: head/sys/dev/acpica/acpi_resource.c ============================================================================== --- head/sys/dev/acpica/acpi_resource.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/acpica/acpi_resource.c Wed Jan 27 02:23:54 2016 (r294883) @@ -671,7 +671,7 @@ acpi_sysres_attach(device_t dev) struct resource_list_entry *bus_rle, *dev_rle; struct resource_list *bus_rl, *dev_rl; int done, type; - u_long start, end, count; + rman_res_t start, end, count; /* * Loop through all current resources to see if the new one overlaps Modified: head/sys/dev/acpica/acpi_timer.c ============================================================================== --- head/sys/dev/acpica/acpi_timer.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/acpica/acpi_timer.c Wed Jan 27 02:23:54 2016 (r294883) @@ -122,7 +122,7 @@ static void acpi_timer_identify(driver_t *driver, device_t parent) { device_t dev; - u_long rlen, rstart; + rman_res_t rlen, rstart; int rid, rtype; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); Modified: head/sys/dev/acpica/acpivar.h ============================================================================== --- head/sys/dev/acpica/acpivar.h Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/acpica/acpivar.h Wed Jan 27 02:23:54 2016 (r294883) @@ -383,7 +383,8 @@ ACPI_STATUS acpi_lookup_irq_resource(dev ACPI_STATUS acpi_parse_resources(device_t dev, ACPI_HANDLE handle, struct acpi_parse_resource_set *set, void *arg); struct resource *acpi_alloc_sysres(device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags); + rman_res_t start, rman_res_t end, rman_res_t count, + u_int flags); /* ACPI event handling */ UINT32 acpi_event_power_button_sleep(void *context); Modified: head/sys/dev/advansys/adv_isa.c ============================================================================== --- head/sys/dev/advansys/adv_isa.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/advansys/adv_isa.c Wed Jan 27 02:23:54 2016 (r294883) @@ -109,7 +109,7 @@ adv_isa_probe(device_t dev) { int port_index; int max_port_index; - u_long iobase, iocount, irq; + rman_res_t iobase, iocount, irq; int user_iobase = 0; int rid = 0; void *ih; Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ahci/ahci.c Wed Jan 27 02:23:54 2016 (r294883) @@ -523,7 +523,7 @@ ahci_intr_one_edge(void *data) struct resource * ahci_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { struct ahci_controller *ctlr = device_get_softc(dev); struct resource *res; Modified: head/sys/dev/ahci/ahci.h ============================================================================== --- head/sys/dev/ahci/ahci.h Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ahci/ahci.h Wed Jan 27 02:23:54 2016 (r294883) @@ -626,7 +626,7 @@ int ahci_detach(device_t dev); int ahci_setup_interrupt(device_t dev); int ahci_print_child(device_t dev, device_t child); struct resource *ahci_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags); + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags); int ahci_release_resource(device_t dev, device_t child, int type, int rid, struct resource *r); int ahci_setup_intr(device_t dev, device_t child, struct resource *irq, Modified: head/sys/dev/ata/ata-cbus.c ============================================================================== --- head/sys/dev/ata/ata-cbus.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ata/ata-cbus.c Wed Jan 27 02:23:54 2016 (r294883) @@ -67,7 +67,7 @@ ata_cbus_probe(device_t dev) { struct resource *io; int rid; - u_long tmp; + rman_res_t tmp; /* dont probe PnP devices */ if (isa_get_vendorid(dev)) @@ -168,7 +168,8 @@ ata_cbus_attach(device_t dev) static struct resource * ata_cbus_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, + u_int flags) { struct ata_cbus_controller *ctlr = device_get_softc(dev); Modified: head/sys/dev/ata/ata-isa.c ============================================================================== --- head/sys/dev/ata/ata-isa.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ata/ata-isa.c Wed Jan 27 02:23:54 2016 (r294883) @@ -60,7 +60,7 @@ static int ata_isa_probe(device_t dev) { struct resource *io = NULL, *ctlio = NULL; - u_long tmp; + rman_res_t tmp; int rid; /* check isapnp ids */ @@ -100,7 +100,7 @@ ata_isa_attach(device_t dev) { struct ata_channel *ch = device_get_softc(dev); struct resource *io = NULL, *ctlio = NULL; - u_long tmp; + rman_res_t tmp; int i, rid; if (ch->attached) Modified: head/sys/dev/ata/ata-pci.c ============================================================================== --- head/sys/dev/ata/ata-pci.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ata/ata-pci.c Wed Jan 27 02:23:54 2016 (r294883) @@ -217,7 +217,8 @@ ata_pci_write_config(device_t dev, devic struct resource * ata_pci_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, + u_int flags) { struct ata_pci_controller *controller = device_get_softc(dev); struct resource *res = NULL; Modified: head/sys/dev/ata/ata-pci.h ============================================================================== --- head/sys/dev/ata/ata-pci.h Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ata/ata-pci.h Wed Jan 27 02:23:54 2016 (r294883) @@ -535,7 +535,7 @@ void ata_pci_write_config(device_t dev, int ata_pci_print_child(device_t dev, device_t child); int ata_pci_child_location_str(device_t dev, device_t child, char *buf, size_t buflen); -struct resource * ata_pci_alloc_resource(device_t dev, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags); +struct resource * ata_pci_alloc_resource(device_t dev, device_t child, int type, int *rid, rman_res_t start, rman_res_t end, rman_res_t count, u_int flags); int ata_pci_release_resource(device_t dev, device_t child, int type, int rid, struct resource *r); int ata_pci_setup_intr(device_t dev, device_t child, struct resource *irq, int flags, driver_filter_t *filter, driver_intr_t *function, void *argument, void **cookiep); int ata_pci_teardown_intr(device_t dev, device_t child, struct resource *irq, void *cookie); Modified: head/sys/dev/atkbdc/atkbdc_ebus.c ============================================================================== --- head/sys/dev/atkbdc/atkbdc_ebus.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/atkbdc/atkbdc_ebus.c Wed Jan 27 02:23:54 2016 (r294883) @@ -91,7 +91,7 @@ static int atkbdc_ebus_probe(device_t dev) { struct resource *port0, *port1; - u_long count, start; + rman_res_t count, start; int error, rid; if (strcmp(ofw_bus_get_name(dev), "8042") != 0) @@ -176,7 +176,7 @@ atkbdc_ebus_attach(device_t dev) atkbdc_device_t *adi; device_t cdev; phandle_t child; - u_long count, intr, start; + rman_res_t count, intr, start; int children, error, rid, unit; char *cname, *dname; Modified: head/sys/dev/atkbdc/atkbdc_isa.c ============================================================================== --- head/sys/dev/atkbdc/atkbdc_isa.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/atkbdc/atkbdc_isa.c Wed Jan 27 02:23:54 2016 (r294883) @@ -50,8 +50,8 @@ static int atkbdc_isa_attach(device_t de static device_t atkbdc_isa_add_child(device_t bus, u_int order, const char *name, int unit); static struct resource *atkbdc_isa_alloc_resource(device_t dev, device_t child, - int type, int *rid, u_long start, u_long end, - u_long count, u_int flags); + int type, int *rid, rman_res_t start, rman_res_t end, + rman_res_t count, u_int flags); static int atkbdc_isa_release_resource(device_t dev, device_t child, int type, int rid, struct resource *r); @@ -97,8 +97,8 @@ atkbdc_isa_probe(device_t dev) { struct resource *port0; struct resource *port1; - u_long start; - u_long count; + rman_res_t start; + rman_res_t count; int error; int rid; #if defined(__i386__) || defined(__amd64__) @@ -295,7 +295,7 @@ atkbdc_isa_add_child(device_t bus, u_int struct resource * atkbdc_isa_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { atkbdc_softc_t *sc; Modified: head/sys/dev/atkbdc/atkbdc_subr.c ============================================================================== --- head/sys/dev/atkbdc/atkbdc_subr.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/atkbdc/atkbdc_subr.c Wed Jan 27 02:23:54 2016 (r294883) @@ -51,7 +51,7 @@ int atkbdc_print_child(device_t bus, device_t dev) { atkbdc_device_t *kbdcdev; - u_long irq; + rman_res_t irq; int flags; int retval = 0; Modified: head/sys/dev/cs/if_cs.c ============================================================================== --- head/sys/dev/cs/if_cs.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/cs/if_cs.c Wed Jan 27 02:23:54 2016 (r294883) @@ -258,7 +258,7 @@ cs_cs89x0_probe(device_t dev) { int i; int error; - u_long irq, junk; + rman_res_t irq, junk; struct cs_softc *sc = device_get_softc(dev); unsigned rev_type = 0; uint16_t id; Modified: head/sys/dev/ctau/if_ct.c ============================================================================== --- head/sys/dev/ctau/if_ct.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ctau/if_ct.c Wed Jan 27 02:23:54 2016 (r294883) @@ -317,8 +317,8 @@ static short porttab [] = { static char dmatab [] = { 7, 6, 5, 0 }; static char irqtab [] = { 5, 10, 11, 7, 3, 15, 12, 0 }; -static int ct_is_free_res (device_t dev, int rid, int type, u_long start, - u_long end, u_long count) +static int ct_is_free_res (device_t dev, int rid, int type, rman_res_t start, + rman_res_t end, rman_res_t count) { struct resource *res; @@ -332,7 +332,7 @@ static int ct_is_free_res (device_t dev, static void ct_identify (driver_t *driver, device_t dev) { - u_long iobase, rescount; + rman_res_t iobase, rescount; int devcount; device_t *devices; device_t child; @@ -440,7 +440,7 @@ static void ct_identify (driver_t *drive static int ct_probe (device_t dev) { int unit = device_get_unit (dev); - u_long iobase, rescount; + rman_res_t iobase, rescount; if (!device_get_desc (dev) || strcmp (device_get_desc (dev), "Cronyx Tau-ISA")) @@ -529,7 +529,7 @@ ct_bus_dma_mem_free (ct_dma_mem_t *dmem) static int ct_attach (device_t dev) { bdrv_t *bd = device_get_softc (dev); - u_long iobase, drq, irq, rescount; + rman_res_t iobase, drq, irq, rescount; int unit = device_get_unit (dev); char *ct_ln = CT_LOCK_NAME; ct_board_t *b; Modified: head/sys/dev/cx/if_cx.c ============================================================================== --- head/sys/dev/cx/if_cx.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/cx/if_cx.c Wed Jan 27 02:23:54 2016 (r294883) @@ -405,8 +405,8 @@ static short porttab [] = { static char dmatab [] = { 7, 6, 5, 0 }; static char irqtab [] = { 5, 10, 11, 7, 3, 15, 12, 0 }; -static int cx_is_free_res (device_t dev, int rid, int type, u_long start, - u_long end, u_long count) +static int cx_is_free_res (device_t dev, int rid, int type, rman_res_t start, + rman_res_t end, rman_res_t count) { struct resource *res; @@ -420,7 +420,7 @@ static int cx_is_free_res (device_t dev, static void cx_identify (driver_t *driver, device_t dev) { - u_long iobase, rescount; + rman_res_t iobase, rescount; int devcount; device_t *devices; device_t child; @@ -530,7 +530,7 @@ static int cx_probe (device_t dev) { int unit = device_get_unit (dev); int i; - u_long iobase, rescount; + rman_res_t iobase, rescount; if (!device_get_desc (dev) || strcmp (device_get_desc (dev), "Cronyx Sigma")) @@ -629,7 +629,7 @@ cx_bus_dma_mem_free (cx_dma_mem_t *dmem) static int cx_attach (device_t dev) { bdrv_t *bd = device_get_softc (dev); - u_long iobase, drq, irq, rescount; + rman_res_t iobase, drq, irq, rescount; int unit = device_get_unit (dev); char *cx_ln = CX_LOCK_NAME; cx_board_t *b; Modified: head/sys/dev/ed/if_ed_3c503.c ============================================================================== --- head/sys/dev/ed/if_ed_3c503.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ed/if_ed_3c503.c Wed Jan 27 02:23:54 2016 (r294883) @@ -74,7 +74,7 @@ ed_probe_3Com(device_t dev, int port_rid int i; u_int memsize; u_char isa16bit; - u_long conf_maddr, conf_msize, irq, junk, pmem; + rman_res_t conf_maddr, conf_msize, irq, junk, pmem; error = ed_alloc_port(dev, 0, ED_3COM_IO_PORTS); if (error) Modified: head/sys/dev/ed/if_ed_cbus.c ============================================================================== --- head/sys/dev/ed/if_ed_cbus.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ed/if_ed_cbus.c Wed Jan 27 02:23:54 2016 (r294883) @@ -607,7 +607,7 @@ ed98_alloc_memory(dev, rid) { struct ed_softc *sc = device_get_softc(dev); int error; - u_long conf_maddr, conf_msize; + rman_res_t conf_maddr, conf_msize; error = bus_get_resource(dev, SYS_RES_MEMORY, 0, &conf_maddr, &conf_msize); @@ -1001,7 +1001,7 @@ ed_probe_CNET98(device_t dev, int port_r struct ed_softc *sc = device_get_softc(dev); int error; u_char tmp; - u_long conf_irq, junk; + rman_res_t conf_irq, junk; #ifdef DIAGNOSTIC u_char tmp_s; #endif @@ -1157,7 +1157,7 @@ ed_probe_CNET98EL(device_t dev, int port int error; int i; u_char romdata[ETHER_ADDR_LEN * 2], tmp; - u_long conf_irq, junk; + rman_res_t conf_irq, junk; error = ed98_alloc_port(dev, port_rid); if (error) @@ -1251,7 +1251,7 @@ ed_probe_NEC77(device_t dev, int port_ri struct ed_softc *sc = device_get_softc(dev); int error; u_char tmp; - u_long conf_irq, junk; + rman_res_t conf_irq, junk; error = ed98_probe_Novell(dev, port_rid, flags); if (error) @@ -1303,7 +1303,7 @@ ed_probe_NW98X(device_t dev, int port_ri struct ed_softc *sc = device_get_softc(dev); int error; u_char tmp; - u_long conf_irq, junk; + rman_res_t conf_irq, junk; error = ed98_probe_Novell(dev, port_rid, flags); if (error) @@ -1427,7 +1427,7 @@ ed_probe_SB98(device_t dev, int port_rid struct ed_softc *sc = device_get_softc(dev); int error; u_char tmp; - u_long conf_irq, junk; + rman_res_t conf_irq, junk; error = ed98_alloc_port(dev, port_rid); if (error) Modified: head/sys/dev/ed/if_ed_hpp.c ============================================================================== --- head/sys/dev/ed/if_ed_hpp.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ed/if_ed_hpp.c Wed Jan 27 02:23:54 2016 (r294883) @@ -126,7 +126,7 @@ ed_probe_HP_pclanp(device_t dev, int por u_char irq; /* board configured IRQ */ uint8_t test_pattern[ED_HPP_TEST_SIZE]; /* read/write areas for */ uint8_t test_buffer[ED_HPP_TEST_SIZE]; /* probing card */ - u_long conf_maddr, conf_msize, conf_irq, junk; + rman_res_t conf_maddr, conf_msize, conf_irq, junk; error = ed_alloc_port(dev, 0, ED_HPP_IO_PORTS); if (error) Modified: head/sys/dev/ed/if_ed_wd80x3.c ============================================================================== --- head/sys/dev/ed/if_ed_wd80x3.c Wed Jan 27 02:22:31 2016 (r294882) +++ head/sys/dev/ed/if_ed_wd80x3.c Wed Jan 27 02:23:54 2016 (r294883) @@ -97,7 +97,7 @@ ed_probe_WD80x3_generic(device_t dev, in int i; u_int memsize; u_char iptr, isa16bit, sum, totalsum; - u_long irq, junk, pmem; + rman_res_t irq, junk, pmem; sc->chip_type = ED_CHIP_TYPE_DP8390; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Jan 27 02:25:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3171DA6EB6D; Wed, 27 Jan 2016 02:25:27 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F38A6139C; Wed, 27 Jan 2016 02:25:26 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R2PP87062223; Wed, 27 Jan 2016 02:25:25 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R2PPah062221; Wed, 27 Jan 2016 02:25:25 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201601270225.u0R2PPah062221@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Wed, 27 Jan 2016 02:25:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294884 - in head/etc: defaults rc.d X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 02:25:27 -0000 Author: cy Date: Wed Jan 27 02:25:25 2016 New Revision: 294884 URL: https://svnweb.freebsd.org/changeset/base/294884 Log: Allow specification of fetch options for ntp leap-seconds fetch. MFC after: 1 week X-MFC with: r289421, r293037, r294773 Modified: head/etc/defaults/rc.conf head/etc/rc.d/ntpd Modified: head/etc/defaults/rc.conf ============================================================================== --- head/etc/defaults/rc.conf Wed Jan 27 02:23:54 2016 (r294883) +++ head/etc/defaults/rc.conf Wed Jan 27 02:25:25 2016 (r294884) @@ -368,6 +368,8 @@ ntp_db_leapfile="/var/db/ntpd.leap-secon # Working copy (updated weekly) leapfile ntp_leapfile_sources="https://www.ietf.org/timezones/data/leap-seconds.list" # Source from which to fetch leapfile +ntp_leapfile_fetch_opts="-mq" # Options to use for ntp leapfile fetch, + # e.g. --no-verify-peer ntp_leapfile_expiry_days=30 # Check for new leapfile 30 days prior to # expiry. ntp_leapfile_fetch_verbose="NO" # Be verbose during NTP leapfile fetch Modified: head/etc/rc.d/ntpd ============================================================================== --- head/etc/rc.d/ntpd Wed Jan 27 02:23:54 2016 (r294883) +++ head/etc/rc.d/ntpd Wed Jan 27 02:25:25 2016 (r294884) @@ -105,7 +105,7 @@ ntpd_fetch_leapfile() { $verbose Within ntp leapfile expiry limit, initiating fetch for url in $ntp_leapfile_sources ; do $verbose fetching $url - fetch -mqo $ntp_tmp_leapfile $url && break + fetch $ntp_leapfile_fetch_opts -o $ntp_tmp_leapfile $url && break done ntp_ver_no_tmp=$(get_ntp_leapfile_ver $ntp_tmp_leapfile) if [ "$ntp_ver_no_tmp" -gt "$ntp_ver_no_db" ]; then From owner-svn-src-all@freebsd.org Wed Jan 27 02:55:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17B13A6F492; Wed, 27 Jan 2016 02:55:22 +0000 (UTC) (envelope-from kabaev@gmail.com) Received: from mail-qg0-x234.google.com (mail-qg0-x234.google.com [IPv6:2607:f8b0:400d:c04::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CD599D9; Wed, 27 Jan 2016 02:55:21 +0000 (UTC) (envelope-from kabaev@gmail.com) Received: by mail-qg0-x234.google.com with SMTP id o11so155205269qge.2; Tue, 26 Jan 2016 18:55:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type; bh=MTW/LVzav9ccVMOZwQ4M20t4+G/p6jeTUXFoBEJoyBo=; b=en/G3ti9SFjaosgdSTgJZV9KNrhDsgFcudesFnCzUzNnAbrulDhXKKEG1JAYQA63ez P/vEPSBY/3H7hhIwb5mOjExoRr8DNmO5UfDc4mvtsmjXOwhYQl17robfc4+BwIbp9d1H EIQqCK1xORmzN4j4IhxJLqv/PiBCXJoyQBV89HrByZHE7zjv/ERXyPrB/QZAYYXHX167 UKwg6pOT/TsYGFy2cILVeO4i05zwry2ZTxecR5DPw2wXv5xyTxo03fnYWk8Gpyx6bHJH yYKUg3X4bTc8p2zyR3MCMj4I7OFTy1X05ixq7a8ALHX3otb6PU28dTwbGpYh5JKKC5QS shWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-type; bh=MTW/LVzav9ccVMOZwQ4M20t4+G/p6jeTUXFoBEJoyBo=; b=j9B2ed7MsUAAb+WDs9Zv7eWVJlwWIME1DibupCCLk33ulPRqrIW5G4BnSGc37v11pZ KyF+fC0d5Md5qgPadgt06eKslnIvhCNdiUz8zsMLcX3H7ZiZvodnu3P855eLlyBhS/Yp iYhhxq3J13hPxDfnM5S9uAVDajInCR/+aLbpt3Y5hKzysgGlibwXp2LRCcgUBoOQsNPt gnBg/su3VDnQq861Uhd5HMkM+U0j8Epybs3W64U3aHz5c6n3QKSRyxnlam5A3JhSvdLu 1dO0pwbaN9SFmE2xJUI62cdqsQPkDd6H14a3f/06xEaIuh0SPcWNUtb13zBQQCKeJDoH wVMA== X-Gm-Message-State: AG10YOTbEnMRNaEq9VNuDYsvTNMddOhD5mVP7UrTRyBBGgr44FrImf0akD3lfUe96ZInaQ== X-Received: by 10.140.18.172 with SMTP id 41mr32194218qgf.7.1453863320908; Tue, 26 Jan 2016 18:55:20 -0800 (PST) Received: from kan ([2601:18f:802:4680:226:18ff:fe00:232e]) by smtp.gmail.com with ESMTPSA id t103sm1831183qgd.37.2016.01.26.18.55.19 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 26 Jan 2016 18:55:19 -0800 (PST) Date: Tue, 26 Jan 2016 21:55:14 -0500 From: Alexander Kabaev To: Antoine Brodin Cc: Alexander Kabaev , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294470 - head/libexec/rtld-elf Message-ID: <20160126215514.2da7b1a1@kan> In-Reply-To: References: <201601202326.u0KNQZwL066141@repo.freebsd.org> <20160121183646.6d964d54@kan> X-Mailer: Claws Mail 3.13.1 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/4V_Pg2IWxbYcm8f5NB.gQ1s"; protocol="application/pgp-signature" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 02:55:22 -0000 --Sig_/4V_Pg2IWxbYcm8f5NB.gQ1s Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Sat, 23 Jan 2016 12:00:23 +0000 Antoine Brodin wrote: > On Thu, Jan 21, 2016 at 11:36 PM, Alexander Kabaev > wrote: > > On Thu, 21 Jan 2016 22:20:12 +0100 > > Antoine Brodin wrote: > > =20 > >> On Thu, Jan 21, 2016 at 12:26 AM, Alexander Kabaev > >> wrote: =20 > >> > Author: kan > >> > Date: Wed Jan 20 23:26:35 2016 > >> > New Revision: 294470 > >> > URL: https://svnweb.freebsd.org/changeset/base/294470 > >> > > >> > Log: > >> > Fix initlist_add_object invocation parameters. > >> > > >> > The tail parameter should point to the last object for > >> > which dependencies should be processed. In most cases, > >> > this is the object itself. > >> > > >> > Modified: > >> > head/libexec/rtld-elf/rtld.c =20 > >> > >> Hi, > >> > >> It seems there are still some hangs after this fix (seen on the > >> -head package builders, tar -xf hanging for instance). > >> > >> Cheers, > >> > >> Antoine =20 > > > > I've seen hangs _before_ this fix but none after. You'd have to > > collect some backtraces and share with me and kib@. =20 >=20 > False alarm, for unknown reasons java/eclipse eats all CPU on head and > other ports were starving. >=20 > Cheers, >=20 > Antoine For the record, we have reitroduced the bug fixed once already eight years ago in r178807. The symptoms are exacty that: multi-threaded processed spinning in userland wasting CPU time. The fix is out for review to kib@ and if he does no object, I'll check it in tomorrow. --=20 Alexander Kabaev --Sig_/4V_Pg2IWxbYcm8f5NB.gQ1s Content-Type: application/pgp-signature Content-Description: Цифровая подпись OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJWqDGSXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRDNUY3RDk5NTk5QjY0MUUxM0M1MTU2OTEw NzEzMjI5OTkyNzkyRTdFAAoJEAcTIpmSeS5+KlgQAIKZNwU2Q0mKgIFBQyMbRt66 aLzgznKhoHmco7NScDtWCxnXa5hOscLtXrOsYixUMR1GqNw1cMVwEY/CmWNA3kfs seePSzbGhyg2qTa3i7Mgia6EAfA7TQoJ8JQA6mAE/N6I15PujXY2clqAabV00/CC iuHRsFMbBbCDK15omXZvvKIno4KgZO7LmLZkrLJIVKWpp9K8L7tfplz7fdcvVGrF sTGFE2pO8zN0tGj3/HQZa/ZoEn+Cb3fKzmyLmefEAFttOIjY3Mvd++s+1WrwxsjM gXxtDJ5zNMz3Tu9vDo0NF9zDF4apKnR+S9kiE7N2HOHrVRHPbk2Yw87ApzcN+dZc wWEoapa2vhvnvGHsV9et0AewI7Z0ZrRg8kaHzUdzAu2osM4Ra+7fDA0zpIrewwPU W3pvQK7rp2p1ANJ4DyjFjIM6SfTagYGpReERw7VfQ6XQ4DyEpQarFVUaT7rUJJyu cJKYT/++DHsvo0nqMZ97hzP0nZpJDjZeJHNkxtVsOz+rctazRc59L4eoIGGkxSXB BE1mGWBlDI1naP3QdroUOGhSRaCY5abZOrPJmGBedtjpyS9NRs+nZs+nkTSCT/kT x8Htr6TQ0IqcXv6MLWyfRyo5CIM+DwKLj4GcSVEcL7nzp26pAWsQ47QyD+jt3jh4 fkhK4mD7yOVWnyPNHc0H =Zjqr -----END PGP SIGNATURE----- --Sig_/4V_Pg2IWxbYcm8f5NB.gQ1s-- From owner-svn-src-all@freebsd.org Wed Jan 27 03:50:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1F0B9A6E742; Wed, 27 Jan 2016 03:50:45 +0000 (UTC) (envelope-from sepherosa@gmail.com) Received: from mail-io0-x229.google.com (mail-io0-x229.google.com [IPv6:2607:f8b0:4001:c06::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D47531B4; Wed, 27 Jan 2016 03:50:44 +0000 (UTC) (envelope-from sepherosa@gmail.com) Received: by mail-io0-x229.google.com with SMTP id 77so6238550ioc.2; Tue, 26 Jan 2016 19:50:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=zteIN0lM7mKUT9CnhLGqxTw17t0meCcVZC3nfHZ/9co=; b=Xox1xB5ux6YsfIOJj42v5gmWQMHak2l9F0T2YE7u0enzAlavspDOoeveHWlCLxJxqH qcsKnIpOWrd36y2XywTYEOjkGAuJOxSB3vJTm5qUaIfNN4CpKnaZG06nRRqnjjnKZT32 +a4dLRKhLpehNAQeklHTBNA0cstllAgIijlB0EGPEkLV96rhznC0yP7yVBqpEs2XH1AB cvIWPN31WwWjAuHSuPVvIj8Dab1HSNoFwWxLcSOp22BGcRSp4oC4IU+C6yE1aT8ioLT8 3hbaXy+5QQFzZRuU77bmK8GUgeGLQQ/pjdo1XOJLiALWyzaJjA9l0dc4JdY35eaVLn+a CXQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=zteIN0lM7mKUT9CnhLGqxTw17t0meCcVZC3nfHZ/9co=; b=mncBWPx1a97tzf1yx3KoWzwt23WPSeg5EFBaGAFsVVOiASs/RXPHvfSf9Hjvnz0QBi QeBhed64gs1JwtV7yJHZ5inFevpOuRWwbF/ONH0Bgzr13H3/9wDhLTXn9eo4QLbhqWq7 4SVrj+eEzNKHLV+k9fUvMsIT5IQTdWRMvclz01t6+xhV8z1i56mu8Fc1P3Oj8c1e8q1l meQCdSAMc6WL4SBKqmsykOZnJ39QeKj5uZh1B7JlGrOcvEtAry4h/eL9ljGLiNTAw+XF RPNQJmiSYYOhJMOY3Xmzq50bNly6Yn2X1jBrIeGO8MpH+5NYp5y5EZUe/AbZkg86YG0v 8HiQ== X-Gm-Message-State: AG10YORfK5Sin02OcJlWDz8nw7WAhqrJA2VbeyN3z+szkuUEg7RkZBMeYWKrdQB/A42YGhYlsBXiV5xpd5/cbw== MIME-Version: 1.0 X-Received: by 10.107.44.199 with SMTP id s190mr30771413ios.24.1453866643977; Tue, 26 Jan 2016 19:50:43 -0800 (PST) Received: by 10.107.166.3 with HTTP; Tue, 26 Jan 2016 19:50:43 -0800 (PST) In-Reply-To: <201601270045.u0R0jkfl032745@repo.freebsd.org> References: <201601270045.u0R0jkfl032745@repo.freebsd.org> Date: Wed, 27 Jan 2016 11:50:43 +0800 Message-ID: Subject: Re: svn commit: r294869 - in head: sys/dev/cxgbe/tom sys/netinet usr.bin/systat From: Sepherosa Ziehau To: Gleb Smirnoff Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 03:50:45 -0000 This seems to break i386 LINT: /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1021:20: error: use of undeclared identifier 'tcpstates'; did you mean 'tcpstat'? toep->tp_tid, tcpstates[tp->t_state], toep, inp); ^~~~~~~~~ tcpstat /usr/freebsd-svn/head/sys/sys/ktr.h:89:69: note: expanded from macro 'CTR5' #define CTR5(m, format, p1, p2, p3, p4, p5) CTR6(m, format, p1, p2, p3, p4, p5, 0) ^ /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' (u_long)(p1), (u_long)(p2), (u_long)(p3), \ ^ /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' declared here VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ ^ --- all_subdir_ctl --- --- ctl_error.o --- cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/i386.i386/usr/freebsd-svn/head/sys/LINT/opt_global.h -I. -I/usr/freebsd-svn/head/sys -fno-common -I/usr/obj/i386.i386/usr/freebsd-svn/head/sys/LINT -fno-builtin -mno-mmx -mno-sse -msoft-float -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -Wno-error-unused-function -Wno-error-pointer-sign -Wno-error-shift-negative-value -mno-aes -mno-avx -std=iso9899:1999 -c /usr/freebsd-svn/head/sys/modules/ctl/../../cam/ctl/ctl_error.c -o ctl_error.o --- all_subdir_cxgb --- /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro 'VNET_PCPUSTAT_DECLARE' VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) ^ /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro 'VNET_DECLARE' #define VNET_DECLARE(t, n) extern t n ^ /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1230:16: error: use of undeclared identifier 'tcpstates'; did you mean 'tcpstat'? tid, tp ? tcpstates[tp->t_state] : "no tp" , toep->tp_flags, inp); ^~~~~~~~~ tcpstat /usr/freebsd-svn/head/sys/sys/ktr.h:89:69: note: expanded from macro 'CTR5' #define CTR5(m, format, p1, p2, p3, p4, p5) CTR6(m, format, p1, p2, p3, p4, p5, 0) ^ /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' (u_long)(p1), (u_long)(p2), (u_long)(p3), \ ^ /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' declared here VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ ^ /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro 'VNET_PCPUSTAT_DECLARE' VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) ^ /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro 'VNET_DECLARE' #define VNET_DECLARE(t, n) extern t n ^ /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1230:14: error: pointer type mismatch ('counter_u64_t' (aka 'unsigned long long *') and 'char *') [-Werror,-Wpointer-type-mismatch] tid, tp ? tcpstates[tp->t_state] : "no tp" , toep->tp_flags, inp); ^ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ /usr/freebsd-svn/head/sys/sys/ktr.h:89:69: note: expanded from macro 'CTR5' #define CTR5(m, format, p1, p2, p3, p4, p5) CTR6(m, format, p1, p2, p3, p4, p5, 0) ^ /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' (u_long)(p1), (u_long)(p2), (u_long)(p3), \ ^ /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1293:11: error: use of undeclared identifier 'tcpstates'; did you mean 'tcpstat'? tp ? tcpstates[tp->t_state] : "no tp", toep->tp_flags); ^~~~~~~~~ tcpstat /usr/freebsd-svn/head/sys/sys/ktr.h:88:65: note: expanded from macro 'CTR4' #define CTR4(m, format, p1, p2, p3, p4) CTR6(m, format, p1, p2, p3, p4, 0, 0) ^ /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' (u_long)(p1), (u_long)(p2), (u_long)(p3), \ ^ /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' declared here VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ ^ /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro 'VNET_PCPUSTAT_DECLARE' VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) ^ /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro 'VNET_DECLARE' #define VNET_DECLARE(t, n) extern t n ^ /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1293:9: error: pointer type mismatch ('counter_u64_t' (aka 'unsigned long long *') and 'char *') [-Werror,-Wpointer-type-mismatch] tp ? tcpstates[tp->t_state] : "no tp", toep->tp_flags); ^ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ /usr/freebsd-svn/head/sys/sys/ktr.h:88:65: note: expanded from macro 'CTR4' #define CTR4(m, format, p1, p2, p3, p4) CTR6(m, format, p1, p2, p3, p4, 0, 0) ^ /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' (u_long)(p1), (u_long)(p2), (u_long)(p3), \ ^ /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1499:21: error: use of undeclared identifier 'tcpstates'; did you mean 'tcpstat'? __func__, tid, tcpstates[tp->t_state], toep, toep->tp_flags, ^~~~~~~~~ tcpstat /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' (u_long)(p1), (u_long)(p2), (u_long)(p3), \ ^ /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' declared here VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ ^ /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro 'VNET_PCPUSTAT_DECLARE' VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) ^ /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro 'VNET_DECLARE' #define VNET_DECLARE(t, n) extern t n ^ /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1585:47: error: use of undeclared identifier 'tcpstates'; did you mean 'tcpstat'? CTR4(KTR_CXGB, "%s tid %u, toep %p, inp %p", tcpstates[tp->t_state], ^~~~~~~~~ tcpstat /usr/freebsd-svn/head/sys/sys/ktr.h:88:57: note: expanded from macro 'CTR4' #define CTR4(m, format, p1, p2, p3, p4) CTR6(m, format, p1, p2, p3, p4, 0, 0) ^ /usr/freebsd-svn/head/sys/sys/ktr.h:81:16: note: expanded from macro 'CTR6' (u_long)(p1), (u_long)(p2), (u_long)(p3), \ ^ /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' declared here VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ ^ /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro 'VNET_PCPUSTAT_DECLARE' VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) ^ /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro 'VNET_DECLARE' #define VNET_DECLARE(t, n) extern t n On Wed, Jan 27, 2016 at 8:45 AM, Gleb Smirnoff wrote: > Author: glebius > Date: Wed Jan 27 00:45:46 2016 > New Revision: 294869 > URL: https://svnweb.freebsd.org/changeset/base/294869 > > Log: > Augment struct tcpstat with tcps_states[], which is used for book-keeping > the amount of TCP connections by state. Provides a cheap way to get > connection count without traversing the whole pcb list. > > Sponsored by: Netflix > > Modified: > head/sys/dev/cxgbe/tom/t4_cpl_io.c > head/sys/netinet/tcp_offload.c > head/sys/netinet/tcp_subr.c > head/sys/netinet/tcp_syncache.c > head/sys/netinet/tcp_timewait.c > head/sys/netinet/tcp_usrreq.c > head/sys/netinet/tcp_var.h > head/usr.bin/systat/netstat.c > > Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c > ============================================================================== > --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Jan 27 00:24:24 2016 (r294868) > +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Jan 27 00:45:46 2016 (r294869) > @@ -45,10 +45,10 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > #define TCPSTATES > #include > #include > +#include > #include > > #include "common/common.h" > > Modified: head/sys/netinet/tcp_offload.c > ============================================================================== > --- head/sys/netinet/tcp_offload.c Wed Jan 27 00:24:24 2016 (r294868) > +++ head/sys/netinet/tcp_offload.c Wed Jan 27 00:45:46 2016 (r294869) > @@ -42,10 +42,10 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > #include > #define TCPOUTFLAGS > #include > +#include > #include > > int registered_toedevs; > > Modified: head/sys/netinet/tcp_subr.c > ============================================================================== > --- head/sys/netinet/tcp_subr.c Wed Jan 27 00:24:24 2016 (r294868) > +++ head/sys/netinet/tcp_subr.c Wed Jan 27 00:45:46 2016 (r294869) > @@ -1468,6 +1468,7 @@ tcp_close(struct tcpcb *tp) > #endif > in_pcbdrop(inp); > TCPSTAT_INC(tcps_closed); > + TCPSTAT_DEC(tcps_states[tp->t_state]); > KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL")); > so = inp->inp_socket; > soisdisconnected(so); > @@ -2910,6 +2911,8 @@ tcp_state_change(struct tcpcb *tp, int n > int pstate = tp->t_state; > #endif > > + TCPSTAT_DEC(tcps_states[tp->t_state]); > + TCPSTAT_INC(tcps_states[newstate]); > tp->t_state = newstate; > TCP_PROBE6(state__change, NULL, tp, NULL, tp, NULL, pstate); > } > > Modified: head/sys/netinet/tcp_syncache.c > ============================================================================== > --- head/sys/netinet/tcp_syncache.c Wed Jan 27 00:24:24 2016 (r294868) > +++ head/sys/netinet/tcp_syncache.c Wed Jan 27 00:45:46 2016 (r294869) > @@ -351,6 +351,7 @@ syncache_insert(struct syncache *sc, str > > SCH_UNLOCK(sch); > > + TCPSTAT_INC(tcps_states[TCPS_SYN_RECEIVED]); > TCPSTAT_INC(tcps_sc_added); > } > > @@ -364,6 +365,7 @@ syncache_drop(struct syncache *sc, struc > > SCH_LOCK_ASSERT(sch); > > + TCPSTAT_DEC(tcps_states[TCPS_SYN_RECEIVED]); > TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash); > sch->sch_length--; > > @@ -992,7 +994,16 @@ syncache_expand(struct in_conninfo *inc, > goto failed; > } > } else { > - /* Pull out the entry to unlock the bucket row. */ > + /* > + * Pull out the entry to unlock the bucket row. > + * > + * NOTE: We must decrease TCPS_SYN_RECEIVED count here, not > + * tcp_state_change(). The tcpcb is not existent at this > + * moment. A new one will be allocated via syncache_socket-> > + * sonewconn->tcp_usr_attach in TCPS_CLOSED state, then > + * syncache_socket() will change it to TCPS_SYN_RECEIVED. > + */ > + TCPSTAT_DEC(tcps_states[TCPS_SYN_RECEIVED]); > TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash); > sch->sch_length--; > #ifdef TCP_OFFLOAD > > Modified: head/sys/netinet/tcp_timewait.c > ============================================================================== > --- head/sys/netinet/tcp_timewait.c Wed Jan 27 00:24:24 2016 (r294868) > +++ head/sys/netinet/tcp_timewait.c Wed Jan 27 00:45:46 2016 (r294869) > @@ -660,6 +660,7 @@ tcp_tw_2msl_stop(struct tcptw *tw, int r > > if (!reuse) > uma_zfree(V_tcptw_zone, tw); > + TCPSTAT_DEC(tcps_states[TCPS_TIME_WAIT]); > } > > struct tcptw * > > Modified: head/sys/netinet/tcp_usrreq.c > ============================================================================== > --- head/sys/netinet/tcp_usrreq.c Wed Jan 27 00:24:24 2016 (r294868) > +++ head/sys/netinet/tcp_usrreq.c Wed Jan 27 00:45:46 2016 (r294869) > @@ -1883,6 +1883,7 @@ tcp_attach(struct socket *so) > tp->t_state = TCPS_CLOSED; > INP_WUNLOCK(inp); > INP_INFO_RUNLOCK(&V_tcbinfo); > + TCPSTAT_INC(tcps_states[TCPS_CLOSED]); > return (0); > } > > > Modified: head/sys/netinet/tcp_var.h > ============================================================================== > --- head/sys/netinet/tcp_var.h Wed Jan 27 00:24:24 2016 (r294868) > +++ head/sys/netinet/tcp_var.h Wed Jan 27 00:45:46 2016 (r294869) > @@ -34,6 +34,7 @@ > #define _NETINET_TCP_VAR_H_ > > #include > +#include > > #ifdef _KERNEL > #include > @@ -587,6 +588,9 @@ struct tcpstat { > uint64_t tcps_sig_err_sigopt; /* No signature expected by socket */ > uint64_t tcps_sig_err_nosigopt; /* No signature provided by segment */ > > + /* Running connection count. */ > + uint64_t tcps_states[TCP_NSTATES]; > + > uint64_t _pad[12]; /* 6 UTO, 6 TBD */ > }; > > > Modified: head/usr.bin/systat/netstat.c > ============================================================================== > --- head/usr.bin/systat/netstat.c Wed Jan 27 00:24:24 2016 (r294868) > +++ head/usr.bin/systat/netstat.c Wed Jan 27 00:45:46 2016 (r294869) > @@ -59,10 +59,10 @@ static const char sccsid[] = "@(#)netsta > #include > #include > #include > -#include > #define TCPSTATES > #include > #include > +#include > #include > #include > #include > -- Tomorrow Will Never Die From owner-svn-src-all@freebsd.org Wed Jan 27 03:51:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 40122A6E788; Wed, 27 Jan 2016 03:51:04 +0000 (UTC) (envelope-from sepherosa@gmail.com) Received: from mail-io0-x22d.google.com (mail-io0-x22d.google.com [IPv6:2607:f8b0:4001:c06::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0A28D359; Wed, 27 Jan 2016 03:51:04 +0000 (UTC) (envelope-from sepherosa@gmail.com) Received: by mail-io0-x22d.google.com with SMTP id f81so6328912iof.0; Tue, 26 Jan 2016 19:51:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=bR557wykYVAMjgki9IttzTY08PcKLtkYBSdKg+nhSV8=; b=NAaIH8h6voQiA1CDDZAu7v0K4ldCq6Cx4wB+7tVWa5EKVtf1sAZ+oW7uEWsjqjdibe Phg15b4LV7h8BhhOMIP06A3MZZXPqCkIqzKoh00Aw++fImLHqGl2xz4rSdYLBKXe3tsi +Lvz64SjlENfTcllFqoI1bZTeTK5THCawZJSCOtxmM1rQckH59AdJVjtBkRCufsLIKTp mITfTrmYZGkCPJDjtnmlo13/b7JXDp/hm8v+V0dJKV186q5bOYTOHucIeoGEDKWsuSWZ FaEKgLrBdOOlyUhaPnFQd+JMDWRbeknlk9WJt/apl2ka3ADipx8otSxK7X2shHhH8Fgb 7Gpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=bR557wykYVAMjgki9IttzTY08PcKLtkYBSdKg+nhSV8=; b=bxA7+bDUn81PtOTDo3iqB29G9a+A0arAMqIyXfS4+JK/AN9uTpbxz9gK9Hin9UOlsT IfDpVX7K2s6SGp78BMY8fXKeHRaRiNI0fEvqsdBGJpW3CCV093htJoa9eHU45vybs2Hr uti1gdyCEwaKm/yVVRYAXVjM28Y2NGSPACOxT+zk0kwY+LtWJeC7Bl43vgcskDF1BmQV VVPKHCsaY/8IQazRrNvOj05bPj7RZplHCfsrAFazSMw3+0zNHpO0o3Cd3QehAwluocKL IXlw7sq2pR66+jbLiD4F3f49JDis8ZuAsR7TEieddgrCOzZ9cGwalTHLvRqrR72Bbwen sMWw== X-Gm-Message-State: AG10YOS1ytFivRCNhjkW73gYrER/eQda1XpKA85ZaVND99Rdgkiq8d4PfBVO7N/mxt4iqLcF4bAmMo1tKchS8A== MIME-Version: 1.0 X-Received: by 10.107.7.37 with SMTP id 37mr859443ioh.17.1453866663340; Tue, 26 Jan 2016 19:51:03 -0800 (PST) Received: by 10.107.166.3 with HTTP; Tue, 26 Jan 2016 19:51:03 -0800 (PST) In-Reply-To: References: <201601270045.u0R0jkfl032745@repo.freebsd.org> Date: Wed, 27 Jan 2016 11:51:03 +0800 Message-ID: Subject: Re: svn commit: r294869 - in head: sys/dev/cxgbe/tom sys/netinet usr.bin/systat From: Sepherosa Ziehau To: Gleb Smirnoff Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 03:51:04 -0000 BTW, amd64 LINT builds fine. On Wed, Jan 27, 2016 at 11:50 AM, Sepherosa Ziehau wrote: > This seems to break i386 LINT: > > /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1021:20: > error: use of undeclared identifier 'tcpstates'; did you mean > 'tcpstat'? > toep->tp_tid, tcpstates[tp->t_state], toep, inp); > ^~~~~~~~~ > tcpstat > /usr/freebsd-svn/head/sys/sys/ktr.h:89:69: note: expanded from macro 'CTR5' > #define CTR5(m, format, p1, p2, p3, p4, p5) CTR6(m, format, p1, > p2, p3, p4, p5, 0) > ^ > /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' > (u_long)(p1), (u_long)(p2), (u_long)(p3), \ > ^ > /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' > declared here > VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ > ^ > --- all_subdir_ctl --- > --- ctl_error.o --- > cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE > -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include > /usr/obj/i386.i386/usr/freebsd-svn/head/sys/LINT/opt_global.h -I. > -I/usr/freebsd-svn/head/sys -fno-common > -I/usr/obj/i386.i386/usr/freebsd-svn/head/sys/LINT -fno-builtin > -mno-mmx -mno-sse -msoft-float -ffreestanding -fwrapv > -fstack-protector -Wall -Wredundant-decls -Wnested-externs > -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline > -Wcast-qual -Wundef -Wno-pointer-sign > -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs > -fdiagnostics-show-option -Wno-unknown-pragmas > -Wno-error-tautological-compare -Wno-error-empty-body > -Wno-error-parentheses-equality -Wno-error-unused-function > -Wno-error-pointer-sign -Wno-error-shift-negative-value -mno-aes > -mno-avx -std=iso9899:1999 -c > /usr/freebsd-svn/head/sys/modules/ctl/../../cam/ctl/ctl_error.c -o > ctl_error.o > --- all_subdir_cxgb --- > /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro > 'VNET_PCPUSTAT_DECLARE' > VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) > ^ > /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro > 'VNET_DECLARE' > #define VNET_DECLARE(t, n) extern t n > ^ > /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1230:16: > error: use of undeclared identifier 'tcpstates'; did you mean > 'tcpstat'? > tid, tp ? tcpstates[tp->t_state] : "no tp" , toep->tp_flags, inp); > ^~~~~~~~~ > tcpstat > /usr/freebsd-svn/head/sys/sys/ktr.h:89:69: note: expanded from macro 'CTR5' > #define CTR5(m, format, p1, p2, p3, p4, p5) CTR6(m, format, p1, > p2, p3, p4, p5, 0) > ^ > /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' > (u_long)(p1), (u_long)(p2), (u_long)(p3), \ > ^ > /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' > declared here > VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ > ^ > /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro > 'VNET_PCPUSTAT_DECLARE' > VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) > ^ > /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro > 'VNET_DECLARE' > #define VNET_DECLARE(t, n) extern t n > ^ > /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1230:14: > error: pointer type mismatch ('counter_u64_t' (aka 'unsigned long long > *') and 'char *') [-Werror,-Wpointer-type-mismatch] > tid, tp ? tcpstates[tp->t_state] : "no tp" , toep->tp_flags, inp); > ^ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ > /usr/freebsd-svn/head/sys/sys/ktr.h:89:69: note: expanded from macro 'CTR5' > #define CTR5(m, format, p1, p2, p3, p4, p5) CTR6(m, format, p1, > p2, p3, p4, p5, 0) > ^ > /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' > (u_long)(p1), (u_long)(p2), (u_long)(p3), \ > ^ > /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1293:11: > error: use of undeclared identifier 'tcpstates'; did you mean > 'tcpstat'? > tp ? tcpstates[tp->t_state] : "no tp", toep->tp_flags); > ^~~~~~~~~ > tcpstat > /usr/freebsd-svn/head/sys/sys/ktr.h:88:65: note: expanded from macro 'CTR4' > #define CTR4(m, format, p1, p2, p3, p4) CTR6(m, format, p1, p2, p3, p4, 0, 0) > ^ > /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' > (u_long)(p1), (u_long)(p2), (u_long)(p3), \ > ^ > /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' > declared here > VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ > ^ > /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro > 'VNET_PCPUSTAT_DECLARE' > VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) > ^ > /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro > 'VNET_DECLARE' > #define VNET_DECLARE(t, n) extern t n > ^ > /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1293:9: > error: pointer type mismatch ('counter_u64_t' (aka 'unsigned long long > *') and 'char *') [-Werror,-Wpointer-type-mismatch] > tp ? tcpstates[tp->t_state] : "no tp", toep->tp_flags); > ^ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ > /usr/freebsd-svn/head/sys/sys/ktr.h:88:65: note: expanded from macro 'CTR4' > #define CTR4(m, format, p1, p2, p3, p4) CTR6(m, format, p1, p2, p3, p4, 0, 0) > ^ > /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' > (u_long)(p1), (u_long)(p2), (u_long)(p3), \ > ^ > /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1499:21: > error: use of undeclared identifier 'tcpstates'; did you mean > 'tcpstat'? > __func__, tid, tcpstates[tp->t_state], toep, toep->tp_flags, > ^~~~~~~~~ > tcpstat > /usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6' > (u_long)(p1), (u_long)(p2), (u_long)(p3), \ > ^ > /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' > declared here > VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ > ^ > /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro > 'VNET_PCPUSTAT_DECLARE' > VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) > ^ > /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro > 'VNET_DECLARE' > #define VNET_DECLARE(t, n) extern t n > ^ > /usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1585:47: > error: use of undeclared identifier 'tcpstates'; did you mean > 'tcpstat'? > CTR4(KTR_CXGB, "%s tid %u, toep %p, inp %p", tcpstates[tp->t_state], > ^~~~~~~~~ > tcpstat > /usr/freebsd-svn/head/sys/sys/ktr.h:88:57: note: expanded from macro 'CTR4' > #define CTR4(m, format, p1, p2, p3, p4) CTR6(m, format, p1, p2, p3, p4, 0, 0) > ^ > /usr/freebsd-svn/head/sys/sys/ktr.h:81:16: note: expanded from macro 'CTR6' > (u_long)(p1), (u_long)(p2), (u_long)(p3), \ > ^ > /usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat' > declared here > VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ > ^ > /usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro > 'VNET_PCPUSTAT_DECLARE' > VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)]) > ^ > /usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro > 'VNET_DECLARE' > #define VNET_DECLARE(t, n) extern t n > > On Wed, Jan 27, 2016 at 8:45 AM, Gleb Smirnoff wrote: >> Author: glebius >> Date: Wed Jan 27 00:45:46 2016 >> New Revision: 294869 >> URL: https://svnweb.freebsd.org/changeset/base/294869 >> >> Log: >> Augment struct tcpstat with tcps_states[], which is used for book-keeping >> the amount of TCP connections by state. Provides a cheap way to get >> connection count without traversing the whole pcb list. >> >> Sponsored by: Netflix >> >> Modified: >> head/sys/dev/cxgbe/tom/t4_cpl_io.c >> head/sys/netinet/tcp_offload.c >> head/sys/netinet/tcp_subr.c >> head/sys/netinet/tcp_syncache.c >> head/sys/netinet/tcp_timewait.c >> head/sys/netinet/tcp_usrreq.c >> head/sys/netinet/tcp_var.h >> head/usr.bin/systat/netstat.c >> >> Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c >> ============================================================================== >> --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Jan 27 00:24:24 2016 (r294868) >> +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Jan 27 00:45:46 2016 (r294869) >> @@ -45,10 +45,10 @@ __FBSDID("$FreeBSD$"); >> #include >> #include >> #include >> -#include >> #define TCPSTATES >> #include >> #include >> +#include >> #include >> >> #include "common/common.h" >> >> Modified: head/sys/netinet/tcp_offload.c >> ============================================================================== >> --- head/sys/netinet/tcp_offload.c Wed Jan 27 00:24:24 2016 (r294868) >> +++ head/sys/netinet/tcp_offload.c Wed Jan 27 00:45:46 2016 (r294869) >> @@ -42,10 +42,10 @@ __FBSDID("$FreeBSD$"); >> #include >> #include >> #include >> -#include >> #include >> #define TCPOUTFLAGS >> #include >> +#include >> #include >> >> int registered_toedevs; >> >> Modified: head/sys/netinet/tcp_subr.c >> ============================================================================== >> --- head/sys/netinet/tcp_subr.c Wed Jan 27 00:24:24 2016 (r294868) >> +++ head/sys/netinet/tcp_subr.c Wed Jan 27 00:45:46 2016 (r294869) >> @@ -1468,6 +1468,7 @@ tcp_close(struct tcpcb *tp) >> #endif >> in_pcbdrop(inp); >> TCPSTAT_INC(tcps_closed); >> + TCPSTAT_DEC(tcps_states[tp->t_state]); >> KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL")); >> so = inp->inp_socket; >> soisdisconnected(so); >> @@ -2910,6 +2911,8 @@ tcp_state_change(struct tcpcb *tp, int n >> int pstate = tp->t_state; >> #endif >> >> + TCPSTAT_DEC(tcps_states[tp->t_state]); >> + TCPSTAT_INC(tcps_states[newstate]); >> tp->t_state = newstate; >> TCP_PROBE6(state__change, NULL, tp, NULL, tp, NULL, pstate); >> } >> >> Modified: head/sys/netinet/tcp_syncache.c >> ============================================================================== >> --- head/sys/netinet/tcp_syncache.c Wed Jan 27 00:24:24 2016 (r294868) >> +++ head/sys/netinet/tcp_syncache.c Wed Jan 27 00:45:46 2016 (r294869) >> @@ -351,6 +351,7 @@ syncache_insert(struct syncache *sc, str >> >> SCH_UNLOCK(sch); >> >> + TCPSTAT_INC(tcps_states[TCPS_SYN_RECEIVED]); >> TCPSTAT_INC(tcps_sc_added); >> } >> >> @@ -364,6 +365,7 @@ syncache_drop(struct syncache *sc, struc >> >> SCH_LOCK_ASSERT(sch); >> >> + TCPSTAT_DEC(tcps_states[TCPS_SYN_RECEIVED]); >> TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash); >> sch->sch_length--; >> >> @@ -992,7 +994,16 @@ syncache_expand(struct in_conninfo *inc, >> goto failed; >> } >> } else { >> - /* Pull out the entry to unlock the bucket row. */ >> + /* >> + * Pull out the entry to unlock the bucket row. >> + * >> + * NOTE: We must decrease TCPS_SYN_RECEIVED count here, not >> + * tcp_state_change(). The tcpcb is not existent at this >> + * moment. A new one will be allocated via syncache_socket-> >> + * sonewconn->tcp_usr_attach in TCPS_CLOSED state, then >> + * syncache_socket() will change it to TCPS_SYN_RECEIVED. >> + */ >> + TCPSTAT_DEC(tcps_states[TCPS_SYN_RECEIVED]); >> TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash); >> sch->sch_length--; >> #ifdef TCP_OFFLOAD >> >> Modified: head/sys/netinet/tcp_timewait.c >> ============================================================================== >> --- head/sys/netinet/tcp_timewait.c Wed Jan 27 00:24:24 2016 (r294868) >> +++ head/sys/netinet/tcp_timewait.c Wed Jan 27 00:45:46 2016 (r294869) >> @@ -660,6 +660,7 @@ tcp_tw_2msl_stop(struct tcptw *tw, int r >> >> if (!reuse) >> uma_zfree(V_tcptw_zone, tw); >> + TCPSTAT_DEC(tcps_states[TCPS_TIME_WAIT]); >> } >> >> struct tcptw * >> >> Modified: head/sys/netinet/tcp_usrreq.c >> ============================================================================== >> --- head/sys/netinet/tcp_usrreq.c Wed Jan 27 00:24:24 2016 (r294868) >> +++ head/sys/netinet/tcp_usrreq.c Wed Jan 27 00:45:46 2016 (r294869) >> @@ -1883,6 +1883,7 @@ tcp_attach(struct socket *so) >> tp->t_state = TCPS_CLOSED; >> INP_WUNLOCK(inp); >> INP_INFO_RUNLOCK(&V_tcbinfo); >> + TCPSTAT_INC(tcps_states[TCPS_CLOSED]); >> return (0); >> } >> >> >> Modified: head/sys/netinet/tcp_var.h >> ============================================================================== >> --- head/sys/netinet/tcp_var.h Wed Jan 27 00:24:24 2016 (r294868) >> +++ head/sys/netinet/tcp_var.h Wed Jan 27 00:45:46 2016 (r294869) >> @@ -34,6 +34,7 @@ >> #define _NETINET_TCP_VAR_H_ >> >> #include >> +#include >> >> #ifdef _KERNEL >> #include >> @@ -587,6 +588,9 @@ struct tcpstat { >> uint64_t tcps_sig_err_sigopt; /* No signature expected by socket */ >> uint64_t tcps_sig_err_nosigopt; /* No signature provided by segment */ >> >> + /* Running connection count. */ >> + uint64_t tcps_states[TCP_NSTATES]; >> + >> uint64_t _pad[12]; /* 6 UTO, 6 TBD */ >> }; >> >> >> Modified: head/usr.bin/systat/netstat.c >> ============================================================================== >> --- head/usr.bin/systat/netstat.c Wed Jan 27 00:24:24 2016 (r294868) >> +++ head/usr.bin/systat/netstat.c Wed Jan 27 00:45:46 2016 (r294869) >> @@ -59,10 +59,10 @@ static const char sccsid[] = "@(#)netsta >> #include >> #include >> #include >> -#include >> #define TCPSTATES >> #include >> #include >> +#include >> #include >> #include >> #include >> > > > > -- > Tomorrow Will Never Die -- Tomorrow Will Never Die From owner-svn-src-all@freebsd.org Wed Jan 27 03:51:26 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 43D0DA6E7C6; Wed, 27 Jan 2016 03:51:26 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0D8D3771; Wed, 27 Jan 2016 03:51:25 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R3pPfQ088414; Wed, 27 Jan 2016 03:51:25 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R3pPh1088413; Wed, 27 Jan 2016 03:51:25 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201601270351.u0R3pPh1088413@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 27 Jan 2016 03:51:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294885 - head/sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 03:51:26 -0000 Author: jhibbits Date: Wed Jan 27 03:51:24 2016 New Revision: 294885 URL: https://svnweb.freebsd.org/changeset/base/294885 Log: Fix the build post-r294883. Pointy-hat to: jhibbits X-MFC with: r294883 Modified: head/sys/sys/rman.h Modified: head/sys/sys/rman.h ============================================================================== --- head/sys/sys/rman.h Wed Jan 27 02:25:25 2016 (r294884) +++ head/sys/sys/rman.h Wed Jan 27 03:51:24 2016 (r294885) @@ -82,7 +82,7 @@ struct u_rman { char rm_descr[RM_TEXTLEN]; /* rman description */ rman_res_t rm_start; /* base of managed region */ - bus_size_t rm_size; /* size of managed region */ + rman_res_t rm_size; /* size of managed region */ enum rman_type rm_type; /* region type */ }; From owner-svn-src-all@freebsd.org Wed Jan 27 03:53:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4AEAFA6E9EB; Wed, 27 Jan 2016 03:53:32 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 19D21B95; Wed, 27 Jan 2016 03:53:32 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R3rV2n088523; Wed, 27 Jan 2016 03:53:31 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R3rU6J088518; Wed, 27 Jan 2016 03:53:30 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201601270353.u0R3rU6J088518@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 27 Jan 2016 03:53:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294886 - in head/sys/dev/hyperv: include vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 03:53:32 -0000 Author: sephe Date: Wed Jan 27 03:53:30 2016 New Revision: 294886 URL: https://svnweb.freebsd.org/changeset/base/294886 Log: hyperv/vmbus: Event handling code refactor. - Use taskqueue instead of swi for event handling. - Scan the interrupt flags in filter - Disable ringbuffer interrupt mask in filter to ensure no unnecessary interrupts. Submitted by: Jun Su Reviewed by: adrian, sephe, Dexuan Approved by: adrian (mentor) MFC after: 2 weeks Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4920 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/vmbus/hv_channel.c head/sys/dev/hyperv/vmbus/hv_connection.c head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Wed Jan 27 03:51:24 2016 (r294885) +++ head/sys/dev/hyperv/include/hyperv.h Wed Jan 27 03:53:30 2016 (r294886) @@ -755,6 +755,8 @@ typedef struct hv_vmbus_channel { struct mtx inbound_lock; + struct taskqueue * rxq; + struct task channel_task; hv_vmbus_pfn_channel_callback on_channel_callback; void* channel_callback_context; Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Wed Jan 27 03:51:24 2016 (r294885) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Wed Jan 27 03:53:30 2016 (r294886) @@ -51,6 +51,7 @@ static int vmbus_channel_create_gpadl_h uint32_t* message_count); static void vmbus_channel_set_event(hv_vmbus_channel* channel); +static void VmbusProcessChannelEvent(void* channel, int pending); /** * @brief Trigger an event notification on the specified channel @@ -114,6 +115,9 @@ hv_vmbus_channel_open( new_channel->on_channel_callback = pfn_on_channel_callback; new_channel->channel_callback_context = context; + new_channel->rxq = hv_vmbus_g_context.hv_event_queue[new_channel->target_cpu]; + TASK_INIT(&new_channel->channel_task, 0, VmbusProcessChannelEvent, new_channel); + /* Allocate the ring buffer */ out = contigmalloc((send_ring_buffer_size + recv_ring_buffer_size), M_DEVBUF, M_ZERO, 0UL, BUS_SPACE_MAXADDR, PAGE_SIZE, 0); @@ -517,6 +521,7 @@ static void hv_vmbus_channel_close_internal(hv_vmbus_channel *channel) { int ret = 0; + struct taskqueue *rxq = channel->rxq; hv_vmbus_channel_close_channel* msg; hv_vmbus_channel_msg_info* info; @@ -524,6 +529,11 @@ hv_vmbus_channel_close_internal(hv_vmbus channel->sc_creation_callback = NULL; /* + * set rxq to NULL to avoid more requests be scheduled + */ + channel->rxq = NULL; + taskqueue_drain(rxq, &channel->channel_task); + /* * Grab the lock to prevent race condition when a packet received * and unloading driver is in the process. */ @@ -876,3 +886,67 @@ hv_vmbus_channel_recv_packet_raw( return (0); } + + +/** + * Process a channel event notification + */ +static void +VmbusProcessChannelEvent(void* context, int pending) +{ + void* arg; + uint32_t bytes_to_read; + hv_vmbus_channel* channel = (hv_vmbus_channel*)context; + boolean_t is_batched_reading; + + /** + * Find the channel based on this relid and invokes + * the channel callback to process the event + */ + + if (channel == NULL) { + return; + } + /** + * To deal with the race condition where we might + * receive a packet while the relevant driver is + * being unloaded, dispatch the callback while + * holding the channel lock. The unloading driver + * will acquire the same channel lock to set the + * callback to NULL. This closes the window. + */ + + /* + * Disable the lock due to newly added WITNESS check in r277723. + * Will seek other way to avoid race condition. + * -- whu + */ + // mtx_lock(&channel->inbound_lock); + if (channel->on_channel_callback != NULL) { + arg = channel->channel_callback_context; + is_batched_reading = channel->batched_reading; + /* + * Optimize host to guest signaling by ensuring: + * 1. While reading the channel, we disable interrupts from + * host. + * 2. Ensure that we process all posted messages from the host + * before returning from this callback. + * 3. Once we return, enable signaling from the host. Once this + * state is set we check to see if additional packets are + * available to read. In this case we repeat the process. + */ + do { + if (is_batched_reading) + hv_ring_buffer_read_begin(&channel->inbound); + + channel->on_channel_callback(arg); + + if (is_batched_reading) + bytes_to_read = + hv_ring_buffer_read_end(&channel->inbound); + else + bytes_to_read = 0; + } while (is_batched_reading && (bytes_to_read != 0)); + } + // mtx_unlock(&channel->inbound_lock); +} Modified: head/sys/dev/hyperv/vmbus/hv_connection.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_connection.c Wed Jan 27 03:51:24 2016 (r294885) +++ head/sys/dev/hyperv/vmbus/hv_connection.c Wed Jan 27 03:53:30 2016 (r294886) @@ -335,78 +335,12 @@ hv_vmbus_disconnect(void) { } /** - * Process a channel event notification - */ -static void -VmbusProcessChannelEvent(uint32_t relid) -{ - void* arg; - uint32_t bytes_to_read; - hv_vmbus_channel* channel; - boolean_t is_batched_reading; - - /** - * Find the channel based on this relid and invokes - * the channel callback to process the event - */ - - channel = hv_vmbus_g_connection.channels[relid]; - - if (channel == NULL) { - return; - } - /** - * To deal with the race condition where we might - * receive a packet while the relevant driver is - * being unloaded, dispatch the callback while - * holding the channel lock. The unloading driver - * will acquire the same channel lock to set the - * callback to NULL. This closes the window. - */ - - /* - * Disable the lock due to newly added WITNESS check in r277723. - * Will seek other way to avoid race condition. - * -- whu - */ - // mtx_lock(&channel->inbound_lock); - if (channel->on_channel_callback != NULL) { - arg = channel->channel_callback_context; - is_batched_reading = channel->batched_reading; - /* - * Optimize host to guest signaling by ensuring: - * 1. While reading the channel, we disable interrupts from - * host. - * 2. Ensure that we process all posted messages from the host - * before returning from this callback. - * 3. Once we return, enable signaling from the host. Once this - * state is set we check to see if additional packets are - * available to read. In this case we repeat the process. - */ - do { - if (is_batched_reading) - hv_ring_buffer_read_begin(&channel->inbound); - - channel->on_channel_callback(arg); - - if (is_batched_reading) - bytes_to_read = - hv_ring_buffer_read_end(&channel->inbound); - else - bytes_to_read = 0; - } while (is_batched_reading && (bytes_to_read != 0)); - } - // mtx_unlock(&channel->inbound_lock); -} - -/** * Handler for events */ void -hv_vmbus_on_events(void *arg) +hv_vmbus_on_events(int cpu) { int bit; - int cpu; int dword; void *page_addr; uint32_t* recv_interrupt_page = NULL; @@ -415,7 +349,6 @@ hv_vmbus_on_events(void *arg) hv_vmbus_synic_event_flags *event; /* int maxdword = PAGE_SIZE >> 3; */ - cpu = (int)(long)arg; KASSERT(cpu <= mp_maxid, ("VMBUS: hv_vmbus_on_events: " "cpu out of range!")); @@ -457,8 +390,14 @@ hv_vmbus_on_events(void *arg) */ continue; } else { - VmbusProcessChannelEvent(rel_id); - + hv_vmbus_channel * channel = hv_vmbus_g_connection.channels[rel_id]; + /* if channel is closed or closing */ + if (channel == NULL || channel->rxq == NULL) + continue; + + if (channel->batched_reading) + hv_ring_buffer_read_begin(&channel->inbound); + taskqueue_enqueue_fast(channel->rxq, &channel->channel_task); } } } Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Wed Jan 27 03:51:24 2016 (r294885) +++ head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Wed Jan 27 03:53:30 2016 (r294886) @@ -177,7 +177,7 @@ hv_vmbus_isr(struct trapframe *frame) (hv_vmbus_protocal_version == HV_VMBUS_VERSION_WIN7)) { /* Since we are a child, we only need to check bit 0 */ if (synch_test_and_clear_bit(0, &event->flags32[0])) { - swi_sched(hv_vmbus_g_context.event_swintr[cpu], 0); + hv_vmbus_on_events(cpu); } } else { /* @@ -187,7 +187,7 @@ hv_vmbus_isr(struct trapframe *frame) * Directly schedule the event software interrupt on * current cpu. */ - swi_sched(hv_vmbus_g_context.event_swintr[cpu], 0); + hv_vmbus_on_events(cpu); } /* Check if there are actual msgs to be process */ @@ -225,7 +225,6 @@ hv_vmbus_isr(struct trapframe *frame) return (FILTER_HANDLED); } -uint32_t hv_vmbus_swintr_event_cpu[MAXCPU]; u_long *hv_vmbus_intr_cpu[MAXCPU]; void @@ -472,6 +471,7 @@ vmbus_bus_init(void) { int i, j, n, ret; char buf[MAXCOMLEN + 1]; + cpuset_t cpu_mask; if (vmbus_inited) return (0); @@ -508,10 +508,7 @@ vmbus_bus_init(void) setup_args.vector = hv_vmbus_g_context.hv_cb_vector; CPU_FOREACH(j) { - hv_vmbus_swintr_event_cpu[j] = 0; - hv_vmbus_g_context.hv_event_intr_event[j] = NULL; hv_vmbus_g_context.hv_msg_intr_event[j] = NULL; - hv_vmbus_g_context.event_swintr[j] = NULL; hv_vmbus_g_context.msg_swintr[j] = NULL; snprintf(buf, sizeof(buf), "cpu%d:hyperv", j); @@ -526,6 +523,20 @@ vmbus_bus_init(void) */ CPU_FOREACH(j) { /* + * Setup taskqueue to handle events + */ + hv_vmbus_g_context.hv_event_queue[j] = taskqueue_create_fast("hyperv event", M_WAITOK, + taskqueue_thread_enqueue, &hv_vmbus_g_context.hv_event_queue[j]); + if (hv_vmbus_g_context.hv_event_queue[j] == NULL) { + if (bootverbose) + printf("VMBUS: failed to setup taskqueue\n"); + goto cleanup1; + } + CPU_SETOF(j, &cpu_mask); + taskqueue_start_threads_cpuset(&hv_vmbus_g_context.hv_event_queue[j], 1, PI_NET, &cpu_mask, + "hvevent%d", j); + + /* * Setup software interrupt thread and handler for msg handling. */ ret = swi_add(&hv_vmbus_g_context.hv_msg_intr_event[j], @@ -543,7 +554,7 @@ vmbus_bus_init(void) */ ret = intr_event_bind(hv_vmbus_g_context.hv_msg_intr_event[j], j); - if (ret) { + if (ret) { if(bootverbose) printf("VMBUS: failed to bind msg swi thread " "to cpu %d\n", j); @@ -551,20 +562,6 @@ vmbus_bus_init(void) } /* - * Setup software interrupt thread and handler for - * event handling. - */ - ret = swi_add(&hv_vmbus_g_context.hv_event_intr_event[j], - "hv_event", hv_vmbus_on_events, (void *)(long)j, - SWI_CLOCK, 0, &hv_vmbus_g_context.event_swintr[j]); - if (ret) { - if(bootverbose) - printf("VMBUS: failed to setup event swi for " - "cpu %d\n", j); - goto cleanup1; - } - - /* * Prepare the per cpu msg and event pages to be called on each cpu. */ for(i = 0; i < 2; i++) { @@ -607,12 +604,11 @@ vmbus_bus_init(void) * remove swi and vmbus callback vector; */ CPU_FOREACH(j) { + if (hv_vmbus_g_context.hv_event_queue[j] != NULL) + taskqueue_free(hv_vmbus_g_context.hv_event_queue[j]); if (hv_vmbus_g_context.msg_swintr[j] != NULL) swi_remove(hv_vmbus_g_context.msg_swintr[j]); - if (hv_vmbus_g_context.event_swintr[j] != NULL) - swi_remove(hv_vmbus_g_context.event_swintr[j]); hv_vmbus_g_context.hv_msg_intr_event[j] = NULL; - hv_vmbus_g_context.hv_event_intr_event[j] = NULL; } vmbus_vector_free(hv_vmbus_g_context.hv_cb_vector); @@ -677,12 +673,11 @@ vmbus_bus_exit(void) /* remove swi */ CPU_FOREACH(i) { + if (hv_vmbus_g_context.hv_event_queue[i] != NULL) + taskqueue_free(hv_vmbus_g_context.hv_event_queue[i]); if (hv_vmbus_g_context.msg_swintr[i] != NULL) swi_remove(hv_vmbus_g_context.msg_swintr[i]); - if (hv_vmbus_g_context.event_swintr[i] != NULL) - swi_remove(hv_vmbus_g_context.event_swintr[i]); hv_vmbus_g_context.hv_msg_intr_event[i] = NULL; - hv_vmbus_g_context.hv_event_intr_event[i] = NULL; } vmbus_vector_free(hv_vmbus_g_context.hv_cb_vector); Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Wed Jan 27 03:51:24 2016 (r294885) +++ head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Wed Jan 27 03:53:30 2016 (r294886) @@ -202,9 +202,8 @@ typedef struct { * Each cpu has its own software interrupt handler for channel * event and msg handling. */ - struct intr_event *hv_event_intr_event[MAXCPU]; + struct taskqueue *hv_event_queue[MAXCPU]; struct intr_event *hv_msg_intr_event[MAXCPU]; - void *event_swintr[MAXCPU]; void *msg_swintr[MAXCPU]; /* * Host use this vector to intrrupt guest for vmbus channel @@ -717,7 +716,7 @@ int hv_vmbus_connect(void); int hv_vmbus_disconnect(void); int hv_vmbus_post_message(void *buffer, size_t buf_size); int hv_vmbus_set_event(hv_vmbus_channel *channel); -void hv_vmbus_on_events(void *); +void hv_vmbus_on_events(int cpu); /** * Event Timer interfaces From owner-svn-src-all@freebsd.org Wed Jan 27 04:59:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C0AFA6FE7B; Wed, 27 Jan 2016 04:59:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4AAC67CF; Wed, 27 Jan 2016 04:59:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R4xSCE007240; Wed, 27 Jan 2016 04:59:28 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R4xSkX007238; Wed, 27 Jan 2016 04:59:28 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201601270459.u0R4xSkX007238@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 27 Jan 2016 04:59:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294887 - head/sys/dev/cxgb/ulp/tom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 04:59:29 -0000 Author: glebius Date: Wed Jan 27 04:59:28 2016 New Revision: 294887 URL: https://svnweb.freebsd.org/changeset/base/294887 Log: Fix build on i386. I can't yet understand why does it build on amd64. Modified: head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c Modified: head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c ============================================================================== --- head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c Wed Jan 27 03:53:30 2016 (r294886) +++ head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c Wed Jan 27 04:59:28 2016 (r294887) @@ -62,9 +62,9 @@ __FBSDID("$FreeBSD$"); #include #include -#include #define TCPSTATES #include +#include #include #include #include From owner-svn-src-all@freebsd.org Wed Jan 27 05:04:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6A80A6E0F3; Wed, 27 Jan 2016 05:04:18 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 869BAB7E; Wed, 27 Jan 2016 05:04:18 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R54HUb010027; Wed, 27 Jan 2016 05:04:17 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R54Hdr010022; Wed, 27 Jan 2016 05:04:17 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270504.u0R54Hdr010022@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 05:04:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294888 - stable/10/share/dtrace X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 05:04:18 -0000 Author: dteske Date: Wed Jan 27 05:04:17 2016 New Revision: 294888 URL: https://svnweb.freebsd.org/changeset/base/294888 Log: MFC 294548-294549,294556,294684: Add watch scripts r294548: Add scripts for watching common entry points. r294549: Fix bad title on script (caused by copy/paste). r294556: fbt -> syscall; fbt names changed to be sys_* r294684: Bump copyright for change from fbt to syscall Added: stable/10/share/dtrace/watch_execve - copied, changed from r294548, head/share/dtrace/watch_execve stable/10/share/dtrace/watch_kill - copied, changed from r294548, head/share/dtrace/watch_kill stable/10/share/dtrace/watch_vop_remove - copied unchanged from r294548, head/share/dtrace/watch_vop_remove Modified: stable/10/share/dtrace/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/share/dtrace/Makefile ============================================================================== --- stable/10/share/dtrace/Makefile Wed Jan 27 04:59:28 2016 (r294887) +++ stable/10/share/dtrace/Makefile Wed Jan 27 05:04:17 2016 (r294888) @@ -12,7 +12,10 @@ SUBDIR= ${_toolkit} _toolkit= toolkit .endif -SCRIPTS= nfsclienttime hotopen +SCRIPTS= nfsclienttime hotopen \ + watch_execve \ + watch_kill \ + watch_vop_remove SCRIPTSDIR= ${SHAREDIR}/dtrace Copied and modified: stable/10/share/dtrace/watch_execve (from r294548, head/share/dtrace/watch_execve) ============================================================================== --- head/share/dtrace/watch_execve Fri Jan 22 07:19:30 2016 (r294548, copy source) +++ stable/10/share/dtrace/watch_execve Wed Jan 27 05:04:17 2016 (r294888) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Title: dtrace(1) script to log process(es) entering vfs::vop_remove $ + * $Title: dtrace(1) script to log process(es) entering syscall::execve $ * $FreeBSD$ */ Copied and modified: stable/10/share/dtrace/watch_kill (from r294548, head/share/dtrace/watch_kill) ============================================================================== --- head/share/dtrace/watch_kill Fri Jan 22 07:19:30 2016 (r294548, copy source) +++ stable/10/share/dtrace/watch_kill Wed Jan 27 05:04:17 2016 (r294888) @@ -1,6 +1,6 @@ #!/usr/sbin/dtrace -s /* - - * Copyright (c) 2014-2015 Devin Teske + * Copyright (c) 2014-2016 Devin Teske * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -40,11 +40,10 @@ syscall::execve:entry /* probe ID 1 */ /*********************************************************/ -fbt::kill:entry /* probe ID 2 */ +syscall::kill:entry /* probe ID 2 */ { - this->kill_args = (struct kill_args *)arg1; - this->pid_to_kill = this->kill_args->pid; - this->kill_signal = this->kill_args->signum; + this->pid_to_kill = (pid_t)arg0; + this->kill_signal = (int)arg1; /* * Examine process, parent process, and grandparent process details Copied: stable/10/share/dtrace/watch_vop_remove (from r294548, head/share/dtrace/watch_vop_remove) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/share/dtrace/watch_vop_remove Wed Jan 27 05:04:17 2016 (r294888, copy of r294548, head/share/dtrace/watch_vop_remove) @@ -0,0 +1,476 @@ +#!/usr/sbin/dtrace -s +/* - + * Copyright (c) 2014 Devin Teske + * 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. + * + * $Title: dtrace(1) script to log process(es) entering vfs::vop_remove $ + * $FreeBSD$ + */ + +#pragma D option quiet +#pragma D option dynvarsize=16m +#pragma D option switchrate=10hz + +/*********************************************************/ + +vfs::vop_remove:entry /* probe ID 1 */ +{ + this->vp = (struct vnode *)arg0; + this->ncp = &(this->vp->v_cache_dst) != NULL ? + this->vp->v_cache_dst.tqh_first : 0; + this->fi_name = args[1] ? ( + args[1]->a_cnp != NULL ? + stringof(args[1]->a_cnp->cn_nameptr) : "" + ) : ""; + this->mount = this->vp->v_mount; /* ptr to vfs we are in */ + this->fi_fs = this->mount != 0 ? + stringof(this->mount->mnt_stat.f_fstypename) : ""; + this->fi_mount = this->mount != 0 ? + stringof(this->mount->mnt_stat.f_mntonname) : ""; + this->d_name = args[0]->v_cache_dd != NULL ? + stringof(args[0]->v_cache_dd->nc_name) : ""; +} + +vfs::vop_remove:entry /this->vp == 0 || this->fi_fs == 0 || + this->fi_fs == "devfs" || this->fi_fs == "" || + this->fi_name == ""/ /* probe ID 2 */ +{ + this->ncp = 0; +} + +/*********************************************************/ + +vfs::vop_remove:entry /this->ncp/ /* probe ID 3 (depth 1) */ +{ + this->dvp = this->ncp->nc_dvp != NULL ? ( + &(this->ncp->nc_dvp->v_cache_dst) != NULL ? + this->ncp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name1 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->name1 == 0 || this->fi_fs == 0 || + this->fi_fs == "devfs" || this->fi_fs == "" || + this->name1 == "/" || this->name1 == ""/ /* probe ID 4 */ +{ + this->dvp = 0; +} + +/*********************************************************/ + +/* + * BEGIN Pathname-depth iterators (copy/paste as many times as-desired) + */ + +vfs::vop_remove:entry /this->dvp/ /* probe ID 5 (depth 2) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name2 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 6 (depth 3) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name3 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 7 (depth 4) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name4 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 8 (depth 5) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name5 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 9 (depth 6) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name6 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 10 (depth 7) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name7 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 11 (depth 8) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name8 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 12 (depth 9) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name9 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 13 (depth 10) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name10 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 14 (depth 11) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name11 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 15 (depth 12) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name12 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 16 (depth 13) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name13 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 17 (depth 14) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name14 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 18 (depth 15) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name15 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 19 (depth 16) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name16 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 20 (depth 17) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name17 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 21 (depth 18) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name18 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 22 (depth 19) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name19 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +vfs::vop_remove:entry /this->dvp/ /* probe ID 23 (depth 20) */ +{ + this->dvp = this->dvp->nc_dvp != NULL ? ( + &(this->dvp->nc_dvp->v_cache_dst) != NULL ? + this->dvp->nc_dvp->v_cache_dst.tqh_first : 0 + ) : 0; + this->name20 = this->dvp != 0 ? ( + this->dvp->nc_name != 0 ? stringof(this->dvp->nc_name) : "" + ) : ""; +} + +/* + * END Pathname-depth iterators + */ + +/*********************************************************/ + +vfs::vop_remove:entry /this->fi_mount != 0/ /* probe ID 24 */ +{ + printf("%Y %s[%d]: ", timestamp + 1406598400000000000, execname, pid); + + /* + * Print full path of file to delete + * NB: Up-to but not including the parent directory (printed below) + */ + printf("%s%s", this->fi_mount, this->fi_mount != 0 ? ( + this->fi_mount == "/" ? "" : "/" + ) : "/"); + printf("%s%s", this->name = this->name20, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name19, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name18, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name17, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name16, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name15, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name14, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name13, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name12, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name11, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name10, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name9, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name8, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name7, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name6, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name5, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name4, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name3, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name2, this->name != "" ? "/" : ""); + printf("%s%s", this->name = this->name1, this->name != "" ? "/" : ""); + + /* Print the parent directory name */ + this->name = this->d_name != 0 ? this->d_name : ""; + printf("%s%s", this->name, this->name != "" ? "/" : ""); + + /* Print the entry name */ + this->name = this->fi_name != 0 ? this->fi_name : ""; + printf("%s", this->name); + + printf("\n"); + + /* + * Examine process, parent process, and grandparent process details + */ + + /******************* CURPROC *******************/ + + this->proc = curthread->td_proc; + this->pid0 = this->proc->p_pid; + this->uid0 = this->proc->p_ucred->cr_uid; + this->gid0 = this->proc->p_ucred->cr_rgid; + this->p_args = this->proc->p_args; + this->ar_length = this->p_args ? this->p_args->ar_length : 0; + this->ar_args = (char *)(this->p_args ? this->p_args->ar_args : 0); + + this->arg0_0 = this->ar_length > 0 ? + this->ar_args : stringof(this->proc->p_comm); + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg0_1 = this->ar_length > 0 ? this->ar_args : ""; + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg0_2 = this->ar_length > 0 ? this->ar_args : ""; + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg0_3 = this->ar_length > 0 ? this->ar_args : ""; + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg0_4 = this->ar_length > 0 ? "..." : ""; + + /******************* PPARENT *******************/ + + this->proc = this->proc->p_pptr; + this->pid1 = this->proc->p_pid; + this->uid1 = this->proc->p_ucred->cr_uid; + this->gid1 = this->proc->p_ucred->cr_rgid; + this->p_args = this->proc ? this->proc->p_args : 0; + this->ar_length = this->p_args ? this->p_args->ar_length : 0; + this->ar_args = (char *)(this->p_args ? this->p_args->ar_args : 0); + + this->arg1_0 = this->ar_length > 0 ? + this->ar_args : stringof(this->proc->p_comm); + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg1_1 = this->ar_length > 0 ? this->ar_args : ""; + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg1_2 = this->ar_length > 0 ? this->ar_args : ""; + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg1_3 = this->ar_length > 0 ? this->ar_args : ""; + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg1_4 = this->ar_length > 0 ? "..." : ""; + + /******************* GPARENT *******************/ + + this->proc = this->proc->p_pptr; + this->pid2 = this->proc->p_pid; + this->uid2 = this->proc->p_ucred->cr_uid; + this->gid2 = this->proc->p_ucred->cr_rgid; + this->p_args = this->proc ? this->proc->p_args : 0; + this->ar_length = this->p_args ? this->p_args->ar_length : 0; + this->ar_args = (char *)(this->p_args ? this->p_args->ar_args : 0); + + this->arg2_0 = this->ar_length > 0 ? + this->ar_args : stringof(this->proc->p_comm); + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg2_1 = this->ar_length > 0 ? this->ar_args : ""; + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg2_2 = this->ar_length > 0 ? this->ar_args : ""; + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg2_3 = this->ar_length > 0 ? this->ar_args : ""; + this->len = this->ar_length > 0 ? strlen(this->ar_args) + 1 : 0; + this->ar_args += this->len; + this->ar_length -= this->len; + + this->arg2_4 = this->ar_length > 0 ? "..." : ""; + + /***********************************************/ + + /* + * Print process, parent, and grandparent details + */ + + printf(" -+= %05d %d.%d %s", + this->pid2, this->uid2, this->gid2, this->arg2_0); + printf("%s%s", this->arg2_1 != "" ? " " : "", this->arg2_1); + printf("%s%s", this->arg2_2 != "" ? " " : "", this->arg2_2); + printf("%s%s", this->arg2_3 != "" ? " " : "", this->arg2_3); + printf("%s%s", this->arg2_4 != "" ? " " : "", this->arg2_4); + printf("%s", this->arg2_0 != "" ? "\n" : ""); + + printf(" \-+= %05d %d.%d %s", + this->pid1, this->uid1, this->gid1, this->arg1_0); + printf("%s%s", this->arg1_1 != "" ? " " : "", this->arg1_1); + printf("%s%s", this->arg1_2 != "" ? " " : "", this->arg1_2); + printf("%s%s", this->arg1_3 != "" ? " " : "", this->arg1_3); + printf("%s%s", this->arg1_4 != "" ? " " : "", this->arg1_4); + printf("%s", this->arg1_0 != "" ? "\n" : ""); + + printf(" \-+= %05d %d.%d %s", + this->pid0, this->uid0, this->gid0, this->arg0_0); + printf("%s%s", this->arg0_1 != "" ? " " : "", this->arg0_1); + printf("%s%s", this->arg0_2 != "" ? " " : "", this->arg0_2); + printf("%s%s", this->arg0_3 != "" ? " " : "", this->arg0_3); + printf("%s%s", this->arg0_4 != "" ? " " : "", this->arg0_4); + printf("%s", this->arg0_0 != "" ? "\n" : ""); +} From owner-svn-src-all@freebsd.org Wed Jan 27 05:15:55 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9CBCFA6E44E; Wed, 27 Jan 2016 05:15:55 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4FE87F85; Wed, 27 Jan 2016 05:15:55 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R5FsJr012922; Wed, 27 Jan 2016 05:15:54 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R5FsoP012917; Wed, 27 Jan 2016 05:15:54 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201601270515.u0R5FsoP012917@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 27 Jan 2016 05:15:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294889 - in head/sys/dev: cxgb/ulp/tom cxgbe/tom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 05:15:55 -0000 Author: glebius Date: Wed Jan 27 05:15:53 2016 New Revision: 294889 URL: https://svnweb.freebsd.org/changeset/base/294889 Log: More fixes to the build. Modified: head/sys/dev/cxgb/ulp/tom/cxgb_listen.c head/sys/dev/cxgbe/tom/t4_connect.c head/sys/dev/cxgbe/tom/t4_listen.c head/sys/dev/cxgbe/tom/t4_tom.c Modified: head/sys/dev/cxgb/ulp/tom/cxgb_listen.c ============================================================================== --- head/sys/dev/cxgb/ulp/tom/cxgb_listen.c Wed Jan 27 05:04:17 2016 (r294888) +++ head/sys/dev/cxgb/ulp/tom/cxgb_listen.c Wed Jan 27 05:15:53 2016 (r294889) @@ -44,9 +44,9 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #define TCPSTATES #include +#include #include #include "cxgb_include.h" Modified: head/sys/dev/cxgbe/tom/t4_connect.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_connect.c Wed Jan 27 05:04:17 2016 (r294888) +++ head/sys/dev/cxgbe/tom/t4_connect.c Wed Jan 27 05:15:53 2016 (r294889) @@ -49,9 +49,9 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #define TCPSTATES #include +#include #include #include "common/common.h" Modified: head/sys/dev/cxgbe/tom/t4_listen.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_listen.c Wed Jan 27 05:04:17 2016 (r294888) +++ head/sys/dev/cxgbe/tom/t4_listen.c Wed Jan 27 05:15:53 2016 (r294889) @@ -56,9 +56,9 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #define TCPSTATES #include +#include #include #include "common/common.h" Modified: head/sys/dev/cxgbe/tom/t4_tom.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tom.c Wed Jan 27 05:04:17 2016 (r294888) +++ head/sys/dev/cxgbe/tom/t4_tom.c Wed Jan 27 05:15:53 2016 (r294889) @@ -52,10 +52,10 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #define TCPSTATES #include +#include #include #ifdef TCP_OFFLOAD From owner-svn-src-all@freebsd.org Wed Jan 27 05:19:07 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F6D9A6E51D; Wed, 27 Jan 2016 05:19:07 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 24427117E; Wed, 27 Jan 2016 05:19:07 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R5J6Ga013085; Wed, 27 Jan 2016 05:19:06 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R5J6Ob013084; Wed, 27 Jan 2016 05:19:06 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201601270519.u0R5J6Ob013084@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 27 Jan 2016 05:19:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294890 - stable/10/sys/dev/hyperv/storvsc X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 05:19:07 -0000 Author: sephe Date: Wed Jan 27 05:19:05 2016 New Revision: 294890 URL: https://svnweb.freebsd.org/changeset/base/294890 Log: MFC r294557: hyperv/stor: Verify returned inquiry data before further dispatching Windows 10 and Window 2016 will return all zero inquiry data for non-existing slots. If we dispatched them, then a lot of useless (0 sized) disks would be created. So we verify the returned inquiry data (valid type, non-empty vendor/product/revision etc.), before further dispatching. Minor white space cleanup and wording fix. Submitted by: Hongjiang Zhang Reviewed by: adrian, sephe, Jun Su Approved by: adrian (mentor) Modified by: sephe Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4928 Modified: stable/10/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- stable/10/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Jan 27 05:15:53 2016 (r294889) +++ stable/10/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Jan 27 05:19:05 2016 (r294890) @@ -1923,6 +1923,66 @@ create_storvsc_request(union ccb *ccb, s return(0); } +/* + * Modified based on scsi_print_inquiry which is responsible to + * print the detail information for scsi_inquiry_data. + * + * Return 1 if it is valid, 0 otherwise. + */ +static inline int +is_inquiry_valid(const struct scsi_inquiry_data *inq_data) +{ + uint8_t type; + char vendor[16], product[48], revision[16]; + + /* + * Check device type and qualifier + */ + if (!(SID_QUAL_IS_VENDOR_UNIQUE(inq_data) || + SID_QUAL(inq_data) == SID_QUAL_LU_CONNECTED)) + return (0); + + type = SID_TYPE(inq_data); + switch (type) { + case T_DIRECT: + case T_SEQUENTIAL: + case T_PRINTER: + case T_PROCESSOR: + case T_WORM: + case T_CDROM: + case T_SCANNER: + case T_OPTICAL: + case T_CHANGER: + case T_COMM: + case T_STORARRAY: + case T_ENCLOSURE: + case T_RBC: + case T_OCRW: + case T_OSD: + case T_ADC: + break; + case T_NODEVICE: + default: + return (0); + } + + /* + * Check vendor, product, and revision + */ + cam_strvis(vendor, inq_data->vendor, sizeof(inq_data->vendor), + sizeof(vendor)); + cam_strvis(product, inq_data->product, sizeof(inq_data->product), + sizeof(product)); + cam_strvis(revision, inq_data->revision, sizeof(inq_data->revision), + sizeof(revision)); + if (strlen(vendor) == 0 || + strlen(product) == 0 || + strlen(revision) == 0) + return (0); + + return (1); +} + /** * @brief completion function before returning to CAM * @@ -1993,11 +2053,33 @@ storvsc_io_done(struct hv_storvsc_reques ccb->ccb_h.status &= ~CAM_SIM_QUEUED; ccb->ccb_h.status &= ~CAM_STATUS_MASK; if (vm_srb->scsi_status == SCSI_STATUS_OK) { - ccb->ccb_h.status |= CAM_REQ_CMP; - } else { + const struct scsi_generic *cmd; + + /* + * Check whether the data for INQUIRY cmd is valid or + * not. Windows 10 and Windows 2016 send all zero + * inquiry data to VM even for unpopulated slots. + */ + cmd = (const struct scsi_generic *) + ((ccb->ccb_h.flags & CAM_CDB_POINTER) ? + csio->cdb_io.cdb_ptr : csio->cdb_io.cdb_bytes); + if (cmd->opcode == INQUIRY && + is_inquiry_valid( + (const struct scsi_inquiry_data *)csio->data_ptr) == 0) { + ccb->ccb_h.status |= CAM_DEV_NOT_THERE; + if (bootverbose) { + mtx_lock(&sc->hs_lock); + xpt_print(ccb->ccb_h.path, + "storvsc uninstalled device\n"); + mtx_unlock(&sc->hs_lock); + } + } else { + ccb->ccb_h.status |= CAM_REQ_CMP; + } + } else { mtx_lock(&sc->hs_lock); xpt_print(ccb->ccb_h.path, - "srovsc scsi_status = %d\n", + "storvsc scsi_status = %d\n", vm_srb->scsi_status); mtx_unlock(&sc->hs_lock); ccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; From owner-svn-src-all@freebsd.org Wed Jan 27 05:37:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EACECA6EBB0; Wed, 27 Jan 2016 05:37:58 +0000 (UTC) (envelope-from sepherosa@gmail.com) Received: from mail-io0-x236.google.com (mail-io0-x236.google.com [IPv6:2607:f8b0:4001:c06::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B5A3E199B; Wed, 27 Jan 2016 05:37:58 +0000 (UTC) (envelope-from sepherosa@gmail.com) Received: by mail-io0-x236.google.com with SMTP id f81so8191653iof.0; Tue, 26 Jan 2016 21:37:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Y3i+YwtyEozYmh5KUc14q7GkFc5KKdUm/Io1rt5uLPQ=; b=TFJSogZ3ZhjCB9ieiqcTkAQ8uBp3rIowK0KSubdhkimY7HyVPXqx3WpDV8jQ8DUICH 7tls8nuU4tgq1gHztyYq+YfUMDAo1v49sHRYAkdev+/i8yIwqOAfYJL17gZH3JFtal3/ IXS+rF8QXYPFyEXf4zIGT+MBPp8aNFP95PATz69KBTLS7UqBHd6uFLhu5PDDPBeUo3n7 +6BQfjikSdZDJ4PjEjAimBrKTDdpIpHbWFEotGTl5Hd3shTnCJtTDjr6QxpKyETOKUqA WItzisC6tGYKcV1snt1GcOjWljIvXHV69GvbyARIo57cB6nnpZaZd51RtqRZBxlkmcp5 F8lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=Y3i+YwtyEozYmh5KUc14q7GkFc5KKdUm/Io1rt5uLPQ=; b=j5MXq2r/MXxhusZR1x3aFeygAu0O8cTdeoTP2zVl9rKTgcTXoJpQKZiARJEinkO9eJ hjTZmH+oDNB1WPFiKrqAPhT4mit0TtY1wV3abSJjVcsQOmAxJjE9ck35iYAh0q/hRbyO zGACd11+x+0JvX00zNxnJ5Vx9HHH2lLwwnyXsBPQ6Gt5jdxpjoIQSkXfbvygo2g849cY Ys/4me4EOBNm8OV+rDOf94j9LdgVryEmjAG2ZuYSeYgoIgj/gEso4sx8pe0eUsFMpLQ/ yM+SA3Xy0t5nQMTl2D54cFhMp3aSqDyCIAB95LS5idmtr5BuUbgOrzZOHhLQNiiEyvnV F84g== X-Gm-Message-State: AG10YOT1Z25azWA/9TSqtEtaW8r2/Fbm2JwPyT2+oHIVfjBHWi37Q6DxYkpw0Bsag2nbm5W89HcRL+mDZKNpyA== MIME-Version: 1.0 X-Received: by 10.107.32.2 with SMTP id g2mr24263993iog.39.1453873078219; Tue, 26 Jan 2016 21:37:58 -0800 (PST) Received: by 10.107.166.3 with HTTP; Tue, 26 Jan 2016 21:37:58 -0800 (PST) In-Reply-To: <201601270515.u0R5FsoP012917@repo.freebsd.org> References: <201601270515.u0R5FsoP012917@repo.freebsd.org> Date: Wed, 27 Jan 2016 13:37:58 +0800 Message-ID: Subject: Re: svn commit: r294889 - in head/sys/dev: cxgb/ulp/tom cxgbe/tom From: Sepherosa Ziehau To: Gleb Smirnoff Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 05:37:59 -0000 Thanks! On Wed, Jan 27, 2016 at 1:15 PM, Gleb Smirnoff wrote: > Author: glebius > Date: Wed Jan 27 05:15:53 2016 > New Revision: 294889 > URL: https://svnweb.freebsd.org/changeset/base/294889 > > Log: > More fixes to the build. > > Modified: > head/sys/dev/cxgb/ulp/tom/cxgb_listen.c > head/sys/dev/cxgbe/tom/t4_connect.c > head/sys/dev/cxgbe/tom/t4_listen.c > head/sys/dev/cxgbe/tom/t4_tom.c > > Modified: head/sys/dev/cxgb/ulp/tom/cxgb_listen.c > ============================================================================== > --- head/sys/dev/cxgb/ulp/tom/cxgb_listen.c Wed Jan 27 05:04:17 2016 (r294888) > +++ head/sys/dev/cxgb/ulp/tom/cxgb_listen.c Wed Jan 27 05:15:53 2016 (r294889) > @@ -44,9 +44,9 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > #define TCPSTATES > #include > +#include > #include > > #include "cxgb_include.h" > > Modified: head/sys/dev/cxgbe/tom/t4_connect.c > ============================================================================== > --- head/sys/dev/cxgbe/tom/t4_connect.c Wed Jan 27 05:04:17 2016 (r294888) > +++ head/sys/dev/cxgbe/tom/t4_connect.c Wed Jan 27 05:15:53 2016 (r294889) > @@ -49,9 +49,9 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > #define TCPSTATES > #include > +#include > #include > > #include "common/common.h" > > Modified: head/sys/dev/cxgbe/tom/t4_listen.c > ============================================================================== > --- head/sys/dev/cxgbe/tom/t4_listen.c Wed Jan 27 05:04:17 2016 (r294888) > +++ head/sys/dev/cxgbe/tom/t4_listen.c Wed Jan 27 05:15:53 2016 (r294889) > @@ -56,9 +56,9 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > #define TCPSTATES > #include > +#include > #include > > #include "common/common.h" > > Modified: head/sys/dev/cxgbe/tom/t4_tom.c > ============================================================================== > --- head/sys/dev/cxgbe/tom/t4_tom.c Wed Jan 27 05:04:17 2016 (r294888) > +++ head/sys/dev/cxgbe/tom/t4_tom.c Wed Jan 27 05:15:53 2016 (r294889) > @@ -52,10 +52,10 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > #include > #define TCPSTATES > #include > +#include > #include > > #ifdef TCP_OFFLOAD > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" -- Tomorrow Will Never Die From owner-svn-src-all@freebsd.org Wed Jan 27 06:12:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 678F1A6F4A7; Wed, 27 Jan 2016 06:12:24 +0000 (UTC) (envelope-from lstewart@freebsd.org) Received: from lauren.room52.net (lauren.room52.net [210.50.193.198]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2DAAE869; Wed, 27 Jan 2016 06:12:23 +0000 (UTC) (envelope-from lstewart@freebsd.org) Received: from lgwl-lstewart2.corp.netflix.com (c110-22-60-167.eburwd6.vic.optusnet.com.au [110.22.60.167]) by lauren.room52.net (Postfix) with ESMTPSA id F0EAD7E820; Wed, 27 Jan 2016 17:12:20 +1100 (EST) Subject: Re: svn commit: r294535 - in head/sys/netinet: . cc tcp_stacks To: Gleb Smirnoff References: <201601212234.u0LMYpKT009948@repo.freebsd.org> <56A1D6B2.1010406@freebsd.org> <20160122181816.GB1004@FreeBSD.org> <56A31B78.2090100@freebsd.org> <20160124080720.GE1004@FreeBSD.org> Cc: src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org From: Lawrence Stewart X-Enigmail-Draft-Status: N1110 Message-ID: <56A85FA3.50403@freebsd.org> Date: Wed, 27 Jan 2016 17:11:47 +1100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <20160124080720.GE1004@FreeBSD.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=2.4 required=5.0 tests=DNS_FROM_AHBL_RHSBL, UNPARSEABLE_RELAY autolearn=no version=3.3.2 X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on lauren.room52.net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 06:12:24 -0000 On 01/24/16 19:07, Gleb Smirnoff wrote: > Lawrence, > > On Sat, Jan 23, 2016 at 05:19:36PM +1100, Lawrence Stewart wrote: > L> > The problem is that cc.h (or tcp_cc.h) is already depening on many > L> > TCP types. So, the structures defined inside are not agnostic, including > L> > tcp headers before cc.h is required. > L> > L> Not in any significant way that tightly couples the API to TCP from > L> consumers' perspective. > L> > L> > The old cc.h used to include tcp.h implicitly, which is a bad style. > L> > > L> > Since many developers sorted netinet/* includes in a .c file using > L> > sort(1), that lead to cc.h always come before actual tcp includes, > L> > hiding the real requirement for tcp.h in a .c file. > L> > L> To provide some more context, I considered that choice to be a lesser > L> evil at the time. Linux had set the defacto standard macro naming and > L> location so even though I would have put the CC related defines in cc.h > L> given the choice, I wanted third-party software which checked for > L> modular CC the Linux way to work on FreeBSD. The alphabetical ordering > L> of includes is what prompted me to include tcp.h in cc.h so that cc.h > L> could happily sit at the top of the list. I probably could have just > L> moved cc.h to the cc subdir, in which case it would always come > L> logically after the TCP includes as - perhaps that's > L> the right solution. > > Well, if the intent was to provide some sort of compatibility with Linux, > then my rename is even more valid! Look what left in the cc.h in the > Netflix source (which is kinda forward of FreeBSD): almost the whole > file is under _KERNEL. Only the tcp.h pollution left for userland. > > If Linux has cc.h and we want to put same definitions in cc.h, then > we should start new cc.h and keep this one renamed. Because if we > provided that one, we won't provide any compatibility, but would > just pollute with tcp.h. They do not have cc.h, they stuffed things into tcp.h. When I say I was trying to keep compat with Linux, I meant that I wanted to leave TCP_CA_NAME_MAX in tcp.h rather than move it to cc.h where it logically belongs and is required. This has no bearing on the naming of our cc.h file, but is the reason why I included tcp.h in cc.h, bad as that may be. > I am fine with netinet/cc/cc.h. If you agree I can run the rename. I think this is the right option. Please go ahead and move tcp_cc.h to netinet/cc/cc.h and update ifdef guard, src includes and man page accordingly. Cheers, Lawrence From owner-svn-src-all@freebsd.org Wed Jan 27 06:14:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA3EBA6F535; Wed, 27 Jan 2016 06:14:21 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AC1BD9EE; Wed, 27 Jan 2016 06:14:21 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R6EKFY030176; Wed, 27 Jan 2016 06:14:20 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R6EKQk030175; Wed, 27 Jan 2016 06:14:20 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601270614.u0R6EKQk030175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 27 Jan 2016 06:14:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294891 - head/usr.sbin/makefs/tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 06:14:22 -0000 Author: ngie Date: Wed Jan 27 06:14:20 2016 New Revision: 294891 URL: https://svnweb.freebsd.org/changeset/base/294891 Log: Require /sbin/mount_cd9660 when running the cd9660 tests In some cases the test system might not have mount_cd9660(8). Don't implicitly rely on it while testing cd9660 support; explicitly rely on it MFC after: 1 week Reported by: mjohnston Sponsored by: EMC / Isilon Storage Division Modified: head/usr.sbin/makefs/tests/Makefile Modified: head/usr.sbin/makefs/tests/Makefile ============================================================================== --- head/usr.sbin/makefs/tests/Makefile Wed Jan 27 05:19:05 2016 (r294890) +++ head/usr.sbin/makefs/tests/Makefile Wed Jan 27 06:14:20 2016 (r294891) @@ -8,6 +8,8 @@ BINDIR= ${TESTSDIR} SCRIPTS+= makefs_tests_common.sh SCRIPTSNAME_makefs_tests_common.sh= makefs_tests_common.sh +TEST_METADATA.makefs_cd9660_tests+= required_files="/sbin/mount_cd9660" + .for t in ${ATF_TESTS_SH} TEST_METADATA.$t+= required_user="root" .endfor From owner-svn-src-all@freebsd.org Wed Jan 27 06:16:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D6050A6F5B6; Wed, 27 Jan 2016 06:16:54 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A5DA3B8D; Wed, 27 Jan 2016 06:16:54 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R6GrFG030297; Wed, 27 Jan 2016 06:16:53 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R6GrsD030296; Wed, 27 Jan 2016 06:16:53 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270616.u0R6GrsD030296@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 06:16:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294892 - head/lib/libdpv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 06:16:54 -0000 Author: dteske Date: Wed Jan 27 06:16:53 2016 New Revision: 294892 URL: https://svnweb.freebsd.org/changeset/base/294892 Log: Remove unused function prototype MFC after: 3 days X-MFC-to: stable/10 Modified: head/lib/libdpv/dialog_util.h Modified: head/lib/libdpv/dialog_util.h ============================================================================== --- head/lib/libdpv/dialog_util.h Wed Jan 27 06:14:20 2016 (r294891) +++ head/lib/libdpv/dialog_util.h Wed Jan 27 06:16:53 2016 (r294892) @@ -55,7 +55,6 @@ extern int dheight, dwidth; __BEGIN_DECLS uint8_t dialog_prompt_nlstate(const char *_prompt); -void dialog_gauge_free(void); void dialog_maxsize_free(void); char *dialog_prompt_lastline(char *_prompt, uint8_t _nlstate); int dialog_maxcols(void); From owner-svn-src-all@freebsd.org Wed Jan 27 06:21:36 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D253EA6F799; Wed, 27 Jan 2016 06:21:36 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A2C0FF47; Wed, 27 Jan 2016 06:21:36 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R6LZOD030495; Wed, 27 Jan 2016 06:21:35 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R6LZPd030494; Wed, 27 Jan 2016 06:21:35 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270621.u0R6LZPd030494@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 06:21:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294893 - head/lib/libdpv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 06:21:36 -0000 Author: dteske Date: Wed Jan 27 06:21:35 2016 New Revision: 294893 URL: https://svnweb.freebsd.org/changeset/base/294893 Log: Fix a crash if `-D' is used without `-t title' dialog(3)'s dlg_reallocate_gauge(), used both by dialog(3)'s dialog_gauge() and dialog(1)'s `--gauge', will segmentation fault in strlen(3) if no title is set for the widget. Reproducible with `dialog --gauge hi 6 20' (adding `--title ""' is enough to prevent segmentation fault). MFC after: 3 days X-MFC-to: stable/10 Modified: head/lib/libdpv/dialog_util.c Modified: head/lib/libdpv/dialog_util.c ============================================================================== --- head/lib/libdpv/dialog_util.c Wed Jan 27 06:16:53 2016 (r294892) +++ head/lib/libdpv/dialog_util.c Wed Jan 27 06:21:35 2016 (r294893) @@ -261,6 +261,13 @@ dialog_spawn_gauge(char *init_prompt, pi errx(EXIT_FAILURE, "Out of memory?!"); sprintf(dargv[n++], "--title"); dargv[n++] = title; + } else { + if ((dargv[n] = malloc(8)) == NULL) + errx(EXIT_FAILURE, "Out of memory?!"); + sprintf(dargv[n++], "--title"); + if ((dargv[n] = malloc(8)) == NULL) + errx(EXIT_FAILURE, "Out of memory?!"); + sprintf(dargv[n++], ""); } if (backtitle != NULL) { if ((dargv[n] = malloc(12)) == NULL) From owner-svn-src-all@freebsd.org Wed Jan 27 06:24:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 090DAA6F932; Wed, 27 Jan 2016 06:24:21 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D730912E5; Wed, 27 Jan 2016 06:24:20 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R6OJ79033209; Wed, 27 Jan 2016 06:24:19 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R6OJxf033208; Wed, 27 Jan 2016 06:24:19 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601270624.u0R6OJxf033208@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 27 Jan 2016 06:24:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294894 - head/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 06:24:21 -0000 Author: ngie Date: Wed Jan 27 06:24:19 2016 New Revision: 294894 URL: https://svnweb.freebsd.org/changeset/base/294894 Log: Adjust vm.max_wired in order to avoid hitting EAGAIN artificially Set vm.max_wired to INT_MAX in :mlock_err, :mlock_mmap, and :mlock_nested to avoid hitting EAGAIN artificially on the system when running the tests Require root privileges in order to set the sysctl Add allow_sysctl_side_effects to require.config as this test is now adjusting sysctls that can affect the global system state Unlike the version submitted by cem in OneFS, this version uses a scratch file to save/restore the previous value of the sysctl. I _really_, _really_ wish there were better hooks in atf/kyua for per test suite setup/teardown -- using a file is kludgy, but it's the best I can do to avoid situations where (for instance), sysctl(3) may fail and drop a core outside the kyua sandbox. Based on a patch submitted by cem, but modified to take business logic out of ATF_TP_ADD_TCS(3). Differential Revision: https://reviews.freebsd.org/D4779 MFC after: 1 month Sponsored by: EMC / Isilon Storage Division Modified: head/contrib/netbsd-tests/lib/libc/sys/t_mlock.c Modified: head/contrib/netbsd-tests/lib/libc/sys/t_mlock.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/sys/t_mlock.c Wed Jan 27 06:21:35 2016 (r294893) +++ head/contrib/netbsd-tests/lib/libc/sys/t_mlock.c Wed Jan 27 06:24:19 2016 (r294894) @@ -47,12 +47,89 @@ __RCSID("$NetBSD: t_mlock.c,v 1.5 2014/0 #include #ifdef __FreeBSD__ +#include #define _KMEMUSER #include #endif static long page = 0; +#ifdef __FreeBSD__ +#define VM_MAX_WIRED "vm.max_wired" + +static void +vm_max_wired_sysctl(int *old_value, int *new_value) +{ + size_t old_len; + size_t new_len = (new_value == NULL ? 0 : sizeof(int)); + + if (old_value == NULL) + printf("Setting the new value to %d\n", *new_value); + else { + ATF_REQUIRE_MSG(sysctlbyname(VM_MAX_WIRED, NULL, &old_len, + new_value, new_len) == 0, + "sysctlbyname(%s) failed: %s", VM_MAX_WIRED, strerror(errno)); + } + + ATF_REQUIRE_MSG(sysctlbyname(VM_MAX_WIRED, old_value, &old_len, + new_value, new_len) == 0, + "sysctlbyname(%s) failed: %s", VM_MAX_WIRED, strerror(errno)); + + if (old_value != NULL) + printf("Saved the old value (%d)\n", *old_value); +} + +static void +set_vm_max_wired(int new_value) +{ + FILE *fp; + int old_value; + + fp = fopen(VM_MAX_WIRED, "w"); + if (fp == NULL) { + atf_tc_skip("could not open %s for writing: %s", + VM_MAX_WIRED, strerror(errno)); + return; + } + + vm_max_wired_sysctl(&old_value, NULL); + + ATF_REQUIRE_MSG(fprintf(fp, "%d", old_value) > 0, + "saving %s failed", VM_MAX_WIRED); + + fclose(fp); + + vm_max_wired_sysctl(NULL, &new_value); +} + +static void +restore_vm_max_wired(void) +{ + FILE *fp; + int saved_max_wired; + + fp = fopen(VM_MAX_WIRED, "r"); + if (fp == NULL) { + perror("fopen failed\n"); + return; + } + + if (fscanf(fp, "%d", &saved_max_wired) != 1) { + perror("fscanf failed\n"); + fclose(fp); + return; + } + + fclose(fp); + printf("old value in %s: %d\n", VM_MAX_WIRED, saved_max_wired); + + if (saved_max_wired == 0) /* This will cripple the test host */ + return; + + vm_max_wired_sysctl(NULL, &saved_max_wired); +} +#endif + ATF_TC(mlock_clip); ATF_TC_HEAD(mlock_clip, tc) { @@ -78,11 +155,19 @@ ATF_TC_BODY(mlock_clip, tc) free(buf); } +#ifdef __FreeBSD__ +ATF_TC_WITH_CLEANUP(mlock_err); +#else ATF_TC(mlock_err); +#endif ATF_TC_HEAD(mlock_err, tc) { atf_tc_set_md_var(tc, "descr", "Test error conditions in mlock(2) and munlock(2)"); +#ifdef __FreeBSD__ + atf_tc_set_md_var(tc, "require.config", "allow_sysctl_side_effects"); + atf_tc_set_md_var(tc, "require.user", "root"); +#endif } ATF_TC_BODY(mlock_err, tc) @@ -99,6 +184,8 @@ ATF_TC_BODY(mlock_err, tc) if ((uintptr_t)VM_MIN_ADDRESS > 0) null_errno = EINVAL; /* NULL is not inside user VM */ #endif + /* Set max_wired really really high to avoid EAGAIN */ + set_vm_max_wired(INT_MAX); #else if (sysctlbyname("vm.minaddress", &vmin, &len, NULL, 0) != 0) atf_tc_fail("failed to read vm.minaddress"); @@ -139,6 +226,14 @@ ATF_TC_BODY(mlock_err, tc) ATF_REQUIRE_ERRNO(ENOMEM, munlock(invalid_ptr, page) == -1); } +#ifdef __FreeBSD__ +ATF_TC_CLEANUP(mlock_err, tc) +{ + + restore_vm_max_wired(); +} +#endif + ATF_TC(mlock_limits); ATF_TC_HEAD(mlock_limits, tc) { @@ -200,10 +295,18 @@ ATF_TC_BODY(mlock_limits, tc) free(buf); } +#ifdef __FreeBSD__ +ATF_TC_WITH_CLEANUP(mlock_mmap); +#else ATF_TC(mlock_mmap); +#endif ATF_TC_HEAD(mlock_mmap, tc) { atf_tc_set_md_var(tc, "descr", "Test mlock(2)-mmap(2) interaction"); +#ifdef __FreeBSD__ + atf_tc_set_md_var(tc, "require.config", "allow_sysctl_side_effects"); + atf_tc_set_md_var(tc, "require.user", "root"); +#endif } ATF_TC_BODY(mlock_mmap, tc) @@ -215,6 +318,11 @@ ATF_TC_BODY(mlock_mmap, tc) #endif void *buf; +#ifdef __FreeBSD__ + /* Set max_wired really really high to avoid EAGAIN */ + set_vm_max_wired(INT_MAX); +#endif + /* * Make a wired RW mapping and check that mlock(2) * does not fail for the (already locked) mapping. @@ -248,11 +356,27 @@ ATF_TC_BODY(mlock_mmap, tc) ATF_REQUIRE(munmap(buf, page) == 0); } +#ifdef __FreeBSD__ +ATF_TC_CLEANUP(mlock_mmap, tc) +{ + + restore_vm_max_wired(); +} +#endif + +#ifdef __FreeBSD__ +ATF_TC_WITH_CLEANUP(mlock_nested); +#else ATF_TC(mlock_nested); +#endif ATF_TC_HEAD(mlock_nested, tc) { atf_tc_set_md_var(tc, "descr", "Test that consecutive mlock(2) calls succeed"); +#ifdef __FreeBSD__ + atf_tc_set_md_var(tc, "require.config", "allow_sysctl_side_effects"); + atf_tc_set_md_var(tc, "require.user", "root"); +#endif } ATF_TC_BODY(mlock_nested, tc) @@ -260,6 +384,11 @@ ATF_TC_BODY(mlock_nested, tc) const size_t maxiter = 100; void *buf; +#ifdef __FreeBSD__ + /* Set max_wired really really high to avoid EAGAIN */ + set_vm_max_wired(INT_MAX); +#endif + buf = malloc(page); ATF_REQUIRE(buf != NULL); @@ -270,6 +399,14 @@ ATF_TC_BODY(mlock_nested, tc) free(buf); } +#ifdef __FreeBSD__ +ATF_TC_CLEANUP(mlock_nested, tc) +{ + + restore_vm_max_wired(); +} +#endif + ATF_TP_ADD_TCS(tp) { From owner-svn-src-all@freebsd.org Wed Jan 27 06:26:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39E69A6F9BD; Wed, 27 Jan 2016 06:26:01 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 07D2E14A2; Wed, 27 Jan 2016 06:26:00 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R6Q0RL033313; Wed, 27 Jan 2016 06:26:00 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R6PxVq033310; Wed, 27 Jan 2016 06:25:59 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270625.u0R6PxVq033310@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 06:25:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294895 - stable/10/lib/libdpv X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 06:26:01 -0000 Author: dteske Date: Wed Jan 27 06:25:59 2016 New Revision: 294895 URL: https://svnweb.freebsd.org/changeset/base/294895 Log: MFC r293868: Default to en_US.ISO8859-1 if no locale Modified: stable/10/lib/libdpv/dpv.c stable/10/lib/libdpv/dpv.h Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libdpv/dpv.c ============================================================================== --- stable/10/lib/libdpv/dpv.c Wed Jan 27 06:24:19 2016 (r294894) +++ stable/10/lib/libdpv/dpv.c Wed Jan 27 06:25:59 2016 (r294895) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -482,6 +483,11 @@ dpv(struct dpv_config *config, struct dp /* Reads: label_size pbar_size pprompt aprompt dpv_nfiles */ /* Inits: dheight and dwidth */ + /* Default localeconv(3) settings for dialog(3) status */ + setlocale(LC_NUMERIC, + getenv("LC_ALL") == NULL && getenv("LC_NUMERIC") == NULL ? + LC_NUMERIC_DEFAULT : ""); + if (!debug) { /* Internally create the initial `--gauge' prompt text */ dprompt_recreate(file_list, (struct dpv_file_node *)NULL, 0); Modified: stable/10/lib/libdpv/dpv.h ============================================================================== --- stable/10/lib/libdpv/dpv.h Wed Jan 27 06:24:19 2016 (r294894) +++ stable/10/lib/libdpv/dpv.h Wed Jan 27 06:25:59 2016 (r294895) @@ -38,6 +38,9 @@ #define FALSE 0 #endif +/* localeconv(3) */ +#define LC_NUMERIC_DEFAULT "en_US.ISO8859-1" + /* Data to process */ extern long long dpv_overall_read; From owner-svn-src-all@freebsd.org Wed Jan 27 06:28:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5CCFAA6FA81; Wed, 27 Jan 2016 06:28:58 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 29BD41730; Wed, 27 Jan 2016 06:28:58 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R6Sve4033463; Wed, 27 Jan 2016 06:28:57 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R6Sv4A033461; Wed, 27 Jan 2016 06:28:57 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201601270628.u0R6Sv4A033461@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Wed, 27 Jan 2016 06:28:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294896 - head/etc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 06:28:58 -0000 Author: araujo Date: Wed Jan 27 06:28:56 2016 New Revision: 294896 URL: https://svnweb.freebsd.org/changeset/base/294896 Log: Fix regression introduced on r293801. The UID/GID 93 is in using by jaber on PORTS, we will use UID/GID 160 for ypldap(8). Reported by: antoine Approved by: bapt (mentor) Differential Revision: https://reviews.freebsd.org/D5062 Modified: head/etc/group head/etc/master.passwd Modified: head/etc/group ============================================================================== --- head/etc/group Wed Jan 27 06:25:59 2016 (r294895) +++ head/etc/group Wed Jan 27 06:28:56 2016 (r294896) @@ -29,6 +29,7 @@ dialer:*:68: network:*:69: audit:*:77: www:*:80: +_ypldap:*:160: hast:*:845: nogroup:*:65533: nobody:*:65534: Modified: head/etc/master.passwd ============================================================================== --- head/etc/master.passwd Wed Jan 27 06:25:59 2016 (r294895) +++ head/etc/master.passwd Wed Jan 27 06:28:56 2016 (r294896) @@ -22,6 +22,6 @@ uucp:*:66:66::0:0:UUCP pseudo-user:/var/ pop:*:68:6::0:0:Post Office Owner:/nonexistent:/usr/sbin/nologin auditdistd:*:78:77::0:0:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin -_ypldap:*:93:93::0:0:YP Ldap unprivileged user:/var/empty:/usr/sbin/nologin +_ypldap:*:160:160::0:0:YP Ldap unprivileged user:/var/empty:/usr/sbin/nologin hast:*:845:845::0:0:HAST unprivileged user:/var/empty:/usr/sbin/nologin nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin From owner-svn-src-all@freebsd.org Wed Jan 27 06:30:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D929CA6FB0F; Wed, 27 Jan 2016 06:30:24 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A59F918D8; Wed, 27 Jan 2016 06:30:24 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R6UN1q033566; Wed, 27 Jan 2016 06:30:23 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R6UNHa033565; Wed, 27 Jan 2016 06:30:23 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270630.u0R6UNHa033565@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 06:30:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294897 - stable/10/usr.bin/dpv X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 06:30:25 -0000 Author: dteske Date: Wed Jan 27 06:30:23 2016 New Revision: 294897 URL: https://svnweb.freebsd.org/changeset/base/294897 Log: MFC r289797: dpv(1) merged to stable/10 before release/10.2.0 Modified: stable/10/usr.bin/dpv/dpv.1 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/dpv/dpv.1 ============================================================================== --- stable/10/usr.bin/dpv/dpv.1 Wed Jan 27 06:28:56 2016 (r294896) +++ stable/10/usr.bin/dpv/dpv.1 Wed Jan 27 06:30:23 2016 (r294897) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2013-2014 Devin Teske +.\" Copyright (c) 2013-2015 Devin Teske .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Sep 7, 2014 +.Dd Oct 22, 2015 .Dt DPV 1 .Os .Sh NAME @@ -425,6 +425,6 @@ for additional information. A .Nm utility first appeared in -.Fx 11.0 . +.Fx 10.2 . .Sh AUTHORS .An Devin Teske Aq dteske@FreeBSD.org From owner-svn-src-all@freebsd.org Wed Jan 27 06:38:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8DA06A6FFAA; Wed, 27 Jan 2016 06:38:04 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5D93B1094; Wed, 27 Jan 2016 06:38:04 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R6c3oY036578; Wed, 27 Jan 2016 06:38:03 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R6c3ww036576; Wed, 27 Jan 2016 06:38:03 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601270638.u0R6c3ww036576@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 06:38:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294898 - stable/10/usr.sbin/bsdconfig/share X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 06:38:04 -0000 Author: dteske Date: Wed Jan 27 06:38:03 2016 New Revision: 294898 URL: https://svnweb.freebsd.org/changeset/base/294898 Log: MFC 293617,294669: Minor fixes r293617: Fix improper duration for f_dialog_pause() API r294669: Fix a typo in a comment Modified: stable/10/usr.sbin/bsdconfig/share/dialog.subr stable/10/usr.sbin/bsdconfig/share/strings.subr Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/bsdconfig/share/dialog.subr ============================================================================== --- stable/10/usr.sbin/bsdconfig/share/dialog.subr Wed Jan 27 06:30:23 2016 (r294897) +++ stable/10/usr.sbin/bsdconfig/share/dialog.subr Wed Jan 27 06:38:03 2016 (r294898) @@ -1605,7 +1605,6 @@ f_dialog_pause() $height $width else [ $duration -gt 0 ] && duration=$(( $duration - 1 )) - [ $duration -gt 1 ] && duration=$(( $duration - 1 )) height=$(( $height + 3 )) # Add height for progress bar $DIALOG \ --title "$DIALOG_TITLE" \ Modified: stable/10/usr.sbin/bsdconfig/share/strings.subr ============================================================================== --- stable/10/usr.sbin/bsdconfig/share/strings.subr Wed Jan 27 06:30:23 2016 (r294897) +++ stable/10/usr.sbin/bsdconfig/share/strings.subr Wed Jan 27 06:38:03 2016 (r294898) @@ -110,7 +110,7 @@ f_sprintf() # Example 2: # # limit=12 format="%s %s" -# format_args=" 'doghouse' 'foxhound' " +# format_args=" 'doghouse' 'fox' " # # even more spaces added to illustrate escape-method # f_vsnprintf foo $limit "$format" "$format_args" # foo=[doghouse fox] # From owner-svn-src-all@freebsd.org Wed Jan 27 07:06:51 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 10375A6E878; Wed, 27 Jan 2016 07:06:51 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CCA001CFD; Wed, 27 Jan 2016 07:06:50 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R76nFk045176; Wed, 27 Jan 2016 07:06:49 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R76nHu045175; Wed, 27 Jan 2016 07:06:49 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601270706.u0R76nHu045175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 27 Jan 2016 07:06:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294899 - head/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 07:06:51 -0000 Author: ngie Date: Wed Jan 27 07:06:49 2016 New Revision: 294899 URL: https://svnweb.freebsd.org/changeset/base/294899 Log: Add debug output via ATF_REQUIRE_MSG when the first call to mlock(2) fails This helps identify the problem with running this test on my VM hosts (ENOMEM) MFC after: 3 days Sponsored by: EMC / Isilon Storage Division Modified: head/contrib/netbsd-tests/lib/libc/sys/t_mincore.c Modified: head/contrib/netbsd-tests/lib/libc/sys/t_mincore.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/sys/t_mincore.c Wed Jan 27 06:38:03 2016 (r294898) +++ head/contrib/netbsd-tests/lib/libc/sys/t_mincore.c Wed Jan 27 07:06:49 2016 (r294899) @@ -206,7 +206,8 @@ ATF_TC_BODY(mincore_resid, tc) "might be low on memory"); #ifdef __FreeBSD__ - ATF_REQUIRE(mlock(addr, npgs * page) == 0); + ATF_REQUIRE_MSG(mlock(addr, npgs * page) == 0, "mlock failed: %s", + strerror(errno)); #endif ATF_REQUIRE(check_residency(addr, npgs) == npgs); ATF_REQUIRE(munmap(addr, npgs * page) == 0); From owner-svn-src-all@freebsd.org Wed Jan 27 07:20:57 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 97071A6EF15; Wed, 27 Jan 2016 07:20:57 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6FCD01515; Wed, 27 Jan 2016 07:20:57 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R7KuPP048378; Wed, 27 Jan 2016 07:20:56 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R7KuA5048375; Wed, 27 Jan 2016 07:20:56 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201601270720.u0R7KuA5048375@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 27 Jan 2016 07:20:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294900 - in head/sys: amd64/linux amd64/linux32 i386/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 07:20:57 -0000 Author: delphij Date: Wed Jan 27 07:20:55 2016 New Revision: 294900 URL: https://svnweb.freebsd.org/changeset/base/294900 Log: Implement AT_SECURE properly. AT_SECURE auxv entry has been added to the Linux 2.5 kernel to pass a boolean flag indicating whether secure mode should be enabled. 1 means that the program has changes its credentials during the execution. Being exported AT_SECURE used by glibc issetugid() call. Submitted by: imp, dchagin Security: FreeBSD-SA-16:10.linux Security: CVE-2016-1883 Modified: head/sys/amd64/linux/linux_sysvec.c head/sys/amd64/linux32/linux32_sysvec.c head/sys/i386/linux/linux_sysvec.c Modified: head/sys/amd64/linux/linux_sysvec.c ============================================================================== --- head/sys/amd64/linux/linux_sysvec.c Wed Jan 27 07:06:49 2016 (r294899) +++ head/sys/amd64/linux/linux_sysvec.c Wed Jan 27 07:20:55 2016 (r294900) @@ -271,6 +271,7 @@ elf_linux_fixup(register_t **stack_base, Elf_Addr *pos; struct ps_strings *arginfo; struct proc *p; + int issetugid; p = imgp->proc; arginfo = (struct ps_strings *)p->p_sysent->sv_psstrings; @@ -281,6 +282,7 @@ elf_linux_fixup(register_t **stack_base, args = (Elf64_Auxargs *)imgp->auxargs; pos = base + (imgp->args->argc + imgp->args->envc + 2); + issetugid = p->p_flag & P_SUGID ? 1 : 0; AUXARGS_ENTRY(pos, LINUX_AT_SYSINFO_EHDR, imgp->proc->p_sysent->sv_shared_page_base); AUXARGS_ENTRY(pos, LINUX_AT_HWCAP, cpu_feature); @@ -296,7 +298,7 @@ elf_linux_fixup(register_t **stack_base, AUXARGS_ENTRY(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid); AUXARGS_ENTRY(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); AUXARGS_ENTRY(pos, AT_EGID, imgp->proc->p_ucred->cr_svgid); - AUXARGS_ENTRY(pos, LINUX_AT_SECURE, 0); + AUXARGS_ENTRY(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY(pos, LINUX_AT_PLATFORM, PTROUT(linux_platform)); AUXARGS_ENTRY(pos, LINUX_AT_RANDOM, imgp->canary); if (imgp->execpathp != 0) Modified: head/sys/amd64/linux32/linux32_sysvec.c ============================================================================== --- head/sys/amd64/linux32/linux32_sysvec.c Wed Jan 27 07:06:49 2016 (r294899) +++ head/sys/amd64/linux32/linux32_sysvec.c Wed Jan 27 07:20:55 2016 (r294900) @@ -230,6 +230,7 @@ elf_linux_fixup(register_t **stack_base, Elf32_Addr *base; Elf32_Addr *pos; struct linux32_ps_strings *arginfo; + int issetugid; arginfo = (struct linux32_ps_strings *)LINUX32_PS_STRINGS; @@ -239,6 +240,7 @@ elf_linux_fixup(register_t **stack_base, args = (Elf32_Auxargs *)imgp->auxargs; pos = base + (imgp->args->argc + imgp->args->envc + 2); + issetugid = imgp->proc->p_flag & P_SUGID ? 1 : 0; AUXARGS_ENTRY_32(pos, LINUX_AT_SYSINFO_EHDR, imgp->proc->p_sysent->sv_shared_page_base); AUXARGS_ENTRY_32(pos, LINUX_AT_SYSINFO, linux32_vsyscall); @@ -261,7 +263,7 @@ elf_linux_fixup(register_t **stack_base, AUXARGS_ENTRY_32(pos, AT_FLAGS, args->flags); AUXARGS_ENTRY_32(pos, AT_ENTRY, args->entry); AUXARGS_ENTRY_32(pos, AT_BASE, args->base); - AUXARGS_ENTRY_32(pos, LINUX_AT_SECURE, 0); + AUXARGS_ENTRY_32(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY_32(pos, AT_UID, imgp->proc->p_ucred->cr_ruid); AUXARGS_ENTRY_32(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid); AUXARGS_ENTRY_32(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); Modified: head/sys/i386/linux/linux_sysvec.c ============================================================================== --- head/sys/i386/linux/linux_sysvec.c Wed Jan 27 07:06:49 2016 (r294899) +++ head/sys/i386/linux/linux_sysvec.c Wed Jan 27 07:20:55 2016 (r294900) @@ -238,11 +238,13 @@ elf_linux_fixup(register_t **stack_base, Elf32_Addr *uplatform; struct ps_strings *arginfo; register_t *pos; + int issetugid; KASSERT(curthread->td_proc == imgp->proc, ("unsafe elf_linux_fixup(), should be curproc")); p = imgp->proc; + issetugid = imgp->proc->p_flag & P_SUGID ? 1 : 0; arginfo = (struct ps_strings *)p->p_sysent->sv_psstrings; uplatform = (Elf32_Addr *)((caddr_t)arginfo - linux_szplatform); args = (Elf32_Auxargs *)imgp->auxargs; @@ -270,7 +272,7 @@ elf_linux_fixup(register_t **stack_base, AUXARGS_ENTRY(pos, AT_FLAGS, args->flags); AUXARGS_ENTRY(pos, AT_ENTRY, args->entry); AUXARGS_ENTRY(pos, AT_BASE, args->base); - AUXARGS_ENTRY(pos, LINUX_AT_SECURE, 0); + AUXARGS_ENTRY(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY(pos, AT_UID, imgp->proc->p_ucred->cr_ruid); AUXARGS_ENTRY(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid); AUXARGS_ENTRY(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); From owner-svn-src-all@freebsd.org Wed Jan 27 07:28:57 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 47172A6F286; Wed, 27 Jan 2016 07:28:57 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0A40F1DD1; Wed, 27 Jan 2016 07:28:56 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R7SufV051389; Wed, 27 Jan 2016 07:28:56 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R7StLe051386; Wed, 27 Jan 2016 07:28:55 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201601270728.u0R7StLe051386@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 27 Jan 2016 07:28:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294901 - in stable/10/sys: amd64/linux amd64/linux32 i386/linux X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 07:28:57 -0000 Author: delphij Date: Wed Jan 27 07:28:55 2016 New Revision: 294901 URL: https://svnweb.freebsd.org/changeset/base/294901 Log: MFC r294900: Implement AT_SECURE properly. AT_SECURE auxv entry has been added to the Linux 2.5 kernel to pass a boolean flag indicating whether secure mode should be enabled. 1 means that the program has changes its credentials during the execution. Being exported AT_SECURE used by glibc issetugid() call. Submitted by: imp, dchagin Security: FreeBSD-SA-16:10.linux Security: CVE-2016-1883 Modified: stable/10/sys/amd64/linux/linux_sysvec.c stable/10/sys/amd64/linux32/linux32_sysvec.c stable/10/sys/i386/linux/linux_sysvec.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/linux/linux_sysvec.c ============================================================================== --- stable/10/sys/amd64/linux/linux_sysvec.c Wed Jan 27 07:20:55 2016 (r294900) +++ stable/10/sys/amd64/linux/linux_sysvec.c Wed Jan 27 07:28:55 2016 (r294901) @@ -271,6 +271,7 @@ elf_linux_fixup(register_t **stack_base, Elf_Addr *pos; struct ps_strings *arginfo; struct proc *p; + int issetugid; p = imgp->proc; arginfo = (struct ps_strings *)p->p_sysent->sv_psstrings; @@ -281,6 +282,7 @@ elf_linux_fixup(register_t **stack_base, args = (Elf64_Auxargs *)imgp->auxargs; pos = base + (imgp->args->argc + imgp->args->envc + 2); + issetugid = p->p_flag & P_SUGID ? 1 : 0; AUXARGS_ENTRY(pos, LINUX_AT_SYSINFO_EHDR, imgp->proc->p_sysent->sv_shared_page_base); AUXARGS_ENTRY(pos, LINUX_AT_HWCAP, cpu_feature); @@ -296,7 +298,7 @@ elf_linux_fixup(register_t **stack_base, AUXARGS_ENTRY(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid); AUXARGS_ENTRY(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); AUXARGS_ENTRY(pos, AT_EGID, imgp->proc->p_ucred->cr_svgid); - AUXARGS_ENTRY(pos, LINUX_AT_SECURE, 0); + AUXARGS_ENTRY(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY(pos, LINUX_AT_PLATFORM, PTROUT(linux_platform)); AUXARGS_ENTRY(pos, LINUX_AT_RANDOM, imgp->canary); if (imgp->execpathp != 0) Modified: stable/10/sys/amd64/linux32/linux32_sysvec.c ============================================================================== --- stable/10/sys/amd64/linux32/linux32_sysvec.c Wed Jan 27 07:20:55 2016 (r294900) +++ stable/10/sys/amd64/linux32/linux32_sysvec.c Wed Jan 27 07:28:55 2016 (r294901) @@ -230,6 +230,7 @@ elf_linux_fixup(register_t **stack_base, Elf32_Addr *base; Elf32_Addr *pos; struct linux32_ps_strings *arginfo; + int issetugid; arginfo = (struct linux32_ps_strings *)LINUX32_PS_STRINGS; @@ -239,6 +240,7 @@ elf_linux_fixup(register_t **stack_base, args = (Elf32_Auxargs *)imgp->auxargs; pos = base + (imgp->args->argc + imgp->args->envc + 2); + issetugid = imgp->proc->p_flag & P_SUGID ? 1 : 0; AUXARGS_ENTRY_32(pos, LINUX_AT_SYSINFO_EHDR, imgp->proc->p_sysent->sv_shared_page_base); AUXARGS_ENTRY_32(pos, LINUX_AT_SYSINFO, linux32_vsyscall); @@ -261,7 +263,7 @@ elf_linux_fixup(register_t **stack_base, AUXARGS_ENTRY_32(pos, AT_FLAGS, args->flags); AUXARGS_ENTRY_32(pos, AT_ENTRY, args->entry); AUXARGS_ENTRY_32(pos, AT_BASE, args->base); - AUXARGS_ENTRY_32(pos, LINUX_AT_SECURE, 0); + AUXARGS_ENTRY_32(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY_32(pos, AT_UID, imgp->proc->p_ucred->cr_ruid); AUXARGS_ENTRY_32(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid); AUXARGS_ENTRY_32(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); Modified: stable/10/sys/i386/linux/linux_sysvec.c ============================================================================== --- stable/10/sys/i386/linux/linux_sysvec.c Wed Jan 27 07:20:55 2016 (r294900) +++ stable/10/sys/i386/linux/linux_sysvec.c Wed Jan 27 07:28:55 2016 (r294901) @@ -238,11 +238,13 @@ elf_linux_fixup(register_t **stack_base, Elf32_Addr *uplatform; struct ps_strings *arginfo; register_t *pos; + int issetugid; KASSERT(curthread->td_proc == imgp->proc, ("unsafe elf_linux_fixup(), should be curproc")); p = imgp->proc; + issetugid = imgp->proc->p_flag & P_SUGID ? 1 : 0; arginfo = (struct ps_strings *)p->p_sysent->sv_psstrings; uplatform = (Elf32_Addr *)((caddr_t)arginfo - linux_szplatform); args = (Elf32_Auxargs *)imgp->auxargs; @@ -270,7 +272,7 @@ elf_linux_fixup(register_t **stack_base, AUXARGS_ENTRY(pos, AT_FLAGS, args->flags); AUXARGS_ENTRY(pos, AT_ENTRY, args->entry); AUXARGS_ENTRY(pos, AT_BASE, args->base); - AUXARGS_ENTRY(pos, LINUX_AT_SECURE, 0); + AUXARGS_ENTRY(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY(pos, AT_UID, imgp->proc->p_ucred->cr_ruid); AUXARGS_ENTRY(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid); AUXARGS_ENTRY(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); From owner-svn-src-all@freebsd.org Wed Jan 27 07:34:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92C09A6F4F6; Wed, 27 Jan 2016 07:34:01 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6F3F11276; Wed, 27 Jan 2016 07:34:01 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R7Y0SS053967; Wed, 27 Jan 2016 07:34:00 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R7Y0In053966; Wed, 27 Jan 2016 07:34:00 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201601270734.u0R7Y0In053966@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 27 Jan 2016 07:34:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294902 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 07:34:01 -0000 Author: glebius Date: Wed Jan 27 07:34:00 2016 New Revision: 294902 URL: https://svnweb.freebsd.org/changeset/base/294902 Log: Fix issues with TCP_CONGESTION handling after r294540: o Return back the buf[TCP_CA_NAME_MAX] for TCP_CONGESTION, for TCP_CCALGOOPT use dynamically allocated *pbuf. o For SOPT_SET TCP_CONGESTION do NULL terminating of string taking from userland. o For SOPT_SET TCP_CONGESTION do the search for the algorithm keeping the inpcb lock. o For SOPT_GET TCP_CONGESTION first strlcpy() the name holding the inpcb lock into temporary buffer, then copyout. Together with: lstewart Modified: head/sys/netinet/tcp_usrreq.c Modified: head/sys/netinet/tcp_usrreq.c ============================================================================== --- head/sys/netinet/tcp_usrreq.c Wed Jan 27 07:28:55 2016 (r294901) +++ head/sys/netinet/tcp_usrreq.c Wed Jan 27 07:34:00 2016 (r294902) @@ -1479,7 +1479,8 @@ tcp_default_ctloutput(struct socket *so, u_int ui; struct tcp_info ti; struct cc_algo *algo; - char *buf; + char *pbuf, buf[TCP_CA_NAME_MAX]; + size_t len; /* * For TCP_CCALGOOPT forward the control to CC module, for both @@ -1488,22 +1489,22 @@ tcp_default_ctloutput(struct socket *so, switch (sopt->sopt_name) { case TCP_CCALGOOPT: INP_WUNLOCK(inp); - buf = malloc(sopt->sopt_valsize, M_TEMP, M_WAITOK | M_ZERO); - error = sooptcopyin(sopt, buf, sopt->sopt_valsize, + pbuf = malloc(sopt->sopt_valsize, M_TEMP, M_WAITOK | M_ZERO); + error = sooptcopyin(sopt, pbuf, sopt->sopt_valsize, sopt->sopt_valsize); if (error) { - free(buf, M_TEMP); + free(pbuf, M_TEMP); return (error); } INP_WLOCK_RECHECK(inp); if (CC_ALGO(tp)->ctl_output != NULL) - error = CC_ALGO(tp)->ctl_output(tp->ccv, sopt, buf); + error = CC_ALGO(tp)->ctl_output(tp->ccv, sopt, pbuf); else error = ENOENT; INP_WUNLOCK(inp); if (error == 0 && sopt->sopt_dir == SOPT_GET) - error = sooptcopyout(sopt, buf, sopt->sopt_valsize); - free(buf, M_TEMP); + error = sooptcopyout(sopt, pbuf, sopt->sopt_valsize); + free(pbuf, M_TEMP); return (error); } @@ -1600,24 +1601,22 @@ unlock_and_done: case TCP_CONGESTION: INP_WUNLOCK(inp); - buf = malloc(TCP_CA_NAME_MAX, M_TEMP, M_WAITOK|M_ZERO); - error = sooptcopyin(sopt, buf, TCP_CA_NAME_MAX, 1); - if (error) { - free(buf, M_TEMP); + error = sooptcopyin(sopt, buf, TCP_CA_NAME_MAX - 1, 1); + if (error) break; - } + buf[sopt->sopt_valsize] = '\0'; + INP_WLOCK_RECHECK(inp); CC_LIST_RLOCK(); STAILQ_FOREACH(algo, &cc_list, entries) if (strncmp(buf, algo->name, TCP_CA_NAME_MAX) == 0) break; CC_LIST_RUNLOCK(); - free(buf, M_TEMP); if (algo == NULL) { + INP_WUNLOCK(inp); error = EINVAL; break; } - INP_WLOCK_RECHECK(inp); /* * We hold a write lock over the tcb so it's safe to * do these things without ordering concerns. @@ -1786,9 +1785,9 @@ unlock_and_done: error = sooptcopyout(sopt, &ti, sizeof ti); break; case TCP_CONGESTION: + len = strlcpy(buf, CC_ALGO(tp)->name, TCP_CA_NAME_MAX); INP_WUNLOCK(inp); - error = sooptcopyout(sopt, CC_ALGO(tp)->name, - TCP_CA_NAME_MAX); + error = sooptcopyout(sopt, buf, len + 1); break; case TCP_KEEPIDLE: case TCP_KEEPINTVL: From owner-svn-src-all@freebsd.org Wed Jan 27 07:34:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67D7FA6F548; Wed, 27 Jan 2016 07:34:25 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 294BE13CA; Wed, 27 Jan 2016 07:34:25 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R7YOPk054025; Wed, 27 Jan 2016 07:34:24 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R7YOBl054023; Wed, 27 Jan 2016 07:34:24 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201601270734.u0R7YOBl054023@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 27 Jan 2016 07:34:24 +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: r294903 - in stable/9/sys: amd64/linux32 dev/usb/wlan i386/linux X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 07:34:25 -0000 Author: delphij Date: Wed Jan 27 07:34:23 2016 New Revision: 294903 URL: https://svnweb.freebsd.org/changeset/base/294903 Log: MFC r294900: Implement AT_SECURE properly. AT_SECURE auxv entry has been added to the Linux 2.5 kernel to pass a boolean flag indicating whether secure mode should be enabled. 1 means that the program has changes its credentials during the execution. Being exported AT_SECURE used by glibc issetugid() call. Submitted by: imp, dchagin Security: FreeBSD-SA-16:10.linux Security: CVE-2016-1883 Modified: stable/9/sys/amd64/linux32/linux32_sysvec.c stable/9/sys/i386/linux/linux_sysvec.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/amd64/include/xen/ (props changed) stable/9/sys/boot/ (props changed) stable/9/sys/boot/forth/ (props changed) stable/9/sys/boot/i386/efi/ (props changed) stable/9/sys/boot/i386/gptboot/ (props changed) stable/9/sys/boot/ia64/efi/ (props changed) stable/9/sys/boot/ia64/ski/ (props changed) stable/9/sys/boot/powerpc/boot1.chrp/ (props changed) stable/9/sys/boot/powerpc/ofw/ (props changed) stable/9/sys/cddl/contrib/opensolaris/ (props changed) stable/9/sys/conf/ (props changed) stable/9/sys/contrib/dev/acpica/ (props changed) stable/9/sys/contrib/dev/run/ (props changed) stable/9/sys/contrib/octeon-sdk/ (props changed) stable/9/sys/contrib/pf/ (props changed) stable/9/sys/contrib/x86emu/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/dev/e1000/ (props changed) stable/9/sys/dev/isp/ (props changed) stable/9/sys/dev/ixgbe/ (props changed) stable/9/sys/dev/puc/ (props changed) stable/9/sys/dev/usb/wlan/if_run.c (props changed) stable/9/sys/dev/usb/wlan/if_runreg.h (props changed) stable/9/sys/fs/ (props changed) stable/9/sys/fs/ntfs/ (props changed) stable/9/sys/modules/ (props changed) stable/9/sys/modules/ixgbe/ (props changed) stable/9/sys/modules/svr4/ (props changed) stable/9/sys/net/ (props changed) stable/9/sys/netpfil/ (props changed) stable/9/sys/sys/ (props changed) Modified: stable/9/sys/amd64/linux32/linux32_sysvec.c ============================================================================== --- stable/9/sys/amd64/linux32/linux32_sysvec.c Wed Jan 27 07:34:00 2016 (r294902) +++ stable/9/sys/amd64/linux32/linux32_sysvec.c Wed Jan 27 07:34:23 2016 (r294903) @@ -247,6 +247,7 @@ elf_linux_fixup(register_t **stack_base, Elf32_Addr *base; Elf32_Addr *pos, *uplatform; struct linux32_ps_strings *arginfo; + int issetugid; arginfo = (struct linux32_ps_strings *)LINUX32_PS_STRINGS; uplatform = (Elf32_Addr *)((caddr_t)arginfo - linux_szplatform); @@ -257,6 +258,7 @@ elf_linux_fixup(register_t **stack_base, args = (Elf32_Auxargs *)imgp->auxargs; pos = base + (imgp->args->argc + imgp->args->envc + 2); + issetugid = imgp->proc->p_flag & P_SUGID ? 1 : 0; AUXARGS_ENTRY_32(pos, LINUX_AT_HWCAP, cpu_feature); /* @@ -276,7 +278,7 @@ elf_linux_fixup(register_t **stack_base, AUXARGS_ENTRY_32(pos, AT_FLAGS, args->flags); AUXARGS_ENTRY_32(pos, AT_ENTRY, args->entry); AUXARGS_ENTRY_32(pos, AT_BASE, args->base); - AUXARGS_ENTRY_32(pos, LINUX_AT_SECURE, 0); + AUXARGS_ENTRY_32(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY_32(pos, AT_UID, imgp->proc->p_ucred->cr_ruid); AUXARGS_ENTRY_32(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid); AUXARGS_ENTRY_32(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); Modified: stable/9/sys/i386/linux/linux_sysvec.c ============================================================================== --- stable/9/sys/i386/linux/linux_sysvec.c Wed Jan 27 07:34:00 2016 (r294902) +++ stable/9/sys/i386/linux/linux_sysvec.c Wed Jan 27 07:34:23 2016 (r294903) @@ -243,11 +243,13 @@ elf_linux_fixup(register_t **stack_base, Elf32_Addr *uplatform; struct ps_strings *arginfo; register_t *pos; + int issetugid; KASSERT(curthread->td_proc == imgp->proc, ("unsafe elf_linux_fixup(), should be curproc")); p = imgp->proc; + issetugid = imgp->proc->p_flag & P_SUGID ? 1 : 0; arginfo = (struct ps_strings *)p->p_sysent->sv_psstrings; uplatform = (Elf32_Addr *)((caddr_t)arginfo - linux_szplatform); args = (Elf32_Auxargs *)imgp->auxargs; @@ -272,7 +274,7 @@ elf_linux_fixup(register_t **stack_base, AUXARGS_ENTRY(pos, AT_FLAGS, args->flags); AUXARGS_ENTRY(pos, AT_ENTRY, args->entry); AUXARGS_ENTRY(pos, AT_BASE, args->base); - AUXARGS_ENTRY(pos, LINUX_AT_SECURE, 0); + AUXARGS_ENTRY(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY(pos, AT_UID, imgp->proc->p_ucred->cr_ruid); AUXARGS_ENTRY(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid); AUXARGS_ENTRY(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); From owner-svn-src-all@freebsd.org Wed Jan 27 07:41:34 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F0F4CA6F6D9; Wed, 27 Jan 2016 07:41:33 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A95661868; Wed, 27 Jan 2016 07:41:33 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R7fW24056250; Wed, 27 Jan 2016 07:41:32 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R7fW7V056246; Wed, 27 Jan 2016 07:41:32 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201601270741.u0R7fW7V056246@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 27 Jan 2016 07:41:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r294904 - in releng: 10.1 10.1/contrib/ntp 10.1/contrib/ntp/html 10.1/contrib/ntp/include 10.1/contrib/ntp/libntp 10.1/contrib/ntp/ntpd 10.1/contrib/ntp/ntpdc 10.1/contrib/ntp/ntpq 10.1... X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 07:41:34 -0000 Author: delphij Date: Wed Jan 27 07:41:31 2016 New Revision: 294904 URL: https://svnweb.freebsd.org/changeset/base/294904 Log: Fix multiple vulnerabilities of ntp. [SA-16:09] Fix Linux compatibility layer issetugid(2) system call vulnerability. [SA-16:10] Security: FreeBSD-SA-16:09.ntp Security: FreeBSD-SA-16:10.linux Approved by: so Added: releng/10.1/contrib/ntp/include/ntp_keyacc.h releng/10.1/contrib/ntp/libntp/is_ip_address.c releng/10.2/contrib/ntp/include/ntp_keyacc.h releng/10.2/contrib/ntp/libntp/is_ip_address.c Modified: releng/10.1/UPDATING releng/10.1/contrib/ntp/ChangeLog releng/10.1/contrib/ntp/CommitLog releng/10.1/contrib/ntp/NEWS releng/10.1/contrib/ntp/configure releng/10.1/contrib/ntp/html/miscopt.html releng/10.1/contrib/ntp/include/Makefile.am releng/10.1/contrib/ntp/include/Makefile.in releng/10.1/contrib/ntp/include/ntp.h releng/10.1/contrib/ntp/include/ntp_io.h releng/10.1/contrib/ntp/include/ntp_stdlib.h releng/10.1/contrib/ntp/include/ntp_types.h releng/10.1/contrib/ntp/include/ntp_worker.h releng/10.1/contrib/ntp/include/parse.h releng/10.1/contrib/ntp/libntp/Makefile.am releng/10.1/contrib/ntp/libntp/Makefile.in releng/10.1/contrib/ntp/libntp/authkeys.c releng/10.1/contrib/ntp/libntp/authreadkeys.c releng/10.1/contrib/ntp/libntp/authusekey.c releng/10.1/contrib/ntp/libntp/ntp_worker.c releng/10.1/contrib/ntp/libntp/systime.c releng/10.1/contrib/ntp/libntp/work_thread.c releng/10.1/contrib/ntp/ntpd/invoke-ntp.conf.texi releng/10.1/contrib/ntp/ntpd/invoke-ntp.keys.texi releng/10.1/contrib/ntp/ntpd/invoke-ntpd.texi releng/10.1/contrib/ntp/ntpd/keyword-gen-utd releng/10.1/contrib/ntp/ntpd/keyword-gen.c releng/10.1/contrib/ntp/ntpd/ntp.conf.5man releng/10.1/contrib/ntp/ntpd/ntp.conf.5mdoc releng/10.1/contrib/ntp/ntpd/ntp.conf.def releng/10.1/contrib/ntp/ntpd/ntp.conf.html releng/10.1/contrib/ntp/ntpd/ntp.conf.man.in releng/10.1/contrib/ntp/ntpd/ntp.conf.mdoc.in releng/10.1/contrib/ntp/ntpd/ntp.keys.5man releng/10.1/contrib/ntp/ntpd/ntp.keys.5mdoc releng/10.1/contrib/ntp/ntpd/ntp.keys.def releng/10.1/contrib/ntp/ntpd/ntp.keys.html releng/10.1/contrib/ntp/ntpd/ntp.keys.man.in releng/10.1/contrib/ntp/ntpd/ntp.keys.mdoc.in releng/10.1/contrib/ntp/ntpd/ntp_config.c releng/10.1/contrib/ntp/ntpd/ntp_control.c releng/10.1/contrib/ntp/ntpd/ntp_crypto.c releng/10.1/contrib/ntp/ntpd/ntp_io.c releng/10.1/contrib/ntp/ntpd/ntp_keyword.h releng/10.1/contrib/ntp/ntpd/ntp_parser.c releng/10.1/contrib/ntp/ntpd/ntp_parser.h releng/10.1/contrib/ntp/ntpd/ntp_proto.c releng/10.1/contrib/ntp/ntpd/ntp_request.c releng/10.1/contrib/ntp/ntpd/ntp_scanner.c releng/10.1/contrib/ntp/ntpd/ntp_timer.c releng/10.1/contrib/ntp/ntpd/ntpd-opts.c releng/10.1/contrib/ntp/ntpd/ntpd-opts.h releng/10.1/contrib/ntp/ntpd/ntpd.1ntpdman releng/10.1/contrib/ntp/ntpd/ntpd.1ntpdmdoc releng/10.1/contrib/ntp/ntpd/ntpd.c releng/10.1/contrib/ntp/ntpd/ntpd.html releng/10.1/contrib/ntp/ntpd/ntpd.man.in releng/10.1/contrib/ntp/ntpd/ntpd.mdoc.in releng/10.1/contrib/ntp/ntpd/refclock_chu.c releng/10.1/contrib/ntp/ntpd/refclock_gpsdjson.c releng/10.1/contrib/ntp/ntpd/refclock_jjy.c releng/10.1/contrib/ntp/ntpd/refclock_shm.c releng/10.1/contrib/ntp/ntpdc/invoke-ntpdc.texi releng/10.1/contrib/ntp/ntpdc/ntpdc-opts.c releng/10.1/contrib/ntp/ntpdc/ntpdc-opts.h releng/10.1/contrib/ntp/ntpdc/ntpdc.1ntpdcman releng/10.1/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc releng/10.1/contrib/ntp/ntpdc/ntpdc.c releng/10.1/contrib/ntp/ntpdc/ntpdc.html releng/10.1/contrib/ntp/ntpdc/ntpdc.man.in releng/10.1/contrib/ntp/ntpdc/ntpdc.mdoc.in releng/10.1/contrib/ntp/ntpq/invoke-ntpq.texi releng/10.1/contrib/ntp/ntpq/ntpq-opts.c releng/10.1/contrib/ntp/ntpq/ntpq-opts.h releng/10.1/contrib/ntp/ntpq/ntpq-subs.c releng/10.1/contrib/ntp/ntpq/ntpq.1ntpqman releng/10.1/contrib/ntp/ntpq/ntpq.1ntpqmdoc releng/10.1/contrib/ntp/ntpq/ntpq.c releng/10.1/contrib/ntp/ntpq/ntpq.html releng/10.1/contrib/ntp/ntpq/ntpq.man.in releng/10.1/contrib/ntp/ntpq/ntpq.mdoc.in releng/10.1/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi releng/10.1/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c releng/10.1/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h releng/10.1/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman releng/10.1/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc releng/10.1/contrib/ntp/ntpsnmpd/ntpsnmpd.html releng/10.1/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in releng/10.1/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in releng/10.1/contrib/ntp/packageinfo.sh releng/10.1/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman releng/10.1/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc releng/10.1/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html releng/10.1/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in releng/10.1/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in releng/10.1/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi releng/10.1/contrib/ntp/scripts/invoke-plot_summary.texi releng/10.1/contrib/ntp/scripts/invoke-summary.texi releng/10.1/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi releng/10.1/contrib/ntp/scripts/ntp-wait/ntp-wait-opts releng/10.1/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman releng/10.1/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc releng/10.1/contrib/ntp/scripts/ntp-wait/ntp-wait.html releng/10.1/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in releng/10.1/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in releng/10.1/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi releng/10.1/contrib/ntp/scripts/ntpsweep/ntpsweep-opts releng/10.1/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman releng/10.1/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc releng/10.1/contrib/ntp/scripts/ntpsweep/ntpsweep.html releng/10.1/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in releng/10.1/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in releng/10.1/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi releng/10.1/contrib/ntp/scripts/ntptrace/ntptrace-opts releng/10.1/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman releng/10.1/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc releng/10.1/contrib/ntp/scripts/ntptrace/ntptrace.html releng/10.1/contrib/ntp/scripts/ntptrace/ntptrace.man.in releng/10.1/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in releng/10.1/contrib/ntp/scripts/plot_summary-opts releng/10.1/contrib/ntp/scripts/plot_summary.1plot_summaryman releng/10.1/contrib/ntp/scripts/plot_summary.1plot_summarymdoc releng/10.1/contrib/ntp/scripts/plot_summary.html releng/10.1/contrib/ntp/scripts/plot_summary.man.in releng/10.1/contrib/ntp/scripts/plot_summary.mdoc.in releng/10.1/contrib/ntp/scripts/summary-opts releng/10.1/contrib/ntp/scripts/summary.1summaryman releng/10.1/contrib/ntp/scripts/summary.1summarymdoc releng/10.1/contrib/ntp/scripts/summary.html releng/10.1/contrib/ntp/scripts/summary.man.in releng/10.1/contrib/ntp/scripts/summary.mdoc.in releng/10.1/contrib/ntp/scripts/update-leap/invoke-update-leap.texi releng/10.1/contrib/ntp/scripts/update-leap/update-leap-opts releng/10.1/contrib/ntp/scripts/update-leap/update-leap.1update-leapman releng/10.1/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc releng/10.1/contrib/ntp/scripts/update-leap/update-leap.html releng/10.1/contrib/ntp/scripts/update-leap/update-leap.man.in releng/10.1/contrib/ntp/scripts/update-leap/update-leap.mdoc.in releng/10.1/contrib/ntp/sntp/configure releng/10.1/contrib/ntp/sntp/crypto.c releng/10.1/contrib/ntp/sntp/crypto.h releng/10.1/contrib/ntp/sntp/include/copyright.def releng/10.1/contrib/ntp/sntp/include/version.def releng/10.1/contrib/ntp/sntp/include/version.texi releng/10.1/contrib/ntp/sntp/invoke-sntp.texi releng/10.1/contrib/ntp/sntp/libopts/configfile.c releng/10.1/contrib/ntp/sntp/libopts/enum.c releng/10.1/contrib/ntp/sntp/libopts/find.c releng/10.1/contrib/ntp/sntp/libopts/init.c releng/10.1/contrib/ntp/sntp/libopts/load.c releng/10.1/contrib/ntp/sntp/libopts/makeshell.c releng/10.1/contrib/ntp/sntp/libopts/nested.c releng/10.1/contrib/ntp/sntp/libopts/parse-duration.c releng/10.1/contrib/ntp/sntp/libopts/reset.c releng/10.1/contrib/ntp/sntp/libopts/save.c releng/10.1/contrib/ntp/sntp/libopts/tokenize.c releng/10.1/contrib/ntp/sntp/m4/version.m4 releng/10.1/contrib/ntp/sntp/main.c releng/10.1/contrib/ntp/sntp/networking.c releng/10.1/contrib/ntp/sntp/sntp-opts.c releng/10.1/contrib/ntp/sntp/sntp-opts.h releng/10.1/contrib/ntp/sntp/sntp.1sntpman releng/10.1/contrib/ntp/sntp/sntp.1sntpmdoc releng/10.1/contrib/ntp/sntp/sntp.html releng/10.1/contrib/ntp/sntp/sntp.man.in releng/10.1/contrib/ntp/sntp/sntp.mdoc.in releng/10.1/contrib/ntp/sntp/tests/crypto.c releng/10.1/contrib/ntp/sntp/tests/fileHandlingTest.c releng/10.1/contrib/ntp/sntp/tests/fileHandlingTest.h.in releng/10.1/contrib/ntp/sntp/tests/keyFile.c releng/10.1/contrib/ntp/sntp/tests/packetHandling.c releng/10.1/contrib/ntp/sntp/tests/packetProcessing.c releng/10.1/contrib/ntp/sntp/tests/run-packetProcessing.c releng/10.1/contrib/ntp/sntp/unity/unity_internals.h releng/10.1/contrib/ntp/sntp/version.c releng/10.1/contrib/ntp/tests/libntp/authkeys.c releng/10.1/contrib/ntp/tests/libntp/decodenetnum.c releng/10.1/contrib/ntp/tests/libntp/run-authkeys.c releng/10.1/contrib/ntp/tests/libntp/run-decodenetnum.c releng/10.1/contrib/ntp/tests/libntp/run-socktoa.c releng/10.1/contrib/ntp/tests/libntp/socktoa.c releng/10.1/contrib/ntp/tests/ntpd/t-ntp_signd.c releng/10.1/contrib/ntp/util/invoke-ntp-keygen.texi releng/10.1/contrib/ntp/util/ntp-keygen-opts.c releng/10.1/contrib/ntp/util/ntp-keygen-opts.h releng/10.1/contrib/ntp/util/ntp-keygen.1ntp-keygenman releng/10.1/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc releng/10.1/contrib/ntp/util/ntp-keygen.html releng/10.1/contrib/ntp/util/ntp-keygen.man.in releng/10.1/contrib/ntp/util/ntp-keygen.mdoc.in releng/10.1/sys/amd64/linux32/linux32_sysvec.c releng/10.1/sys/conf/newvers.sh releng/10.1/sys/i386/linux/linux_sysvec.c releng/10.1/usr.sbin/ntp/config.h releng/10.1/usr.sbin/ntp/doc/ntp-keygen.8 releng/10.1/usr.sbin/ntp/doc/ntp.conf.5 releng/10.1/usr.sbin/ntp/doc/ntp.keys.5 releng/10.1/usr.sbin/ntp/doc/ntpd.8 releng/10.1/usr.sbin/ntp/doc/ntpdc.8 releng/10.1/usr.sbin/ntp/doc/ntpq.8 releng/10.1/usr.sbin/ntp/doc/sntp.8 releng/10.1/usr.sbin/ntp/libntp/Makefile releng/10.1/usr.sbin/ntp/scripts/mkver releng/10.2/UPDATING releng/10.2/contrib/ntp/ChangeLog releng/10.2/contrib/ntp/CommitLog releng/10.2/contrib/ntp/NEWS releng/10.2/contrib/ntp/configure releng/10.2/contrib/ntp/html/miscopt.html releng/10.2/contrib/ntp/include/Makefile.am releng/10.2/contrib/ntp/include/Makefile.in releng/10.2/contrib/ntp/include/ntp.h releng/10.2/contrib/ntp/include/ntp_io.h releng/10.2/contrib/ntp/include/ntp_stdlib.h releng/10.2/contrib/ntp/include/ntp_types.h releng/10.2/contrib/ntp/include/ntp_worker.h releng/10.2/contrib/ntp/include/parse.h releng/10.2/contrib/ntp/libntp/Makefile.am releng/10.2/contrib/ntp/libntp/Makefile.in releng/10.2/contrib/ntp/libntp/authkeys.c releng/10.2/contrib/ntp/libntp/authreadkeys.c releng/10.2/contrib/ntp/libntp/authusekey.c releng/10.2/contrib/ntp/libntp/ntp_worker.c releng/10.2/contrib/ntp/libntp/systime.c releng/10.2/contrib/ntp/libntp/work_thread.c releng/10.2/contrib/ntp/ntpd/invoke-ntp.conf.texi releng/10.2/contrib/ntp/ntpd/invoke-ntp.keys.texi releng/10.2/contrib/ntp/ntpd/invoke-ntpd.texi releng/10.2/contrib/ntp/ntpd/keyword-gen-utd releng/10.2/contrib/ntp/ntpd/keyword-gen.c releng/10.2/contrib/ntp/ntpd/ntp.conf.5man releng/10.2/contrib/ntp/ntpd/ntp.conf.5mdoc releng/10.2/contrib/ntp/ntpd/ntp.conf.def releng/10.2/contrib/ntp/ntpd/ntp.conf.html releng/10.2/contrib/ntp/ntpd/ntp.conf.man.in releng/10.2/contrib/ntp/ntpd/ntp.conf.mdoc.in releng/10.2/contrib/ntp/ntpd/ntp.keys.5man releng/10.2/contrib/ntp/ntpd/ntp.keys.5mdoc releng/10.2/contrib/ntp/ntpd/ntp.keys.def releng/10.2/contrib/ntp/ntpd/ntp.keys.html releng/10.2/contrib/ntp/ntpd/ntp.keys.man.in releng/10.2/contrib/ntp/ntpd/ntp.keys.mdoc.in releng/10.2/contrib/ntp/ntpd/ntp_config.c releng/10.2/contrib/ntp/ntpd/ntp_control.c releng/10.2/contrib/ntp/ntpd/ntp_crypto.c releng/10.2/contrib/ntp/ntpd/ntp_io.c releng/10.2/contrib/ntp/ntpd/ntp_keyword.h releng/10.2/contrib/ntp/ntpd/ntp_parser.c releng/10.2/contrib/ntp/ntpd/ntp_parser.h releng/10.2/contrib/ntp/ntpd/ntp_proto.c releng/10.2/contrib/ntp/ntpd/ntp_request.c releng/10.2/contrib/ntp/ntpd/ntp_scanner.c releng/10.2/contrib/ntp/ntpd/ntp_timer.c releng/10.2/contrib/ntp/ntpd/ntpd-opts.c releng/10.2/contrib/ntp/ntpd/ntpd-opts.h releng/10.2/contrib/ntp/ntpd/ntpd.1ntpdman releng/10.2/contrib/ntp/ntpd/ntpd.1ntpdmdoc releng/10.2/contrib/ntp/ntpd/ntpd.c releng/10.2/contrib/ntp/ntpd/ntpd.html releng/10.2/contrib/ntp/ntpd/ntpd.man.in releng/10.2/contrib/ntp/ntpd/ntpd.mdoc.in releng/10.2/contrib/ntp/ntpd/refclock_chu.c releng/10.2/contrib/ntp/ntpd/refclock_gpsdjson.c releng/10.2/contrib/ntp/ntpd/refclock_jjy.c releng/10.2/contrib/ntp/ntpd/refclock_shm.c releng/10.2/contrib/ntp/ntpdc/invoke-ntpdc.texi releng/10.2/contrib/ntp/ntpdc/ntpdc-opts.c releng/10.2/contrib/ntp/ntpdc/ntpdc-opts.h releng/10.2/contrib/ntp/ntpdc/ntpdc.1ntpdcman releng/10.2/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc releng/10.2/contrib/ntp/ntpdc/ntpdc.c releng/10.2/contrib/ntp/ntpdc/ntpdc.html releng/10.2/contrib/ntp/ntpdc/ntpdc.man.in releng/10.2/contrib/ntp/ntpdc/ntpdc.mdoc.in releng/10.2/contrib/ntp/ntpq/invoke-ntpq.texi releng/10.2/contrib/ntp/ntpq/ntpq-opts.c releng/10.2/contrib/ntp/ntpq/ntpq-opts.h releng/10.2/contrib/ntp/ntpq/ntpq-subs.c releng/10.2/contrib/ntp/ntpq/ntpq.1ntpqman releng/10.2/contrib/ntp/ntpq/ntpq.1ntpqmdoc releng/10.2/contrib/ntp/ntpq/ntpq.c releng/10.2/contrib/ntp/ntpq/ntpq.html releng/10.2/contrib/ntp/ntpq/ntpq.man.in releng/10.2/contrib/ntp/ntpq/ntpq.mdoc.in releng/10.2/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi releng/10.2/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c releng/10.2/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h releng/10.2/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman releng/10.2/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc releng/10.2/contrib/ntp/ntpsnmpd/ntpsnmpd.html releng/10.2/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in releng/10.2/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in releng/10.2/contrib/ntp/packageinfo.sh releng/10.2/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman releng/10.2/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc releng/10.2/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html releng/10.2/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in releng/10.2/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in releng/10.2/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi releng/10.2/contrib/ntp/scripts/invoke-plot_summary.texi releng/10.2/contrib/ntp/scripts/invoke-summary.texi releng/10.2/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi releng/10.2/contrib/ntp/scripts/ntp-wait/ntp-wait-opts releng/10.2/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman releng/10.2/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc releng/10.2/contrib/ntp/scripts/ntp-wait/ntp-wait.html releng/10.2/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in releng/10.2/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in releng/10.2/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi releng/10.2/contrib/ntp/scripts/ntpsweep/ntpsweep-opts releng/10.2/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman releng/10.2/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc releng/10.2/contrib/ntp/scripts/ntpsweep/ntpsweep.html releng/10.2/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in releng/10.2/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in releng/10.2/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi releng/10.2/contrib/ntp/scripts/ntptrace/ntptrace-opts releng/10.2/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman releng/10.2/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc releng/10.2/contrib/ntp/scripts/ntptrace/ntptrace.html releng/10.2/contrib/ntp/scripts/ntptrace/ntptrace.man.in releng/10.2/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in releng/10.2/contrib/ntp/scripts/plot_summary-opts releng/10.2/contrib/ntp/scripts/plot_summary.1plot_summaryman releng/10.2/contrib/ntp/scripts/plot_summary.1plot_summarymdoc releng/10.2/contrib/ntp/scripts/plot_summary.html releng/10.2/contrib/ntp/scripts/plot_summary.man.in releng/10.2/contrib/ntp/scripts/plot_summary.mdoc.in releng/10.2/contrib/ntp/scripts/summary-opts releng/10.2/contrib/ntp/scripts/summary.1summaryman releng/10.2/contrib/ntp/scripts/summary.1summarymdoc releng/10.2/contrib/ntp/scripts/summary.html releng/10.2/contrib/ntp/scripts/summary.man.in releng/10.2/contrib/ntp/scripts/summary.mdoc.in releng/10.2/contrib/ntp/scripts/update-leap/invoke-update-leap.texi releng/10.2/contrib/ntp/scripts/update-leap/update-leap-opts releng/10.2/contrib/ntp/scripts/update-leap/update-leap.1update-leapman releng/10.2/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc releng/10.2/contrib/ntp/scripts/update-leap/update-leap.html releng/10.2/contrib/ntp/scripts/update-leap/update-leap.man.in releng/10.2/contrib/ntp/scripts/update-leap/update-leap.mdoc.in releng/10.2/contrib/ntp/sntp/configure releng/10.2/contrib/ntp/sntp/crypto.c releng/10.2/contrib/ntp/sntp/crypto.h releng/10.2/contrib/ntp/sntp/include/copyright.def releng/10.2/contrib/ntp/sntp/include/version.def releng/10.2/contrib/ntp/sntp/include/version.texi releng/10.2/contrib/ntp/sntp/invoke-sntp.texi releng/10.2/contrib/ntp/sntp/libopts/configfile.c releng/10.2/contrib/ntp/sntp/libopts/enum.c releng/10.2/contrib/ntp/sntp/libopts/find.c releng/10.2/contrib/ntp/sntp/libopts/init.c releng/10.2/contrib/ntp/sntp/libopts/load.c releng/10.2/contrib/ntp/sntp/libopts/makeshell.c releng/10.2/contrib/ntp/sntp/libopts/nested.c releng/10.2/contrib/ntp/sntp/libopts/parse-duration.c releng/10.2/contrib/ntp/sntp/libopts/reset.c releng/10.2/contrib/ntp/sntp/libopts/save.c releng/10.2/contrib/ntp/sntp/libopts/tokenize.c releng/10.2/contrib/ntp/sntp/m4/version.m4 releng/10.2/contrib/ntp/sntp/main.c releng/10.2/contrib/ntp/sntp/networking.c releng/10.2/contrib/ntp/sntp/sntp-opts.c releng/10.2/contrib/ntp/sntp/sntp-opts.h releng/10.2/contrib/ntp/sntp/sntp.1sntpman releng/10.2/contrib/ntp/sntp/sntp.1sntpmdoc releng/10.2/contrib/ntp/sntp/sntp.html releng/10.2/contrib/ntp/sntp/sntp.man.in releng/10.2/contrib/ntp/sntp/sntp.mdoc.in releng/10.2/contrib/ntp/sntp/tests/crypto.c releng/10.2/contrib/ntp/sntp/tests/fileHandlingTest.c releng/10.2/contrib/ntp/sntp/tests/fileHandlingTest.h.in releng/10.2/contrib/ntp/sntp/tests/keyFile.c releng/10.2/contrib/ntp/sntp/tests/packetHandling.c releng/10.2/contrib/ntp/sntp/tests/packetProcessing.c releng/10.2/contrib/ntp/sntp/tests/run-packetProcessing.c releng/10.2/contrib/ntp/sntp/unity/unity_internals.h releng/10.2/contrib/ntp/sntp/version.c releng/10.2/contrib/ntp/tests/libntp/authkeys.c releng/10.2/contrib/ntp/tests/libntp/decodenetnum.c releng/10.2/contrib/ntp/tests/libntp/run-authkeys.c releng/10.2/contrib/ntp/tests/libntp/run-decodenetnum.c releng/10.2/contrib/ntp/tests/libntp/run-socktoa.c releng/10.2/contrib/ntp/tests/libntp/socktoa.c releng/10.2/contrib/ntp/tests/ntpd/t-ntp_signd.c releng/10.2/contrib/ntp/util/invoke-ntp-keygen.texi releng/10.2/contrib/ntp/util/ntp-keygen-opts.c releng/10.2/contrib/ntp/util/ntp-keygen-opts.h releng/10.2/contrib/ntp/util/ntp-keygen.1ntp-keygenman releng/10.2/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc releng/10.2/contrib/ntp/util/ntp-keygen.html releng/10.2/contrib/ntp/util/ntp-keygen.man.in releng/10.2/contrib/ntp/util/ntp-keygen.mdoc.in releng/10.2/sys/amd64/linux32/linux32_sysvec.c releng/10.2/sys/conf/newvers.sh releng/10.2/sys/i386/linux/linux_sysvec.c releng/10.2/usr.sbin/ntp/config.h releng/10.2/usr.sbin/ntp/doc/ntp-keygen.8 releng/10.2/usr.sbin/ntp/doc/ntp.conf.5 releng/10.2/usr.sbin/ntp/doc/ntp.keys.5 releng/10.2/usr.sbin/ntp/doc/ntpd.8 releng/10.2/usr.sbin/ntp/doc/ntpdc.8 releng/10.2/usr.sbin/ntp/doc/ntpq.8 releng/10.2/usr.sbin/ntp/doc/sntp.8 releng/10.2/usr.sbin/ntp/libntp/Makefile releng/10.2/usr.sbin/ntp/scripts/mkver Modified: releng/10.1/UPDATING ============================================================================== --- releng/10.1/UPDATING Wed Jan 27 07:34:23 2016 (r294903) +++ releng/10.1/UPDATING Wed Jan 27 07:41:31 2016 (r294904) @@ -16,6 +16,14 @@ from older versions of FreeBSD, try WITH stable/10, and then rebuild without this option. The bootstrap process from older version of current is a bit fragile. +20160127 p28 FreeBSD-SA-16:09.ntp + FreeBSD-SA-16:10.linux + + Fix multiple vulnerabilities of ntp. [SA-16:09] + + Fix Linux compatibility layer issetugid(2) system call + vulnerability. [SA-16:10] + 20160114 p27 FreeBSD-SA-16:07.openssh Fix OpenSSH client information leak. [SA-16:07] Modified: releng/10.1/contrib/ntp/ChangeLog ============================================================================== --- releng/10.1/contrib/ntp/ChangeLog Wed Jan 27 07:34:23 2016 (r294903) +++ releng/10.1/contrib/ntp/ChangeLog Wed Jan 27 07:41:31 2016 (r294904) @@ -1,4 +1,38 @@ --- +(4.2.8p6) 2016/01/20 Released by Harlan Stenn + +* [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. HStenn. +* [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. +* [Sec 2937] ntpq: nextvar() missing length check. perlinger@ntp.org +* [Sec 2938] ntpq saveconfig command allows dangerous characters + in filenames. perlinger@ntp.org +* [Sec 2939] reslist NULL pointer dereference. perlinger@ntp.org +* [Sec 2940] Stack exhaustion in recursive traversal of restriction + list. perlinger@ntp.org +* [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. +* [Sec 2945] Zero Origin Timestamp Bypass. perlinger@ntp.org +* [Sec 2948] Potential Infinite Loop in ntpq ( and ntpdc) perlinger@ntp.org +* [Bug 2772] adj_systime overflows tv_usec. perlinger@ntp.org +* [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org + - applied patch by shenpeng11@huawei.com with minor adjustments +* [Bug 2882] Look at ntp_request.c:list_peers_sum(). perlinger@ntp.org +* [Bug 2891] Deadlock in deferred DNS lookup framework. perlinger@ntp.org +* [Bug 2892] Several test cases assume IPv6 capabilities even when + IPv6 is disabled in the build. perlinger@ntp.org + - Found this already fixed, but validation led to cleanup actions. +* [Bug 2905] DNS lookups broken. perlinger@ntp.org + - added limits to stack consumption, fixed some return code handling +* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call + - changed stacked/nested handling of CTRL-C. perlinger@ntp.org + - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org +* [Bug 2980] reduce number of warnings. perlinger@ntp.org + - integrated several patches from Havard Eidnes (he@uninett.no) +* [Bug 2985] bogus calculation in authkeys.c perlinger@ntp.org + - implement 'auth_log2()' using integer bithack instead of float calculation +* Make leapsec_query debug messages less verbose. Harlan Stenn. +* Disable incomplete t-ntp_signd.c test. Harlan Stenn. + +--- (4.2.8p5) 2016/01/07 Released by Harlan Stenn * [Sec 2956] small-step/big-step. Close the panic gate earlier. HStenn. @@ -47,6 +81,7 @@ lots of clients. perlinger@ntp.org * [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call - changed stacked/nested handling of CTRL-C. perlinger@ntp.org + - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org * Unity cleanup for FreeBSD-6.4. Harlan Stenn. * Unity test cleanup. Harlan Stenn. * Libevent autoconf pthread fixes for FreeBSD-10. Harlan Stenn. @@ -55,9 +90,8 @@ * Quiet a warning from clang. Harlan Stenn. * Update the NEWS file. Harlan Stenn. * Update scripts/calc_tickadj/Makefile.am. Harlan Stenn. + --- -(4.2.8p4) 2015/10/21 Released by Harlan Stenn -(4.2.8p4-RC1) 2015/10/06 Released by Harlan Stenn * [Sec 2899] CVE-2014-9297 perlinger@ntp.org * [Sec 2901] Drop invalid packet before checking KoD. Check for all KoD's. Modified: releng/10.1/contrib/ntp/CommitLog ============================================================================== --- releng/10.1/contrib/ntp/CommitLog Wed Jan 27 07:34:23 2016 (r294903) +++ releng/10.1/contrib/ntp/CommitLog Wed Jan 27 07:41:31 2016 (r294904) @@ -1,8 +1,633 @@ -ChangeSet@1.3623, 2016-01-07 23:33:11+00:00, stenn@deacon.udel.edu +ChangeSet@1.3628, 2016-01-20 04:20:12-05:00, stenn@deacon.udel.edu + NTP_4_2_8P6 + TAG: NTP_4_2_8P6 + + ChangeLog@1.1793 +1 -0 + NTP_4_2_8P6 + + ntpd/invoke-ntp.conf.texi@1.196 +1 -1 + NTP_4_2_8P6 + + ntpd/invoke-ntp.keys.texi@1.188 +1 -1 + NTP_4_2_8P6 + + ntpd/invoke-ntpd.texi@1.504 +2 -2 + NTP_4_2_8P6 + + ntpd/ntp.conf.5man@1.230 +3 -3 + NTP_4_2_8P6 + + ntpd/ntp.conf.5mdoc@1.230 +2 -3 + NTP_4_2_8P6 + + ntpd/ntp.conf.html@1.183 +60 -2 + NTP_4_2_8P6 + + ntpd/ntp.conf.man.in@1.230 +3 -3 + NTP_4_2_8P6 + + ntpd/ntp.conf.mdoc.in@1.230 +2 -3 + NTP_4_2_8P6 + + ntpd/ntp.keys.5man@1.222 +2 -2 + NTP_4_2_8P6 + + ntpd/ntp.keys.5mdoc@1.222 +3 -3 + NTP_4_2_8P6 + + ntpd/ntp.keys.html@1.184 +21 -33 + NTP_4_2_8P6 + + ntpd/ntp.keys.man.in@1.222 +2 -2 + NTP_4_2_8P6 + + ntpd/ntp.keys.mdoc.in@1.222 +3 -3 + NTP_4_2_8P6 + + ntpd/ntpd-opts.c@1.526 +10 -10 + NTP_4_2_8P6 + + ntpd/ntpd-opts.h@1.525 +4 -4 + NTP_4_2_8P6 + + ntpd/ntpd.1ntpdman@1.333 +4 -4 + NTP_4_2_8P6 + + ntpd/ntpd.1ntpdmdoc@1.333 +3 -3 + NTP_4_2_8P6 + + ntpd/ntpd.html@1.177 +2 -2 + NTP_4_2_8P6 + + ntpd/ntpd.man.in@1.333 +4 -4 + NTP_4_2_8P6 + + ntpd/ntpd.mdoc.in@1.333 +3 -3 + NTP_4_2_8P6 + + ntpdc/invoke-ntpdc.texi@1.501 +2 -2 + NTP_4_2_8P6 + + ntpdc/ntpdc-opts.c@1.519 +10 -10 + NTP_4_2_8P6 + + ntpdc/ntpdc-opts.h@1.518 +4 -4 + NTP_4_2_8P6 + + ntpdc/ntpdc.1ntpdcman@1.332 +4 -4 + NTP_4_2_8P6 + + ntpdc/ntpdc.1ntpdcmdoc@1.332 +3 -3 + NTP_4_2_8P6 + + ntpdc/ntpdc.html@1.345 +2 -2 + NTP_4_2_8P6 + + ntpdc/ntpdc.man.in@1.332 +4 -4 + NTP_4_2_8P6 + + ntpdc/ntpdc.mdoc.in@1.332 +3 -3 + NTP_4_2_8P6 + + ntpq/invoke-ntpq.texi@1.508 +2 -2 + NTP_4_2_8P6 + + ntpq/ntpq-opts.c@1.525 +10 -10 + NTP_4_2_8P6 + + ntpq/ntpq-opts.h@1.523 +4 -4 + NTP_4_2_8P6 + + ntpq/ntpq.1ntpqman@1.336 +4 -4 + NTP_4_2_8P6 + + ntpq/ntpq.1ntpqmdoc@1.336 +3 -3 + NTP_4_2_8P6 + + ntpq/ntpq.html@1.174 +2 -2 + NTP_4_2_8P6 + + ntpq/ntpq.man.in@1.336 +4 -4 + NTP_4_2_8P6 + + ntpq/ntpq.mdoc.in@1.336 +3 -3 + NTP_4_2_8P6 + + ntpsnmpd/invoke-ntpsnmpd.texi@1.503 +2 -2 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd-opts.c@1.521 +10 -10 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd-opts.h@1.520 +4 -4 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.332 +4 -4 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.332 +3 -3 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.html@1.172 +1 -1 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.man.in@1.332 +4 -4 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.mdoc.in@1.332 +3 -3 + NTP_4_2_8P6 + + packageinfo.sh@1.524 +2 -2 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.93 +3 -3 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.94 +2 -2 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.html@1.95 +1 -1 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.man.in@1.92 +3 -3 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.mdoc.in@1.94 +2 -2 + NTP_4_2_8P6 + + scripts/calc_tickadj/invoke-calc_tickadj.texi@1.97 +1 -1 + NTP_4_2_8P6 + + scripts/invoke-plot_summary.texi@1.114 +2 -2 + NTP_4_2_8P6 + + scripts/invoke-summary.texi@1.114 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/invoke-ntp-wait.texi@1.324 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait-opts@1.60 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.1ntp-waitman@1.321 +3 -3 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.322 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.html@1.341 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.man.in@1.321 +3 -3 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.mdoc.in@1.322 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/invoke-ntpsweep.texi@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep-opts@1.62 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.1ntpsweepman@1.100 +3 -3 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.100 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.html@1.113 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.man.in@1.100 +3 -3 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.mdoc.in@1.101 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/invoke-ntptrace.texi@1.113 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace-opts@1.62 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.1ntptraceman@1.100 +3 -3 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.1ntptracemdoc@1.101 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.html@1.114 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.man.in@1.100 +3 -3 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.mdoc.in@1.102 +2 -2 + NTP_4_2_8P6 + + scripts/plot_summary-opts@1.62 +2 -2 + NTP_4_2_8P6 + + scripts/plot_summary.1plot_summaryman@1.112 +3 -3 + NTP_4_2_8P6 + + scripts/plot_summary.1plot_summarymdoc@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/plot_summary.html@1.115 +2 -2 + NTP_4_2_8P6 + + scripts/plot_summary.man.in@1.112 +3 -3 + NTP_4_2_8P6 + + scripts/plot_summary.mdoc.in@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/summary-opts@1.62 +2 -2 + NTP_4_2_8P6 + + scripts/summary.1summaryman@1.112 +3 -3 + NTP_4_2_8P6 + + scripts/summary.1summarymdoc@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/summary.html@1.115 +2 -2 + NTP_4_2_8P6 + + scripts/summary.man.in@1.112 +3 -3 + NTP_4_2_8P6 + + scripts/summary.mdoc.in@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/update-leap/invoke-update-leap.texi@1.13 +1 -1 + NTP_4_2_8P6 + + scripts/update-leap/update-leap-opts@1.13 +2 -2 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.1update-leapman@1.13 +3 -3 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.1update-leapmdoc@1.13 +2 -2 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.html@1.13 +1 -1 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.man.in@1.13 +3 -3 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.mdoc.in@1.13 +2 -2 + NTP_4_2_8P6 + + sntp/invoke-sntp.texi@1.501 +2 -2 + NTP_4_2_8P6 + + sntp/sntp-opts.c@1.520 +10 -10 + NTP_4_2_8P6 + + sntp/sntp-opts.h@1.518 +4 -4 + NTP_4_2_8P6 + + sntp/sntp.1sntpman@1.336 +4 -4 + NTP_4_2_8P6 + + sntp/sntp.1sntpmdoc@1.336 +3 -3 + NTP_4_2_8P6 + + sntp/sntp.html@1.516 +2 -2 + NTP_4_2_8P6 + + sntp/sntp.man.in@1.336 +4 -4 + NTP_4_2_8P6 + + sntp/sntp.mdoc.in@1.336 +3 -3 + NTP_4_2_8P6 + + util/invoke-ntp-keygen.texi@1.504 +2 -2 + NTP_4_2_8P6 + + util/ntp-keygen-opts.c@1.522 +10 -10 + NTP_4_2_8P6 + + util/ntp-keygen-opts.h@1.520 +4 -4 + NTP_4_2_8P6 + + util/ntp-keygen.1ntp-keygenman@1.332 +4 -4 + NTP_4_2_8P6 + + util/ntp-keygen.1ntp-keygenmdoc@1.332 +3 -3 + NTP_4_2_8P6 + + util/ntp-keygen.html@1.178 +2 -2 + NTP_4_2_8P6 + + util/ntp-keygen.man.in@1.332 +4 -4 + NTP_4_2_8P6 + + util/ntp-keygen.mdoc.in@1.332 +3 -3 + NTP_4_2_8P6 + +ChangeSet@1.3627, 2016-01-20 04:14:51-05:00, stenn@deacon.udel.edu + solaris hack + + libntp/work_thread.c@1.20 +2 -0 + solaris hack + +ChangeSet@1.3626, 2016-01-20 01:50:09-05:00, stenn@deacon.udel.edu + 4.2.8p6 + + packageinfo.sh@1.523 +1 -1 + 4.2.8p6 + +ChangeSet@1.3625, 2016-01-20 00:34:15+00:00, stenn@psp-deb1.ntp.org + updates + + NEWS@1.160 +24 -24 + updates + +ChangeSet@1.3624, 2016-01-19 22:28:41+00:00, stenn@psp-deb1.ntp.org + typo + + NEWS@1.159 +1 -1 + typo + +ChangeSet@1.3623, 2016-01-18 11:55:56+00:00, stenn@psp-deb1.ntp.org + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ChangeLog@1.1792 +1 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + NEWS@1.158 +40 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + include/Makefile.am@1.54 +1 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + include/ntp_io.h@1.23 +2 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + include/ntp_keyacc.h@1.1 +13 -0 + BitKeeper file /home/stenn/ntp-stable-2936/include/ntp_keyacc.h + + include/ntp_keyacc.h@1.0 +0 -0 + + include/ntp_stdlib.h@1.81 +4 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + include/ntp_types.h@1.36 +1 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/Makefile.am@1.77 +1 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/authkeys.c@1.31 +60 -6 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/authreadkeys.c@1.25 +50 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/authusekey.c@1.11 +1 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/is_ip_address.c@1.1 +129 -0 + BitKeeper file /home/stenn/ntp-stable-2936/libntp/is_ip_address.c + + libntp/is_ip_address.c@1.0 +0 -0 + + ntpd/invoke-ntp.keys.texi@1.187 +11 -3 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.5man@1.221 +13 -5 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.5mdoc@1.221 +14 -6 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.def@1.11 +10 -2 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.html@1.183 +42 -22 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.man.in@1.221 +13 -5 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.mdoc.in@1.221 +14 -6 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp_crypto.c@1.186 +1 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp_io.c@1.412 +0 -72 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp_proto.c@1.373 +34 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + tests/libntp/authkeys.c@1.15 +1 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + +ChangeSet@1.3622, 2016-01-17 09:03:57+00:00, stenn@psp-deb1.ntp.org + Disable incomplete t-ntp_signd.c test. Harlan Stenn. + + ChangeLog@1.1791 +1 -0 + Disable incomplete t-ntp_signd.c test. Harlan Stenn. + + tests/ntpd/t-ntp_signd.c@1.16 +4 -0 + Disable incomplete t-ntp_signd.c test. Harlan Stenn. + +ChangeSet@1.3621, 2016-01-17 05:51:14+00:00, stenn@psp-deb1.ntp.org + Update NEWS file for 2942 + + NEWS@1.157 +22 -0 + Update NEWS file for 2942 + +ChangeSet@1.3615.13.1, 2016-01-17 05:07:22+00:00, stenn@psp-deb1.ntp.org + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ChangeLog@1.1786.13.1 +4 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + html/miscopt.html@1.85 +11 -3 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + include/ntp.h@1.213.1.1 +3 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/invoke-ntp.conf.texi@1.195 +64 -3 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/keyword-gen-utd@1.27 +1 -1 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/keyword-gen.c@1.33 +3 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.5man@1.229 +71 -7 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.5mdoc@1.229 +71 -7 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.def@1.21 +67 -4 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.man.in@1.229 +71 -7 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.mdoc.in@1.229 +71 -7 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_config.c@1.335.1.1 +12 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_keyword.h@1.29 +505 -468 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_parser.c@1.101 +1762 -1513 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_parser.h@1.65 +257 -235 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_parser.y@1.91 +6 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_proto.c@1.368.2.1 +40 -4 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + +ChangeSet@1.3619, 2016-01-14 12:19:16+00:00, stenn@psp-at1.ntp.org + NEWS file updates + + NEWS@1.156 +21 -0 + NEWS file updates + +ChangeSet@1.3615.1.9, 2016-01-14 11:33:43+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.1.9 +3 -0 + merge cleanup + +ChangeSet@1.3615.1.5, 2016-01-14 10:44:13+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.1.5 +0 -1 + merge cleanup + +ChangeSet@1.3615.12.4, 2016-01-14 10:27:23+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.12.4 +1 -1 + merge cleanup + +ChangeSet@1.3615.12.2, 2016-01-14 09:49:52+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.12.2 +2 -2 + merge cleanup + +ChangeSet@1.3615.3.17, 2016-01-14 09:33:56+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.3.14 +1 -1 + merge cleanup + +ChangeSet@1.3615.3.14, 2016-01-14 07:36:57+00:00, stenn@psp-at1.ntp.org + NEWS update + + NEWS@1.155 +98 -7 + NEWS update + +ChangeSet@1.3615.3.12, 2016-01-13 08:07:30+00:00, stenn@psp-deb1.ntp.org + typo + + ChangeLog@1.1786.3.10 +1 -1 + typo + +ChangeSet@1.3615.3.10, 2016-01-13 06:08:29+00:00, stenn@psp-deb1.ntp.org + Update NEWS file for bug 2938 + + NEWS@1.154 +29 -2 + Update NEWS file for bug 2938 + +ChangeSet@1.3615.3.8, 2016-01-13 04:23:46+00:00, stenn@psp-deb1.ntp.org + Update NEWS file for bug 2935 + + NEWS@1.153 +52 -0 + Update NEWS file for bug 2935 + +ChangeSet@1.3615.7.12, 2016-01-12 09:53:06+00:00, stenn@psp-at1.ntp.org + [Sec 2935] use L_SUB instead of L_ISGT. Juergen Perlinger + + ntpd/ntp_proto.c@1.368.1.5 +4 -1 + [Sec 2935] use L_SUB instead of L_ISGT. Juergen Perlinger + +ChangeSet@1.3615.7.11, 2016-01-11 03:02:53-08:00, harlan@max.pfcs.com + [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. + + ChangeLog@1.1786.9.1 +4 -0 + [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. + + include/ntp.h@1.215 +1 -0 + [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. + + ntpd/ntp_proto.c@1.368.1.4 +67 -0 + [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. + +ChangeSet@1.3615.7.10, 2016-01-11 02:44:25-08:00, harlan@max.pfcs.com + make leapsec_query messages less verbose. + + ntpd/ntp_timer.c@1.93.1.1 +6 -4 + make leapsec_query messages less verbose. + +ChangeSet@1.3615.9.1, 2016-01-11 10:26:12+01:00, jnperlin@hydra.localnet + [Bug 2985] bogus calculation in authkeys.c + - implement 'auth_log2()' using integer bithack instead of float calculation + + ChangeLog@1.1786.7.5 +2 -0 + [Bug 2985] bogus calculation in authkeys.c + - implement 'auth_log2()' using integer bithack instead of float calculation + + libntp/authkeys.c@1.30 +33 -10 + [Bug 2985] bogus calculation in authkeys.c + - implement 'auth_log2()' using integer bithack instead of float calculation + + tests/libntp/authkeys.c@1.14 +38 -0 + [Bug 2985] bogus calculation in authkeys.c + - test bithack implementation of 'auth_log2()' + + tests/libntp/run-authkeys.c@1.12 +9 -6 + [Bug 2985] bogus calculation in authkeys.c + - update auto-generated file + +ChangeSet@1.3615.7.9, 2016-01-09 09:52:44+00:00, stenn@psp-at1.ntp.org + Add timelastrec to the peer structure + + include/ntp.h@1.214 +2 -1 + Add timelastrec to the peer structure + +ChangeSet@1.3615.3.6, 2016-01-08 10:00:03+00:00, stenn@psp-at1.ntp.org + 4.2.8p5 merge cleanup + + ChangeLog@1.1786.3.6 +1 -1 + 4.2.8p5 merge cleanup + +ChangeSet@1.3615.7.8, 2016-01-08 00:26:09+00:00, stenn@deacon.udel.edu + Update copyright year + + sntp/include/copyright.def@1.26 +1 -1 + Update copyright year + +ChangeSet@1.3615.7.7, 2016-01-07 23:33:11+00:00, stenn@deacon.udel.edu NTP_4_2_8P5 TAG: NTP_4_2_8P5 - ChangeLog@1.1791 +1 -0 + ChangeLog@1.1786.7.4 +1 -0 NTP_4_2_8P5 ntpd/invoke-ntp.conf.texi@1.194 +1 -1 @@ -332,60 +957,349 @@ ChangeSet@1.3623, 2016-01-07 23:33:11+00 util/ntp-keygen.mdoc.in@1.331 +2 -2 NTP_4_2_8P5 -ChangeSet@1.3622, 2016-01-07 17:52:24-05:00, stenn@deacon.udel.edu +ChangeSet@1.3615.7.6, 2016-01-07 17:52:24-05:00, stenn@deacon.udel.edu ntp-4.2.8p5 packageinfo.sh@1.521 +1 -1 ntp-4.2.8p5 -ChangeSet@1.3621, 2016-01-07 22:20:05+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.7.5, 2016-01-07 22:20:05+00:00, stenn@psp-at1.ntp.org cleanup NEWS@1.152 +2 -2 cleanup -ChangeSet@1.3620, 2016-01-07 09:33:11+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.7.4, 2016-01-07 09:33:11+00:00, stenn@psp-at1.ntp.org typo in ntp_proto.c - leap smear. Reported by Martin Burnicki - ntpd/ntp_proto.c@1.371 +1 -1 + ntpd/ntp_proto.c@1.368.1.3 +1 -1 typo in ntp_proto.c - leap smear. Reported by Martin Burnicki -ChangeSet@1.3619, 2016-01-07 06:33:08+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.7.3, 2016-01-07 06:33:08+00:00, stenn@psp-at1.ntp.org Update scripts/calc_tickadj/Makefile.am. Harlan Stenn. - ChangeLog@1.1790 +1 -0 + ChangeLog@1.1786.7.3 +1 -0 Update scripts/calc_tickadj/Makefile.am. Harlan Stenn. scripts/calc_tickadj/Makefile.am@1.11 +2 -0 Update scripts/calc_tickadj/Makefile.am. Harlan Stenn. -ChangeSet@1.3616.1.1, 2016-01-05 10:57:45+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.3.2, 2016-01-05 12:34:56+00:00, stenn@psp-at1.ntp.org + ntp-4.2.8p6 + + ChangeLog@1.1786.3.2 +2 -0 + ntp-4.2.8p6 + +ChangeSet@1.3615.8.1, 2016-01-05 10:57:45+00:00, stenn@psp-at1.ntp.org Bug 2952 fixes - ChangeLog@1.1787.1.1 +1 -0 + ChangeLog@1.1786.8.1 +1 -0 Bug 2952 fixes - ntpd/ntp_proto.c@1.370 +165 -152 + ntpd/ntp_proto.c@1.368.1.2 +165 -152 Bug 2952 fixes -ChangeSet@1.3617, 2016-01-05 09:56:31+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.7.1, 2016-01-05 09:56:31+00:00, stenn@psp-at1.ntp.org ntp-4.2.8p5 prep - ChangeLog@1.1788 +2 -1 + ChangeLog@1.1786.7.1 +2 -1 ntp-4.2.8p5 prep NEWS@1.151 +104 -3 ntp-4.2.8p5 prep -ChangeSet@1.3616, 2015-12-06 11:20:02+00:00, stenn@psp-deb1.ntp.org +ChangeSet@1.3615.5.1, 2015-12-13 13:35:12+01:00, jnperlin@hydra.localnet + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + Found this already fixed, but validation lead to further cleanup: + - source code formatting + - inline variable definitions moved to start of block + - made some pure input data pointers 'const void*' instead of 'char*'; avoids casts and warnings + + ChangeLog@1.1786.5.1 +3 -0 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + + sntp/crypto.c@1.19 +13 -12 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - sidekick: make pure input pointers 'const void*' instead of 'char*' + - sidekick: remove unnecessary casts + + sntp/crypto.h@1.11 +11 -9 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - sidekick: make pure input pointers 'const void*' instead of 'char*' + - source formatting + + sntp/main.c@1.99 +1 -1 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - no need to cast input to 'make_mac()' any more + + sntp/networking.c@1.68 +1 -1 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - no need to cast input to 'auth_md5()' any more + + sntp/tests/crypto.c@1.10 +41 -27 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - remove unnecessary casts + - source code formatting + + sntp/tests/fileHandlingTest.c@1.4 +43 -20 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - create 'DestroyPath()' companion to 'CreatePath()' to avoid trouble with 'free()' on 'const char*' + + sntp/tests/fileHandlingTest.h.in@1.15 +6 -15 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - create 'DestroyPath()' companion to 'CreatePath()' to avoid trouble with 'free()' on 'const char*' + + sntp/tests/keyFile.c@1.13 +66 -46 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - use 'DestroyPath()' avoid trouble with 'free()' on 'const char*' + - printf() combined + - source code formatting + - move variable declarations to front + + sntp/tests/packetHandling.c@1.6 +75 -64 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - move variable declarations to front + - source code formatting + + sntp/tests/packetProcessing.c@1.9 +124 -90 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - move variable declarations to front + - source code formatting + - drop unnecessary casts + + sntp/tests/run-packetProcessing.c@1.10 +18 -18 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + + sntp/unity/unity_internals.h@1.6 +1 -1 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - added missing 'const' in pointer casts + + tests/libntp/decodenetnum.c@1.11 +33 -23 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - source code formatting + cleanup + + tests/libntp/run-decodenetnum.c@1.11 +4 -4 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + + tests/libntp/run-socktoa.c@1.14 +5 -5 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + + tests/libntp/socktoa.c@1.12 +23 -17 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - source code formatting + cleanup + +ChangeSet@1.3615.4.1, 2015-12-11 18:24:16+01:00, jnperlin@hydra.localnet + [Bug 2882] Look at ntp_request.c:list_peers_sum() + + ChangeLog@1.1786.4.1 +1 -0 + [Bug 2882] Look at ntp_request.c:list_peers_sum() + + ntpd/ntp_request.c@1.116 +57 -72 + [Bug 2882] Look at ntp_request.c:list_peers_sum() + - 'list_peers()' and 'list_peers_sum()' skip IPv6 entires if client does not support them, + but continue processing until end of list now. + +ChangeSet@1.3615.1.3, 2015-12-09 18:23:31+01:00, jnperlin@hydra.localnet + [Bug 2891] Deadlock in deferred DNS lookup framework. + + ChangeLog@1.1786.1.3 +1 -0 + [Bug 2891] Deadlock in deferred DNS lookup framework. + + include/ntp_worker.h@1.5 +31 -22 + [Bug 2891] Deadlock in deferred DNS lookup framework. + - provide signal-safe result-ready detection + + libntp/ntp_worker.c@1.7 +27 -0 + [Bug 2891] Deadlock in deferred DNS lookup framework. + - support signal-safe result-ready detection + - provide function to harvest async results from mainloop + + ntpd/ntp_io.c@1.409.1.1 +160 -133 + [Bug 2891] Deadlock in deferred DNS lookup framework. + - do not process async-resolver results from signal handler + - set notification tags to harvest asyn-resolver results from mainloop + - avoid double select for synchronous IO + - avoid several syslog calls in signal-handler context + - refactor / conditionalize some functions that cannot be used in signal-driven IO + + ntpd/ntpd.c@1.169 +4 -0 + [Bug 2891] Deadlock in deferred DNS lookup framework. + - reap/harvest async resolver results from mainloop + +ChangeSet@1.3615.1.2, 2015-12-06 21:33:26+01:00, jnperlin@hydra.localnet + [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org + - applied patch by shenpeng11@huawei.com with minor adjustments + + ChangeLog@1.1786.1.2 +2 -0 + [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org + - applied patch by shenpeng11@huawei.com with minor adjustments + + ntpd/ntpd.c@1.168 +26 -3 + [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org + - applied patch by shenpeng11@huawei.com with minor adjustments + +ChangeSet@1.3615.2.1, 2015-12-06 20:19:32+01:00, jnperlin@hydra.localnet + [Bug 2772] adj_systime overflows tv_usec + + ChangeLog@1.1786.2.1 +1 -0 + [Bug 2772] adj_systime overflows tv_usec + + libntp/systime.c@1.71 +12 -3 + [Bug 2772] adj_systime overflows tv_usec + - add missing normalisation for nitpicking implementations of 'adjtime()' + +ChangeSet@1.3615.1.1, 2015-12-06 11:20:02+00:00, stenn@psp-deb1.ntp.org Quiet a warning from clang. Harlan Stenn. - ChangeLog@1.1787 +1 -0 + ChangeLog@1.1786.1.1 +1 -0 Quiet a warning from clang. Harlan Stenn. libntp/ntp_rfc2553.c@1.50 +3 -2 Quiet a warning from clang. Harlan Stenn. +ChangeSet@1.3616, 2015-12-05 20:28:19+00:00, perlinger@psp-deb1.ntp.org + [Bug 2980] reduce number of warnings + - string formatting(arguments should be literals) + - applying constness where necessary + - removing bad consts that are superfluous + - avoid signed/unsigned clashes in conditionals (either by cast or type change) + - signed/unsigned and promotion conflicts + - add prototypes for function pointer tables + - force unsigned argument promotion in calls to 'ctype' functions (is{digit,cntrl,...}) + + ChangeLog@1.1787 +2 -0 + [Bug 2980] reduce number of warnings + + include/parse.h@1.14 +3 -3 + [Bug 2980] reduce number of warnings + - make GPSWRAP and GPSWEEK unqualified literals to avoid signed/unsigned clashes + + ntpd/ntp_config.c@1.336 +2 -0 + [Bug 2980] reduce number of warnings + - add forward declaration of yyparse() + + ntpd/ntp_io.c@1.410 +1 -1 + [Bug 2980] reduce number of warnings + - fix a signedness comparison by adding a cast to size_t + + ntpd/ntp_scanner.c@1.49 +1 -1 + [Bug 2980] reduce number of warnings + - for type compatibility, make counter 'i' a size_t + + ntpd/ntp_timer.c@1.94 +5 -6 + [Bug 2980] reduce number of warnings + - fix a signed / unsigned compare + + ntpd/refclock_chu.c@1.58 +1 -1 + [Bug 2980] reduce number of warnings + - rewrite check to avoid warning about integer overflow + + ntpd/refclock_gpsdjson.c@1.24 +13 -15 + [Bug 2980] reduce number of warnings + - reshuffle to use a literal format string + - fix signed/unsigned clashes in compare + + ntpd/refclock_jjy.c@1.30 +47 -44 + Bug 2980 - reduce number of warnings + - make several pointers 'const char*' + - add prototypes for function pointer tables + - force unsigned argument promotion in calls to 'ctype' functions (is{digit,cntrl,...}) + + ntpd/refclock_shm.c@1.39 +1 -1 + [Bug 2980] reduce number of warnings + - fix signed/unsigned clashes in compare + + ntpq/ntpq-subs.c@1.114.1.1 +1 -1 + [Bug 2980] reduce number of warnings + - avoid signed/unsigned clashe in compare + + ntpq/ntpq.c@1.165.1.1 +47 -7 + [Bug 2980] reduce number of warnings + - avoid juggling with formatting into dynamic buffers by a 'asprintf' like function + + sntp/libopts/configfile.c@1.24 +22 -22 + [Bug 2980] reduce number of warnings + - add some pointer constness to avoid casting it away + + sntp/libopts/enum.c@1.14 +5 -5 + [Bug 2980] reduce number of warnings + - avoid some unnecessary casts + - avoid shift/promote ambiguity by proper typing *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Jan 27 07:42:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D32FFA6F75F; Wed, 27 Jan 2016 07:42:13 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6E0211A67; Wed, 27 Jan 2016 07:42:13 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0R7gCU8056931; Wed, 27 Jan 2016 07:42:12 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0R7gCh7056926; Wed, 27 Jan 2016 07:42:12 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201601270742.u0R7gCh7056926@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 27 Jan 2016 07:42:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r294905 - in releng/9.3: . contrib/bind9/lib/dns/rdata/in_1 contrib/ntp contrib/ntp/html contrib/ntp/include contrib/ntp/libntp contrib/ntp/ntpd contrib/ntp/ntpdc contrib/ntp/ntpq contr... X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 07:42:14 -0000 Author: delphij Date: Wed Jan 27 07:42:11 2016 New Revision: 294905 URL: https://svnweb.freebsd.org/changeset/base/294905 Log: Fix BIND remote denial of service vulnerability. [SA-16:08] Fix multiple vulnerabilities of ntp. [SA-16:09] Fix Linux compatibility layer issetugid(2) system call vulnerability. [SA-16:10] Security: FreeBSD-SA-16:08.bind Security: FreeBSD-SA-16:09.ntp Security: FreeBSD-SA-16:10.linux Approved by: so Added: releng/9.3/contrib/ntp/include/ntp_keyacc.h releng/9.3/contrib/ntp/libntp/is_ip_address.c Modified: releng/9.3/UPDATING releng/9.3/contrib/bind9/lib/dns/rdata/in_1/apl_42.c releng/9.3/contrib/ntp/ChangeLog releng/9.3/contrib/ntp/CommitLog releng/9.3/contrib/ntp/NEWS releng/9.3/contrib/ntp/configure releng/9.3/contrib/ntp/html/miscopt.html releng/9.3/contrib/ntp/include/Makefile.am releng/9.3/contrib/ntp/include/Makefile.in releng/9.3/contrib/ntp/include/ntp.h releng/9.3/contrib/ntp/include/ntp_io.h releng/9.3/contrib/ntp/include/ntp_stdlib.h releng/9.3/contrib/ntp/include/ntp_types.h releng/9.3/contrib/ntp/include/ntp_worker.h releng/9.3/contrib/ntp/include/parse.h releng/9.3/contrib/ntp/libntp/Makefile.am releng/9.3/contrib/ntp/libntp/Makefile.in releng/9.3/contrib/ntp/libntp/authkeys.c releng/9.3/contrib/ntp/libntp/authreadkeys.c releng/9.3/contrib/ntp/libntp/authusekey.c releng/9.3/contrib/ntp/libntp/ntp_worker.c releng/9.3/contrib/ntp/libntp/systime.c releng/9.3/contrib/ntp/libntp/work_thread.c releng/9.3/contrib/ntp/ntpd/invoke-ntp.conf.texi releng/9.3/contrib/ntp/ntpd/invoke-ntp.keys.texi releng/9.3/contrib/ntp/ntpd/invoke-ntpd.texi releng/9.3/contrib/ntp/ntpd/keyword-gen-utd releng/9.3/contrib/ntp/ntpd/keyword-gen.c releng/9.3/contrib/ntp/ntpd/ntp.conf.5man releng/9.3/contrib/ntp/ntpd/ntp.conf.5mdoc releng/9.3/contrib/ntp/ntpd/ntp.conf.def releng/9.3/contrib/ntp/ntpd/ntp.conf.html releng/9.3/contrib/ntp/ntpd/ntp.conf.man.in releng/9.3/contrib/ntp/ntpd/ntp.conf.mdoc.in releng/9.3/contrib/ntp/ntpd/ntp.keys.5man releng/9.3/contrib/ntp/ntpd/ntp.keys.5mdoc releng/9.3/contrib/ntp/ntpd/ntp.keys.def releng/9.3/contrib/ntp/ntpd/ntp.keys.html releng/9.3/contrib/ntp/ntpd/ntp.keys.man.in releng/9.3/contrib/ntp/ntpd/ntp.keys.mdoc.in releng/9.3/contrib/ntp/ntpd/ntp_config.c releng/9.3/contrib/ntp/ntpd/ntp_control.c releng/9.3/contrib/ntp/ntpd/ntp_crypto.c releng/9.3/contrib/ntp/ntpd/ntp_io.c releng/9.3/contrib/ntp/ntpd/ntp_keyword.h releng/9.3/contrib/ntp/ntpd/ntp_parser.c releng/9.3/contrib/ntp/ntpd/ntp_parser.h releng/9.3/contrib/ntp/ntpd/ntp_proto.c releng/9.3/contrib/ntp/ntpd/ntp_request.c releng/9.3/contrib/ntp/ntpd/ntp_scanner.c releng/9.3/contrib/ntp/ntpd/ntp_timer.c releng/9.3/contrib/ntp/ntpd/ntpd-opts.c releng/9.3/contrib/ntp/ntpd/ntpd-opts.h releng/9.3/contrib/ntp/ntpd/ntpd.1ntpdman releng/9.3/contrib/ntp/ntpd/ntpd.1ntpdmdoc releng/9.3/contrib/ntp/ntpd/ntpd.c releng/9.3/contrib/ntp/ntpd/ntpd.html releng/9.3/contrib/ntp/ntpd/ntpd.man.in releng/9.3/contrib/ntp/ntpd/ntpd.mdoc.in releng/9.3/contrib/ntp/ntpd/refclock_chu.c releng/9.3/contrib/ntp/ntpd/refclock_gpsdjson.c releng/9.3/contrib/ntp/ntpd/refclock_jjy.c releng/9.3/contrib/ntp/ntpd/refclock_shm.c releng/9.3/contrib/ntp/ntpdc/invoke-ntpdc.texi releng/9.3/contrib/ntp/ntpdc/ntpdc-opts.c releng/9.3/contrib/ntp/ntpdc/ntpdc-opts.h releng/9.3/contrib/ntp/ntpdc/ntpdc.1ntpdcman releng/9.3/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc releng/9.3/contrib/ntp/ntpdc/ntpdc.c releng/9.3/contrib/ntp/ntpdc/ntpdc.html releng/9.3/contrib/ntp/ntpdc/ntpdc.man.in releng/9.3/contrib/ntp/ntpdc/ntpdc.mdoc.in releng/9.3/contrib/ntp/ntpq/invoke-ntpq.texi releng/9.3/contrib/ntp/ntpq/ntpq-opts.c releng/9.3/contrib/ntp/ntpq/ntpq-opts.h releng/9.3/contrib/ntp/ntpq/ntpq-subs.c releng/9.3/contrib/ntp/ntpq/ntpq.1ntpqman releng/9.3/contrib/ntp/ntpq/ntpq.1ntpqmdoc releng/9.3/contrib/ntp/ntpq/ntpq.c releng/9.3/contrib/ntp/ntpq/ntpq.html releng/9.3/contrib/ntp/ntpq/ntpq.man.in releng/9.3/contrib/ntp/ntpq/ntpq.mdoc.in releng/9.3/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi releng/9.3/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c releng/9.3/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h releng/9.3/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman releng/9.3/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc releng/9.3/contrib/ntp/ntpsnmpd/ntpsnmpd.html releng/9.3/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in releng/9.3/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in releng/9.3/contrib/ntp/packageinfo.sh releng/9.3/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman releng/9.3/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc releng/9.3/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html releng/9.3/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in releng/9.3/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in releng/9.3/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi releng/9.3/contrib/ntp/scripts/invoke-plot_summary.texi releng/9.3/contrib/ntp/scripts/invoke-summary.texi releng/9.3/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi releng/9.3/contrib/ntp/scripts/ntp-wait/ntp-wait-opts releng/9.3/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman releng/9.3/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc releng/9.3/contrib/ntp/scripts/ntp-wait/ntp-wait.html releng/9.3/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in releng/9.3/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in releng/9.3/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi releng/9.3/contrib/ntp/scripts/ntpsweep/ntpsweep-opts releng/9.3/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman releng/9.3/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc releng/9.3/contrib/ntp/scripts/ntpsweep/ntpsweep.html releng/9.3/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in releng/9.3/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in releng/9.3/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi releng/9.3/contrib/ntp/scripts/ntptrace/ntptrace-opts releng/9.3/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman releng/9.3/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc releng/9.3/contrib/ntp/scripts/ntptrace/ntptrace.html releng/9.3/contrib/ntp/scripts/ntptrace/ntptrace.man.in releng/9.3/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in releng/9.3/contrib/ntp/scripts/plot_summary-opts releng/9.3/contrib/ntp/scripts/plot_summary.1plot_summaryman releng/9.3/contrib/ntp/scripts/plot_summary.1plot_summarymdoc releng/9.3/contrib/ntp/scripts/plot_summary.html releng/9.3/contrib/ntp/scripts/plot_summary.man.in releng/9.3/contrib/ntp/scripts/plot_summary.mdoc.in releng/9.3/contrib/ntp/scripts/summary-opts releng/9.3/contrib/ntp/scripts/summary.1summaryman releng/9.3/contrib/ntp/scripts/summary.1summarymdoc releng/9.3/contrib/ntp/scripts/summary.html releng/9.3/contrib/ntp/scripts/summary.man.in releng/9.3/contrib/ntp/scripts/summary.mdoc.in releng/9.3/contrib/ntp/scripts/update-leap/invoke-update-leap.texi releng/9.3/contrib/ntp/scripts/update-leap/update-leap-opts releng/9.3/contrib/ntp/scripts/update-leap/update-leap.1update-leapman releng/9.3/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc releng/9.3/contrib/ntp/scripts/update-leap/update-leap.html releng/9.3/contrib/ntp/scripts/update-leap/update-leap.man.in releng/9.3/contrib/ntp/scripts/update-leap/update-leap.mdoc.in releng/9.3/contrib/ntp/sntp/configure releng/9.3/contrib/ntp/sntp/crypto.c releng/9.3/contrib/ntp/sntp/crypto.h releng/9.3/contrib/ntp/sntp/include/copyright.def releng/9.3/contrib/ntp/sntp/include/version.def releng/9.3/contrib/ntp/sntp/include/version.texi releng/9.3/contrib/ntp/sntp/invoke-sntp.texi releng/9.3/contrib/ntp/sntp/libopts/configfile.c releng/9.3/contrib/ntp/sntp/libopts/enum.c releng/9.3/contrib/ntp/sntp/libopts/find.c releng/9.3/contrib/ntp/sntp/libopts/init.c releng/9.3/contrib/ntp/sntp/libopts/load.c releng/9.3/contrib/ntp/sntp/libopts/makeshell.c releng/9.3/contrib/ntp/sntp/libopts/nested.c releng/9.3/contrib/ntp/sntp/libopts/parse-duration.c releng/9.3/contrib/ntp/sntp/libopts/reset.c releng/9.3/contrib/ntp/sntp/libopts/save.c releng/9.3/contrib/ntp/sntp/libopts/tokenize.c releng/9.3/contrib/ntp/sntp/m4/version.m4 releng/9.3/contrib/ntp/sntp/main.c releng/9.3/contrib/ntp/sntp/networking.c releng/9.3/contrib/ntp/sntp/sntp-opts.c releng/9.3/contrib/ntp/sntp/sntp-opts.h releng/9.3/contrib/ntp/sntp/sntp.1sntpman releng/9.3/contrib/ntp/sntp/sntp.1sntpmdoc releng/9.3/contrib/ntp/sntp/sntp.html releng/9.3/contrib/ntp/sntp/sntp.man.in releng/9.3/contrib/ntp/sntp/sntp.mdoc.in releng/9.3/contrib/ntp/sntp/tests/crypto.c releng/9.3/contrib/ntp/sntp/tests/fileHandlingTest.c releng/9.3/contrib/ntp/sntp/tests/fileHandlingTest.h.in releng/9.3/contrib/ntp/sntp/tests/keyFile.c releng/9.3/contrib/ntp/sntp/tests/packetHandling.c releng/9.3/contrib/ntp/sntp/tests/packetProcessing.c releng/9.3/contrib/ntp/sntp/tests/run-packetProcessing.c releng/9.3/contrib/ntp/sntp/unity/unity_internals.h releng/9.3/contrib/ntp/sntp/version.c releng/9.3/contrib/ntp/tests/libntp/authkeys.c releng/9.3/contrib/ntp/tests/libntp/decodenetnum.c releng/9.3/contrib/ntp/tests/libntp/run-authkeys.c releng/9.3/contrib/ntp/tests/libntp/run-decodenetnum.c releng/9.3/contrib/ntp/tests/libntp/run-socktoa.c releng/9.3/contrib/ntp/tests/libntp/socktoa.c releng/9.3/contrib/ntp/tests/ntpd/t-ntp_signd.c releng/9.3/contrib/ntp/util/invoke-ntp-keygen.texi releng/9.3/contrib/ntp/util/ntp-keygen-opts.c releng/9.3/contrib/ntp/util/ntp-keygen-opts.h releng/9.3/contrib/ntp/util/ntp-keygen.1ntp-keygenman releng/9.3/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc releng/9.3/contrib/ntp/util/ntp-keygen.html releng/9.3/contrib/ntp/util/ntp-keygen.man.in releng/9.3/contrib/ntp/util/ntp-keygen.mdoc.in releng/9.3/sys/amd64/linux32/linux32_sysvec.c releng/9.3/sys/conf/newvers.sh releng/9.3/sys/i386/linux/linux_sysvec.c releng/9.3/usr.sbin/ntp/config.h releng/9.3/usr.sbin/ntp/doc/ntp-keygen.8 releng/9.3/usr.sbin/ntp/doc/ntp.conf.5 releng/9.3/usr.sbin/ntp/doc/ntp.keys.5 releng/9.3/usr.sbin/ntp/doc/ntpd.8 releng/9.3/usr.sbin/ntp/doc/ntpdc.8 releng/9.3/usr.sbin/ntp/doc/ntpq.8 releng/9.3/usr.sbin/ntp/doc/sntp.8 releng/9.3/usr.sbin/ntp/libntp/Makefile releng/9.3/usr.sbin/ntp/scripts/mkver Modified: releng/9.3/UPDATING ============================================================================== --- releng/9.3/UPDATING Wed Jan 27 07:41:31 2016 (r294904) +++ releng/9.3/UPDATING Wed Jan 27 07:42:11 2016 (r294905) @@ -11,6 +11,17 @@ handbook: Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before running portupgrade. +20160127 p35 FreeBSD-SA-16:08.bind + FreeBSD-SA-16:09.ntp + FreeBSD-SA-16:10.linux + + Fix BIND remote denial of service vulnerability. [SA-16:08] + + Fix multiple vulnerabilities of ntp. [SA-16:09] + + Fix Linux compatibility layer issetugid(2) system call + vulnerability. [SA-16:10] + 20160114 p34 FreeBSD-SA-16:07.openssh Fix OpenSSH client information leak. [SA-16:07] Modified: releng/9.3/contrib/bind9/lib/dns/rdata/in_1/apl_42.c ============================================================================== --- releng/9.3/contrib/bind9/lib/dns/rdata/in_1/apl_42.c Wed Jan 27 07:41:31 2016 (r294904) +++ releng/9.3/contrib/bind9/lib/dns/rdata/in_1/apl_42.c Wed Jan 27 07:42:11 2016 (r294905) @@ -116,7 +116,7 @@ totext_in_apl(ARGS_TOTEXT) { isc_uint8_t len; isc_boolean_t neg; unsigned char buf[16]; - char txt[sizeof(" !64000")]; + char txt[sizeof(" !64000:")]; const char *sep = ""; int n; @@ -140,7 +140,7 @@ totext_in_apl(ARGS_TOTEXT) { isc_region_consume(&sr, 1); INSIST(len <= sr.length); n = snprintf(txt, sizeof(txt), "%s%s%u:", sep, - neg ? "!": "", afi); + neg ? "!" : "", afi); INSIST(n < (int)sizeof(txt)); RETERR(str_totext(txt, target)); switch (afi) { Modified: releng/9.3/contrib/ntp/ChangeLog ============================================================================== --- releng/9.3/contrib/ntp/ChangeLog Wed Jan 27 07:41:31 2016 (r294904) +++ releng/9.3/contrib/ntp/ChangeLog Wed Jan 27 07:42:11 2016 (r294905) @@ -1,4 +1,38 @@ --- +(4.2.8p6) 2016/01/20 Released by Harlan Stenn + +* [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. HStenn. +* [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. +* [Sec 2937] ntpq: nextvar() missing length check. perlinger@ntp.org +* [Sec 2938] ntpq saveconfig command allows dangerous characters + in filenames. perlinger@ntp.org +* [Sec 2939] reslist NULL pointer dereference. perlinger@ntp.org +* [Sec 2940] Stack exhaustion in recursive traversal of restriction + list. perlinger@ntp.org +* [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. +* [Sec 2945] Zero Origin Timestamp Bypass. perlinger@ntp.org +* [Sec 2948] Potential Infinite Loop in ntpq ( and ntpdc) perlinger@ntp.org +* [Bug 2772] adj_systime overflows tv_usec. perlinger@ntp.org +* [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org + - applied patch by shenpeng11@huawei.com with minor adjustments +* [Bug 2882] Look at ntp_request.c:list_peers_sum(). perlinger@ntp.org +* [Bug 2891] Deadlock in deferred DNS lookup framework. perlinger@ntp.org +* [Bug 2892] Several test cases assume IPv6 capabilities even when + IPv6 is disabled in the build. perlinger@ntp.org + - Found this already fixed, but validation led to cleanup actions. +* [Bug 2905] DNS lookups broken. perlinger@ntp.org + - added limits to stack consumption, fixed some return code handling +* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call + - changed stacked/nested handling of CTRL-C. perlinger@ntp.org + - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org +* [Bug 2980] reduce number of warnings. perlinger@ntp.org + - integrated several patches from Havard Eidnes (he@uninett.no) +* [Bug 2985] bogus calculation in authkeys.c perlinger@ntp.org + - implement 'auth_log2()' using integer bithack instead of float calculation +* Make leapsec_query debug messages less verbose. Harlan Stenn. +* Disable incomplete t-ntp_signd.c test. Harlan Stenn. + +--- (4.2.8p5) 2016/01/07 Released by Harlan Stenn * [Sec 2956] small-step/big-step. Close the panic gate earlier. HStenn. @@ -47,6 +81,7 @@ lots of clients. perlinger@ntp.org * [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call - changed stacked/nested handling of CTRL-C. perlinger@ntp.org + - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org * Unity cleanup for FreeBSD-6.4. Harlan Stenn. * Unity test cleanup. Harlan Stenn. * Libevent autoconf pthread fixes for FreeBSD-10. Harlan Stenn. @@ -55,9 +90,8 @@ * Quiet a warning from clang. Harlan Stenn. * Update the NEWS file. Harlan Stenn. * Update scripts/calc_tickadj/Makefile.am. Harlan Stenn. + --- -(4.2.8p4) 2015/10/21 Released by Harlan Stenn -(4.2.8p4-RC1) 2015/10/06 Released by Harlan Stenn * [Sec 2899] CVE-2014-9297 perlinger@ntp.org * [Sec 2901] Drop invalid packet before checking KoD. Check for all KoD's. Modified: releng/9.3/contrib/ntp/CommitLog ============================================================================== --- releng/9.3/contrib/ntp/CommitLog Wed Jan 27 07:41:31 2016 (r294904) +++ releng/9.3/contrib/ntp/CommitLog Wed Jan 27 07:42:11 2016 (r294905) @@ -1,8 +1,633 @@ -ChangeSet@1.3623, 2016-01-07 23:33:11+00:00, stenn@deacon.udel.edu +ChangeSet@1.3628, 2016-01-20 04:20:12-05:00, stenn@deacon.udel.edu + NTP_4_2_8P6 + TAG: NTP_4_2_8P6 + + ChangeLog@1.1793 +1 -0 + NTP_4_2_8P6 + + ntpd/invoke-ntp.conf.texi@1.196 +1 -1 + NTP_4_2_8P6 + + ntpd/invoke-ntp.keys.texi@1.188 +1 -1 + NTP_4_2_8P6 + + ntpd/invoke-ntpd.texi@1.504 +2 -2 + NTP_4_2_8P6 + + ntpd/ntp.conf.5man@1.230 +3 -3 + NTP_4_2_8P6 + + ntpd/ntp.conf.5mdoc@1.230 +2 -3 + NTP_4_2_8P6 + + ntpd/ntp.conf.html@1.183 +60 -2 + NTP_4_2_8P6 + + ntpd/ntp.conf.man.in@1.230 +3 -3 + NTP_4_2_8P6 + + ntpd/ntp.conf.mdoc.in@1.230 +2 -3 + NTP_4_2_8P6 + + ntpd/ntp.keys.5man@1.222 +2 -2 + NTP_4_2_8P6 + + ntpd/ntp.keys.5mdoc@1.222 +3 -3 + NTP_4_2_8P6 + + ntpd/ntp.keys.html@1.184 +21 -33 + NTP_4_2_8P6 + + ntpd/ntp.keys.man.in@1.222 +2 -2 + NTP_4_2_8P6 + + ntpd/ntp.keys.mdoc.in@1.222 +3 -3 + NTP_4_2_8P6 + + ntpd/ntpd-opts.c@1.526 +10 -10 + NTP_4_2_8P6 + + ntpd/ntpd-opts.h@1.525 +4 -4 + NTP_4_2_8P6 + + ntpd/ntpd.1ntpdman@1.333 +4 -4 + NTP_4_2_8P6 + + ntpd/ntpd.1ntpdmdoc@1.333 +3 -3 + NTP_4_2_8P6 + + ntpd/ntpd.html@1.177 +2 -2 + NTP_4_2_8P6 + + ntpd/ntpd.man.in@1.333 +4 -4 + NTP_4_2_8P6 + + ntpd/ntpd.mdoc.in@1.333 +3 -3 + NTP_4_2_8P6 + + ntpdc/invoke-ntpdc.texi@1.501 +2 -2 + NTP_4_2_8P6 + + ntpdc/ntpdc-opts.c@1.519 +10 -10 + NTP_4_2_8P6 + + ntpdc/ntpdc-opts.h@1.518 +4 -4 + NTP_4_2_8P6 + + ntpdc/ntpdc.1ntpdcman@1.332 +4 -4 + NTP_4_2_8P6 + + ntpdc/ntpdc.1ntpdcmdoc@1.332 +3 -3 + NTP_4_2_8P6 + + ntpdc/ntpdc.html@1.345 +2 -2 + NTP_4_2_8P6 + + ntpdc/ntpdc.man.in@1.332 +4 -4 + NTP_4_2_8P6 + + ntpdc/ntpdc.mdoc.in@1.332 +3 -3 + NTP_4_2_8P6 + + ntpq/invoke-ntpq.texi@1.508 +2 -2 + NTP_4_2_8P6 + + ntpq/ntpq-opts.c@1.525 +10 -10 + NTP_4_2_8P6 + + ntpq/ntpq-opts.h@1.523 +4 -4 + NTP_4_2_8P6 + + ntpq/ntpq.1ntpqman@1.336 +4 -4 + NTP_4_2_8P6 + + ntpq/ntpq.1ntpqmdoc@1.336 +3 -3 + NTP_4_2_8P6 + + ntpq/ntpq.html@1.174 +2 -2 + NTP_4_2_8P6 + + ntpq/ntpq.man.in@1.336 +4 -4 + NTP_4_2_8P6 + + ntpq/ntpq.mdoc.in@1.336 +3 -3 + NTP_4_2_8P6 + + ntpsnmpd/invoke-ntpsnmpd.texi@1.503 +2 -2 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd-opts.c@1.521 +10 -10 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd-opts.h@1.520 +4 -4 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.332 +4 -4 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.332 +3 -3 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.html@1.172 +1 -1 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.man.in@1.332 +4 -4 + NTP_4_2_8P6 + + ntpsnmpd/ntpsnmpd.mdoc.in@1.332 +3 -3 + NTP_4_2_8P6 + + packageinfo.sh@1.524 +2 -2 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.93 +3 -3 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.94 +2 -2 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.html@1.95 +1 -1 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.man.in@1.92 +3 -3 + NTP_4_2_8P6 + + scripts/calc_tickadj/calc_tickadj.mdoc.in@1.94 +2 -2 + NTP_4_2_8P6 + + scripts/calc_tickadj/invoke-calc_tickadj.texi@1.97 +1 -1 + NTP_4_2_8P6 + + scripts/invoke-plot_summary.texi@1.114 +2 -2 + NTP_4_2_8P6 + + scripts/invoke-summary.texi@1.114 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/invoke-ntp-wait.texi@1.324 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait-opts@1.60 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.1ntp-waitman@1.321 +3 -3 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.322 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.html@1.341 +2 -2 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.man.in@1.321 +3 -3 + NTP_4_2_8P6 + + scripts/ntp-wait/ntp-wait.mdoc.in@1.322 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/invoke-ntpsweep.texi@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep-opts@1.62 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.1ntpsweepman@1.100 +3 -3 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.100 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.html@1.113 +2 -2 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.man.in@1.100 +3 -3 + NTP_4_2_8P6 + + scripts/ntpsweep/ntpsweep.mdoc.in@1.101 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/invoke-ntptrace.texi@1.113 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace-opts@1.62 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.1ntptraceman@1.100 +3 -3 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.1ntptracemdoc@1.101 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.html@1.114 +2 -2 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.man.in@1.100 +3 -3 + NTP_4_2_8P6 + + scripts/ntptrace/ntptrace.mdoc.in@1.102 +2 -2 + NTP_4_2_8P6 + + scripts/plot_summary-opts@1.62 +2 -2 + NTP_4_2_8P6 + + scripts/plot_summary.1plot_summaryman@1.112 +3 -3 + NTP_4_2_8P6 + + scripts/plot_summary.1plot_summarymdoc@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/plot_summary.html@1.115 +2 -2 + NTP_4_2_8P6 + + scripts/plot_summary.man.in@1.112 +3 -3 + NTP_4_2_8P6 + + scripts/plot_summary.mdoc.in@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/summary-opts@1.62 +2 -2 + NTP_4_2_8P6 + + scripts/summary.1summaryman@1.112 +3 -3 + NTP_4_2_8P6 + + scripts/summary.1summarymdoc@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/summary.html@1.115 +2 -2 + NTP_4_2_8P6 + + scripts/summary.man.in@1.112 +3 -3 + NTP_4_2_8P6 + + scripts/summary.mdoc.in@1.112 +2 -2 + NTP_4_2_8P6 + + scripts/update-leap/invoke-update-leap.texi@1.13 +1 -1 + NTP_4_2_8P6 + + scripts/update-leap/update-leap-opts@1.13 +2 -2 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.1update-leapman@1.13 +3 -3 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.1update-leapmdoc@1.13 +2 -2 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.html@1.13 +1 -1 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.man.in@1.13 +3 -3 + NTP_4_2_8P6 + + scripts/update-leap/update-leap.mdoc.in@1.13 +2 -2 + NTP_4_2_8P6 + + sntp/invoke-sntp.texi@1.501 +2 -2 + NTP_4_2_8P6 + + sntp/sntp-opts.c@1.520 +10 -10 + NTP_4_2_8P6 + + sntp/sntp-opts.h@1.518 +4 -4 + NTP_4_2_8P6 + + sntp/sntp.1sntpman@1.336 +4 -4 + NTP_4_2_8P6 + + sntp/sntp.1sntpmdoc@1.336 +3 -3 + NTP_4_2_8P6 + + sntp/sntp.html@1.516 +2 -2 + NTP_4_2_8P6 + + sntp/sntp.man.in@1.336 +4 -4 + NTP_4_2_8P6 + + sntp/sntp.mdoc.in@1.336 +3 -3 + NTP_4_2_8P6 + + util/invoke-ntp-keygen.texi@1.504 +2 -2 + NTP_4_2_8P6 + + util/ntp-keygen-opts.c@1.522 +10 -10 + NTP_4_2_8P6 + + util/ntp-keygen-opts.h@1.520 +4 -4 + NTP_4_2_8P6 + + util/ntp-keygen.1ntp-keygenman@1.332 +4 -4 + NTP_4_2_8P6 + + util/ntp-keygen.1ntp-keygenmdoc@1.332 +3 -3 + NTP_4_2_8P6 + + util/ntp-keygen.html@1.178 +2 -2 + NTP_4_2_8P6 + + util/ntp-keygen.man.in@1.332 +4 -4 + NTP_4_2_8P6 + + util/ntp-keygen.mdoc.in@1.332 +3 -3 + NTP_4_2_8P6 + +ChangeSet@1.3627, 2016-01-20 04:14:51-05:00, stenn@deacon.udel.edu + solaris hack + + libntp/work_thread.c@1.20 +2 -0 + solaris hack + +ChangeSet@1.3626, 2016-01-20 01:50:09-05:00, stenn@deacon.udel.edu + 4.2.8p6 + + packageinfo.sh@1.523 +1 -1 + 4.2.8p6 + +ChangeSet@1.3625, 2016-01-20 00:34:15+00:00, stenn@psp-deb1.ntp.org + updates + + NEWS@1.160 +24 -24 + updates + +ChangeSet@1.3624, 2016-01-19 22:28:41+00:00, stenn@psp-deb1.ntp.org + typo + + NEWS@1.159 +1 -1 + typo + +ChangeSet@1.3623, 2016-01-18 11:55:56+00:00, stenn@psp-deb1.ntp.org + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ChangeLog@1.1792 +1 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + NEWS@1.158 +40 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + include/Makefile.am@1.54 +1 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + include/ntp_io.h@1.23 +2 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + include/ntp_keyacc.h@1.1 +13 -0 + BitKeeper file /home/stenn/ntp-stable-2936/include/ntp_keyacc.h + + include/ntp_keyacc.h@1.0 +0 -0 + + include/ntp_stdlib.h@1.81 +4 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + include/ntp_types.h@1.36 +1 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/Makefile.am@1.77 +1 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/authkeys.c@1.31 +60 -6 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/authreadkeys.c@1.25 +50 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/authusekey.c@1.11 +1 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + libntp/is_ip_address.c@1.1 +129 -0 + BitKeeper file /home/stenn/ntp-stable-2936/libntp/is_ip_address.c + + libntp/is_ip_address.c@1.0 +0 -0 + + ntpd/invoke-ntp.keys.texi@1.187 +11 -3 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.5man@1.221 +13 -5 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.5mdoc@1.221 +14 -6 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.def@1.11 +10 -2 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.html@1.183 +42 -22 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.man.in@1.221 +13 -5 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp.keys.mdoc.in@1.221 +14 -6 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp_crypto.c@1.186 +1 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp_io.c@1.412 +0 -72 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + ntpd/ntp_proto.c@1.373 +34 -0 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + + tests/libntp/authkeys.c@1.15 +1 -1 + [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn. + +ChangeSet@1.3622, 2016-01-17 09:03:57+00:00, stenn@psp-deb1.ntp.org + Disable incomplete t-ntp_signd.c test. Harlan Stenn. + + ChangeLog@1.1791 +1 -0 + Disable incomplete t-ntp_signd.c test. Harlan Stenn. + + tests/ntpd/t-ntp_signd.c@1.16 +4 -0 + Disable incomplete t-ntp_signd.c test. Harlan Stenn. + +ChangeSet@1.3621, 2016-01-17 05:51:14+00:00, stenn@psp-deb1.ntp.org + Update NEWS file for 2942 + + NEWS@1.157 +22 -0 + Update NEWS file for 2942 + +ChangeSet@1.3615.13.1, 2016-01-17 05:07:22+00:00, stenn@psp-deb1.ntp.org + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ChangeLog@1.1786.13.1 +4 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + html/miscopt.html@1.85 +11 -3 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + include/ntp.h@1.213.1.1 +3 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/invoke-ntp.conf.texi@1.195 +64 -3 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/keyword-gen-utd@1.27 +1 -1 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/keyword-gen.c@1.33 +3 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.5man@1.229 +71 -7 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.5mdoc@1.229 +71 -7 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.def@1.21 +67 -4 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.man.in@1.229 +71 -7 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp.conf.mdoc.in@1.229 +71 -7 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_config.c@1.335.1.1 +12 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_keyword.h@1.29 +505 -468 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_parser.c@1.101 +1762 -1513 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_parser.h@1.65 +257 -235 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_parser.y@1.91 +6 -0 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + + ntpd/ntp_proto.c@1.368.2.1 +40 -4 + [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn. + +ChangeSet@1.3619, 2016-01-14 12:19:16+00:00, stenn@psp-at1.ntp.org + NEWS file updates + + NEWS@1.156 +21 -0 + NEWS file updates + +ChangeSet@1.3615.1.9, 2016-01-14 11:33:43+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.1.9 +3 -0 + merge cleanup + +ChangeSet@1.3615.1.5, 2016-01-14 10:44:13+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.1.5 +0 -1 + merge cleanup + +ChangeSet@1.3615.12.4, 2016-01-14 10:27:23+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.12.4 +1 -1 + merge cleanup + +ChangeSet@1.3615.12.2, 2016-01-14 09:49:52+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.12.2 +2 -2 + merge cleanup + +ChangeSet@1.3615.3.17, 2016-01-14 09:33:56+00:00, stenn@psp-at1.ntp.org + merge cleanup + + ChangeLog@1.1786.3.14 +1 -1 + merge cleanup + +ChangeSet@1.3615.3.14, 2016-01-14 07:36:57+00:00, stenn@psp-at1.ntp.org + NEWS update + + NEWS@1.155 +98 -7 + NEWS update + +ChangeSet@1.3615.3.12, 2016-01-13 08:07:30+00:00, stenn@psp-deb1.ntp.org + typo + + ChangeLog@1.1786.3.10 +1 -1 + typo + +ChangeSet@1.3615.3.10, 2016-01-13 06:08:29+00:00, stenn@psp-deb1.ntp.org + Update NEWS file for bug 2938 + + NEWS@1.154 +29 -2 + Update NEWS file for bug 2938 + +ChangeSet@1.3615.3.8, 2016-01-13 04:23:46+00:00, stenn@psp-deb1.ntp.org + Update NEWS file for bug 2935 + + NEWS@1.153 +52 -0 + Update NEWS file for bug 2935 + +ChangeSet@1.3615.7.12, 2016-01-12 09:53:06+00:00, stenn@psp-at1.ntp.org + [Sec 2935] use L_SUB instead of L_ISGT. Juergen Perlinger + + ntpd/ntp_proto.c@1.368.1.5 +4 -1 + [Sec 2935] use L_SUB instead of L_ISGT. Juergen Perlinger + +ChangeSet@1.3615.7.11, 2016-01-11 03:02:53-08:00, harlan@max.pfcs.com + [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. + + ChangeLog@1.1786.9.1 +4 -0 + [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. + + include/ntp.h@1.215 +1 -0 + [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. + + ntpd/ntp_proto.c@1.368.1.4 +67 -0 + [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. + +ChangeSet@1.3615.7.10, 2016-01-11 02:44:25-08:00, harlan@max.pfcs.com + make leapsec_query messages less verbose. + + ntpd/ntp_timer.c@1.93.1.1 +6 -4 + make leapsec_query messages less verbose. + +ChangeSet@1.3615.9.1, 2016-01-11 10:26:12+01:00, jnperlin@hydra.localnet + [Bug 2985] bogus calculation in authkeys.c + - implement 'auth_log2()' using integer bithack instead of float calculation + + ChangeLog@1.1786.7.5 +2 -0 + [Bug 2985] bogus calculation in authkeys.c + - implement 'auth_log2()' using integer bithack instead of float calculation + + libntp/authkeys.c@1.30 +33 -10 + [Bug 2985] bogus calculation in authkeys.c + - implement 'auth_log2()' using integer bithack instead of float calculation + + tests/libntp/authkeys.c@1.14 +38 -0 + [Bug 2985] bogus calculation in authkeys.c + - test bithack implementation of 'auth_log2()' + + tests/libntp/run-authkeys.c@1.12 +9 -6 + [Bug 2985] bogus calculation in authkeys.c + - update auto-generated file + +ChangeSet@1.3615.7.9, 2016-01-09 09:52:44+00:00, stenn@psp-at1.ntp.org + Add timelastrec to the peer structure + + include/ntp.h@1.214 +2 -1 + Add timelastrec to the peer structure + +ChangeSet@1.3615.3.6, 2016-01-08 10:00:03+00:00, stenn@psp-at1.ntp.org + 4.2.8p5 merge cleanup + + ChangeLog@1.1786.3.6 +1 -1 + 4.2.8p5 merge cleanup + +ChangeSet@1.3615.7.8, 2016-01-08 00:26:09+00:00, stenn@deacon.udel.edu + Update copyright year + + sntp/include/copyright.def@1.26 +1 -1 + Update copyright year + +ChangeSet@1.3615.7.7, 2016-01-07 23:33:11+00:00, stenn@deacon.udel.edu NTP_4_2_8P5 TAG: NTP_4_2_8P5 - ChangeLog@1.1791 +1 -0 + ChangeLog@1.1786.7.4 +1 -0 NTP_4_2_8P5 ntpd/invoke-ntp.conf.texi@1.194 +1 -1 @@ -332,60 +957,349 @@ ChangeSet@1.3623, 2016-01-07 23:33:11+00 util/ntp-keygen.mdoc.in@1.331 +2 -2 NTP_4_2_8P5 -ChangeSet@1.3622, 2016-01-07 17:52:24-05:00, stenn@deacon.udel.edu +ChangeSet@1.3615.7.6, 2016-01-07 17:52:24-05:00, stenn@deacon.udel.edu ntp-4.2.8p5 packageinfo.sh@1.521 +1 -1 ntp-4.2.8p5 -ChangeSet@1.3621, 2016-01-07 22:20:05+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.7.5, 2016-01-07 22:20:05+00:00, stenn@psp-at1.ntp.org cleanup NEWS@1.152 +2 -2 cleanup -ChangeSet@1.3620, 2016-01-07 09:33:11+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.7.4, 2016-01-07 09:33:11+00:00, stenn@psp-at1.ntp.org typo in ntp_proto.c - leap smear. Reported by Martin Burnicki - ntpd/ntp_proto.c@1.371 +1 -1 + ntpd/ntp_proto.c@1.368.1.3 +1 -1 typo in ntp_proto.c - leap smear. Reported by Martin Burnicki -ChangeSet@1.3619, 2016-01-07 06:33:08+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.7.3, 2016-01-07 06:33:08+00:00, stenn@psp-at1.ntp.org Update scripts/calc_tickadj/Makefile.am. Harlan Stenn. - ChangeLog@1.1790 +1 -0 + ChangeLog@1.1786.7.3 +1 -0 Update scripts/calc_tickadj/Makefile.am. Harlan Stenn. scripts/calc_tickadj/Makefile.am@1.11 +2 -0 Update scripts/calc_tickadj/Makefile.am. Harlan Stenn. -ChangeSet@1.3616.1.1, 2016-01-05 10:57:45+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.3.2, 2016-01-05 12:34:56+00:00, stenn@psp-at1.ntp.org + ntp-4.2.8p6 + + ChangeLog@1.1786.3.2 +2 -0 + ntp-4.2.8p6 + +ChangeSet@1.3615.8.1, 2016-01-05 10:57:45+00:00, stenn@psp-at1.ntp.org Bug 2952 fixes - ChangeLog@1.1787.1.1 +1 -0 + ChangeLog@1.1786.8.1 +1 -0 Bug 2952 fixes - ntpd/ntp_proto.c@1.370 +165 -152 + ntpd/ntp_proto.c@1.368.1.2 +165 -152 Bug 2952 fixes -ChangeSet@1.3617, 2016-01-05 09:56:31+00:00, stenn@psp-at1.ntp.org +ChangeSet@1.3615.7.1, 2016-01-05 09:56:31+00:00, stenn@psp-at1.ntp.org ntp-4.2.8p5 prep - ChangeLog@1.1788 +2 -1 + ChangeLog@1.1786.7.1 +2 -1 ntp-4.2.8p5 prep NEWS@1.151 +104 -3 ntp-4.2.8p5 prep -ChangeSet@1.3616, 2015-12-06 11:20:02+00:00, stenn@psp-deb1.ntp.org +ChangeSet@1.3615.5.1, 2015-12-13 13:35:12+01:00, jnperlin@hydra.localnet + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + Found this already fixed, but validation lead to further cleanup: + - source code formatting + - inline variable definitions moved to start of block + - made some pure input data pointers 'const void*' instead of 'char*'; avoids casts and warnings + + ChangeLog@1.1786.5.1 +3 -0 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + + sntp/crypto.c@1.19 +13 -12 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - sidekick: make pure input pointers 'const void*' instead of 'char*' + - sidekick: remove unnecessary casts + + sntp/crypto.h@1.11 +11 -9 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - sidekick: make pure input pointers 'const void*' instead of 'char*' + - source formatting + + sntp/main.c@1.99 +1 -1 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - no need to cast input to 'make_mac()' any more + + sntp/networking.c@1.68 +1 -1 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - no need to cast input to 'auth_md5()' any more + + sntp/tests/crypto.c@1.10 +41 -27 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - remove unnecessary casts + - source code formatting + + sntp/tests/fileHandlingTest.c@1.4 +43 -20 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - create 'DestroyPath()' companion to 'CreatePath()' to avoid trouble with 'free()' on 'const char*' + + sntp/tests/fileHandlingTest.h.in@1.15 +6 -15 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - create 'DestroyPath()' companion to 'CreatePath()' to avoid trouble with 'free()' on 'const char*' + + sntp/tests/keyFile.c@1.13 +66 -46 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - use 'DestroyPath()' avoid trouble with 'free()' on 'const char*' + - printf() combined + - source code formatting + - move variable declarations to front + + sntp/tests/packetHandling.c@1.6 +75 -64 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - move variable declarations to front + - source code formatting + + sntp/tests/packetProcessing.c@1.9 +124 -90 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - move variable declarations to front + - source code formatting + - drop unnecessary casts + + sntp/tests/run-packetProcessing.c@1.10 +18 -18 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + + sntp/unity/unity_internals.h@1.6 +1 -1 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - added missing 'const' in pointer casts + + tests/libntp/decodenetnum.c@1.11 +33 -23 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - source code formatting + cleanup + + tests/libntp/run-decodenetnum.c@1.11 +4 -4 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + + tests/libntp/run-socktoa.c@1.14 +5 -5 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + + tests/libntp/socktoa.c@1.12 +23 -17 + [Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build + - source code formatting + cleanup + +ChangeSet@1.3615.4.1, 2015-12-11 18:24:16+01:00, jnperlin@hydra.localnet + [Bug 2882] Look at ntp_request.c:list_peers_sum() + + ChangeLog@1.1786.4.1 +1 -0 + [Bug 2882] Look at ntp_request.c:list_peers_sum() + + ntpd/ntp_request.c@1.116 +57 -72 + [Bug 2882] Look at ntp_request.c:list_peers_sum() + - 'list_peers()' and 'list_peers_sum()' skip IPv6 entires if client does not support them, + but continue processing until end of list now. + +ChangeSet@1.3615.1.3, 2015-12-09 18:23:31+01:00, jnperlin@hydra.localnet + [Bug 2891] Deadlock in deferred DNS lookup framework. + + ChangeLog@1.1786.1.3 +1 -0 + [Bug 2891] Deadlock in deferred DNS lookup framework. + + include/ntp_worker.h@1.5 +31 -22 + [Bug 2891] Deadlock in deferred DNS lookup framework. + - provide signal-safe result-ready detection + + libntp/ntp_worker.c@1.7 +27 -0 + [Bug 2891] Deadlock in deferred DNS lookup framework. + - support signal-safe result-ready detection + - provide function to harvest async results from mainloop + + ntpd/ntp_io.c@1.409.1.1 +160 -133 + [Bug 2891] Deadlock in deferred DNS lookup framework. + - do not process async-resolver results from signal handler + - set notification tags to harvest asyn-resolver results from mainloop + - avoid double select for synchronous IO + - avoid several syslog calls in signal-handler context + - refactor / conditionalize some functions that cannot be used in signal-driven IO + + ntpd/ntpd.c@1.169 +4 -0 + [Bug 2891] Deadlock in deferred DNS lookup framework. + - reap/harvest async resolver results from mainloop + +ChangeSet@1.3615.1.2, 2015-12-06 21:33:26+01:00, jnperlin@hydra.localnet + [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org + - applied patch by shenpeng11@huawei.com with minor adjustments + + ChangeLog@1.1786.1.2 +2 -0 + [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org + - applied patch by shenpeng11@huawei.com with minor adjustments + + ntpd/ntpd.c@1.168 +26 -3 + [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org + - applied patch by shenpeng11@huawei.com with minor adjustments + +ChangeSet@1.3615.2.1, 2015-12-06 20:19:32+01:00, jnperlin@hydra.localnet + [Bug 2772] adj_systime overflows tv_usec + + ChangeLog@1.1786.2.1 +1 -0 + [Bug 2772] adj_systime overflows tv_usec + + libntp/systime.c@1.71 +12 -3 + [Bug 2772] adj_systime overflows tv_usec + - add missing normalisation for nitpicking implementations of 'adjtime()' + +ChangeSet@1.3615.1.1, 2015-12-06 11:20:02+00:00, stenn@psp-deb1.ntp.org Quiet a warning from clang. Harlan Stenn. - ChangeLog@1.1787 +1 -0 + ChangeLog@1.1786.1.1 +1 -0 Quiet a warning from clang. Harlan Stenn. libntp/ntp_rfc2553.c@1.50 +3 -2 Quiet a warning from clang. Harlan Stenn. +ChangeSet@1.3616, 2015-12-05 20:28:19+00:00, perlinger@psp-deb1.ntp.org + [Bug 2980] reduce number of warnings + - string formatting(arguments should be literals) + - applying constness where necessary + - removing bad consts that are superfluous + - avoid signed/unsigned clashes in conditionals (either by cast or type change) + - signed/unsigned and promotion conflicts + - add prototypes for function pointer tables + - force unsigned argument promotion in calls to 'ctype' functions (is{digit,cntrl,...}) + + ChangeLog@1.1787 +2 -0 + [Bug 2980] reduce number of warnings + + include/parse.h@1.14 +3 -3 + [Bug 2980] reduce number of warnings + - make GPSWRAP and GPSWEEK unqualified literals to avoid signed/unsigned clashes + + ntpd/ntp_config.c@1.336 +2 -0 + [Bug 2980] reduce number of warnings + - add forward declaration of yyparse() + + ntpd/ntp_io.c@1.410 +1 -1 + [Bug 2980] reduce number of warnings + - fix a signedness comparison by adding a cast to size_t + + ntpd/ntp_scanner.c@1.49 +1 -1 + [Bug 2980] reduce number of warnings + - for type compatibility, make counter 'i' a size_t + + ntpd/ntp_timer.c@1.94 +5 -6 + [Bug 2980] reduce number of warnings + - fix a signed / unsigned compare + + ntpd/refclock_chu.c@1.58 +1 -1 + [Bug 2980] reduce number of warnings + - rewrite check to avoid warning about integer overflow + + ntpd/refclock_gpsdjson.c@1.24 +13 -15 + [Bug 2980] reduce number of warnings + - reshuffle to use a literal format string + - fix signed/unsigned clashes in compare + + ntpd/refclock_jjy.c@1.30 +47 -44 + Bug 2980 - reduce number of warnings + - make several pointers 'const char*' *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Jan 27 10:34:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3470A6F8F6; Wed, 27 Jan 2016 10:34:08 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 902A6197F; Wed, 27 Jan 2016 10:34:08 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RAY79H008062; Wed, 27 Jan 2016 10:34:07 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RAY7Ln008061; Wed, 27 Jan 2016 10:34:07 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601271034.u0RAY7Ln008061@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Wed, 27 Jan 2016 10:34:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294908 - head/lib/libthread_db/arch/riscv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 10:34:08 -0000 Author: br Date: Wed Jan 27 10:34:07 2016 New Revision: 294908 URL: https://svnweb.freebsd.org/changeset/base/294908 Log: Add the RISC-V MD parts of libthread_db. Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D5064 Added: head/lib/libthread_db/arch/riscv/ head/lib/libthread_db/arch/riscv/libpthread_md.c (contents, props changed) Added: head/lib/libthread_db/arch/riscv/libpthread_md.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libthread_db/arch/riscv/libpthread_md.c Wed Jan 27 10:34:07 2016 (r294908) @@ -0,0 +1,104 @@ +/*- + * Copyright (c) 2015 Ruslan Bukin + * All rights reserved. + * + * Portions of this software were developed by SRI International and the + * University of Cambridge Computer Laboratory under DARPA/AFRL contract + * FA8750-10-C-0237 ("CTSRD"), as part of the DARPA CRASH research programme. + * + * Portions of this software were developed by the University of Cambridge + * Computer Laboratory as part of the CTSRD Project, with support from the + * UK Higher Education Innovation Fund (HEIF). + * + * 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 +#include + +#include "libpthread_db.h" + +void +pt_reg_to_ucontext(const struct reg *r, ucontext_t *uc) +{ + mcontext_t *mc; + + mc = &uc->uc_mcontext; + + memcpy(mc->mc_gpregs.gp_t, r->t, sizeof(mc->mc_gpregs.gp_t)); + memcpy(mc->mc_gpregs.gp_s, r->s, sizeof(mc->mc_gpregs.gp_s)); + memcpy(mc->mc_gpregs.gp_a, r->a, sizeof(mc->mc_gpregs.gp_a)); + mc->mc_gpregs.gp_ra = r->ra; + mc->mc_gpregs.gp_sp = r->sp; + mc->mc_gpregs.gp_gp = r->gp; + mc->mc_gpregs.gp_tp = r->tp; + mc->mc_gpregs.gp_sepc = r->sepc; + mc->mc_gpregs.gp_sstatus = r->sstatus; +} + +void +pt_ucontext_to_reg(const ucontext_t *uc, struct reg *r) +{ + const mcontext_t *mc; + + mc = &uc->uc_mcontext; + + memcpy(r->t, mc->mc_gpregs.gp_t, sizeof(mc->mc_gpregs.gp_t)); + memcpy(r->s, mc->mc_gpregs.gp_s, sizeof(mc->mc_gpregs.gp_s)); + memcpy(r->a, mc->mc_gpregs.gp_a, sizeof(mc->mc_gpregs.gp_a)); + r->ra = mc->mc_gpregs.gp_ra; + r->sp = mc->mc_gpregs.gp_sp; + r->gp = mc->mc_gpregs.gp_gp; + r->tp = mc->mc_gpregs.gp_tp; + r->sepc = mc->mc_gpregs.gp_sepc; + r->sstatus = mc->mc_gpregs.gp_sstatus; +} + +void +pt_fpreg_to_ucontext(const struct fpreg *r __unused, ucontext_t *uc __unused) +{ + + /* RISCVTODO */ +} + +void +pt_ucontext_to_fpreg(const ucontext_t *uc __unused, struct fpreg *r __unused) +{ + + /* RISCVTODO */ +} + +void +pt_md_init(void) +{ +} + +int +pt_reg_sstep(struct reg *reg __unused, int step __unused) +{ + + return (0); +} From owner-svn-src-all@freebsd.org Wed Jan 27 11:16:12 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C2EC7A6ECCF; Wed, 27 Jan 2016 11:16:12 +0000 (UTC) (envelope-from br@bsdpad.com) Received: from bsdpad.com (xc1.bsdpad.com [195.154.136.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8E063104C; Wed, 27 Jan 2016 11:16:11 +0000 (UTC) (envelope-from br@bsdpad.com) Received: from localhost ([127.0.0.1] helo=bsdpad.com) by bsdpad.com with smtp (Exim 4.83 (FreeBSD)) (envelope-from ) id 1aONsQ-000NzO-CE; Wed, 27 Jan 2016 11:03:06 +0000 Received: by bsdpad.com (nbSMTP-1.00) for uid 1001 br@bsdpad.com; Wed, 27 Jan 2016 11:03:06 +0000 (GMT) Date: Wed, 27 Jan 2016 11:03:06 +0000 From: Ruslan Bukin To: Devin Teske Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294893 - head/lib/libdpv Message-ID: <20160127110306.GA92213@bsdpad.com> References: <201601270621.u0R6LZPd030494@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <201601270621.u0R6LZPd030494@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 11:16:12 -0000 I get this with GCC 5.2.0: /home/rb743/dev/freebsd-riscv/lib/libdpv/dialog_util.c:270:23: error: zero-length gnu_printf format string [-Werror=for mat-zero-length] sprintf(dargv[n++], ""); Ruslan On Wed, Jan 27, 2016 at 06:21:35AM +0000, Devin Teske wrote: > Author: dteske > Date: Wed Jan 27 06:21:35 2016 > New Revision: 294893 > URL: https://svnweb.freebsd.org/changeset/base/294893 > > Log: > Fix a crash if `-D' is used without `-t title' > > dialog(3)'s dlg_reallocate_gauge(), used both by dialog(3)'s dialog_gauge() > and dialog(1)'s `--gauge', will segmentation fault in strlen(3) if no title > is set for the widget. Reproducible with `dialog --gauge hi 6 20' (adding > `--title ""' is enough to prevent segmentation fault). > > MFC after: 3 days > X-MFC-to: stable/10 > > Modified: > head/lib/libdpv/dialog_util.c > > Modified: head/lib/libdpv/dialog_util.c > ============================================================================== > --- head/lib/libdpv/dialog_util.c Wed Jan 27 06:16:53 2016 (r294892) > +++ head/lib/libdpv/dialog_util.c Wed Jan 27 06:21:35 2016 (r294893) > @@ -261,6 +261,13 @@ dialog_spawn_gauge(char *init_prompt, pi > errx(EXIT_FAILURE, "Out of memory?!"); > sprintf(dargv[n++], "--title"); > dargv[n++] = title; > + } else { > + if ((dargv[n] = malloc(8)) == NULL) > + errx(EXIT_FAILURE, "Out of memory?!"); > + sprintf(dargv[n++], "--title"); > + if ((dargv[n] = malloc(8)) == NULL) > + errx(EXIT_FAILURE, "Out of memory?!"); > + sprintf(dargv[n++], ""); > } > if (backtitle != NULL) { > if ((dargv[n] = malloc(12)) == NULL) > From owner-svn-src-all@freebsd.org Wed Jan 27 13:37:55 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF286A6EB23 for ; Wed, 27 Jan 2016 13:37:54 +0000 (UTC) (envelope-from james@allgreenpr.com) Received: from mailer195.gate183.sl.smtp.com (mailer195.gate183.sl.smtp.com [192.40.183.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C64FE1F07 for ; Wed, 27 Jan 2016 13:37:54 +0000 (UTC) (envelope-from james@allgreenpr.com) X-MSFBL: eyJiIjoiMTkyXzQwXzE4M18xOTUiLCJnIjoicmV0YWlsX3NoYXJlZF9wb29sIiwi ciI6InN2bi1zcmMtYWxsQGZyZWVic2Qub3JnIn0= Received: from [10.36.176.171] ([10.36.176.171:37150] helo=sl-mta04-1.smtp.com) by sl-mta04-3.smtp.com (envelope-from ) (ecelerity 4.1.0.46749 r(Core:4.1.0.4)) with ESMTP id D5/40-14184-240C8A65; Wed, 27 Jan 2016 13:04:02 +0000 X-MSFBL: eyJnIjoicmV0YWlsX3NoYXJlZF9wb29sIiwiciI6InN2bi1zcmMtYWxsQGZyZWVi c2Qub3JnIiwiYiI6InJldGFpbF9zaGFyZWRfcG9vbCJ9 DKIM-Signature: v=1; a=rsa-sha256; d=smtp.com; s=smtpcomcustomers; c=relaxed/simple; q=dns/txt; i=@smtp.com; t=1453899842; h=From:Subject:To:Date:MIME-Version:Content-Type; bh=W8rBImJO/kOiR/fla4R2NMo2FhwnVnpGpHvoVBFU9X8=; b=v6uJOwbX/XXkLL9ztarBBDz6nMqjuyybE8cswZdX38uUAw6BjGDGEP8kzYBvel7+ pmzHOVVVe9dOu5G2bTz50lBICNhRNJggNY4tFgQAZVB4wpBFOZEUT08eP/XJvSd4 C27CTBB7PCv6fEkEnB/U4lm9lX81bV0/w3nr7ipekSU=; Received: from [78.146.212.217] ([78.146.212.217:57880] helo=host-78-146-212-217.as13285.net) by sl-mta04-1.smtp.com (envelope-from ) (ecelerity 4.1.0.46749 r(Core:4.1.0.4)) with ESMTPA id AC/02-32209-140C8A65; Wed, 27 Jan 2016 13:04:02 +0000 MIME-Version: 1.0 From: "james" Reply-To: james@allgreenpr.com To: svn-src-all@freebsd.org Subject: Quick enquiry for gcu.info X-Mailer: Smart_Send_3_1_6 Date: Wed, 27 Jan 2016 13:04:19 +0000 Message-ID: <6984353172512284939288@D-PC-009> X-SMTPCOM-Tracking-Number: a07128d2-8bf9-4754-9c9b-7e890f78147a X-SMTPCOM-Sender-ID: 6028539 Feedback-ID: 6028539:SMTPCOM Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 13:37:55 -0000 Good morning, I have been looking through your site and found from this page http://gcu.i= nfo/ a link to ietf.org, this got me thinking about the history of the inte= rnet and how it has changed. I then found this: http://www.evolutionofthewe= b.com/=3Fhl=3Den-gb which shows the timeline of how things have changed on = the internet and I thought you may like this resource for you site=3F I als= o came accross a company that provides connectivity for businesses using in= ternet phones, something I had no idea existed other than Skype. So I thoug= ht I would give you that link as well, as it might be helpful to your visit= ors. http://www.idtexpress.com/en/about#quality=20 Please let me know if this was useful=3F Also I'm on the look out for resou= rces people need in your industry, so if you have any idea's please let me = know. Kind regards James ALL GREEN PR LIMITED,=20 Kemp House, 152 City Road, London EC1V 2NX www.allgreenpr.com =20 =20 =20 Remove me from James's address book, don't worry he will not mind. =20 From owner-svn-src-all@freebsd.org Wed Jan 27 13:40:46 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B0FEA6ECA1; Wed, 27 Jan 2016 13:40:46 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 41DAE1FA5; Wed, 27 Jan 2016 13:40:46 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RDejEO060527; Wed, 27 Jan 2016 13:40:45 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RDeiU5060523; Wed, 27 Jan 2016 13:40:44 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601271340.u0RDeiU5060523@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Wed, 27 Jan 2016 13:40:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294909 - head/crypto/openssh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 13:40:46 -0000 Author: des Date: Wed Jan 27 13:40:44 2016 New Revision: 294909 URL: https://svnweb.freebsd.org/changeset/base/294909 Log: Switch UseDNS back on Modified: head/crypto/openssh/FREEBSD-upgrade head/crypto/openssh/servconf.c head/crypto/openssh/sshd_config head/crypto/openssh/sshd_config.5 Modified: head/crypto/openssh/FREEBSD-upgrade ============================================================================== --- head/crypto/openssh/FREEBSD-upgrade Wed Jan 27 10:34:07 2016 (r294908) +++ head/crypto/openssh/FREEBSD-upgrade Wed Jan 27 13:40:44 2016 (r294909) @@ -117,6 +117,7 @@ - PasswordAuthentication defaults to "no". - VersionAddendum defaults to "FreeBSD-YYYYMMDD". - PrivilegeSeparation defaults to "sandbox". + - UseDNS defaults to "yes". 2) Modified client-side defaults Modified: head/crypto/openssh/servconf.c ============================================================================== --- head/crypto/openssh/servconf.c Wed Jan 27 10:34:07 2016 (r294908) +++ head/crypto/openssh/servconf.c Wed Jan 27 13:40:44 2016 (r294909) @@ -320,7 +320,7 @@ fill_default_server_options(ServerOption if (options->max_sessions == -1) options->max_sessions = DEFAULT_SESSIONS_MAX; if (options->use_dns == -1) - options->use_dns = 0; + options->use_dns = 1; if (options->client_alive_interval == -1) options->client_alive_interval = 0; if (options->client_alive_count_max == -1) Modified: head/crypto/openssh/sshd_config ============================================================================== --- head/crypto/openssh/sshd_config Wed Jan 27 10:34:07 2016 (r294908) +++ head/crypto/openssh/sshd_config Wed Jan 27 13:40:44 2016 (r294909) @@ -115,7 +115,7 @@ #Compression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 -#UseDNS no +#UseDNS yes #PidFile /var/run/sshd.pid #MaxStartups 10:30:100 #PermitTunnel no Modified: head/crypto/openssh/sshd_config.5 ============================================================================== --- head/crypto/openssh/sshd_config.5 Wed Jan 27 10:34:07 2016 (r294908) +++ head/crypto/openssh/sshd_config.5 Wed Jan 27 13:40:44 2016 (r294909) @@ -1541,8 +1541,8 @@ the resolved host name for the remote IP very same IP address. .Pp If this option is set to -.Dq no -(the default) then only addresses and not host names may be used in +.Dq no , +then only addresses and not host names may be used in .Pa ~/.ssh/known_hosts .Cm from and @@ -1550,6 +1550,8 @@ and .Cm Match .Cm Host directives. +The default is +.Dq yes . .It Cm UseLogin Specifies whether .Xr login 1 From owner-svn-src-all@freebsd.org Wed Jan 27 13:56:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18009A6F217 for ; Wed, 27 Jan 2016 13:56:29 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: from mail-wm0-x22b.google.com (mail-wm0-x22b.google.com [IPv6:2a00:1450:400c:c09::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AC7D71A5E for ; Wed, 27 Jan 2016 13:56:28 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: by mail-wm0-x22b.google.com with SMTP id l65so145946295wmf.1 for ; Wed, 27 Jan 2016 05:56:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=zBC4TaPX6Slp6UY/Mfd2F3zezKlTRpuMYOfPLospE9Y=; b=t+NpV1aBMNksM7L+ypfWLbqsTm2njlMsci7p/4nJUGhNHNnboag80zobS5RmFSnvwq V1kiwxlkLcoEqZa015hEeTrxPqfOeCExVjwbgQY9Gcv8C2jiHHFNg1rAYdYUzCrU0yJN GL1Y5Q/EGwkDpFqgNiI1YkBs3+ntA5gl6Onz4SQPj8l0khejmfecJiWLnrDcq1J2AmtQ +o5ukr9cUwRgWpr+FrZq+3MF4JWApUoZ3Xa34vW9gkOh8U5hnDstd9qwm6Lg4L8qps2P XCTPVKzuVAppgIr3wxPC7wGG0zxkxHMnsHlhDXZVP/51fdFU2WrO4Ad2xTMJFtHm0BX4 8aQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=zBC4TaPX6Slp6UY/Mfd2F3zezKlTRpuMYOfPLospE9Y=; b=bSlAlEWJQjXgehe1u4W9jMlJQvgLOnfBBSd4JfoCje6ZMkaNmcsy53ktzwROXvpSl/ /XyspdvDkK1+Bkso6Vg+wl7T6KOPDmKJMXhlAnUmGu4W+sqb4REWBy+E/FZDC/9R4v9W PkesGpJP03lINRS+O3JQnRFWlE81+sV9iaJrU+5Yq+FyixQX1+dtYC7LJ/sfaNHt0IIg Brrc73hZaAdr7GeEuoCMz1ffyqGPTNnyyQPB8ZkL72SCAuzicwJ95pyzqjEztOG6Zl5m aNgsXwjLKUaITLyvl4U82xPj56nANyEX6o0jJtNx1zVEtI9JxpBsj5Qt0acsgp+YsAJK 8xig== X-Gm-Message-State: AG10YOQLBophTQPCxVo7+cLLxOYOIKi7EFKMqtOTc1BeE5EdCHDRazeoPYVq3GbjPiGCwtcY X-Received: by 10.194.216.100 with SMTP id op4mr27761732wjc.85.1453902987111; Wed, 27 Jan 2016 05:56:27 -0800 (PST) Received: from [10.10.1.58] (liv3d.labs.multiplay.co.uk. [82.69.141.171]) by smtp.gmail.com with ESMTPSA id l7sm6397750wjx.14.2016.01.27.05.56.25 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 27 Jan 2016 05:56:25 -0800 (PST) Subject: Re: svn commit: r294909 - head/crypto/openssh To: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201601271340.u0RDeiU5060523@repo.freebsd.org> From: Steven Hartland Message-ID: <56A8CC97.6090000@multiplay.co.uk> Date: Wed, 27 Jan 2016 13:56:39 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <201601271340.u0RDeiU5060523@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 13:56:29 -0000 While I can guess the reason, it would be nice to document the reason on things like this :-) Regards Steve On 27/01/2016 13:40, Dag-Erling Smørgrav wrote: > Author: des > Date: Wed Jan 27 13:40:44 2016 > New Revision: 294909 > URL: https://svnweb.freebsd.org/changeset/base/294909 > > Log: > Switch UseDNS back on > > Modified: > head/crypto/openssh/FREEBSD-upgrade > head/crypto/openssh/servconf.c > head/crypto/openssh/sshd_config > head/crypto/openssh/sshd_config.5 > > Modified: head/crypto/openssh/FREEBSD-upgrade > ============================================================================== > --- head/crypto/openssh/FREEBSD-upgrade Wed Jan 27 10:34:07 2016 (r294908) > +++ head/crypto/openssh/FREEBSD-upgrade Wed Jan 27 13:40:44 2016 (r294909) > @@ -117,6 +117,7 @@ > - PasswordAuthentication defaults to "no". > - VersionAddendum defaults to "FreeBSD-YYYYMMDD". > - PrivilegeSeparation defaults to "sandbox". > + - UseDNS defaults to "yes". > > 2) Modified client-side defaults > > > Modified: head/crypto/openssh/servconf.c > ============================================================================== > --- head/crypto/openssh/servconf.c Wed Jan 27 10:34:07 2016 (r294908) > +++ head/crypto/openssh/servconf.c Wed Jan 27 13:40:44 2016 (r294909) > @@ -320,7 +320,7 @@ fill_default_server_options(ServerOption > if (options->max_sessions == -1) > options->max_sessions = DEFAULT_SESSIONS_MAX; > if (options->use_dns == -1) > - options->use_dns = 0; > + options->use_dns = 1; > if (options->client_alive_interval == -1) > options->client_alive_interval = 0; > if (options->client_alive_count_max == -1) > > Modified: head/crypto/openssh/sshd_config > ============================================================================== > --- head/crypto/openssh/sshd_config Wed Jan 27 10:34:07 2016 (r294908) > +++ head/crypto/openssh/sshd_config Wed Jan 27 13:40:44 2016 (r294909) > @@ -115,7 +115,7 @@ > #Compression delayed > #ClientAliveInterval 0 > #ClientAliveCountMax 3 > -#UseDNS no > +#UseDNS yes > #PidFile /var/run/sshd.pid > #MaxStartups 10:30:100 > #PermitTunnel no > > Modified: head/crypto/openssh/sshd_config.5 > ============================================================================== > --- head/crypto/openssh/sshd_config.5 Wed Jan 27 10:34:07 2016 (r294908) > +++ head/crypto/openssh/sshd_config.5 Wed Jan 27 13:40:44 2016 (r294909) > @@ -1541,8 +1541,8 @@ the resolved host name for the remote IP > very same IP address. > .Pp > If this option is set to > -.Dq no > -(the default) then only addresses and not host names may be used in > +.Dq no , > +then only addresses and not host names may be used in > .Pa ~/.ssh/known_hosts > .Cm from > and > @@ -1550,6 +1550,8 @@ and > .Cm Match > .Cm Host > directives. > +The default is > +.Dq yes . > .It Cm UseLogin > Specifies whether > .Xr login 1 > From owner-svn-src-all@freebsd.org Wed Jan 27 13:59:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3F763A6F2DF; Wed, 27 Jan 2016 13:59:29 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EA31A1C49; Wed, 27 Jan 2016 13:59:28 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RDxRlx066321; Wed, 27 Jan 2016 13:59:27 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RDxR2d066320; Wed, 27 Jan 2016 13:59:27 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601271359.u0RDxR2d066320@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Wed, 27 Jan 2016 13:59:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294910 - stable/10/lib/libc/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 13:59:29 -0000 Author: tuexen Date: Wed Jan 27 13:59:27 2016 New Revision: 294910 URL: https://svnweb.freebsd.org/changeset/base/294910 Log: MFC r294688: sctp_sendv() needs to fill in the association id on return. Modified: stable/10/lib/libc/net/sctp_sys_calls.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/net/sctp_sys_calls.c ============================================================================== --- stable/10/lib/libc/net/sctp_sys_calls.c Wed Jan 27 13:40:44 2016 (r294909) +++ stable/10/lib/libc/net/sctp_sys_calls.c Wed Jan 27 13:59:27 2016 (r294910) @@ -984,6 +984,7 @@ sctp_sendv(int sd, struct sockaddr *addr; struct sockaddr_in *addr_in; struct sockaddr_in6 *addr_in6; + sctp_assoc_t *assoc_id; if ((addrcnt < 0) || (iovcnt < 0) || @@ -1002,6 +1003,7 @@ sctp_sendv(int sd, errno = ENOMEM; return (-1); } + assoc_id = NULL; msg.msg_control = cmsgbuf; msg.msg_controllen = 0; cmsg = (struct cmsghdr *)cmsgbuf; @@ -1025,6 +1027,7 @@ sctp_sendv(int sd, memcpy(CMSG_DATA(cmsg), info, sizeof(struct sctp_sndinfo)); msg.msg_controllen += CMSG_SPACE(sizeof(struct sctp_sndinfo)); cmsg = (struct cmsghdr *)((caddr_t)cmsg + CMSG_SPACE(sizeof(struct sctp_sndinfo))); + assoc_id = &(((struct sctp_sndinfo *)info)->snd_assoc_id); break; case SCTP_SENDV_PRINFO: if ((info == NULL) || (infolen < sizeof(struct sctp_prinfo))) { @@ -1066,6 +1069,7 @@ sctp_sendv(int sd, memcpy(CMSG_DATA(cmsg), &spa_info->sendv_sndinfo, sizeof(struct sctp_sndinfo)); msg.msg_controllen += CMSG_SPACE(sizeof(struct sctp_sndinfo)); cmsg = (struct cmsghdr *)((caddr_t)cmsg + CMSG_SPACE(sizeof(struct sctp_sndinfo))); + assoc_id = &(spa_info->sendv_sndinfo.snd_assoc_id); } if (spa_info->sendv_flags & SCTP_SEND_PRINFO_VALID) { cmsg->cmsg_level = IPPROTO_SCTP; @@ -1164,6 +1168,9 @@ sctp_sendv(int sd, msg.msg_flags = 0; ret = sendmsg(sd, &msg, flags); free(cmsgbuf); + if ((ret >= 0) && (addrs != NULL) && (assoc_id != NULL)) { + *assoc_id = sctp_getassocid(sd, addrs); + } return (ret); } From owner-svn-src-all@freebsd.org Wed Jan 27 14:01:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7E358A6F472; Wed, 27 Jan 2016 14:01:22 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4F0E41E33; Wed, 27 Jan 2016 14:01:22 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RE1LlW066478; Wed, 27 Jan 2016 14:01:21 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RE1Lw5066477; Wed, 27 Jan 2016 14:01:21 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601271401.u0RE1Lw5066477@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Wed, 27 Jan 2016 14:01:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294911 - stable/10/lib/libc/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:01:22 -0000 Author: tuexen Date: Wed Jan 27 14:01:21 2016 New Revision: 294911 URL: https://svnweb.freebsd.org/changeset/base/294911 Log: MFC r294694: sctp_sendx() needs to provide the assoc_id back. Modified: stable/10/lib/libc/net/sctp_sys_calls.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/net/sctp_sys_calls.c ============================================================================== --- stable/10/lib/libc/net/sctp_sys_calls.c Wed Jan 27 13:59:27 2016 (r294910) +++ stable/10/lib/libc/net/sctp_sys_calls.c Wed Jan 27 14:01:21 2016 (r294911) @@ -700,14 +700,19 @@ sctp_sendx(int sd, const void *msg, size #ifdef SYS_sctp_generic_sendmsg if (addrcnt == 1) { socklen_t l; + ssize_t ret; /* * Quick way, we don't need to do a connectx so lets use the * syscall directly. */ l = addrs->sa_len; - return (syscall(SYS_sctp_generic_sendmsg, sd, - msg, msg_len, addrs, l, sinfo, flags)); + ret = syscall(SYS_sctp_generic_sendmsg, sd, + msg, msg_len, addrs, l, sinfo, flags); + if ((ret >= 0) && (sinfo != NULL)) { + sinfo->sinfo_assoc_id = sctp_getassocid(sd, addrs); + } + return (ret); } #endif From owner-svn-src-all@freebsd.org Wed Jan 27 14:10:44 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0FED0A6F81D; Wed, 27 Jan 2016 14:10:44 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 252151830; Wed, 27 Jan 2016 14:10:43 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aOQnv-0003Hs-DT; Wed, 27 Jan 2016 17:10:39 +0300 Date: Wed, 27 Jan 2016 17:10:39 +0300 From: Slawa Olhovchenkov To: Steven Hartland Cc: Dag-Erling =?utf-8?B?U23DuHJncmF2?= , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294909 - head/crypto/openssh Message-ID: <20160127141039.GQ37895@zxy.spb.ru> References: <201601271340.u0RDeiU5060523@repo.freebsd.org> <56A8CC97.6090000@multiplay.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <56A8CC97.6090000@multiplay.co.uk> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:10:44 -0000 On Wed, Jan 27, 2016 at 01:56:39PM +0000, Steven Hartland wrote: > While I can guess the reason, it would be nice to document the reason on > things like this :-) Or use more clear commit message (on stable/10 UseDNS is on by default, but nothing about relation to host names in ~/.ssh/known_hosts). > On 27/01/2016 13:40, Dag-Erling Smørgrav wrote: > > Author: des > > Date: Wed Jan 27 13:40:44 2016 > > New Revision: 294909 > > URL: https://svnweb.freebsd.org/changeset/base/294909 > > > > Log: > > Switch UseDNS back on > > > > Modified: > > head/crypto/openssh/FREEBSD-upgrade > > head/crypto/openssh/servconf.c > > head/crypto/openssh/sshd_config > > head/crypto/openssh/sshd_config.5 > > > > Modified: head/crypto/openssh/FREEBSD-upgrade > > ============================================================================== > > --- head/crypto/openssh/FREEBSD-upgrade Wed Jan 27 10:34:07 2016 (r294908) > > +++ head/crypto/openssh/FREEBSD-upgrade Wed Jan 27 13:40:44 2016 (r294909) > > @@ -117,6 +117,7 @@ > > - PasswordAuthentication defaults to "no". > > - VersionAddendum defaults to "FreeBSD-YYYYMMDD". > > - PrivilegeSeparation defaults to "sandbox". > > + - UseDNS defaults to "yes". > > > > 2) Modified client-side defaults > > > > > > Modified: head/crypto/openssh/servconf.c > > ============================================================================== > > --- head/crypto/openssh/servconf.c Wed Jan 27 10:34:07 2016 (r294908) > > +++ head/crypto/openssh/servconf.c Wed Jan 27 13:40:44 2016 (r294909) > > @@ -320,7 +320,7 @@ fill_default_server_options(ServerOption > > if (options->max_sessions == -1) > > options->max_sessions = DEFAULT_SESSIONS_MAX; > > if (options->use_dns == -1) > > - options->use_dns = 0; > > + options->use_dns = 1; > > if (options->client_alive_interval == -1) > > options->client_alive_interval = 0; > > if (options->client_alive_count_max == -1) > > > > Modified: head/crypto/openssh/sshd_config > > ============================================================================== > > --- head/crypto/openssh/sshd_config Wed Jan 27 10:34:07 2016 (r294908) > > +++ head/crypto/openssh/sshd_config Wed Jan 27 13:40:44 2016 (r294909) > > @@ -115,7 +115,7 @@ > > #Compression delayed > > #ClientAliveInterval 0 > > #ClientAliveCountMax 3 > > -#UseDNS no > > +#UseDNS yes > > #PidFile /var/run/sshd.pid > > #MaxStartups 10:30:100 > > #PermitTunnel no > > > > Modified: head/crypto/openssh/sshd_config.5 > > ============================================================================== > > --- head/crypto/openssh/sshd_config.5 Wed Jan 27 10:34:07 2016 (r294908) > > +++ head/crypto/openssh/sshd_config.5 Wed Jan 27 13:40:44 2016 (r294909) > > @@ -1541,8 +1541,8 @@ the resolved host name for the remote IP > > very same IP address. > > .Pp > > If this option is set to > > -.Dq no > > -(the default) then only addresses and not host names may be used in > > +.Dq no , > > +then only addresses and not host names may be used in > > .Pa ~/.ssh/known_hosts > > .Cm from > > and > > @@ -1550,6 +1550,8 @@ and > > .Cm Match > > .Cm Host > > directives. > > +The default is > > +.Dq yes . > > .It Cm UseLogin > > Specifies whether > > .Xr login 1 > > > > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-svn-src-all@freebsd.org Wed Jan 27 14:10:52 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA4DDA6F84C; Wed, 27 Jan 2016 14:10:51 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 99CED1984; Wed, 27 Jan 2016 14:10:51 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0REAoh2069416; Wed, 27 Jan 2016 14:10:50 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0REAoD2069415; Wed, 27 Jan 2016 14:10:50 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601271410.u0REAoD2069415@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Wed, 27 Jan 2016 14:10:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294912 - head/lib/libthr/arch/riscv/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:10:52 -0000 Author: br Date: Wed Jan 27 14:10:50 2016 New Revision: 294912 URL: https://svnweb.freebsd.org/changeset/base/294912 Log: Add pthread MD part for RISC-V. Reviewed by: andrew Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D5063 Added: head/lib/libthr/arch/riscv/include/ head/lib/libthr/arch/riscv/include/pthread_md.h (contents, props changed) Added: head/lib/libthr/arch/riscv/include/pthread_md.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libthr/arch/riscv/include/pthread_md.h Wed Jan 27 14:10:50 2016 (r294912) @@ -0,0 +1,92 @@ +/*- + * Copyright (c) 2005 David Xu + * Copyright (c) 2015 Ruslan Bukin + * All rights reserved. + * + * Portions of this software were developed by SRI International and the + * University of Cambridge Computer Laboratory under DARPA/AFRL contract + * FA8750-10-C-0237 ("CTSRD"), as part of the DARPA CRASH research programme. + * + * Portions of this software were developed by the University of Cambridge + * Computer Laboratory as part of the CTSRD Project, with support from the + * UK Higher Education Innovation Fund (HEIF). + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* + * Machine-dependent thread prototypes/definitions. + */ +#ifndef _PTHREAD_MD_H_ +#define _PTHREAD_MD_H_ + +#include +#include + +#define CPU_SPINWAIT +#define DTV_OFFSET offsetof(struct tcb, tcb_dtv) +#define TP_OFFSET 0x10 + +/* + * Variant I tcb. The structure layout is fixed, don't blindly + * change it! + */ +struct tcb { + void *tcb_dtv; + struct pthread *tcb_thread; +}; + +/* Called from the thread to set its private data. */ +static __inline void +_tcb_set(struct tcb *tcb) +{ + + __asm __volatile("mv tp, %0" :: "r"((uint8_t *)tcb + TP_OFFSET)); +} + +/* + * Get the current tcb. + */ +static __inline struct tcb * +_tcb_get(void) +{ + register uint8_t *_tp; + + __asm __volatile("mv %0, tp" : "=r"(_tp)); + + return ((struct tcb *)(_tp - TP_OFFSET)); +} + +extern struct pthread *_thr_initial; + +static __inline struct pthread * +_get_curthread(void) +{ + + if (_thr_initial) + return (_tcb_get()->tcb_thread); + return (NULL); +} + +#endif /* _PTHREAD_MD_H_ */ From owner-svn-src-all@freebsd.org Wed Jan 27 14:12:11 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B45ADA6F8E1; Wed, 27 Jan 2016 14:12:11 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 334801CFE; Wed, 27 Jan 2016 14:12:11 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RECATA072080; Wed, 27 Jan 2016 14:12:10 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RECAXE072079; Wed, 27 Jan 2016 14:12:10 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201601271412.u0RECAXE072079@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 27 Jan 2016 14:12:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294913 - in stable: 10/release/doc/share/xml 9/release/doc/share/xml X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:12:11 -0000 Author: gjb Date: Wed Jan 27 14:12:10 2016 New Revision: 294913 URL: https://svnweb.freebsd.org/changeset/base/294913 Log: Document SA-16:08, SA-16:09, SA-16:10. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/share/xml/security.xml Changes in other areas also in this revision: Modified: stable/9/release/doc/share/xml/security.xml Modified: stable/10/release/doc/share/xml/security.xml ============================================================================== --- stable/10/release/doc/share/xml/security.xml Wed Jan 27 14:10:50 2016 (r294912) +++ stable/10/release/doc/share/xml/security.xml Wed Jan 27 14:12:10 2016 (r294913) @@ -107,6 +107,21 @@ OpenSSH client information leak + + + FreeBSD-SA-16:09.ntp + 27 January 2016 + Multiple vulnerabilities. + + + + FreeBSD-SA-16:10.linux + 27 January 2016 + &man.issetugid.2; system call + vulnerability. + From owner-svn-src-all@freebsd.org Wed Jan 27 14:12:12 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 12811A6F8E6; Wed, 27 Jan 2016 14:12:12 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D510B1D01; Wed, 27 Jan 2016 14:12:11 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RECACZ072086; Wed, 27 Jan 2016 14:12:10 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RECADX072085; Wed, 27 Jan 2016 14:12:10 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201601271412.u0RECADX072085@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 27 Jan 2016 14:12:10 +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: r294913 - in stable: 10/release/doc/share/xml 9/release/doc/share/xml X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:12:12 -0000 Author: gjb Date: Wed Jan 27 14:12:10 2016 New Revision: 294913 URL: https://svnweb.freebsd.org/changeset/base/294913 Log: Document SA-16:08, SA-16:09, SA-16:10. Sponsored by: The FreeBSD Foundation Modified: stable/9/release/doc/share/xml/security.xml Changes in other areas also in this revision: Modified: stable/10/release/doc/share/xml/security.xml Modified: stable/9/release/doc/share/xml/security.xml ============================================================================== --- stable/9/release/doc/share/xml/security.xml Wed Jan 27 14:10:50 2016 (r294912) +++ stable/9/release/doc/share/xml/security.xml Wed Jan 27 14:12:10 2016 (r294913) @@ -313,6 +313,29 @@ OpenSSH client information leak + + + FreeBSD-SA-16:08.bind + 27 January 2016 + Remote denial of service + vulnerability. + + + + FreeBSD-SA-16:09.ntp + 27 January 2016 + Multiple vulnerabilities. + + + + FreeBSD-SA-16:10.linux + 27 January 2016 + &man.issetugid.2; system call + vulnerability. + From owner-svn-src-all@freebsd.org Wed Jan 27 14:35:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 564C7A6F18D; Wed, 27 Jan 2016 14:35:22 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 22B8C1CC1; Wed, 27 Jan 2016 14:35:21 +0000 (UTC) (envelope-from des@des.no) Received: from desk.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 3B2B2AA78; Wed, 27 Jan 2016 14:35:20 +0000 (UTC) Received: by desk.des.no (Postfix, from userid 1001) id CA58C48CED; Wed, 27 Jan 2016 15:35:22 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Steven Hartland Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294909 - head/crypto/openssh References: <201601271340.u0RDeiU5060523@repo.freebsd.org> <56A8CC97.6090000@multiplay.co.uk> Date: Wed, 27 Jan 2016 15:35:22 +0100 In-Reply-To: <56A8CC97.6090000@multiplay.co.uk> (Steven Hartland's message of "Wed, 27 Jan 2016 13:56:39 +0000") Message-ID: <8660yfgket.fsf@desk.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:35:22 -0000 Steven Hartland writes: > While I can guess the reason, it would be nice to document the reason > on things like this :-) Because it used to be on, and people who relied on it were locked out after upgrading. We can consider turning it back off before 11, with sufficient advance warning (and possibly code in /etc/rc.d/sshd that looks for and warns about host names in sshd_config and root's authorized_keys). DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@freebsd.org Wed Jan 27 14:46:31 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B725AA6F671; Wed, 27 Jan 2016 14:46:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 87E81133D; Wed, 27 Jan 2016 14:46:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0REkULo081037; Wed, 27 Jan 2016 14:46:30 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0REkUOi081035; Wed, 27 Jan 2016 14:46:30 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601271446.u0REkUOi081035@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 27 Jan 2016 14:46:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294915 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:46:31 -0000 Author: hselasky Date: Wed Jan 27 14:46:30 2016 New Revision: 294915 URL: https://svnweb.freebsd.org/changeset/base/294915 Log: Fix generation of dependency rules for the LinuxKPI, the MLX5 driver and all of OFED except MLX4[EN/IB]. Sponsored by: Mellanox Technologies MFC after: 1 week Modified: head/sys/conf/files head/sys/conf/kern.post.mk Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Wed Jan 27 14:16:13 2016 (r294914) +++ head/sys/conf/files Wed Jan 27 14:46:30 2016 (r294915) @@ -3821,133 +3821,96 @@ nlm/sm_inter_xdr.c optional nfslockd | # Linux Kernel Programming Interface compat/linuxkpi/common/src/linux_kmod.c optional compat_linuxkpi \ - no-depend compile-with "${LINUXKPI_C}" + compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_compat.c optional compat_linuxkpi \ - no-depend compile-with "${LINUXKPI_C}" + compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_pci.c optional compat_linuxkpi pci \ - no-depend compile-with "${LINUXKPI_C}" + compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_idr.c optional compat_linuxkpi \ - no-depend compile-with "${LINUXKPI_C}" + compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_radix.c optional compat_linuxkpi \ - no-depend compile-with "${LINUXKPI_C}" + compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_usb.c optional compat_linuxkpi usb \ - no-depend compile-with "${LINUXKPI_C}" + compile-with "${LINUXKPI_C}" # OpenFabrics Enterprise Distribution (Infiniband) ofed/drivers/infiniband/core/addr.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/agent.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/cache.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" # XXX Mad.c must be ordered before cm.c for sysinit sets to occur in # the correct order. ofed/drivers/infiniband/core/mad.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/cm.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/ -Wno-unused-function" ofed/drivers/infiniband/core/cma.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/device.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/fmr_pool.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/iwcm.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/mad_rmpp.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/multicast.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/packer.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/peer_mem.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/sa_query.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/smi.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/sysfs.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/ucm.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/ucma.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/ud_header.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/umem.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/user_mad.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/uverbs_cmd.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/uverbs_main.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/uverbs_marshall.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/core/verbs.c optional ofed \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c optional ipoib \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" #ofed/drivers/infiniband/ulp/ipoib/ipoib_fs.c optional ipoib \ -# no-depend \ # compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c optional ipoib \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c optional ipoib \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c optional ipoib \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c optional ipoib \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" #ofed/drivers/infiniband/ulp/ipoib/ipoib_vlan.c optional ipoib \ -# no-depend \ # compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/sdp/sdp_bcopy.c optional sdp inet \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" ofed/drivers/infiniband/ulp/sdp/sdp_main.c optional sdp inet \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" ofed/drivers/infiniband/ulp/sdp/sdp_rx.c optional sdp inet \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" ofed/drivers/infiniband/ulp/sdp/sdp_cma.c optional sdp inet \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" ofed/drivers/infiniband/ulp/sdp/sdp_tx.c optional sdp inet \ - no-depend \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" ofed/drivers/infiniband/hw/mlx4/alias_GUID.c optional mlx4ib \ @@ -4077,95 +4040,95 @@ ofed/drivers/net/mlx4/en_tx.c optional compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" dev/mlx5/mlx5_core/mlx5_alloc.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_cmd.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_cq.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_eq.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_flow_table.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fw.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_health.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mad.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_main.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mcg.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mr.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_pagealloc.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_pd.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_port.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_qp.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_srq.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_transobj.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_uar.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_vport.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_wq.c optional mlx5 pci \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_ethtool.c optional mlx5en pci inet inet6 \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_main.c optional mlx5en pci inet inet6 \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_tx.c optional mlx5en pci inet inet6 \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_flow_table.c optional mlx5en pci inet inet6 \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_rx.c optional mlx5en pci inet inet6 \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_txrx.c optional mlx5en pci inet inet6 \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_allocator.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_av.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_catas.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_cmd.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_cq.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_eq.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_mad.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_main.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_mcg.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_memfree.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_mr.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_pd.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_profile.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_provider.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_qp.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_reset.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_srq.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" ofed/drivers/infiniband/hw/mthca/mthca_uar.c optional mthca \ - no-depend compile-with "${OFED_C}" + compile-with "${OFED_C}" # crypto support opencrypto/cast.c optional crypto | ipsec Modified: head/sys/conf/kern.post.mk ============================================================================== --- head/sys/conf/kern.post.mk Wed Jan 27 14:16:13 2016 (r294914) +++ head/sys/conf/kern.post.mk Wed Jan 27 14:46:30 2016 (r294915) @@ -186,12 +186,23 @@ genassym.o: $S/$M/$M/genassym.c ${SYSTEM_OBJS} genassym.o vers.o: opt_global.h +# Normal files first +CFILES_NORMAL= ${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*:N*/compat/linuxkpi/common/*:N*/ofed/*:N*/dev/mlx5/*} +SFILES_NORMAL= ${SFILES:N*/cddl/*} + # We have "special" -I include paths for zfs/dtrace files in 'depend'. -CFILES_NOCDDL= ${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*} -SFILES_NOCDDL= ${SFILES:N*/cddl/*} CFILES_CDDL= ${CFILES:M*/cddl/*} SFILES_CDDL= ${SFILES:M*/cddl/*} +# We have "special" -I include paths for LinuxKPI. +CFILES_LINUXKPI=${CFILES:M*/compat/linuxkpi/common/*} + +# We have "special" -I include paths for OFED. +CFILES_OFED=${CFILES:M*/ofed/*} + +# We have "special" -I include paths for MLX5. +CFILES_MLX5=${CFILES:M*/dev/mlx5/*} + kernel-depend: .depend # The argument list can be very long, so use make -V and xargs to # pass it to mkdep. @@ -220,12 +231,20 @@ DEPENDFILES_OBJS= ${DEPENDOBJS:O:u:C/^/. .depend: .PRECIOUS ${SRCS} .if ${MK_FAST_DEPEND} == "no" rm -f ${.TARGET}.tmp - ${MAKE} -V CFILES_NOCDDL -V SYSTEM_CFILES -V GEN_CFILES | \ +# C files + ${MAKE} -V CFILES_NORMAL -V SYSTEM_CFILES -V GEN_CFILES | \ CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${CFLAGS} ${MAKE} -V CFILES_CDDL | \ CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ZFS_CFLAGS} \ ${FBT_CFLAGS} ${DTRACE_CFLAGS} - ${MAKE} -V SFILES_NOCDDL | \ + ${MAKE} -V CFILES_LINUXKPI | \ + CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp \ + ${CFLAGS} ${LINUXKPI_INCLUDES} + ${MAKE} -V CFILES_OFED -V CFILES_MLX5 | \ + CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp \ + ${CFLAGS} ${OFEDINCLUDES} +# Assembly files + ${MAKE} -V SFILES_NORMAL | \ CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ASM_CFLAGS} ${MAKE} -V SFILES_CDDL | \ CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ZFS_ASM_CFLAGS} From owner-svn-src-all@freebsd.org Wed Jan 27 14:47:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8E7E1A6F6B7; Wed, 27 Jan 2016 14:47:01 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5FC1114EE; Wed, 27 Jan 2016 14:47:01 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0REl0O3081104; Wed, 27 Jan 2016 14:47:00 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0REl0ek081103; Wed, 27 Jan 2016 14:47:00 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601271447.u0REl0ek081103@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Wed, 27 Jan 2016 14:47:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294916 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:47:01 -0000 Author: skra Date: Wed Jan 27 14:47:00 2016 New Revision: 294916 URL: https://svnweb.freebsd.org/changeset/base/294916 Log: Fix my email. Modified: head/share/misc/committers-src.dot Modified: head/share/misc/committers-src.dot ============================================================================== --- head/share/misc/committers-src.dot Wed Jan 27 14:46:30 2016 (r294915) +++ head/share/misc/committers-src.dot Wed Jan 27 14:47:00 2016 (r294916) @@ -288,7 +288,7 @@ sephe [label="Sepherosa Ziehau\nsephe@Fr sepotvin [label="Stephane E. Potvin\nsepotvin@FreeBSD.org\n2007/02/15"] simon [label="Simon L. Nielsen\nsimon@FreeBSD.org\n2006/03/07"] sjg [label="Simon J. Gerraty\nsjg@FreeBSD.org\n2012/10/23"] -skra [label="Svatopluk Kraus\nslm@FreeBSD.org\n2015/10/28"] +skra [label="Svatopluk Kraus\nskra@FreeBSD.org\n2015/10/28"] slm [label="Stephen McConnell\nslm@FreeBSD.org\n2014/05/07"] smh [label="Steven Hartland\nsmh@FreeBSD.org\n2012/11/12"] sobomax [label="Maxim Sobolev\nsobomax@FreeBSD.org\n2001/07/25"] From owner-svn-src-all@freebsd.org Wed Jan 27 14:55:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 775BAA6F9EB; Wed, 27 Jan 2016 14:55:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 349B01C7B; Wed, 27 Jan 2016 14:55:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0REtgAb084124; Wed, 27 Jan 2016 14:55:42 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0REtfkZ084121; Wed, 27 Jan 2016 14:55:41 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601271455.u0REtfkZ084121@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 27 Jan 2016 14:55:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294917 - stable/10/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:55:43 -0000 Author: hselasky Date: Wed Jan 27 14:55:41 2016 New Revision: 294917 URL: https://svnweb.freebsd.org/changeset/base/294917 Log: MFC r294314: Allow RX and TX pause frames to be set through ifconfig. Sponsored by: Mellanox Technologies Differential Revision: https://reviews.freebsd.org/D4817 Modified: stable/10/sys/dev/mlx5/mlx5_en/en.h stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/10/sys/dev/mlx5/mlx5_en/en.h Wed Jan 27 14:47:00 2016 (r294916) +++ stable/10/sys/dev/mlx5/mlx5_en/en.h Wed Jan 27 14:55:41 2016 (r294917) @@ -375,11 +375,11 @@ struct mlx5e_params { bool cqe_zipping_en; u32 lro_wqe_sz; u16 rx_hash_log_tbl_sz; + u32 tx_pauseframe_control; + u32 rx_pauseframe_control; }; #define MLX5E_PARAMS(m) \ - m(+1, u64 tx_pauseframe_control, "tx_pauseframe_control", "Set to enable TX pause frames. Clear to disable.") \ - m(+1, u64 rx_pauseframe_control, "rx_pauseframe_control", "Set to enable RX pause frames. Clear to disable.") \ m(+1, u64 tx_queue_size_max, "tx_queue_size_max", "Max send queue size") \ m(+1, u64 rx_queue_size_max, "rx_queue_size_max", "Max receive queue size") \ m(+1, u64 tx_queue_size, "tx_queue_size", "Default send queue size") \ Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Wed Jan 27 14:47:00 2016 (r294916) +++ stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Wed Jan 27 14:55:41 2016 (r294917) @@ -113,21 +113,6 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARG } priv->params.tx_cq_moderation_pkts = priv->params_ethtool.tx_coalesce_pkts; - if (&priv->params_ethtool.arg[arg2] == &priv->params_ethtool.rx_pauseframe_control || - &priv->params_ethtool.arg[arg2] == &priv->params_ethtool.tx_pauseframe_control) { - /* range check parameters */ - priv->params_ethtool.rx_pauseframe_control = - priv->params_ethtool.rx_pauseframe_control ? 1 : 0; - priv->params_ethtool.tx_pauseframe_control = - priv->params_ethtool.tx_pauseframe_control ? 1 : 0; - - /* update firmware */ - error = -mlx5_set_port_pause(priv->mdev, 1, - priv->params_ethtool.rx_pauseframe_control, - priv->params_ethtool.tx_pauseframe_control); - goto done; - } - was_opened = test_bit(MLX5E_STATE_OPENED, &priv->state); if (was_opened) { u64 *xarg = priv->params_ethtool.arg + arg2; Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Jan 27 14:47:00 2016 (r294916) +++ stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Jan 27 14:55:41 2016 (r294917) @@ -222,8 +222,8 @@ mlx5e_media_status(struct ifnet *dev, st ifmr->ifm_status = priv->media_status_last; ifmr->ifm_active = priv->media_active_last | - (priv->params_ethtool.rx_pauseframe_control ? IFM_ETH_RXPAUSE : 0) | - (priv->params_ethtool.tx_pauseframe_control ? IFM_ETH_TXPAUSE : 0); + (priv->params.rx_pauseframe_control ? IFM_ETH_RXPAUSE : 0) | + (priv->params.tx_pauseframe_control ? IFM_ETH_TXPAUSE : 0); } @@ -250,6 +250,7 @@ mlx5e_media_change(struct ifnet *dev) struct mlx5_core_dev *mdev = priv->mdev; u32 eth_proto_cap; u32 link_mode; + int was_opened; int locked; int error; @@ -263,24 +264,45 @@ mlx5e_media_change(struct ifnet *dev) } link_mode = mlx5e_find_link_mode(IFM_SUBTYPE(priv->media.ifm_media)); + /* query supported capabilities */ error = mlx5_query_port_proto_cap(mdev, ð_proto_cap, MLX5_PTYS_EN); - if (error) { + if (error != 0) { if_printf(dev, "Query port media capability failed\n"); goto done; } - if (IFM_SUBTYPE(priv->media.ifm_media) == IFM_AUTO) + /* check for autoselect */ + if (IFM_SUBTYPE(priv->media.ifm_media) == IFM_AUTO) { link_mode = eth_proto_cap; - else + if (link_mode == 0) { + if_printf(dev, "Port media capability is zero\n"); + error = EINVAL; + goto done; + } + } else { link_mode = link_mode & eth_proto_cap; - - if (!link_mode) { - if_printf(dev, "Not supported link mode requested\n"); - error = EINVAL; - goto done; + if (link_mode == 0) { + if_printf(dev, "Not supported link mode requested\n"); + error = EINVAL; + goto done; + } } + /* update pauseframe control bits */ + priv->params.rx_pauseframe_control = + (priv->media.ifm_media & IFM_ETH_RXPAUSE) ? 1 : 0; + priv->params.tx_pauseframe_control = + (priv->media.ifm_media & IFM_ETH_TXPAUSE) ? 1 : 0; + + /* check if device is opened */ + was_opened = test_bit(MLX5E_STATE_OPENED, &priv->state); + + /* reconfigure the hardware */ mlx5_set_port_status(mdev, MLX5_PORT_DOWN); mlx5_set_port_proto(mdev, link_mode, MLX5_PTYS_EN); - mlx5_set_port_status(mdev, MLX5_PORT_UP); + mlx5_set_port_pause(mdev, 1, + priv->params.rx_pauseframe_control, + priv->params.tx_pauseframe_control); + if (was_opened) + mlx5_set_port_status(mdev, MLX5_PORT_UP); done: if (!locked) @@ -2749,6 +2771,56 @@ mlx5e_add_hw_stats(struct mlx5e_priv *pr "Board ID"); } +static void +mlx5e_setup_pauseframes(struct mlx5e_priv *priv) +{ +#if (__FreeBSD_version < 1100000) + char path[64]; + +#endif + /* Only receiving pauseframes is enabled by default */ + priv->params.tx_pauseframe_control = 0; + priv->params.rx_pauseframe_control = 1; + +#if (__FreeBSD_version < 1100000) + /* compute path for sysctl */ + snprintf(path, sizeof(path), "dev.mce.%d.tx_pauseframe_control", + device_get_unit(priv->mdev->pdev->dev.bsddev)); + + /* try to fetch tunable, if any */ + TUNABLE_INT_FETCH(path, &priv->params.tx_pauseframe_control); + + /* compute path for sysctl */ + snprintf(path, sizeof(path), "dev.mce.%d.rx_pauseframe_control", + device_get_unit(priv->mdev->pdev->dev.bsddev)); + + /* try to fetch tunable, if any */ + TUNABLE_INT_FETCH(path, &priv->params.rx_pauseframe_control); +#endif + + /* register pausframe SYSCTLs */ + SYSCTL_ADD_INT(&priv->sysctl_ctx, SYSCTL_CHILDREN(priv->sysctl_ifnet), + OID_AUTO, "tx_pauseframe_control", CTLFLAG_RDTUN, + &priv->params.tx_pauseframe_control, 0, + "Set to enable TX pause frames. Clear to disable."); + + SYSCTL_ADD_INT(&priv->sysctl_ctx, SYSCTL_CHILDREN(priv->sysctl_ifnet), + OID_AUTO, "rx_pauseframe_control", CTLFLAG_RDTUN, + &priv->params.rx_pauseframe_control, 0, + "Set to enable RX pause frames. Clear to disable."); + + /* range check */ + priv->params.tx_pauseframe_control = + priv->params.tx_pauseframe_control ? 1 : 0; + priv->params.rx_pauseframe_control = + priv->params.rx_pauseframe_control ? 1 : 0; + + /* update firmware */ + mlx5_set_port_pause(priv->mdev, 1, + priv->params.rx_pauseframe_control, + priv->params.tx_pauseframe_control); +} + static void * mlx5e_create_ifp(struct mlx5_core_dev *mdev) { @@ -2874,11 +2946,11 @@ mlx5e_create_ifp(struct mlx5_core_dev *m /* Set default media status */ priv->media_status_last = IFM_AVALID; - priv->media_active_last = IFM_ETHER | IFM_AUTO; + priv->media_active_last = IFM_ETHER | IFM_AUTO | + IFM_ETH_RXPAUSE | IFM_FDX; - /* Pauseframes are enabled by default */ - priv->params_ethtool.tx_pauseframe_control = 1; - priv->params_ethtool.rx_pauseframe_control = 1; + /* setup default pauseframes configuration */ + mlx5e_setup_pauseframes(priv); err = mlx5_query_port_proto_cap(mdev, ð_proto_cap, MLX5_PTYS_EN); if (err) { @@ -2894,14 +2966,24 @@ mlx5e_create_ifp(struct mlx5_core_dev *m for (i = 0; i < MLX5E_LINK_MODES_NUMBER; ++i) { if (mlx5e_mode_table[i].baudrate == 0) continue; - if (MLX5E_PROT_MASK(i) & eth_proto_cap) + if (MLX5E_PROT_MASK(i) & eth_proto_cap) { ifmedia_add(&priv->media, - IFM_ETHER | mlx5e_mode_table[i].subtype | - IFM_FDX, 0, NULL); + mlx5e_mode_table[i].subtype | + IFM_ETHER, 0, NULL); + ifmedia_add(&priv->media, + mlx5e_mode_table[i].subtype | + IFM_ETHER | IFM_FDX | + IFM_ETH_RXPAUSE | IFM_ETH_TXPAUSE, 0, NULL); + } } ifmedia_add(&priv->media, IFM_ETHER | IFM_AUTO, 0, NULL); - ifmedia_set(&priv->media, IFM_ETHER | IFM_AUTO); + ifmedia_add(&priv->media, IFM_ETHER | IFM_AUTO | IFM_FDX | + IFM_ETH_RXPAUSE | IFM_ETH_TXPAUSE, 0, NULL); + + /* Set autoselect by default */ + ifmedia_set(&priv->media, IFM_ETHER | IFM_AUTO | IFM_FDX | + IFM_ETH_RXPAUSE | IFM_ETH_TXPAUSE); ether_ifattach(ifp, dev_addr); /* Register for VLAN events */ From owner-svn-src-all@freebsd.org Wed Jan 27 14:57:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D45D7A6FB5E; Wed, 27 Jan 2016 14:57:38 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A13A91F6D; Wed, 27 Jan 2016 14:57:38 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0REvbtb084358; Wed, 27 Jan 2016 14:57:37 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0REvblF084357; Wed, 27 Jan 2016 14:57:37 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601271457.u0REvblF084357@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 27 Jan 2016 14:57:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294918 - stable/10/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:57:38 -0000 Author: hselasky Date: Wed Jan 27 14:57:37 2016 New Revision: 294918 URL: https://svnweb.freebsd.org/changeset/base/294918 Log: MFC r294317: Declare local variables at top of function. Sponsored by: Mellanox Technologies Differential Revision: https://reviews.freebsd.org/D4939 Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c ============================================================================== --- stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c Wed Jan 27 14:55:41 2016 (r294917) +++ stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c Wed Jan 27 14:57:37 2016 (r294918) @@ -100,20 +100,23 @@ mlx5e_lro_update_hdr(struct mbuf *mb, st /* TODO: consider vlans, ip options, ... */ struct ether_header *eh; uint16_t eh_type; + uint16_t tot_len; struct ip6_hdr *ip6 = NULL; struct ip *ip4 = NULL; struct tcphdr *th; uint32_t *ts_ptr; + uint8_t l4_hdr_type; + int tcp_ack; eh = mtod(mb, struct ether_header *); eh_type = ntohs(eh->ether_type); - u8 l4_hdr_type = get_cqe_l4_hdr_type(cqe); - int tcp_ack = ((CQE_L4_HDR_TYPE_TCP_ACK_NO_DATA == l4_hdr_type) || + l4_hdr_type = get_cqe_l4_hdr_type(cqe); + tcp_ack = ((CQE_L4_HDR_TYPE_TCP_ACK_NO_DATA == l4_hdr_type) || (CQE_L4_HDR_TYPE_TCP_ACK_AND_DATA == l4_hdr_type)); /* TODO: consider vlan */ - u16 tot_len = be32_to_cpu(cqe->byte_cnt) - ETHER_HDR_LEN; + tot_len = be32_to_cpu(cqe->byte_cnt) - ETHER_HDR_LEN; switch (eh_type) { case ETHERTYPE_IP: From owner-svn-src-all@freebsd.org Wed Jan 27 14:59:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2703CA6FC27; Wed, 27 Jan 2016 14:59:24 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EB63B11AD; Wed, 27 Jan 2016 14:59:23 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RExM2r084592; Wed, 27 Jan 2016 14:59:22 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RExMvg084591; Wed, 27 Jan 2016 14:59:22 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601271459.u0RExMvg084591@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 27 Jan 2016 14:59:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294919 - stable/10/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 14:59:24 -0000 Author: hselasky Date: Wed Jan 27 14:59:22 2016 New Revision: 294919 URL: https://svnweb.freebsd.org/changeset/base/294919 Log: MFC r294318: Add clarifying comment about CQE zipping. Sponsored by: Mellanox Technologies Differential Revision: https://reviews.freebsd.org/D4940 Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c ============================================================================== --- stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c Wed Jan 27 14:57:37 2016 (r294918) +++ stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c Wed Jan 27 14:59:22 2016 (r294919) @@ -270,6 +270,11 @@ mlx5e_decompress_cqe(struct mlx5e_cq *cq struct mlx5_mini_cqe8 *mini, u16 wqe_counter, int i) { + /* + * NOTE: The fields which are not set here are copied from the + * initial and common title. See memcpy() in + * mlx5e_write_cqe_slot(). + */ title->byte_cnt = mini->byte_cnt; title->wqe_counter = cpu_to_be16((wqe_counter + i) & cq->wq.sz_m1); title->check_sum = mini->checksum; From owner-svn-src-all@freebsd.org Wed Jan 27 15:01:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4CA24A6FEAD; Wed, 27 Jan 2016 15:01:10 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 02F6E13DC; Wed, 27 Jan 2016 15:01:09 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RF19t3087225; Wed, 27 Jan 2016 15:01:09 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RF19Ts087224; Wed, 27 Jan 2016 15:01:09 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201601271501.u0RF19Ts087224@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 27 Jan 2016 15:01:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294920 - stable/10/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 15:01:10 -0000 Author: hselasky Date: Wed Jan 27 15:01:08 2016 New Revision: 294920 URL: https://svnweb.freebsd.org/changeset/base/294920 Log: MFC r294319: Fix an issue where the network adapter could be left in down state after changing the HW LRO sysctl when previously in up state. Sponsored by: Mellanox Technologies Differential Revision: https://reviews.freebsd.org/D4941 Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Wed Jan 27 14:59:22 2016 (r294919) +++ stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Wed Jan 27 15:01:08 2016 (r294920) @@ -178,23 +178,21 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARG priv->params.tx_cq_moderation_mode = priv->params_ethtool.tx_coalesce_mode; /* we always agree to turn off HW LRO - but not always to turn on */ - if (priv->params_ethtool.hw_lro) { - if (priv->params_ethtool.hw_lro != 1) { - priv->params_ethtool.hw_lro = priv->params.hw_lro_en; - error = EINVAL; - goto done; - } - if (priv->ifp->if_capenable & IFCAP_LRO) - priv->params.hw_lro_en = !!MLX5_CAP_ETH(priv->mdev, lro_cap); - else { - /* set the correct (0) value to params_ethtool.hw_lro, issue a warning and return error */ + if (priv->params_ethtool.hw_lro != 0) { + if ((priv->ifp->if_capenable & IFCAP_LRO) && + MLX5_CAP_ETH(priv->mdev, lro_cap)) { + priv->params.hw_lro_en = 1; + priv->params_ethtool.hw_lro = 1; + } else { + priv->params.hw_lro_en = 0; priv->params_ethtool.hw_lro = 0; error = EINVAL; - if_printf(priv->ifp, "Can't set HW_LRO to a device with LRO turned off"); - goto done; + + if_printf(priv->ifp, "Can't enable HW LRO: " + "The HW or SW LRO feature is disabled"); } } else { - priv->params.hw_lro_en = false; + priv->params.hw_lro_en = 0; } if (&priv->params_ethtool.arg[arg2] == @@ -208,7 +206,6 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARG priv->params_ethtool.cqe_zipping = 0; } } - if (was_opened) mlx5e_open_locked(priv->ifp); done: From owner-svn-src-all@freebsd.org Wed Jan 27 15:19:49 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CCFA4A705B0; Wed, 27 Jan 2016 15:19:49 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9DBE012EE; Wed, 27 Jan 2016 15:19:49 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RFJmBa090562; Wed, 27 Jan 2016 15:19:48 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RFJmYR090561; Wed, 27 Jan 2016 15:19:48 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601271519.u0RFJmYR090561@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 15:19:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294921 - stable/10/sys/boot/forth X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 15:19:49 -0000 Author: dteske Date: Wed Jan 27 15:19:48 2016 New Revision: 294921 URL: https://svnweb.freebsd.org/changeset/base/294921 Log: MFC 283933: Add comments r283933: Indicate where the flag for later abort" originates. Modified: stable/10/sys/boot/forth/support.4th Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/forth/support.4th ============================================================================== --- stable/10/sys/boot/forth/support.4th Wed Jan 27 15:01:08 2016 (r294920) +++ stable/10/sys/boot/forth/support.4th Wed Jan 27 15:19:48 2016 (r294921) @@ -1460,12 +1460,12 @@ also builtins abort" Unable to load a kernel!" ; -: load_xen ( -- ) +: load_xen ( -- flag ) s" xen_kernel" getenv dup -1 <> if - 1 1 load + 1 1 load ( c-addr/u flag N -- flag ) else drop - 0 + 0 ( -1 -- flag ) then ; From owner-svn-src-all@freebsd.org Wed Jan 27 15:22:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1FD4EA7073D; Wed, 27 Jan 2016 15:22:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mx1.sbone.de (bird.sbone.de [46.4.1.90]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id D1D751840; Wed, 27 Jan 2016 15:22:00 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id 5F70925D386D; Wed, 27 Jan 2016 15:21:50 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id 12D90C77090; Wed, 27 Jan 2016 15:21:50 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id KlImy-y46vux; Wed, 27 Jan 2016 15:21:49 +0000 (UTC) Received: from [IPv6:fde9:577b:c1a9:4420:cabc:c8ff:fe8b:4fe6] (orange-tun0-ula.sbone.de [IPv6:fde9:577b:c1a9:4420:cabc:c8ff:fe8b:4fe6]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 94460C76FE5; Wed, 27 Jan 2016 15:21:48 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r294893 - head/lib/libdpv From: "Bjoern A. Zeeb" In-Reply-To: <201601270621.u0R6LZPd030494@repo.freebsd.org> Date: Wed, 27 Jan 2016 15:21:46 +0000 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <1BF8A649-7E73-4F56-B2E7-D0F1C5D6E1C9@FreeBSD.org> References: <201601270621.u0R6LZPd030494@repo.freebsd.org> To: Devin Teske X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 15:22:02 -0000 > On 27 Jan 2016, at 06:21 , Devin Teske wrote: >=20 > Author: dteske > Date: Wed Jan 27 06:21:35 2016 > New Revision: 294893 > URL: https://svnweb.freebsd.org/changeset/base/294893 >=20 > Log: > Fix a crash if `-D' is used without `-t title' >=20 > dialog(3)'s dlg_reallocate_gauge(), used both by dialog(3)'s = dialog_gauge() > and dialog(1)'s `--gauge', will segmentation fault in strlen(3) if no = title > is set for the widget. Reproducible with `dialog --gauge hi 6 20' = (adding > `=E2=80=94title =E2=80=9C=E2=80=9D' is enough to prevent segmentation = fault). mips/sparc64/powerpc say: /scratch/tmp/bz/head.svn/lib/libdpv/dialog_util.c: In function = 'dialog_spawn_gauge': /scratch/tmp/bz/head.svn/lib/libdpv/dialog_util.c:270: warning: = zero-length printf format string From owner-svn-src-all@freebsd.org Wed Jan 27 15:28:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B240A70932; Wed, 27 Jan 2016 15:28:25 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 28CA11BB8; Wed, 27 Jan 2016 15:28:25 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RFSOQT093573; Wed, 27 Jan 2016 15:28:24 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RFSONc093572; Wed, 27 Jan 2016 15:28:24 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201601271528.u0RFSONc093572@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 27 Jan 2016 15:28:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294922 - head/lib/libdpv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 15:28:25 -0000 Author: dteske Date: Wed Jan 27 15:28:23 2016 New Revision: 294922 URL: https://svnweb.freebsd.org/changeset/base/294922 Log: Fix fatal warn when compiling under GCC 5.2.0 GCC 5.2.0 generates the following [fatal] warning: dialog_util.c:270:23: error: zero-length gnu_printf format string [-Werror=format-zero-length] sprintf(dargv[n++], ""); Fix malloc argument while here, removing sprintf. Reported by: Ruslan Bukin Modified: head/lib/libdpv/dialog_util.c Modified: head/lib/libdpv/dialog_util.c ============================================================================== --- head/lib/libdpv/dialog_util.c Wed Jan 27 15:19:48 2016 (r294921) +++ head/lib/libdpv/dialog_util.c Wed Jan 27 15:28:23 2016 (r294922) @@ -265,9 +265,9 @@ dialog_spawn_gauge(char *init_prompt, pi if ((dargv[n] = malloc(8)) == NULL) errx(EXIT_FAILURE, "Out of memory?!"); sprintf(dargv[n++], "--title"); - if ((dargv[n] = malloc(8)) == NULL) + if ((dargv[n] = malloc(1)) == NULL) errx(EXIT_FAILURE, "Out of memory?!"); - sprintf(dargv[n++], ""); + *dargv[n++] = '\0'; } if (backtitle != NULL) { if ((dargv[n] = malloc(12)) == NULL) From owner-svn-src-all@freebsd.org Wed Jan 27 15:30:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 416E5A70AB6; Wed, 27 Jan 2016 15:30:42 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from shxd.cx (mail.shxd.cx [64.201.244.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 34FAF1EFF; Wed, 27 Jan 2016 15:30:42 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from [64.201.244.132] (port=50709 helo=[10.0.0.113]) by shxd.cx with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1aOS3G-000IjR-S6; Wed, 27 Jan 2016 07:30:35 -0800 Message-ID: <1453908634.4517.2.camel@FreeBSD.org> Subject: Re: svn commit: r294893 - head/lib/libdpv From: Devin Teske To: Ruslan Bukin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, dteske@FreeBSD.org Date: Wed, 27 Jan 2016 07:30:34 -0800 In-Reply-To: <20160127110306.GA92213@bsdpad.com> References: <201601270621.u0R6LZPd030494@repo.freebsd.org> <20160127110306.GA92213@bsdpad.com> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: devin@shxd.cx X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 15:30:42 -0000 On Wed, 2016-01-27 at 11:03 +0000, Ruslan Bukin wrote: > I get this with GCC 5.2.0: > > /home/rb743/dev/freebsd-riscv/lib/libdpv/dialog_util.c:270:23: error: > zero-length gnu_printf format string [-Werror=for > mat-zero-length] > sprintf(dargv[n++], ""); > > Ruslan > Fixed just now: https://svnweb.freebsd.org/base?view=revision&revision=294922 Thanks a bunch! -- Cheers,Devin > On Wed, Jan 27, 2016 at 06:21:35AM +0000, Devin Teske wrote: > > Author: dteske > > Date: Wed Jan 27 06:21:35 2016 > > New Revision: 294893 > > URL: https://svnweb.freebsd.org/changeset/base/294893 > > > > Log: > > Fix a crash if `-D' is used without `-t title' > > > > dialog(3)'s dlg_reallocate_gauge(), used both by dialog(3)'s > > dialog_gauge() > > and dialog(1)'s `--gauge', will segmentation fault in strlen(3) > > if no title > > is set for the widget. Reproducible with `dialog --gauge hi 6 20' > > (adding > > `--title ""' is enough to prevent segmentation fault). > > > > MFC after: 3 days > > X-MFC-to: stable/10 > > > > Modified: > > head/lib/libdpv/dialog_util.c > > > > Modified: head/lib/libdpv/dialog_util.c > > =================================================================== > > =========== > > --- head/lib/libdpv/dialog_util.c Wed Jan 27 06:16:53 2016 > > (r294892) > > +++ head/lib/libdpv/dialog_util.c Wed Jan 27 06:21:35 2016 > > (r294893) > > @@ -261,6 +261,13 @@ dialog_spawn_gauge(char *init_prompt, pi > > errx(EXIT_FAILURE, "Out of memory?!"); > > sprintf(dargv[n++], "--title"); > > dargv[n++] = title; > > + } else { > > + if ((dargv[n] = malloc(8)) == NULL) > > + errx(EXIT_FAILURE, "Out of memory?!"); > > + sprintf(dargv[n++], "--title"); > > + if ((dargv[n] = malloc(8)) == NULL) > > + errx(EXIT_FAILURE, "Out of memory?!"); > > + sprintf(dargv[n++], ""); > > } > > if (backtitle != NULL) { > > if ((dargv[n] = malloc(12)) == NULL) > > > > From owner-svn-src-all@freebsd.org Wed Jan 27 15:32:35 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4163A70C62; Wed, 27 Jan 2016 15:32:35 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from shxd.cx (mail.shxd.cx [64.201.244.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B749D1330; Wed, 27 Jan 2016 15:32:35 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from [64.201.244.132] (port=27860 helo=[10.0.0.113]) by shxd.cx with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1aOS5D-000IkE-JZ; Wed, 27 Jan 2016 07:32:35 -0800 Message-ID: <1453908755.4517.4.camel@FreeBSD.org> Subject: Re: svn commit: r294893 - head/lib/libdpv From: Devin Teske To: "Bjoern A. Zeeb" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, dteske@FreeBSD.org Date: Wed, 27 Jan 2016 07:32:35 -0800 In-Reply-To: <1BF8A649-7E73-4F56-B2E7-D0F1C5D6E1C9@FreeBSD.org> References: <201601270621.u0R6LZPd030494@repo.freebsd.org> <1BF8A649-7E73-4F56-B2E7-D0F1C5D6E1C9@FreeBSD.org> Content-Type: text/plain; charset="windows-1251" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: devin@shxd.cx X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 15:32:35 -0000 On Wed, 2016-01-27 at 15:21 +0000, Bjoern A. Zeeb wrote: > > On 27 Jan 2016, at 06:21 , Devin Teske wrote: > >=20 > > Author: dteske > > Date: Wed Jan 27 06:21:35 2016 > > New Revision: 294893 > > URL: https://svnweb.freebsd.org/changeset/base/294893 > >=20 > > Log: > > Fix a crash if `-D' is used without `-t title' > >=20 > > dialog(3)'s dlg_reallocate_gauge(), used both by dialog(3)'s > > dialog_gauge() > > and dialog(1)'s `--gauge', will segmentation fault in strlen(3) if > > no title > > is set for the widget. Reproducible with `dialog --gauge hi 6 20' > > (adding > > `=97title =93=94' is enough to prevent segmentation fault). >=20 >=20 > mips/sparc64/powerpc say: >=20 > /scratch/tmp/bz/head.svn/lib/libdpv/dialog_util.c: In function > 'dialog_spawn_gauge': > /scratch/tmp/bz/head.svn/lib/libdpv/dialog_util.c:270: warning: zero > -length printf format string >=20 >=20 Fixed before you could hit send ;D https://svnweb.freebsd.org/base?view=3Drevision&revision=3D294922 (someone else reported it last night) --=20 Devin From owner-svn-src-all@freebsd.org Wed Jan 27 16:13:12 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4784BA6FA44; Wed, 27 Jan 2016 16:13:12 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0FA13187B; Wed, 27 Jan 2016 16:13:11 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RGDAZD007868; Wed, 27 Jan 2016 16:13:10 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RGDAXd007867; Wed, 27 Jan 2016 16:13:10 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201601271613.u0RGDAXd007867@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 27 Jan 2016 16:13:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294923 - head/contrib/netbsd-tests/usr.bin/grep X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 16:13:12 -0000 Author: asomers Date: Wed Jan 27 16:13:10 2016 New Revision: 294923 URL: https://svnweb.freebsd.org/changeset/base/294923 Log: Fix grep_test:recurse with ZFS and TMPFS tmpdirs contrib/netbsd-tests/usr.bin/grep/t_grep.sh Fix grep_test:recurse when /tmp is either zfs or tmpfs. The test was relying on an implicit ordering of directory recursion which happens to be true when using UFS. grep's specification requires no such ordering. The solution is to ignore the order of grep's results. Reviewed by: ngie MFC after: 32 days Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D4925 Modified: head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Modified: head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh ============================================================================== --- head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Wed Jan 27 15:28:23 2016 (r294922) +++ head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Wed Jan 27 16:13:10 2016 (r294923) @@ -70,7 +70,15 @@ recurse_body() echo -e "cod\ndover sole\nhaddock\nhalibut\npilchard" > recurse/d/fish echo -e "cod\nhaddock\nplaice" > recurse/a/f/favourite-fish + # Begin FreeBSD + if true; then + atf_check -o file:"$(atf_get_srcdir)/d_recurse.out" -x "grep -r haddock recurse | sort" + else + # End FreeBSD atf_check -o file:"$(atf_get_srcdir)/d_recurse.out" grep -r haddock recurse + # Begin FreeBSD + fi + # End FreeBSD } atf_test_case recurse_symlink From owner-svn-src-all@freebsd.org Wed Jan 27 16:17:17 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 692E3A6FC95; Wed, 27 Jan 2016 16:17:17 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 380DC1CE9; Wed, 27 Jan 2016 16:17:17 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RGHGJ0008185; Wed, 27 Jan 2016 16:17:16 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RGHGu9008184; Wed, 27 Jan 2016 16:17:16 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201601271617.u0RGHGu9008184@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 27 Jan 2016 16:17:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294924 - head/usr.sbin/syslogd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 16:17:17 -0000 Author: asomers Date: Wed Jan 27 16:17:15 2016 New Revision: 294924 URL: https://svnweb.freebsd.org/changeset/base/294924 Log: syslogd: Enable repeated line compression for lines of any length. Enable repeated line compression for lines of any length, instead of only short lines. AFAICT repeated line compression was limited to short lines as a RAM optimization, which made sense when karels added it in 1988, but no longer. The penalty is a paltry 904B of RAM per file logged. Reviewed by: rpaulo MFC after: 32 days Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D4475 Modified: head/usr.sbin/syslogd/syslogd.c Modified: head/usr.sbin/syslogd/syslogd.c ============================================================================== --- head/usr.sbin/syslogd/syslogd.c Wed Jan 27 16:13:10 2016 (r294923) +++ head/usr.sbin/syslogd/syslogd.c Wed Jan 27 16:17:15 2016 (r294924) @@ -69,7 +69,7 @@ __FBSDID("$FreeBSD$"); */ #define MAXLINE 1024 /* maximum line length */ -#define MAXSVLINE 120 /* maximum saved line length */ +#define MAXSVLINE MAXLINE /* maximum saved line length */ #define DEFUPRI (LOG_USER|LOG_NOTICE) #define DEFSPRI (LOG_KERN|LOG_CRIT) #define TIMERINTVL 30 /* interval for checking flush, mark */ From owner-svn-src-all@freebsd.org Wed Jan 27 16:36:20 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E4FEA70393; Wed, 27 Jan 2016 16:36:20 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 15C621877; Wed, 27 Jan 2016 16:36:20 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RGaJaX013980; Wed, 27 Jan 2016 16:36:19 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RGaI90013974; Wed, 27 Jan 2016 16:36:18 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601271636.u0RGaI90013974@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 27 Jan 2016 16:36:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294925 - in head/sys/boot: common i386/boot2 i386/gptboot i386/zfsboot mips/beri/boot2 pc98/boot2 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 16:36:20 -0000 Author: imp Date: Wed Jan 27 16:36:18 2016 New Revision: 294925 URL: https://svnweb.freebsd.org/changeset/base/294925 Log: Fix mistake when transitioning to the new defines with ZFS loader. I hate adding yet another define, but it is the lessor of the evil choices available. Kill another evil by removing PATH_BOOT3 and replacing it with PATH_LOADER or PATH_LOADER_ZFS as appropriate. PR: 206659 Modified: head/sys/boot/common/paths.h head/sys/boot/i386/boot2/boot2.c head/sys/boot/i386/gptboot/gptboot.c head/sys/boot/i386/zfsboot/zfsboot.c head/sys/boot/mips/beri/boot2/boot2.c head/sys/boot/pc98/boot2/boot2.c Modified: head/sys/boot/common/paths.h ============================================================================== --- head/sys/boot/common/paths.h Wed Jan 27 16:17:15 2016 (r294924) +++ head/sys/boot/common/paths.h Wed Jan 27 16:36:18 2016 (r294925) @@ -31,9 +31,9 @@ #define PATH_DOTCONFIG "/boot.config" #define PATH_CONFIG "/boot/config" -#define PATH_BOOT3 "/boot/loader" #define PATH_LOADER "/boot/loader" #define PATH_LOADER_EFI "/boot/loader.efi" +#define PATH_LOADER_ZFS "/boot/zfsloader" #define PATH_KERNEL "/boot/kernel/kernel" #endif /* _PATHS_H_ */ Modified: head/sys/boot/i386/boot2/boot2.c ============================================================================== --- head/sys/boot/i386/boot2/boot2.c Wed Jan 27 16:17:15 2016 (r294924) +++ head/sys/boot/i386/boot2/boot2.c Wed Jan 27 16:36:18 2016 (r294925) @@ -235,7 +235,7 @@ main(void) */ if (!kname) { - kname = PATH_BOOT3; + kname = PATH_LOADER; if (autoboot && !keyhit(3*SECOND)) { load(); kname = PATH_KERNEL; Modified: head/sys/boot/i386/gptboot/gptboot.c ============================================================================== --- head/sys/boot/i386/gptboot/gptboot.c Wed Jan 27 16:17:15 2016 (r294924) +++ head/sys/boot/i386/gptboot/gptboot.c Wed Jan 27 16:36:18 2016 (r294925) @@ -178,7 +178,7 @@ main(void) if (autoboot && keyhit(3)) { if (*kname == '\0') - memcpy(kname, PATH_BOOT3, sizeof(PATH_BOOT3)); + memcpy(kname, PATH_LOADER, sizeof(PATH_LOADER)); break; } autoboot = 0; @@ -190,7 +190,7 @@ main(void) */ if (*kname != '\0') load(); - memcpy(kname, PATH_BOOT3, sizeof(PATH_BOOT3)); + memcpy(kname, PATH_LOADER, sizeof(PATH_LOADER)); load(); memcpy(kname, PATH_KERNEL, sizeof(PATH_KERNEL)); load(); Modified: head/sys/boot/i386/zfsboot/zfsboot.c ============================================================================== --- head/sys/boot/i386/zfsboot/zfsboot.c Wed Jan 27 16:17:15 2016 (r294924) +++ head/sys/boot/i386/zfsboot/zfsboot.c Wed Jan 27 16:36:18 2016 (r294925) @@ -546,12 +546,12 @@ main(void) } /* - * Try to exec stage 3 boot loader. If interrupted by a keypress, + * Try to exec /boot/loader. If interrupted by a keypress, * or in case of failure, try to load a kernel directly instead. */ if (autoboot && !*kname) { - memcpy(kname, PATH_BOOT3, sizeof(PATH_BOOT3)); + memcpy(kname, PATH_LOADER_ZFS, sizeof(PATH_LOADER_ZFS)); if (!keyhit(3)) { load(); memcpy(kname, PATH_KERNEL, sizeof(PATH_KERNEL)); Modified: head/sys/boot/mips/beri/boot2/boot2.c ============================================================================== --- head/sys/boot/mips/beri/boot2/boot2.c Wed Jan 27 16:17:15 2016 (r294924) +++ head/sys/boot/mips/beri/boot2/boot2.c Wed Jan 27 16:36:18 2016 (r294925) @@ -248,7 +248,7 @@ main(u_int argc, const char *argv[], con */ if (!kname) { - kname = PATH_BOOT3; + kname = PATH_LOADER; if (autoboot && !keyhit(3*SECOND)) { boot_fromfs(); kname = PATH_KERNEL; Modified: head/sys/boot/pc98/boot2/boot2.c ============================================================================== --- head/sys/boot/pc98/boot2/boot2.c Wed Jan 27 16:17:15 2016 (r294924) +++ head/sys/boot/pc98/boot2/boot2.c Wed Jan 27 16:36:18 2016 (r294925) @@ -374,7 +374,7 @@ main(void) */ if (!kname) { - kname = PATH_BOOT3; + kname = PATH_LOADER; if (autoboot && !keyhit(3*SECOND)) { load(); kname = PATH_KERNEL; From owner-svn-src-all@freebsd.org Wed Jan 27 16:39:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94566A704EE for ; Wed, 27 Jan 2016 16:39:38 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4BC741BF1 for ; Wed, 27 Jan 2016 16:39:38 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: by mail-wm0-x236.google.com with SMTP id p63so35237646wmp.1 for ; Wed, 27 Jan 2016 08:39:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=hQIjJZuusLQMMjqGyS9zjag8Ufyv7BcKaJ7eQ/b1O9M=; b=vZpmJCHhvKs7wpfyTgKH28sqPvBkVE25Ep4enzsyEDBAlpjRs7Kqas9dnnbvyywjyF Vjm1/bQ3moWY0cfRD++YT6yObUhBPOXoWSl0rv6VaoDZLZp9GYIzjBANP9S7sFUkDcid FqD17bC4hs5fPfKcG0DQNTYUPf97GCY/qHpFR+l2maeu2bt3dLltXcNGe86dCQShsA8v Xm0Phv/OcxV8Mo94FcbenTTGiyStOMdM63UNnGggBPt29fnms3RJyjXDh6AEFlRWMPl3 RIa5lvzhTwMnb83VA+sDeKFTlsofi2AX/tyo/eF5tiBpGy5XfodUB1LTii8Ox78TDMPy QgAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=hQIjJZuusLQMMjqGyS9zjag8Ufyv7BcKaJ7eQ/b1O9M=; b=cGLaJHk44wNyUrlianA9Ec39XWf6ygBp4mtfPXyCPWGOMdA0cCiJc9wMgc38ilOwrO Ny0xmc/Yi3uRA3IchKTATUDvuEWr3+kOnJUqH1z5nV50972esAXnXXk/vBY5e4uy2EwN Cw4gGhGoFpHgBsh+hJxuJodxR5fTkix9Nr//jDZ4YlKo0tm6mRmOsRwqBWSTusBI0NcZ 1AMjLzPj5NpyYrwOVnvvEC9GWSRSk8gc2FV7XwjLCAj5h0n1BjuKkWDOKl4bGybAIjFu lJC2nibSUiXAbY/C9aK0+6NDkSV42G8TUPPxgFiixx5u1qd62iW9Hsfzz0thxuB4hlud WMSg== X-Gm-Message-State: AG10YOQd6Jz2P512WowCOq306VnLsmSXRPcCdhAK6lr2xs2mitH0kxg2uf6NdU3KKb9+bZ76 X-Received: by 10.194.240.234 with SMTP id wd10mr34185648wjc.129.1453912776613; Wed, 27 Jan 2016 08:39:36 -0800 (PST) Received: from [10.10.1.58] (liv3d.labs.multiplay.co.uk. [82.69.141.171]) by smtp.gmail.com with ESMTPSA id e77sm9091694wma.18.2016.01.27.08.39.34 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 27 Jan 2016 08:39:35 -0800 (PST) Subject: Re: svn commit: r294925 - in head/sys/boot: common i386/boot2 i386/gptboot i386/zfsboot mips/beri/boot2 pc98/boot2 To: Warner Losh , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201601271636.u0RGaI90013974@repo.freebsd.org> From: Steven Hartland Message-ID: <56A8F2D5.5000302@multiplay.co.uk> Date: Wed, 27 Jan 2016 16:39:49 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <201601271636.u0RGaI90013974@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 16:39:38 -0000 On 27/01/2016 16:36, Warner Losh wrote: > Author: imp > Date: Wed Jan 27 16:36:18 2016 > New Revision: 294925 > URL: https://svnweb.freebsd.org/changeset/base/294925 > > Log: > Fix mistake when transitioning to the new defines with ZFS loader. I > hate adding yet another define, but it is the lessor of the evil > choices available. Kill another evil by removing PATH_BOOT3 and > replacing it with PATH_LOADER or PATH_LOADER_ZFS as appropriate. > > PR: 206659 > > Modified: > head/sys/boot/common/paths.h > head/sys/boot/i386/boot2/boot2.c > head/sys/boot/i386/gptboot/gptboot.c > head/sys/boot/i386/zfsboot/zfsboot.c > head/sys/boot/mips/beri/boot2/boot2.c > head/sys/boot/pc98/boot2/boot2.c > > Modified: head/sys/boot/common/paths.h > ============================================================================== > --- head/sys/boot/common/paths.h Wed Jan 27 16:17:15 2016 (r294924) > +++ head/sys/boot/common/paths.h Wed Jan 27 16:36:18 2016 (r294925) > @@ -31,9 +31,9 @@ > > #define PATH_DOTCONFIG "/boot.config" > #define PATH_CONFIG "/boot/config" > -#define PATH_BOOT3 "/boot/loader" > #define PATH_LOADER "/boot/loader" > #define PATH_LOADER_EFI "/boot/loader.efi" > +#define PATH_LOADER_ZFS "/boot/zfsloader" > #define PATH_KERNEL "/boot/kernel/kernel" > > #endif /* _PATHS_H_ */ > > Modified: head/sys/boot/i386/boot2/boot2.c > ============================================================================== > --- head/sys/boot/i386/boot2/boot2.c Wed Jan 27 16:17:15 2016 (r294924) > +++ head/sys/boot/i386/boot2/boot2.c Wed Jan 27 16:36:18 2016 (r294925) > @@ -235,7 +235,7 @@ main(void) > */ > > if (!kname) { > - kname = PATH_BOOT3; > + kname = PATH_LOADER; > if (autoboot && !keyhit(3*SECOND)) { > load(); > kname = PATH_KERNEL; > > Modified: head/sys/boot/i386/gptboot/gptboot.c > ============================================================================== > --- head/sys/boot/i386/gptboot/gptboot.c Wed Jan 27 16:17:15 2016 (r294924) > +++ head/sys/boot/i386/gptboot/gptboot.c Wed Jan 27 16:36:18 2016 (r294925) > @@ -178,7 +178,7 @@ main(void) > > if (autoboot && keyhit(3)) { > if (*kname == '\0') > - memcpy(kname, PATH_BOOT3, sizeof(PATH_BOOT3)); > + memcpy(kname, PATH_LOADER, sizeof(PATH_LOADER)); > break; > } > autoboot = 0; > @@ -190,7 +190,7 @@ main(void) > */ > if (*kname != '\0') > load(); > - memcpy(kname, PATH_BOOT3, sizeof(PATH_BOOT3)); > + memcpy(kname, PATH_LOADER, sizeof(PATH_LOADER)); > load(); > memcpy(kname, PATH_KERNEL, sizeof(PATH_KERNEL)); > load(); > > Modified: head/sys/boot/i386/zfsboot/zfsboot.c > ============================================================================== > --- head/sys/boot/i386/zfsboot/zfsboot.c Wed Jan 27 16:17:15 2016 (r294924) > +++ head/sys/boot/i386/zfsboot/zfsboot.c Wed Jan 27 16:36:18 2016 (r294925) > @@ -546,12 +546,12 @@ main(void) > } > > /* > - * Try to exec stage 3 boot loader. If interrupted by a keypress, > + * Try to exec /boot/loader. If interrupted by a keypress, This comment should either refer the constant (so its always correct) or be /boot/zfsloader not /boot/loader From owner-svn-src-all@freebsd.org Wed Jan 27 16:45:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04904A70766; Wed, 27 Jan 2016 16:45:25 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C966510E4; Wed, 27 Jan 2016 16:45:24 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RGjNeQ016892; Wed, 27 Jan 2016 16:45:23 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RGjN7M016891; Wed, 27 Jan 2016 16:45:23 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201601271645.u0RGjN7M016891@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Wed, 27 Jan 2016 16:45:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294926 - head/sys/boot/ficl/i386 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 16:45:25 -0000 Author: allanjude Date: Wed Jan 27 16:45:23 2016 New Revision: 294926 URL: https://svnweb.freebsd.org/changeset/base/294926 Log: ficl on i386 should cast to unsigned char output to support efi i386 make it possible for efi_console to recognize and translate box characters on i386 build (unsigned versus signed char passed as int issue). Submitted by: Toomas Soome Reviewed by: emaste, smh, dteske MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D4993 Modified: head/sys/boot/ficl/i386/sysdep.c Modified: head/sys/boot/ficl/i386/sysdep.c ============================================================================== --- head/sys/boot/ficl/i386/sysdep.c Wed Jan 27 16:36:18 2016 (r294925) +++ head/sys/boot/ficl/i386/sysdep.c Wed Jan 27 16:45:23 2016 (r294926) @@ -58,7 +58,7 @@ void ficlTextOut(FICL_VM *pVM, char *ms IGNORE(pVM); while(*msg != 0) - putchar(*(msg++)); + putchar((unsigned char)*(msg++)); if (fNewline) putchar('\n'); From owner-svn-src-all@freebsd.org Wed Jan 27 17:25:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E072CA6F67C; Wed, 27 Jan 2016 17:25:08 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf0-x22e.google.com (mail-pf0-x22e.google.com [IPv6:2607:f8b0:400e:c00::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B2D431FE1; Wed, 27 Jan 2016 17:25:08 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf0-x22e.google.com with SMTP id x125so8119216pfb.0; Wed, 27 Jan 2016 09:25:08 -0800 (PST) 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; bh=1rn+yezHNRqDTYJCPDDCTPK9I8qzcB7ssM0AYBnbgzM=; b=LvwdBspTm5aq3DOGClyuP427X/CU+Xxw1DhupQfhxQ7+TgrbysLAPpvy9g/FqgkKgh NxjwgP7VnfeKjYdHTSWv65xLwRkcZL8Co6/FJqwzW7ei0n08kizSRrF9UhlgQGcvsC90 MGTXCmU2ehIDPqBI0OiKraCRRc53TydTqflDv6CFNAIaAVKfbZ7jdBN4q675xBbvuNFz wadlxpfH1C771ogwpdYp2h2PGmmYgU27SBBYtgG09HUSmlMRu/1Hkb1E9dY9QcVKFcud sUTOTNqb1SLlVIHaRiEEj1IiTW028PO6SkysvHd24GA9lN0uQMZZQzE3HMnzLC7YStt+ 65Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=1rn+yezHNRqDTYJCPDDCTPK9I8qzcB7ssM0AYBnbgzM=; b=CPSUde+vTD1AE0sUcwNf6iwLxKG3iJ+HHarQ28EICE882Ew+JY+/3V0NmdIn84jhcz C4RqMJNKFqZpc3XXDOYzPQ68Hgn7KHcQeI5NwVwc9p3VIKXwXOJfYQSSEv7C/RnDXJrH os8W4To3QAKKfzQ0jroVs5yj1fsvG2BdOYjVKju9UTWn9YyvoqKV5/V2EHe9VZIQ6L8Y qtOUkxB/BJIvib4mxUN/uQDbHZpbEnIwQBtVgCWaiVqu+buSZLnk6a3vd1/E1p4u9CiC Xos0qeUK0OnqHwNJVbDKlSfPyhVUTj8QcVE9ThAD2DsoksBNZybjNGQ2cHXVOXcAwseB Juxg== X-Gm-Message-State: AG10YOS17SIkFDRJXqnyRabEgko5dZ1AY0lnheZQaegp+gvK8opVU4e8X+gmqGGV1CWwsw== X-Received: by 10.98.89.145 with SMTP id k17mr9033054pfj.82.1453915508317; Wed, 27 Jan 2016 09:25:08 -0800 (PST) Received: from [192.168.20.11] (c-24-16-212-205.hsd1.wa.comcast.net. [24.16.212.205]) by smtp.gmail.com with ESMTPSA id qz9sm10370399pab.39.2016.01.27.09.25.06 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 27 Jan 2016 09:25:06 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r294909 - head/crypto/openssh From: NGie Cooper X-Mailer: iPhone Mail (13D15) In-Reply-To: <201601271340.u0RDeiU5060523@repo.freebsd.org> Date: Wed, 27 Jan 2016 09:25:06 -0800 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <7BEC31CD-F7AF-44B5-BBB5-9F4CAF3487A7@gmail.com> References: <201601271340.u0RDeiU5060523@repo.freebsd.org> To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 17:25:09 -0000 > On Jan 27, 2016, at 05:40, Dag-Erling Sm=C3=B8rgrav wrot= e: >=20 > Author: des > Date: Wed Jan 27 13:40:44 2016 > New Revision: 294909 > URL: https://svnweb.freebsd.org/changeset/base/294909 >=20 > Log: > Switch UseDNS back on Please add "Relnotes: yes" to the MFC commit, if this is MFCed. Speaking of w= hich, is there a plan for MFCing this? It wasn't noted in the commit message= .. Thanks! -NGie= From owner-svn-src-all@freebsd.org Wed Jan 27 17:33:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D0E8A6F90A; Wed, 27 Jan 2016 17:33:33 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0E54813D9; Wed, 27 Jan 2016 17:33:32 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RHXWgj032180; Wed, 27 Jan 2016 17:33:32 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RHXWUH032179; Wed, 27 Jan 2016 17:33:32 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601271733.u0RHXWUH032179@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 27 Jan 2016 17:33:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294927 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 17:33:33 -0000 Author: andrew Date: Wed Jan 27 17:33:31 2016 New Revision: 294927 URL: https://svnweb.freebsd.org/changeset/base/294927 Log: When finding the physical address of a device allow intermediate addresses to be 64-bit on 32-bit architectures. It is not uncommon for device trees to use the upper 32-bits to store what effectively is an index into the parent ranges property. In this case, when running with a 32-bit bus_addr_t and bus_size_t, we would previously truncate the address, this may then incorrectly match the wrong range, and return the wrong address. Tested by: bz (earlier version) Modified: head/sys/dev/ofw/ofw_subr.c Modified: head/sys/dev/ofw/ofw_subr.c ============================================================================== --- head/sys/dev/ofw/ofw_subr.c Wed Jan 27 16:45:23 2016 (r294926) +++ head/sys/dev/ofw/ofw_subr.c Wed Jan 27 17:33:31 2016 (r294927) @@ -75,8 +75,8 @@ ofw_reg_to_paddr(phandle_t dev, int regn bus_size_t *psize, pcell_t *ppci_hi) { pcell_t cell[32], pci_hi; - bus_addr_t addr, raddr, baddr; - bus_size_t size, rsize; + uint64_t addr, raddr, baddr; + uint64_t size, rsize; uint32_t c, nbridge, naddr, nsize; phandle_t bridge, parent; u_int spc, rspc; @@ -167,6 +167,11 @@ ofw_reg_to_paddr(phandle_t dev, int regn get_addr_props(bridge, &naddr, &nsize, &pci); } + KASSERT(addr <= BUS_SPACE_MAXADDR, + ("Bus sddress is too large: %jx", (intmax_t)addr)); + KASSERT(size <= BUS_SPACE_MAXSIZE, + ("Bus size is too large: %jx", (intmax_t)addr)); + *paddr = addr; *psize = size; if (ppci_hi != NULL) From owner-svn-src-all@freebsd.org Wed Jan 27 17:41:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7E6D7A6FC7E for ; Wed, 27 Jan 2016 17:41:47 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 490521A69 for ; Wed, 27 Jan 2016 17:41:47 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound2.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Wed, 27 Jan 2016 17:42:44 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.14.9) with ESMTP id u0RHfhlR031573; Wed, 27 Jan 2016 10:41:43 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1453916503.42081.34.camel@freebsd.org> Subject: Re: svn commit: r294927 - head/sys/dev/ofw From: Ian Lepore To: Andrew Turner , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Wed, 27 Jan 2016 10:41:43 -0700 In-Reply-To: <201601271733.u0RHXWUH032179@repo.freebsd.org> References: <201601271733.u0RHXWUH032179@repo.freebsd.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 17:41:47 -0000 On Wed, 2016-01-27 at 17:33 +0000, Andrew Turner wrote: > Author: andrew > Date: Wed Jan 27 17:33:31 2016 > New Revision: 294927 > URL: https://svnweb.freebsd.org/changeset/base/294927 ... > + KASSERT(size <= BUS_SPACE_MAXSIZE, > + ("Bus size is too large: %jx", (intmax_t)addr)); Oops, printing addr in the size assert. -- Ian From owner-svn-src-all@freebsd.org Wed Jan 27 17:47:09 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 43647A6FF84; Wed, 27 Jan 2016 17:47:09 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 12DC51D91; Wed, 27 Jan 2016 17:47:09 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RHl825035454; Wed, 27 Jan 2016 17:47:08 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RHl8o6035453; Wed, 27 Jan 2016 17:47:08 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601271747.u0RHl8o6035453@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 27 Jan 2016 17:47:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294928 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 17:47:09 -0000 Author: andrew Date: Wed Jan 27 17:47:07 2016 New Revision: 294928 URL: https://svnweb.freebsd.org/changeset/base/294928 Log: Fix the value we print when the size is too large. While here fix the types we cast to to be unsigned as the data is unsigned. Reviewed by: ian Modified: head/sys/dev/ofw/ofw_subr.c Modified: head/sys/dev/ofw/ofw_subr.c ============================================================================== --- head/sys/dev/ofw/ofw_subr.c Wed Jan 27 17:33:31 2016 (r294927) +++ head/sys/dev/ofw/ofw_subr.c Wed Jan 27 17:47:07 2016 (r294928) @@ -168,9 +168,9 @@ ofw_reg_to_paddr(phandle_t dev, int regn } KASSERT(addr <= BUS_SPACE_MAXADDR, - ("Bus sddress is too large: %jx", (intmax_t)addr)); + ("Bus sddress is too large: %jx", (uintmax_t)addr)); KASSERT(size <= BUS_SPACE_MAXSIZE, - ("Bus size is too large: %jx", (intmax_t)addr)); + ("Bus size is too large: %jx", (uintmax_t)size)); *paddr = addr; *psize = size; From owner-svn-src-all@freebsd.org Wed Jan 27 17:55:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55C73A70366; Wed, 27 Jan 2016 17:55:04 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 256FE15F2; Wed, 27 Jan 2016 17:55:04 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RHt3ro038268; Wed, 27 Jan 2016 17:55:03 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RHt1UJ038252; Wed, 27 Jan 2016 17:55:01 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201601271755.u0RHt1UJ038252@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 27 Jan 2016 17:55:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294930 - in head/sys: amd64/amd64 amd64/ia32 amd64/linux amd64/linux32 arm/arm arm64/arm64 i386/i386 i386/linux i386/svr4 mips/mips powerpc/powerpc sparc64/sparc64 sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 17:55:04 -0000 Author: jhb Date: Wed Jan 27 17:55:01 2016 New Revision: 294930 URL: https://svnweb.freebsd.org/changeset/base/294930 Log: Convert ss_sp in stack_t and sigstack to void *. POSIX requires these members to be of type void * rather than the char * inherited from 4BSD. NetBSD and OpenBSD both changed their fields to void * back in 1998. No new build failures were reported via an exp-run. PR: 206503 (exp-run) Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D5092 Modified: head/sys/amd64/amd64/machdep.c head/sys/amd64/ia32/ia32_signal.c head/sys/amd64/linux/linux_sysvec.c head/sys/amd64/linux32/linux32_sysvec.c head/sys/arm/arm/machdep.c head/sys/arm64/arm64/machdep.c head/sys/arm64/arm64/vm_machdep.c head/sys/i386/i386/machdep.c head/sys/i386/linux/linux_sysvec.c head/sys/i386/svr4/svr4_machdep.c head/sys/mips/mips/freebsd32_machdep.c head/sys/mips/mips/pm_machdep.c head/sys/mips/mips/vm_machdep.c head/sys/powerpc/powerpc/exec_machdep.c head/sys/sparc64/sparc64/machdep.c head/sys/sys/signal.h Modified: head/sys/amd64/amd64/machdep.c ============================================================================== --- head/sys/amd64/amd64/machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/amd64/amd64/machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -389,7 +389,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, /* Allocate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - sp = td->td_sigstk.ss_sp + td->td_sigstk.ss_size; + sp = (char *)td->td_sigstk.ss_sp + td->td_sigstk.ss_size; #if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif Modified: head/sys/amd64/ia32/ia32_signal.c ============================================================================== --- head/sys/amd64/ia32/ia32_signal.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/amd64/ia32/ia32_signal.c Wed Jan 27 17:55:01 2016 (r294930) @@ -354,7 +354,7 @@ ia32_osendsig(sig_t catcher, ksiginfo_t /* Allocate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct ia32_sigframe3 *)(td->td_sigstk.ss_sp + + fp = (struct ia32_sigframe3 *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(sf)); td->td_sigstk.ss_flags |= SS_ONSTACK; } else @@ -488,7 +488,7 @@ freebsd4_ia32_sendsig(sig_t catcher, ksi /* Allocate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - sfp = (struct ia32_sigframe4 *)(td->td_sigstk.ss_sp + + sfp = (struct ia32_sigframe4 *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(sf)); } else sfp = (struct ia32_sigframe4 *)regs->tf_rsp - 1; @@ -622,7 +622,7 @@ ia32_sendsig(sig_t catcher, ksiginfo_t * /* Allocate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) - sp = td->td_sigstk.ss_sp + td->td_sigstk.ss_size; + sp = (char *)td->td_sigstk.ss_sp + td->td_sigstk.ss_size; else sp = (char *)regs->tf_rsp; if (xfpusave != NULL) { Modified: head/sys/amd64/linux/linux_sysvec.c ============================================================================== --- head/sys/amd64/linux/linux_sysvec.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/amd64/linux/linux_sysvec.c Wed Jan 27 17:55:01 2016 (r294930) @@ -630,7 +630,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo /* Allocate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - sp = td->td_sigstk.ss_sp + td->td_sigstk.ss_size - + sp = (caddr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct l_rt_sigframe); } else sp = (caddr_t)regs->tf_rsp - sizeof(struct l_rt_sigframe) - 128; Modified: head/sys/amd64/linux32/linux32_sysvec.c ============================================================================== --- head/sys/amd64/linux32/linux32_sysvec.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/amd64/linux32/linux32_sysvec.c Wed Jan 27 17:55:01 2016 (r294930) @@ -315,7 +315,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo */ if ((td->td_pflags & TDP_ALTSTACK) && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct l_rt_sigframe *)(td->td_sigstk.ss_sp + + fp = (struct l_rt_sigframe *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct l_rt_sigframe)); } else fp = (struct l_rt_sigframe *)regs->tf_rsp - 1; @@ -460,7 +460,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t */ if ((td->td_pflags & TDP_ALTSTACK) && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct l_sigframe *)(td->td_sigstk.ss_sp + + fp = (struct l_sigframe *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct l_sigframe)); } else fp = (struct l_sigframe *)regs->tf_rsp - 1; Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/arm/arm/machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -296,7 +296,7 @@ sendsig(catcher, ksi, mask) /* Allocate and validate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !(onstack) && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct sigframe *)(td->td_sigstk.ss_sp + + fp = (struct sigframe *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size); #if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; Modified: head/sys/arm64/arm64/machdep.c ============================================================================== --- head/sys/arm64/arm64/machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/arm64/arm64/machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -527,7 +527,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, /* Allocate and validate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !onstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct sigframe *)(td->td_sigstk.ss_sp + + fp = (struct sigframe *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size); #if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; Modified: head/sys/arm64/arm64/vm_machdep.c ============================================================================== --- head/sys/arm64/arm64/vm_machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/arm64/arm64/vm_machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -186,7 +186,7 @@ cpu_set_upcall_kse(struct thread *td, vo { struct trapframe *tf = td->td_frame; - tf->tf_sp = STACKALIGN(stack->ss_sp + stack->ss_size); + tf->tf_sp = STACKALIGN((uintptr_t)stack->ss_sp + stack->ss_size); tf->tf_elr = (register_t)entry; tf->tf_x[0] = (register_t)arg; } Modified: head/sys/i386/i386/machdep.c ============================================================================== --- head/sys/i386/i386/machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/i386/i386/machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -368,7 +368,7 @@ osendsig(sig_t catcher, ksiginfo_t *ksi, /* Allocate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct osigframe *)(td->td_sigstk.ss_sp + + fp = (struct osigframe *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct osigframe)); #if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; @@ -515,7 +515,7 @@ freebsd4_sendsig(sig_t catcher, ksiginfo /* Allocate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - sfp = (struct sigframe4 *)(td->td_sigstk.ss_sp + + sfp = (struct sigframe4 *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct sigframe4)); #if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; @@ -675,7 +675,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, /* Allocate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - sp = td->td_sigstk.ss_sp + td->td_sigstk.ss_size; + sp = (char *)td->td_sigstk.ss_sp + td->td_sigstk.ss_size; #if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif Modified: head/sys/i386/linux/linux_sysvec.c ============================================================================== --- head/sys/i386/linux/linux_sysvec.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/i386/linux/linux_sysvec.c Wed Jan 27 17:55:01 2016 (r294930) @@ -451,7 +451,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo */ if ((td->td_pflags & TDP_ALTSTACK) && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct l_rt_sigframe *)(td->td_sigstk.ss_sp + + fp = (struct l_rt_sigframe *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct l_rt_sigframe)); } else fp = (struct l_rt_sigframe *)regs->tf_esp - 1; @@ -591,7 +591,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t */ if ((td->td_pflags & TDP_ALTSTACK) && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct l_sigframe *)(td->td_sigstk.ss_sp + + fp = (struct l_sigframe *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct l_sigframe)); } else fp = (struct l_sigframe *)regs->tf_esp - 1; Modified: head/sys/i386/svr4/svr4_machdep.c ============================================================================== --- head/sys/i386/svr4/svr4_machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/i386/svr4/svr4_machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -441,7 +441,7 @@ svr4_sendsig(catcher, ksi, mask) */ if ((td->td_pflags & TDP_ALTSTACK) && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct svr4_sigframe *)(td->td_sigstk.ss_sp + + fp = (struct svr4_sigframe *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct svr4_sigframe)); td->td_sigstk.ss_flags |= SS_ONSTACK; } else { Modified: head/sys/mips/mips/freebsd32_machdep.c ============================================================================== --- head/sys/mips/mips/freebsd32_machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/mips/mips/freebsd32_machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -410,7 +410,7 @@ freebsd32_sendsig(sig_t catcher, ksiginf /* Allocate and validate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - sfp = (struct sigframe32 *)((vm_offset_t)(td->td_sigstk.ss_sp + + sfp = (struct sigframe32 *)(((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct sigframe32)) & ~(sizeof(__int64_t) - 1)); } else Modified: head/sys/mips/mips/pm_machdep.c ============================================================================== --- head/sys/mips/mips/pm_machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/mips/mips/pm_machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -126,7 +126,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, /* Allocate and validate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - sfp = (struct sigframe *)((vm_offset_t)(td->td_sigstk.ss_sp + + sfp = (struct sigframe *)(((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct sigframe)) & ~(sizeof(__int64_t) - 1)); } else Modified: head/sys/mips/mips/vm_machdep.c ============================================================================== --- head/sys/mips/mips/vm_machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/mips/mips/vm_machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -432,7 +432,7 @@ cpu_set_upcall_kse(struct thread *td, vo * in ``See MIPS Run'' by D. Sweetman, p. 269 * align stack */ - sp = ((register_t)(intptr_t)(stack->ss_sp + stack->ss_size) & ~0x7) - + sp = (((intptr_t)stack->ss_sp + stack->ss_size) & ~0x7) - CALLFRAME_SIZ; /* Modified: head/sys/powerpc/powerpc/exec_machdep.c ============================================================================== --- head/sys/powerpc/powerpc/exec_machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/powerpc/powerpc/exec_machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -219,7 +219,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - usfp = (void *)(td->td_sigstk.ss_sp + + usfp = (void *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - rndfsize); } else { usfp = (void *)(tf->fixreg[1] - rndfsize); Modified: head/sys/sparc64/sparc64/machdep.c ============================================================================== --- head/sys/sparc64/sparc64/machdep.c Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/sparc64/sparc64/machdep.c Wed Jan 27 17:55:01 2016 (r294930) @@ -646,7 +646,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, /* Allocate and validate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - sfp = (struct sigframe *)(td->td_sigstk.ss_sp + + sfp = (struct sigframe *)((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct sigframe)); } else sfp = (struct sigframe *)sp - 1; Modified: head/sys/sys/signal.h ============================================================================== --- head/sys/sys/signal.h Wed Jan 27 17:53:26 2016 (r294929) +++ head/sys/sys/signal.h Wed Jan 27 17:55:01 2016 (r294930) @@ -362,7 +362,7 @@ typedef struct sigaltstack { #else typedef struct { #endif - char *ss_sp; /* signal stack base */ + void *ss_sp; /* signal stack base */ __size_t ss_size; /* signal stack length */ int ss_flags; /* SS_DISABLE and/or SS_ONSTACK */ } stack_t; @@ -406,8 +406,7 @@ struct osigcontext { * Structure used in sigstack call. */ struct sigstack { - /* XXX ss_sp's type should be `void *'. */ - char *ss_sp; /* signal stack pointer */ + void *ss_sp; /* signal stack pointer */ int ss_onstack; /* current status */ }; #endif From owner-svn-src-all@freebsd.org Wed Jan 27 17:56:20 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2933DA703E3; Wed, 27 Jan 2016 17:56:20 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-yk0-f171.google.com (mail-yk0-f171.google.com [209.85.160.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E5CD11881; Wed, 27 Jan 2016 17:56:19 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-yk0-f171.google.com with SMTP id k129so494037yke.0; Wed, 27 Jan 2016 09:56:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=+CD8U1fdrR6W3hZ9TKlcYQ3WeuG0ob8IQddqKgHM8gM=; b=JHWkla7yDGmA73Hfx58AItTWNBwIwxMgD3tU+ShFvyP3GlMQbWjAsG2j8RgFgXMe0C IeWu2BK3q2gdOdAIBaouq4mguyJs5dWJyAwsie5Pih5sGtPPihizA3ulzXr7Yuww87yZ zH86POnYKeMH/25E7suL0A1OXIkwQ9bqWkE2paA5S5HkM4611fZQgYBuBuyBMTCwNFB7 X2ZYBXmzoS1utojS3LpkUfjxyS1ejBcfnj43YEetYpW6/Hpgnw7KjQHf05KTT8tA+SCW sYMY95jZBgiTei1lfj3eV7Qganpi1uxiCiSg8T1vKMwDThDeM76lWkpuvnIlvJMWCNDG mJkQ== X-Gm-Message-State: AG10YOSVpqanDjsP7EjheGnUE4rg66YYSPoz5VBqOKoM213ht7olXuLls2d0eLNCX8U+og== X-Received: by 10.13.199.132 with SMTP id j126mr14948645ywd.124.1453917076126; Wed, 27 Jan 2016 09:51:16 -0800 (PST) Received: from mail-yk0-f175.google.com (mail-yk0-f175.google.com. [209.85.160.175]) by smtp.gmail.com with ESMTPSA id l128sm5539183ywd.5.2016.01.27.09.51.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Jan 2016 09:51:15 -0800 (PST) Received: by mail-yk0-f175.google.com with SMTP id a85so241972ykb.1; Wed, 27 Jan 2016 09:51:15 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.129.2.8 with SMTP id 8mr14953168ywc.73.1453917075475; Wed, 27 Jan 2016 09:51:15 -0800 (PST) Reply-To: cem@FreeBSD.org Received: by 10.37.4.69 with HTTP; Wed, 27 Jan 2016 09:51:15 -0800 (PST) In-Reply-To: <7BEC31CD-F7AF-44B5-BBB5-9F4CAF3487A7@gmail.com> References: <201601271340.u0RDeiU5060523@repo.freebsd.org> <7BEC31CD-F7AF-44B5-BBB5-9F4CAF3487A7@gmail.com> Date: Wed, 27 Jan 2016 09:51:15 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r294909 - head/crypto/openssh From: Conrad Meyer To: NGie Cooper Cc: =?UTF-8?Q?Dag=2DErling_Sm=C3=B8rgrav?= , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 17:56:20 -0000 >From context in other emails: This commit will not be MFCed, because this configuration is already enabled in stable/10. For the same reason, it doesn't need Relnotes. Best, Conrad On Wed, Jan 27, 2016 at 9:25 AM, NGie Cooper wrote: > >> On Jan 27, 2016, at 05:40, Dag-Erling Sm=C3=B8rgrav wr= ote: >> >> Author: des >> Date: Wed Jan 27 13:40:44 2016 >> New Revision: 294909 >> URL: https://svnweb.freebsd.org/changeset/base/294909 >> >> Log: >> Switch UseDNS back on > > Please add "Relnotes: yes" to the MFC commit, if this is MFCed. Speaking = of which, is there a plan for MFCing this? It wasn't noted in the commit me= ssage.. > Thanks! > -NGie From owner-svn-src-all@freebsd.org Wed Jan 27 17:59:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 56D79A7046D; Wed, 27 Jan 2016 17:59:42 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2DCD01A75; Wed, 27 Jan 2016 17:59:42 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RHxft1038483; Wed, 27 Jan 2016 17:59:41 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RHxdP2038464; Wed, 27 Jan 2016 17:59:39 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201601271759.u0RHxdP2038464@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 27 Jan 2016 17:59:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294931 - in head: share/man/man9 sys/netinet sys/netinet/cc sys/netinet/tcp_stacks X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 17:59:42 -0000 Author: glebius Date: Wed Jan 27 17:59:39 2016 New Revision: 294931 URL: https://svnweb.freebsd.org/changeset/base/294931 Log: Rename netinet/tcp_cc.h to netinet/cc/cc.h. Discussed with: lstewart Added: head/sys/netinet/cc/cc.h - copied, changed from r294930, head/sys/netinet/tcp_cc.h Deleted: head/sys/netinet/tcp_cc.h Modified: head/share/man/man9/mod_cc.9 head/sys/netinet/cc/cc.c head/sys/netinet/cc/cc_cdg.c head/sys/netinet/cc/cc_chd.c head/sys/netinet/cc/cc_cubic.c head/sys/netinet/cc/cc_dctcp.c head/sys/netinet/cc/cc_hd.c head/sys/netinet/cc/cc_htcp.c head/sys/netinet/cc/cc_newreno.c head/sys/netinet/cc/cc_vegas.c head/sys/netinet/tcp_input.c head/sys/netinet/tcp_output.c head/sys/netinet/tcp_stacks/fastpath.c head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_timer.c head/sys/netinet/tcp_usrreq.c Modified: head/share/man/man9/mod_cc.9 ============================================================================== --- head/share/man/man9/mod_cc.9 Wed Jan 27 17:55:01 2016 (r294930) +++ head/share/man/man9/mod_cc.9 Wed Jan 27 17:59:39 2016 (r294931) @@ -41,7 +41,7 @@ .Nd Modular Congestion Control .Sh SYNOPSIS .In netinet/tcp.h -.In netinet/tcp_cc.h +.In netinet/cc/cc.h .In netinet/cc/cc_module.h .Fn DECLARE_CC_MODULE "ccname" "ccalgo" .Fn CCV "ccv" "what" Modified: head/sys/netinet/cc/cc.c ============================================================================== --- head/sys/netinet/cc/cc.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/cc/cc.c Wed Jan 27 17:59:39 2016 (r294931) @@ -69,7 +69,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include Copied and modified: head/sys/netinet/cc/cc.h (from r294930, head/sys/netinet/tcp_cc.h) ============================================================================== --- head/sys/netinet/tcp_cc.h Wed Jan 27 17:55:01 2016 (r294930, copy source) +++ head/sys/netinet/cc/cc.h Wed Jan 27 17:59:39 2016 (r294931) @@ -48,8 +48,8 @@ * http://caia.swin.edu.au/urp/newtcp/ */ -#ifndef _NETINET_TCP_CC_H_ -#define _NETINET_TCP_CC_H_ +#ifndef _NETINET_CC_CC_H_ +#define _NETINET_CC_CC_H_ #if !defined(_KERNEL) #error "no user-servicable parts inside" @@ -175,4 +175,4 @@ extern struct rwlock cc_list_lock; #define CC_LIST_WUNLOCK() rw_wunlock(&cc_list_lock) #define CC_LIST_LOCK_ASSERT() rw_assert(&cc_list_lock, RA_LOCKED) -#endif /* _NETINET_TCP_CC_H_ */ +#endif /* _NETINET_CC_CC_H_ */ Modified: head/sys/netinet/cc/cc_cdg.c ============================================================================== --- head/sys/netinet/cc/cc_cdg.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/cc/cc_cdg.c Wed Jan 27 17:59:39 2016 (r294931) @@ -69,7 +69,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include Modified: head/sys/netinet/cc/cc_chd.c ============================================================================== --- head/sys/netinet/cc/cc_chd.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/cc/cc_chd.c Wed Jan 27 17:59:39 2016 (r294931) @@ -71,7 +71,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include Modified: head/sys/netinet/cc/cc_cubic.c ============================================================================== --- head/sys/netinet/cc/cc_cubic.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/cc/cc_cubic.c Wed Jan 27 17:59:39 2016 (r294931) @@ -63,7 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include Modified: head/sys/netinet/cc/cc_dctcp.c ============================================================================== --- head/sys/netinet/cc/cc_dctcp.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/cc/cc_dctcp.c Wed Jan 27 17:59:39 2016 (r294931) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #define CAST_PTR_INT(X) (*((int*)(X))) Modified: head/sys/netinet/cc/cc_hd.c ============================================================================== --- head/sys/netinet/cc/cc_hd.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/cc/cc_hd.c Wed Jan 27 17:59:39 2016 (r294931) @@ -72,7 +72,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include Modified: head/sys/netinet/cc/cc_htcp.c ============================================================================== --- head/sys/netinet/cc/cc_htcp.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/cc/cc_htcp.c Wed Jan 27 17:59:39 2016 (r294931) @@ -66,7 +66,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include /* Fixed point math shifts. */ Modified: head/sys/netinet/cc/cc_newreno.c ============================================================================== --- head/sys/netinet/cc/cc_newreno.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/cc/cc_newreno.c Wed Jan 27 17:59:39 2016 (r294931) @@ -65,7 +65,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include static void newreno_ack_received(struct cc_var *ccv, uint16_t type); Modified: head/sys/netinet/cc/cc_vegas.c ============================================================================== --- head/sys/netinet/cc/cc_vegas.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/cc/cc_vegas.c Wed Jan 27 17:59:39 2016 (r294931) @@ -72,7 +72,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/tcp_input.c Wed Jan 27 17:59:39 2016 (r294931) @@ -107,7 +107,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #ifdef TCPPCAP #include #endif Modified: head/sys/netinet/tcp_output.c ============================================================================== --- head/sys/netinet/tcp_output.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/tcp_output.c Wed Jan 27 17:59:39 2016 (r294931) @@ -77,7 +77,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #ifdef TCPPCAP #include #endif Modified: head/sys/netinet/tcp_stacks/fastpath.c ============================================================================== --- head/sys/netinet/tcp_stacks/fastpath.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/tcp_stacks/fastpath.c Wed Jan 27 17:59:39 2016 (r294931) @@ -107,7 +107,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #ifdef TCPDEBUG #include #endif /* TCPDEBUG */ Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/tcp_subr.c Wed Jan 27 17:59:39 2016 (r294931) @@ -95,7 +95,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #ifdef INET6 #include #endif Modified: head/sys/netinet/tcp_timer.c ============================================================================== --- head/sys/netinet/tcp_timer.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/tcp_timer.c Wed Jan 27 17:59:39 2016 (r294931) @@ -68,7 +68,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #ifdef INET6 #include #endif Modified: head/sys/netinet/tcp_usrreq.c ============================================================================== --- head/sys/netinet/tcp_usrreq.c Wed Jan 27 17:55:01 2016 (r294930) +++ head/sys/netinet/tcp_usrreq.c Wed Jan 27 17:59:39 2016 (r294931) @@ -90,7 +90,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #ifdef TCPPCAP #include #endif From owner-svn-src-all@freebsd.org Wed Jan 27 18:12:44 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23FDBA70959; Wed, 27 Jan 2016 18:12:44 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C54E0136B; Wed, 27 Jan 2016 18:12:43 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RICgma044186; Wed, 27 Jan 2016 18:12:42 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RICgO5044185; Wed, 27 Jan 2016 18:12:42 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201601271812.u0RICgO5044185@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Wed, 27 Jan 2016 18:12:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294932 - head/usr.sbin/iscsid X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 18:12:44 -0000 Author: trasz Date: Wed Jan 27 18:12:42 2016 New Revision: 294932 URL: https://svnweb.freebsd.org/changeset/base/294932 Log: Improve reporting of connection problems in iscsid(8). Obtained from: Mellanox Technologies MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/iscsid/pdu.c Modified: head/usr.sbin/iscsid/pdu.c ============================================================================== --- head/usr.sbin/iscsid/pdu.c Wed Jan 27 17:59:39 2016 (r294931) +++ head/usr.sbin/iscsid/pdu.c Wed Jan 27 18:12:42 2016 (r294932) @@ -34,7 +34,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include "iscsid.h" @@ -177,18 +179,23 @@ pdu_padding(const struct pdu *pdu) } static void -pdu_read(int fd, char *data, size_t len) +pdu_read(const struct connection *conn, char *data, size_t len) { ssize_t ret; while (len > 0) { - ret = read(fd, data, len); + ret = read(conn->conn_socket, data, len); if (ret < 0) { - if (timed_out()) + if (timed_out()) { + fail(conn, "Login Phase timeout"); log_errx(1, "exiting due to timeout"); + } + fail(conn, strerror(errno)); log_err(1, "read"); - } else if (ret == 0) + } else if (ret == 0) { + fail(conn, "connection lost"); log_errx(1, "read: connection lost"); + } len -= ret; data += ret; } @@ -207,7 +214,7 @@ pdu_receive(struct pdu *pdu) assert(pdu->pdu_connection->conn_conf.isc_iser == 0); - pdu_read(pdu->pdu_connection->conn_socket, + pdu_read(pdu->pdu_connection, (char *)pdu->pdu_bhs, sizeof(*pdu->pdu_bhs)); len = pdu_ahs_length(pdu); @@ -227,13 +234,13 @@ pdu_receive(struct pdu *pdu) if (pdu->pdu_data == NULL) log_err(1, "malloc"); - pdu_read(pdu->pdu_connection->conn_socket, + pdu_read(pdu->pdu_connection, (char *)pdu->pdu_data, pdu->pdu_data_len); padding = pdu_padding(pdu); if (padding != 0) { assert(padding < sizeof(dummy)); - pdu_read(pdu->pdu_connection->conn_socket, + pdu_read(pdu->pdu_connection, (char *)dummy, padding); } } From owner-svn-src-all@freebsd.org Wed Jan 27 19:11:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3C3CCA6EF11; Wed, 27 Jan 2016 19:11:13 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0E4AC1374; Wed, 27 Jan 2016 19:11:12 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RJBC95060975; Wed, 27 Jan 2016 19:11:12 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RJBC1s060974; Wed, 27 Jan 2016 19:11:12 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601271911.u0RJBC1s060974@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 19:11:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294933 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 19:11:13 -0000 Author: bdrewery Date: Wed Jan 27 19:11:11 2016 New Revision: 294933 URL: https://svnweb.freebsd.org/changeset/base/294933 Log: Drop any previous fd when setting a new one. Reported by: mjg Sponsored by: EMC / Isilon Storage Division MFC after: 2 weeks Modified: head/sys/dev/filemon/filemon.c Modified: head/sys/dev/filemon/filemon.c ============================================================================== --- head/sys/dev/filemon/filemon.c Wed Jan 27 18:12:42 2016 (r294932) +++ head/sys/dev/filemon/filemon.c Wed Jan 27 19:11:11 2016 (r294933) @@ -148,6 +148,9 @@ filemon_ioctl(struct cdev *dev, u_long c switch (cmd) { /* Set the output file descriptor. */ case FILEMON_SET_FD: + if (filemon->fp != NULL) + fdrop(filemon->fp, td); + error = fget_write(td, *(int *)data, #if __FreeBSD_version >= 900041 cap_rights_init(&rights, CAP_PWRITE), From owner-svn-src-all@freebsd.org Wed Jan 27 19:19:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D32DAA6F1F3; Wed, 27 Jan 2016 19:19:48 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id B0CC9185E; Wed, 27 Jan 2016 19:19:48 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id A4B8B14DE; Wed, 27 Jan 2016 19:19:48 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 6BEAA145F7; Wed, 27 Jan 2016 19:19:48 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id EcrUHvg-DO2r; Wed, 27 Jan 2016 19:19:45 +0000 (UTC) Subject: Re: svn commit: r294915 - head/sys/conf DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 4B6B3145EF To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201601271446.u0REkUOi081035@repo.freebsd.org> From: Bryan Drewery Openpgp: id=F9173CB2C3AAEA7A5C8A1F0935D771BB6E4697CF; url=http://www.shatow.net/bryan/bryan2.asc Organization: FreeBSD Message-ID: <56A91853.30103@FreeBSD.org> Date: Wed, 27 Jan 2016 11:19:47 -0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <201601271446.u0REkUOi081035@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="PLX2CKJtVGdeHtcbJ3XXXkWLgeBOQATKL" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 19:19:49 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --PLX2CKJtVGdeHtcbJ3XXXkWLgeBOQATKL Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 1/27/2016 6:46 AM, Hans Petter Selasky wrote: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/conf/kern.post.mk Wed Jan 27 14:16:13 2016 (r294914) > +++ head/sys/conf/kern.post.mk Wed Jan 27 14:46:30 2016 (r294915) > @@ -186,12 +186,23 @@ genassym.o: $S/$M/$M/genassym.c > =20 > ${SYSTEM_OBJS} genassym.o vers.o: opt_global.h > =20 > +# Normal files first > +CFILES_NORMAL=3D ${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*:N*/c= ompat/linuxkpi/common/*:N*/ofed/*:N*/dev/mlx5/*} > +SFILES_NORMAL=3D ${SFILES:N*/cddl/*} > + > # We have "special" -I include paths for zfs/dtrace files in 'depend'.= > -CFILES_NOCDDL=3D ${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*} > -SFILES_NOCDDL=3D ${SFILES:N*/cddl/*} > CFILES_CDDL=3D ${CFILES:M*/cddl/*} > SFILES_CDDL=3D ${SFILES:M*/cddl/*} > =20 > +# We have "special" -I include paths for LinuxKPI. > +CFILES_LINUXKPI=3D${CFILES:M*/compat/linuxkpi/common/*} > + > +# We have "special" -I include paths for OFED. > +CFILES_OFED=3D${CFILES:M*/ofed/*} > + > +# We have "special" -I include paths for MLX5. > +CFILES_MLX5=3D${CFILES:M*/dev/mlx5/*} > + > kernel-depend: .depend > # The argument list can be very long, so use make -V and xargs to > # pass it to mkdep. > @@ -220,12 +231,20 @@ DEPENDFILES_OBJS=3D ${DEPENDOBJS:O:u:C/^/. > .depend: .PRECIOUS ${SRCS} > .if ${MK_FAST_DEPEND} =3D=3D "no" > rm -f ${.TARGET}.tmp > - ${MAKE} -V CFILES_NOCDDL -V SYSTEM_CFILES -V GEN_CFILES | \ > +# C files > + ${MAKE} -V CFILES_NORMAL -V SYSTEM_CFILES -V GEN_CFILES | \ > CC=3D"${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${CFLAGS} > ${MAKE} -V CFILES_CDDL | \ > CC=3D"${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ZFS_CFLAGS}= \ > ${FBT_CFLAGS} ${DTRACE_CFLAGS} > - ${MAKE} -V SFILES_NOCDDL | \ > + ${MAKE} -V CFILES_LINUXKPI | \ > + CC=3D"${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp \ > + ${CFLAGS} ${LINUXKPI_INCLUDES} > + ${MAKE} -V CFILES_OFED -V CFILES_MLX5 | \ > + CC=3D"${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp \ > + ${CFLAGS} ${OFEDINCLUDES} > +# Assembly files > + ${MAKE} -V SFILES_NORMAL | \ > CC=3D"${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ASM_CFLAGS}= > ${MAKE} -V SFILES_CDDL | \ > CC=3D"${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ZFS_ASM_CFL= AGS} >=20 I plan to nuke this code quite soon in favor of FAST_DEPEND. None of this or related hacks will be needed anymore. --=20 Regards, Bryan Drewery --PLX2CKJtVGdeHtcbJ3XXXkWLgeBOQATKL Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJWqRhTAAoJEDXXcbtuRpfPwbAIAKVqIlZdHb/CzFsvIINKl7AM q/lzXlEMKeMU0B2eQQOI9GaJGEBsBi2Var+poQszkCGX/fHchNgs4opW8Xg3rc/o xnQ6AlVlJavCpIfMDDL+bHkfAjL5mSY0G6NdbkzlIDhuQoWXnD5bCzYIHaAAC3C7 ubWwlESs+ldrkvxV/SGrJehBY0wCNvsBwC62ZaCMH3nNnM8blFi4nZ8f9z0KP/Wv e+E5h2gR+uXGW0neHm/AmgUalwzO2VuCLHLBQaFwza/oW0oLstp2wXv47dt40e7M lFsvkGDAxUFXIUZv7H4IMTfgsgQgJRfrdOyOzCpyqcyELlYcRmCLyt3NIc9g68w= =3kJ4 -----END PGP SIGNATURE----- --PLX2CKJtVGdeHtcbJ3XXXkWLgeBOQATKL-- From owner-svn-src-all@freebsd.org Wed Jan 27 19:55:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A55FA70285; Wed, 27 Jan 2016 19:55:04 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1E59913E3; Wed, 27 Jan 2016 19:55:04 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RJt37e073846; Wed, 27 Jan 2016 19:55:03 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RJt3Jk073845; Wed, 27 Jan 2016 19:55:03 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201601271955.u0RJt3Jk073845@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Wed, 27 Jan 2016 19:55:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294934 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 19:55:04 -0000 Author: mjg Date: Wed Jan 27 19:55:02 2016 New Revision: 294934 URL: https://svnweb.freebsd.org/changeset/base/294934 Log: ktrace: tidy up ktrstruct - minor style fixes - avoid doing strlen twice [1] PR: 206648 Submitted by: C Turt (original version) [1] Modified: head/sys/kern/kern_ktrace.c Modified: head/sys/kern/kern_ktrace.c ============================================================================== --- head/sys/kern/kern_ktrace.c Wed Jan 27 19:11:11 2016 (r294933) +++ head/sys/kern/kern_ktrace.c Wed Jan 27 19:55:02 2016 (r294934) @@ -757,15 +757,16 @@ ktrstruct(name, data, datalen) size_t datalen; { struct ktr_request *req; - char *buf = NULL; - size_t buflen; + char *buf; + size_t buflen, namelen; - if (!data) + if (data == NULL) datalen = 0; - buflen = strlen(name) + 1 + datalen; + namelen = strlen(name) + 1; + buflen = namelen + datalen; buf = malloc(buflen, M_KTRACE, M_WAITOK); strcpy(buf, name); - bcopy(data, buf + strlen(name) + 1, datalen); + bcopy(data, buf + namelen, datalen); if ((req = ktr_getrequest(KTR_STRUCT)) == NULL) { free(buf, M_KTRACE); return; From owner-svn-src-all@freebsd.org Wed Jan 27 20:20:36 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67EB5A70990; Wed, 27 Jan 2016 20:20:36 +0000 (UTC) (envelope-from kan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 394001101; Wed, 27 Jan 2016 20:20:36 +0000 (UTC) (envelope-from kan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RKKZLW080081; Wed, 27 Jan 2016 20:20:35 GMT (envelope-from kan@FreeBSD.org) Received: (from kan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RKKZET080080; Wed, 27 Jan 2016 20:20:35 GMT (envelope-from kan@FreeBSD.org) Message-Id: <201601272020.u0RKKZET080080@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kan set sender to kan@FreeBSD.org using -f From: Alexander Kabaev Date: Wed, 27 Jan 2016 20:20:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294935 - head/gnu/lib/libgcc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 20:20:36 -0000 Author: kan Date: Wed Jan 27 20:20:35 2016 New Revision: 294935 URL: https://svnweb.freebsd.org/changeset/base/294935 Log: Make .debug file for libgcc_s.so.1 more useful. The files compiled into libgcc_s.so.1 did not have -g on compiler command line, making generated .debug quite pointless. Modified: head/gnu/lib/libgcc/Makefile Modified: head/gnu/lib/libgcc/Makefile ============================================================================== --- head/gnu/lib/libgcc/Makefile Wed Jan 27 19:55:02 2016 (r294934) +++ head/gnu/lib/libgcc/Makefile Wed Jan 27 20:20:35 2016 (r294935) @@ -211,7 +211,7 @@ COMMONHDRS+= unwind.h HIDE = -fvisibility=hidden -DHIDE_EXPORTS CC_T = ${CC} -c ${CFLAGS} ${HIDE} -fPIC CC_P = ${CC} -c ${CFLAGS} ${HIDE} -p -fPIC -CC_S = ${CC} -c ${CFLAGS} ${PICFLAG} -DSHARED +CC_S = ${CC} -c ${CFLAGS} ${SHARED_CFLAGS} ${PICFLAG} -DSHARED #----------------------------------------------------------------------- # From owner-svn-src-all@freebsd.org Wed Jan 27 20:20:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92B60A709A6; Wed, 27 Jan 2016 20:20:38 +0000 (UTC) (envelope-from kan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6674E1105; Wed, 27 Jan 2016 20:20:38 +0000 (UTC) (envelope-from kan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RKKbNh080623; Wed, 27 Jan 2016 20:20:37 GMT (envelope-from kan@FreeBSD.org) Received: (from kan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RKKbwr080622; Wed, 27 Jan 2016 20:20:37 GMT (envelope-from kan@FreeBSD.org) Message-Id: <201601272020.u0RKKbwr080622@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kan set sender to kan@FreeBSD.org using -f From: Alexander Kabaev Date: Wed, 27 Jan 2016 20:20:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294936 - head/libexec/rtld-elf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 20:20:38 -0000 Author: kan Date: Wed Jan 27 20:20:37 2016 New Revision: 294936 URL: https://svnweb.freebsd.org/changeset/base/294936 Log: Do not unlock rtld_phdr_lock over callback invocations. The dl_iterate_phdr consumer code in libgcc does not expect multiple callbacks running concurrently. This was fixed once already in r178807, but accidentally got reverted in r294373. Modified: head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Wed Jan 27 20:20:35 2016 (r294935) +++ head/libexec/rtld-elf/rtld.c Wed Jan 27 20:20:37 2016 (r294936) @@ -3533,11 +3533,9 @@ dl_iterate_phdr(__dl_iterate_hdr_callbac TAILQ_INSERT_AFTER(&obj_list, obj, &marker, next); rtld_fill_dl_phdr_info(obj, &phdr_info); lock_release(rtld_bind_lock, &bind_lockstate); - lock_release(rtld_phdr_lock, &phdr_lockstate); error = callback(&phdr_info, sizeof phdr_info, param); - wlock_acquire(rtld_phdr_lock, &phdr_lockstate); rlock_acquire(rtld_bind_lock, &bind_lockstate); obj = globallist_next(&marker); TAILQ_REMOVE(&obj_list, &marker, next); @@ -3551,9 +3549,9 @@ dl_iterate_phdr(__dl_iterate_hdr_callbac if (error == 0) { rtld_fill_dl_phdr_info(&obj_rtld, &phdr_info); lock_release(rtld_bind_lock, &bind_lockstate); - lock_release(rtld_phdr_lock, &phdr_lockstate); error = callback(&phdr_info, sizeof(phdr_info), param); } + lock_release(rtld_phdr_lock, &phdr_lockstate); return (error); } From owner-svn-src-all@freebsd.org Wed Jan 27 20:23:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7BEDA70B73; Wed, 27 Jan 2016 20:23:43 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8115B1758; Wed, 27 Jan 2016 20:23:43 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RKNgEg082747; Wed, 27 Jan 2016 20:23:42 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RKNgZW082746; Wed, 27 Jan 2016 20:23:42 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201601272023.u0RKNgZW082746@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 27 Jan 2016 20:23:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294937 - head/share/vt/fonts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 20:23:43 -0000 Author: emaste Date: Wed Jan 27 20:23:42 2016 New Revision: 294937 URL: https://svnweb.freebsd.org/changeset/base/294937 Log: Replace prebuilt uuencoded gallant.fnt with editable hex version Added: head/share/vt/fonts/gallant.hex (contents, props changed) Deleted: head/share/vt/fonts/gallant.fnt.uu Added: head/share/vt/fonts/gallant.hex ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/vt/fonts/gallant.hex Wed Jan 27 20:23:42 2016 (r294937) @@ -0,0 +1,226 @@ +# $FreeBSD$ +# Width: 12 +# Height: 22 +0000:000000007fe07fe07fe07fe07fe07fe07fe07fe07fe07fe07fe07fe07fe07fe07fe000000000000000000000 +0001:000000000000000000000000000006000f001f803fc07fe07fe03fc01f800f00060000000000000000000000 +0002:00000000000000000000000055402aa055402aa055402aa055402aa055402aa0554000000000000000000000 +0003:000000000000000000004400440044007c0044004400440003e0008000800080008000800080000000000000 +0004:000000000000000000007c0040004000780040004000400003e00200020003c0020002000200000000000000 +0005:00000000000000000000380044004000400040004400380003c00220022003c0028002400220000000000000 +0006:000000000000000000004000400040004000400040007c0003e00200020003c0020002000200000000000000 +0007:000000000e00170023806180618071003a001c00000000000000000000000000000000000000000000000000 +0008:0000000000000000000006000600060006007fe07fe0060006000600060000007fe07fe00000000000000000 +0009:0000000000000000000044006400640054004c004c00440002000200020002000200020003e0000000000000 +000a:00000000000000000000440044004400280028001000100003e0008000800080008000800080000000000000 +000b:0600060006000600060006000600060006000600fe00fe000000000000000000000000000000000000000000 +000c:0000000000000000000000000000000000000000fe00fe000600060006000600060006000600060006000600 +000d:000000000000000000000000000000000000000007f007f00600060006000600060006000600060006000600 +000e:060006000600060006000600060006000600060007f007f00000000000000000000000000000000000000000 +000f:0600060006000600060006000600060006000600fff0fff00600060006000600060006000600060006000600 +0010:0000fff0fff00000000000000000000000000000000000000000000000000000000000000000000000000000 +0011:000000000000000000000000fff0fff000000000000000000000000000000000000000000000000000000000 +0012:0000000000000000000000000000000000000000fff0fff00000000000000000000000000000000000000000 +0013:00000000000000000000000000000000000000000000000000000000fff0fff0000000000000000000000000 +0014:0000000000000000000000000000000000000000000000000000000000000000000000000000fff0fff00000 +0015:060006000600060006000600060006000600060007f007f00600060006000600060006000600060006000600 +0016:0600060006000600060006000600060006000600fe00fe000600060006000600060006000600060006000600 +0017:0600060006000600060006000600060006000600fff0fff00000000000000000000000000000000000000000 +0018:0000000000000000000000000000000000000000fff0fff00600060006000600060006000600060006000600 +0019:0600060006000600060006000600060006000600060006000600060006000600060006000600060006000600 +001a:00000000000000000000000000e007801e00780078001e00078000e000007fe07fe000000000000000000000 +001b:00000000000000000000000070001e00078001e001e007801e00700000007fe07fe000000000000000000000 +001c:00000000000000000000000000003fe07fc019801980198019803180318031c060c000000000000000000000 +001d:000000000000000000000000004000c001807fc07fc006000c007fc07fc03000600040000000000000000000 +001e:000006000c00100010003000300030003e007c0018001800180018003f203fe031c000000000000000000000 +001f:0000000000000000000000000000000000000000000006000600000000000000000000000000000000000000 +0020:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0021:0000000006000600060006000600060006000600060006000600000000000600060000000000000000000000 +0022:0000000019801980198019801980198000000000000000000000000000000000000000000000000000000000 +0023:0000000003300330033006601ff01ff00cc00cc0198019807fc07fc033006600660000000000000000000000 +0024:0000000006001f803fc066e0666066003e001f8007c00660066066607fc03f80060000000000000000000000 +0025:00000000386044c044c0458039800300030006000c000c0019c01a203220322061c000000000000000000000 +0026:0000000007000f8018c018c018c00f801e003e007700636061e061c061803fe01e6000000000000000000000 +0027:000000000c001e001e00060006000c0018001000000000000000000000000000000000000000000000000000 +0028:0000000000c0018003800300070006000600060006000600070003000380018000c000000000000000000000 +0029:00000000300018001c000c000e00060006000600060006000e000c001c001800300000000000000000000000 +002a:0000000000000000000000000f000600666076e019800000198076e0666006000f0000000000000000000000 +002b:000000000000000000000000000006000600060006007fe07fe0060006000600060000000000000000000000 +002c:000000000000000000000000000000000000000000000000000000000c001e001e00060006000c0018001000 +002d:000000000000000000000000000000000000000000007fe07fe0000000000000000000000000000000000000 +002e:00000000000000000000000000000000000000000000000000000c001e001e000c0000000000000000000000 +002f:00000000006000c000c0018001800300030006000c000c001800180030003000600000000000000000000000 +0030:0000000007000f80118010c030c030c030c030c030c030c030c0308018801f000e0000000000000000000000 +0031:00000000020006000e001e0036000600060006000600060006000600060006003fc000000000000000000000 +0032:000000001f003f8061c040c000c000c000c00180030006000c00180030207fe07fe000000000000000000000 +0033:000000000f801fc020e04060006000e007c00fc000e000600060406060403f801f0000000000000000000000 +0034:0000000001800380038005800580098009801180118021803fe07fe001800180018000000000000000000000 +0035:000000000fc00fc01000100020003f8031c000e00060006000604060606030c01f8000000000000000000000 +0036:0000000007000c00180030003000600067806fc070e060606060606070403f801f0000000000000000000000 +0037:000000001fe03fe06040004000c0008000800180010001000300020002000600040000000000000000000000 +0038:000000000f00118030c030c030c018800d0006000b00118030c030c030c018800f0000000000000000000000 +0039:000000000f8011c020e060606060606070e03f601e60006000c000c0018007003c0000000000000000000000 +003a:00000000000000000000000000000c001e001e000c00000000000c001e001e000c0000000000000000000000 +003b:000000000000000000000000000000000c001e001e000c00000000000c001e001e00060006000c0018001000 +003c:0000000000000000000000000000006001c007001e00780078001e00070001c0006000000000000000000000 +003d:0000000000000000000000000000000000007fc07fc0000000007fc07fc00000000000000000000000000000 +003e:0000000000000000000000000000600038001e00078001e001e007801e003800600000000000000000000000 +003f:000000000f001f8039c020c000c000c00180030006000c000c00000000000c000c0000000000000000000000 +0040:000000000000000000000f803fc03060606067206fa06ca06ca067e0600030003fe00fe00000000000000000 +0041:000000000000060006000b000b0009001180118010803fc020c0204040604060e0f000000000000000000000 +0042:000000000000ff00608060c060c060c061807f8060c0606060606060606060c0ff8000000000000000000000 +0043:0000000000000fc01060202020006000600060006000600060002000302018400f8000000000000000000000 +0044:000000000000ff0061c060c06060606060606060606060606060606060406180fe0000000000000000000000 +0045:0000000000007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +0046:0000000000007fc0304030403000300030803f80308030003000300030003000780000000000000000000000 +0047:0000000000000fc0106020202000600060006000600061f060602060306018600f8000000000000000000000 +0048:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +0049:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +004a:0000000000001f80060006000600060006000600060006000600060006000600060006000600040038003000 +004b:000000000000f0e06180630066006c00780078007c006e006700638061c060e0f07000000000000000000000 +004c:00000000000078003000300030003000300030003000300030003000302030207fe000000000000000000000 +004d:000000000000e07060e070e070e070e05960596059604d604e604e6044604460e4f000000000000000000000 +004e:000000000000c07060207020782058204c2046204720432041a040e040e04060e03000000000000000000000 +004f:0000000000000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +0050:0000000000007f8030c030603060306030c03780300030003000300030003000780000000000000000000000 +0051:0000000000000f0011c020c02060606060606060606060606060304038401f800e001f00239001e000000000 +0052:000000000000ff00618060c060c060c060807f007c006e006700638061c060e0f07000000000000000000000 +0053:0000000000001fe030606020602070003c001e00078001c000e04060406060c07f8000000000000000000000 +0054:0000000000007fe04620060006000600060006000600060006000600060006001f8000000000000000000000 +0055:000000000000f070602060206020602060206020602060206020602070403fc01f8000000000000000000000 +0056:000000000000e0e060403080308030801900190019000c000e000e0004000400040000000000000000000000 +0057:000000000000fef066206620662076207740334037403bc03b80198019801980198000000000000000000000 +0058:000000000000f07060203040388018800d00060006000b00118011c020c04060e0f000000000000000000000 +0059:000000000000f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 +005a:0000000000003fe020c000c00180018003000300060006000c000c00180018203fe000000000000000000000 +005b:0000000007c007c00600060006000600060006000600060006000600060007c007c000000000000000000000 +005c:000000006000600030003000180018000c000c000600030003000180018000c000c000000000000000000000 +005d:000000007c007c000c000c000c000c000c000c000c000c000c000c000c007c007c0000000000000000000000 +005e:0000000004000e001b00318060c0000000000000000000000000000000000000000000000000000000000000 +005f:000000000000000000000000000000000000000000000000000000000000000000000000ffe0ffe000000000 +0060:0000000001000300060006000780078003000000000000000000000000000000000000000000000000000000 +0061:00000000000000000000000000000f8018c010c003c01cc030c030c030c039c01ee000000000000000000000 +0062:0000000020006000e0006000600067806fc070e06060606060606060706078c04f8000000000000000000000 +0063:00000000000000000000000000001f8031c020c06000600060006000704030c01f8000000000000000000000 +0064:00000000006000e00060006000600f6031e020e0606060606060606070e039601e7000000000000000000000 +0065:00000000000000000000000000000f0030c0606060607fe060006000300018600f8000000000000000000000 +0066:00000000038004c004c00c000c000c000c001f800c000c000c000c000c000c001e0000000000000000000000 +0067:00000000000000000000000000001f2031e060c060c060c031803f0060007fc03fe02060402040207fc03f80 +0068:0000000010003000700030003000378039c030c030c030c030c030c030c030c079e000000000000000000000 +0069:00000000000006000600000000001e00060006000600060006000600060006001f8000000000000000000000 +006a:00000000000000c000c00000000003c000c000c000c000c000c000c000c000c000c020c030c038801f000e00 +006b:000000006000e00060006000600061c0630066007c0078007c006e0067006380f1e000000000000000000000 +006c:000000001e0006000600060006000600060006000600060006000600060006001f8000000000000000000000 +006d:0000000000000000000000000000ddc06ee06660666066606660666066606660ef7000000000000000000000 +006e:0000000000000000000000000000278079c030c030c030c030c030c030c030c079e000000000000000000000 +006f:00000000000000000000000000000f8011c020e06060606060606060704038801f0000000000000000000000 +0070:0000000000000000000000000000ef8071c060e06060606060606060604070807f006000600060006000f000 +0071:00000000000000000000000000000f2011e020e06060606060606060706038e01fe0006000600060006000f0 +0072:0000000000000000000000000000738034c038c0300030003000300030003000780000000000000000000000 +0073:00000000000000000000000000001fc030c0304038001e00078001c020c030c03f8000000000000000000000 +0074:0000000000000000040004000c007fc00c000c000c000c000c000c000c200e40078000000000000000000000 +0075:000000000000000000000000000079e030c030c030c030c030c030c030c039c01e6000000000000000000000 +0076:0000000000000000000000000000f070602030403040188018800d000d000600060000000000000000000000 +0077:0000000000000000000000000000ff7066206620662037403b403b4019801980198000000000000000000000 +0078:0000000000000000000000000000f8f0704038801d000e0007000b8011c020e0f1f000000000000000000000 +0079:0000000000000000000000000000f0f0602030403040188018800d000d000600060004000c00080078007000 +007a:00000000000000000000000000007fe060e041c0038007000e001c00382070607fe000000000000000000000 +007b:0000000001c0030003000180018001800300070003000180018001800300030001c000000000000000000000 +007c:0000000006000600060006000600060006000600060006000600060006000600060006000600060006000600 +007d:0000000038000c000c001800180018000c000e000c001800180018000c000c00380000000000000000000000 +007e:00000000000000000000000000000000000000001c203e6036c067c043800000000000000000000000000000 +007f:aaa05550aaa05550aaa05550aaa05550aaa05550aaa05550aaa05550aaa05550aaa05550aaa05550aaa05550 +00a1:0000000000000600060000000000060006000600060006000600060006000600060006000000000000000000 +00a2:00000000000001000100030002001f003780258064006c006800788039801f00100030002000200000000000 +00a3:000006000c00100010003000300030003e007c0018001800180018003f203fe031c000000000000000000000 +00a4:00000000000000000000602077403b8011c030c030c038801dc02ee040600000000000000000000000000000 +00a5:000000000000f07060203040188018800d0006003fc006003fc00600060006000f0000000000000000000000 +00a6:0000000006000600060006000600060006000600060000000000060006000600060006000600060006000600 +00a7:000000000fe01860302038201e001f8031c060e0706038c01f80078041c040c061807f000000000000000000 +00a8:1980198000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00a9:0000000000000f00108020402f4059a059a05820582059a059a02f40204010800f0000000000000000000000 +00aa:0000000000000e001f0013800f80198031803fc01ec0000000003fe07fc00000000000000000000000000000 +00ab:000000000000000000000000000000000220044008801100330019800cc00660000000000000000000000000 +00ac:0000000000000000000000000000000000007fe07fe000600060006000600000000000000000000000000000 +00ad:000000000000000000000000000000000000000000001f801f80000000000000000000000000000000000000 +00ae:0000000000000f00108020403f4059a059a05fa05b205b2059a039c0204010800f0000000000000000000000 +00af:3fc03fc000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00b0:000000000e00170023806180618071003a001c00000000000000000000000000000000000000000000000000 +00b1:0000000000000000000006000600060006007fe07fe0060006000600060000007fe07fe00000000000000000 +00b2:0000000000000e001f001300030006000c0018001f001f000000000000000000000000000000000000000000 +00b3:0000000000000e001f00130003000600030013001f000e000000000000000000000000000000000000000000 +00b4:03800f001c000000000000000000000000000000000000000000000000000000000000000000000000000000 +00b5:000000000000000000000000000079e030c030c030c030c030c030c030c039c03e6030003000300030006000 +00b6:0000000000001fc03ec07ec07ec07ec03ec01ec006c006c006c006c006c006c006c000000000000000000000 +00b7:000000000000000000000000000000000000000006000f000f00060000000000000000000000000000000000 +00b8:0000000000000000000000000000000000000000000000000000000000000000000002000300018009800700 +00b9:00000000000006000e000e00060006000600060006000f000000000000000000000000000000000000000000 +00ba:00000000000007000b8011c030c030c038801d000e00000000003fe07fc00000000000000000000000000000 +00bb:000000000000000000000000000000006600330019800cc00880110022004400000000000000000000000000 +00bc:000018003800380018001820186018c019803f4006c00dc019c032c064c047e000c000c00000000000000000 +00bd:000018003800380018001820186018c019803fc007e00f601a6030c06180430003e003e00000000000000000 +00be:000038007c004c000c0018200c604cc07d803b4006c00dc019c032c064c047e000c000c00000000000000000 +00bf:00000000000003000300000000000300030006000c00180030003000304039c01f800f000000000000000000 +00c0:1c000f000380060006000b000b0009001180118010803fc020c0204040604060e0f000000000000000000000 +00c1:03800f001c00060006000b000b0009001180118010803fc020c0204040604060e0f000000000000000000000 +00c2:06000f001980060006000b000b0009001180118010803fc020c0204040604060e0f000000000000000000000 +00c3:0cc01f803300060006000b000b0009001180118010803fc020c0204040604060e0f000000000000000000000 +00c4:198019800000060006000b000b0009001180118010803fc020c0204040604060e0f000000000000000000000 +00c5:06000f0019800f0006000b000b0009001180118010803fc020c0204040604060e0f000000000000000000000 +00c6:0000000000000fe00e20162016001600164027c026403e002600460046104610e7f000000000000000000000 +00c7:0000000000000fc01060202020006000600060006000600060002000302018400f8002000300018009800700 +00c8:1c000f0003807fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +00c9:03800f001c007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +00ca:06000f0019807fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +00cb:1980198000007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +00cc:1c000f0003801f800600060006000600060006000600060006000600060006001f8000000000000000000000 +00cd:03800f001c001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +00ce:06000f0019801f800600060006000600060006000600060006000600060006001f8000000000000000000000 +00cf:1980198000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +00d0:000000000000ff0061c060c0606060606060f860f86060606060606060406180fe0000000000000000000000 +00d1:0cc01f803300c07060207020782058204c2046204720432041a040e040e04060e03000000000000000000000 +00d2:1c000f0003800f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +00d3:03800f001c000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +00d4:06000f0019800f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +00d5:0cc01f8033000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +00d6:1980198000000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +00d7:0000000000000000000000000000606030c019800f0006000f00198030c06060000000000000000000000000 +00d8:0000000000600fc011c021c021e06360636066606c606c6078603840304038806f0000000000000000000000 +00d9:1c000f000380f070602060206020602060206020602060206020602070403fc01f8000000000000000000000 +00da:03800f001c00f070602060206020602060206020602060206020602070403fc01f8000000000000000000000 +00db:06000f001980f070602060206020602060206020602060206020602070403fc01f8000000000000000000000 +00dc:198019800000f070602060206020602060206020602060206020602070403fc01f8000000000000000000000 +00dd:03800f001c00f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 +00de:0000000000007800300030003f8030c0306030603060306030c03f8030003000780000000000000000000000 +00df:000000000f0019801980318031803380360036003600338031c030e03460366077c000000000000000000000 +00e0:0000000000001c000f00038000000f8018c010c003c01cc030c030c030c039c01ee000000000000000000000 +00e1:00000000000003800f001c0000000f8018c010c003c01cc030c030c030c039c01ee000000000000000000000 +00e2:00000000000006000f00198000000f8018c010c003c01cc030c030c030c039c01ee000000000000000000000 +00e3:0000000000000cc01f80330000000f8018c010c003c01cc030c030c030c039c01ee000000000000000000000 +00e4:00000000000019801980000000000f8018c010c003c01cc030c030c030c039c01ee000000000000000000000 +00e5:000006000f0019800f00060000000f8018c010c003c01cc030c030c030c039c01ee000000000000000000000 +00e6:00000000000000000000000000001f80364026600e603fe066006600660067603fc000000000000000000000 +00e7:00000000000000000000000000001f8031c020c06000600060006000704030c01f8002000300018009800700 +00e8:0000000000001c000f00038000000f0030c0606060607fe060006000300018600f8000000000000000000000 +00e9:00000000000003800f001c0000000f0030c0606060607fe060006000300018600f8000000000000000000000 +00ea:00000000000006000f00198000000f0030c0606060607fe060006000300018600f8000000000000000000000 +00eb:00000000000019801980000000000f0030c0606060607fe060006000300018600f8000000000000000000000 +00ec:0000000000001c000f00038000001e00060006000600060006000600060006001f8000000000000000000000 +00ed:00000000000003800f001c0000001e00060006000600060006000600060006001f8000000000000000000000 +00ee:00000000000006000f00198000001e00060006000600060006000600060006001f8000000000000000000000 +00ef:00000000000019801980000000001e00060006000600060006000600060006001f8000000000000000000000 +00f0:0000000030c01f8006001f00318001c00fc010e020e0606060606060704038801f0000000000000000000000 +00f1:0000000000000cc01f8033000000278079c030c030c030c030c030c030c030c079e000000000000000000000 +00f2:0000000000001c000f00038000000f8011c020e06060606060606060704038801f0000000000000000000000 +00f3:00000000000003800f001c0000000f8011c020e06060606060606060704038801f0000000000000000000000 +00f4:00000000000006000f00198000000f8011c020e06060606060606060704038801f0000000000000000000000 +00f5:0000000000000cc01f80330000000f8011c020e06060606060606060704038801f0000000000000000000000 +00f6:00000000000019801980000000000f8011c020e06060606060606060704038801f0000000000000000000000 +00f7:000000000000000000000000000006000600000000007fe07fe0000000000600060000000000000000000000 +00f8:00000000000000000000000000000fe011c021e06360666066606c60784038807f0000000000000000000000 +00f9:0000000000001c000f000380000079e030c030c030c030c030c030c030c039c01e6000000000000000000000 +00fa:00000000000003800f001c00000079e030c030c030c030c030c030c030c039c01e6000000000000000000000 +00fb:00000000000006000f001980000079e030c030c030c030c030c030c030c039c01e6000000000000000000000 +00fc:000000000000198019800000000079e030c030c030c030c030c030c030c039c01e6000000000000000000000 +00fd:00000000000003800f001c000000f0f0602030403040188018800d000d000600060004000c00080078007000 +00fe:00000000e00060006000600060006f8071c060e06060606060606060604070807f006000600060006000f000 +00ff:0000000000001980198000000000f0f0602030403040188018800d000d000600060004000c00080078007000 From owner-svn-src-all@freebsd.org Wed Jan 27 20:24:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18670A70BEE; Wed, 27 Jan 2016 20:24:58 +0000 (UTC) (envelope-from kabaev@gmail.com) Received: from mail-qg0-x230.google.com (mail-qg0-x230.google.com [IPv6:2607:f8b0:400d:c04::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C423B18FB; Wed, 27 Jan 2016 20:24:57 +0000 (UTC) (envelope-from kabaev@gmail.com) Received: by mail-qg0-x230.google.com with SMTP id 6so16966948qgy.1; Wed, 27 Jan 2016 12:24:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type; bh=W05UFFYbf1M/1+Xifl4uKZPlOVsyatg6mJlCmp9sBnU=; b=0QZLZczXvh6uYsNSrPs222p0dbzhAdJuVRvu0eBQIpfDLYcBvXyjwkRAU1hwauL1m0 cgMdqJVbs57SZf9fGRW4f/txVCQqB6vIvJN6MlDflOGCRGjrLVPGHT23deln0X8bz5mw bj5ZX3G9y30m9L4wAcCUHBvUS9a7TWkWhS3+0M7jFRAPSk748k3GZ278IRqeVJ5QCiOb HOpUuGErOCZo94+Dn4ho2SRhCUS1VZwyewrbOdg/rF9uooDa5PY2QqoOqHVuhmVM6pIY IB4dqnsmZIybFL5p4AWCgZtLhEXr2II1J4NiZWLBkdXgNlNJHnubtfOTMwe+QFCVpfmV xpVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-type; bh=W05UFFYbf1M/1+Xifl4uKZPlOVsyatg6mJlCmp9sBnU=; b=RqAifFWIlRvkc2ivpa0q2rDcb+XFdaxru2mFsXtj1qY1Qzn1bBCKr8/otLEtyfEE4W 9zxlhbwMeYBI2yii4VI8uoRriX3YflGCPVUQEFkribwdjAnK4HfTCUmVT00/p34si1+G TMSaKfjYmKMh9FSnY6LP/2lwffwWpYMoFwAiCSWAcJVIcVxk+vBbjmF1/OytO1P+AuMT bKaWs9jNuu8B8m0q0+4MDQCBKSJnK7huO9EcLjV2WENBBxf5Ol+0yW3gh66RWtvAjI59 man1lSicx8wKMadQRQdhFnS+R+aSCpQ6W2mQxZWhuNBq+SgCvQ+Nri5JeL2beUXxImH3 CdaA== X-Gm-Message-State: AG10YOR2DsZR84JnOICSlc8oHLesHHL12bgaVIAa6K+zdLbAtGtTdlU/05ZzcdtJ2neRUg== X-Received: by 10.140.86.243 with SMTP id p106mr38136132qgd.1.1453926296630; Wed, 27 Jan 2016 12:24:56 -0800 (PST) Received: from kan ([2601:18f:802:4680:226:18ff:fe00:232e]) by smtp.gmail.com with ESMTPSA id e187sm2381559qka.1.2016.01.27.12.24.55 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 27 Jan 2016 12:24:55 -0800 (PST) Date: Wed, 27 Jan 2016 15:24:34 -0500 From: Alexander Kabaev To: Alexander Kabaev Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294936 - head/libexec/rtld-elf Message-ID: <20160127152434.1c8a4d18@kan> In-Reply-To: <201601272020.u0RKKbwr080622@repo.freebsd.org> References: <201601272020.u0RKKbwr080622@repo.freebsd.org> X-Mailer: Claws Mail 3.13.1 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/3s2Kg5N=S344cG18g0e/Q6a"; protocol="application/pgp-signature" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 20:24:58 -0000 --Sig_/3s2Kg5N=S344cG18g0e/Q6a Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Wed, 27 Jan 2016 20:20:37 +0000 (UTC) Alexander Kabaev wrote: > Author: kan > Date: Wed Jan 27 20:20:37 2016 > New Revision: 294936 > URL: https://svnweb.freebsd.org/changeset/base/294936 >=20 > Log: > Do not unlock rtld_phdr_lock over callback invocations. > =20 > The dl_iterate_phdr consumer code in libgcc does not expect multiple > callbacks running concurrently. This was fixed once already in > r178807, but accidentally got reverted in r294373. >=20 > Modified: > head/libexec/rtld-elf/rtld.c >=20 I lost the commit message through wonders of svn dcommit somehow. This should have been: Reviewed by: kib Tested by: kib, davide --=20 Alexander Kabaev --Sig_/3s2Kg5N=S344cG18g0e/Q6a Content-Type: application/pgp-signature Content-Description: Цифровая подпись OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJWqSeDXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRDNUY3RDk5NTk5QjY0MUUxM0M1MTU2OTEw NzEzMjI5OTkyNzkyRTdFAAoJEAcTIpmSeS5+HTUP/3wSltogTXOn4aZXFgMxESsY oqUCupFi2tcj0NqDOol/XpMDH6mfRo8p+z7aT4SFmbvFcLkP9Sp14zGoOAFy7eVc pRTu0wrLBzcPYwLJo+shTkDo8bdVj+3jZefnZS9oCVaeJ4wjWKwncvO0pUwkZc/F eBpBHONv3tN+O8Vb4or5bS4+hWD9/1nbzs2ynvX289FjwL8UD/++eHmo+4pnn1vf +BcIiGhcye9hPEMIjhAtC2AnW31sR0l20LGUW4SUAJHznW0l+jTlojOf8aNKRC0D NhpjvcbGpJ7aDh7UCflAQQLJKsU8iet/xKgSBY5bILqeWsHnnI+/wWGPS1WFWoKG FcNHWihfYWeR1AnSuMJIjwWag+mq1qS2n79PoBTb8vEQsJqSjiVHYtww0PmGLRVF ubML2OCIERm6zZnVx6YxPVe1eIKozp6dn+zkXzcMaMF1ElsvUlebwXJiWygfeOTz pq+p10REhHrmJzB9u39+s/0Z+CyE4yDWd1EZyXNlPy7dnfjqWTBxKoncriDhcDqz m6G14AMaB7biLHS5306+B0k21A/zGJD+FU9FK7Mo1K8P+5FkW1Z3sCb65U98U/R2 6DsKDmlV6rI4GlaC+ZLqn3VXrsci3uC5fHrvaEzm9rO/6D/COD1ZGAE+Iy35GhHW CNzhNPFhf9AHvEAuXArO =94du -----END PGP SIGNATURE----- --Sig_/3s2Kg5N=S344cG18g0e/Q6a-- From owner-svn-src-all@freebsd.org Wed Jan 27 20:36:14 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D08ACA6F1AB; Wed, 27 Jan 2016 20:36:14 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id B5FC71507; Wed, 27 Jan 2016 20:36:14 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id AEA8915C9; Wed, 27 Jan 2016 20:36:14 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 6D5F914866; Wed, 27 Jan 2016 20:36:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id 43l_p4QbiAV5; Wed, 27 Jan 2016 20:36:11 +0000 (UTC) Subject: Re: svn commit: r294915 - head/sys/conf DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 5C62A1485E To: Hans Petter Selasky , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201601271446.u0REkUOi081035@repo.freebsd.org> <56A91853.30103@FreeBSD.org> <56A92A43.40309@selasky.org> From: Bryan Drewery Openpgp: id=F9173CB2C3AAEA7A5C8A1F0935D771BB6E4697CF; url=http://www.shatow.net/bryan/bryan2.asc Organization: FreeBSD Message-ID: <56A92A3D.30903@FreeBSD.org> Date: Wed, 27 Jan 2016 12:36:13 -0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <56A92A43.40309@selasky.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="skM5dBeGTFi73SLTHM6Sijco6AbFd7odK" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 20:36:15 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --skM5dBeGTFi73SLTHM6Sijco6AbFd7odK Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 1/27/2016 12:36 PM, Hans Petter Selasky wrote: > On 01/27/16 20:19, Bryan Drewery wrote: >> On 1/27/2016 6:46 AM, Hans Petter Selasky wrote: >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>> >>> --- head/sys/conf/kern.post.mk Wed Jan 27 14:16:13 2016 (r29491= 4) >>> +++ head/sys/conf/kern.post.mk Wed Jan 27 14:46:30 2016 (r29491= 5) >>> @@ -186,12 +186,23 @@ genassym.o: $S/$M/$M/genassym.c >>> >>> ${SYSTEM_OBJS} genassym.o vers.o: opt_global.h >>> >>> +# Normal files first >>> +CFILES_NORMAL=3D =20 >>> ${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*:N*/compat/linuxkpi/c= ommon/*:N*/ofed/*:N*/dev/mlx5/*} >>> >>> +SFILES_NORMAL=3D ${SFILES:N*/cddl/*} >>> + >=20 >> >> I plan to nuke this code quite soon in favor of FAST_DEPEND. None of >> this or related hacks will be needed anymore. >> >=20 > OK, I guess you know what you are doing :-) >=20 > BTW: Have you thought about implementing -jX option for make depend, by= > splitting the source files which needs depend in to some kind of groups= ? Yes, that was my first implementation. It made the overall build slower. Either way the pre-build dependency calculation isn't needed. It's explained in https://svnweb.freebsd.org/base?view=3Drevision&revision=3D2= 90433 Anyway I was just giving an FYI to anyone who cared. I wrote up an arch@ mail after the previous mail though as it is a more appropriate place. --=20 Regards, Bryan Drewery --skM5dBeGTFi73SLTHM6Sijco6AbFd7odK Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJWqSo9AAoJEDXXcbtuRpfPaRAH/19Bw/u8BnJWnqVy2+ch3Py4 qJHqhv4YY4eYRSn6n24A11nckQnjswo1zf3EtvK+yAU8mrF3OvAanuUmEPMKQDLj s6BTQof/oPNTyjHhVyNIqbhtKw23j/f6qwilS/SXXXFAcm4m/yjzzVThBVi/Qnhj +cTlaFWuoqCoYWwe9rIPTqkLt2TLpmUqGsxbeI+RJlgTV61CJXcbr73AV+p9t4y/ lT6H//maaxSdbPG5o3J138yO6J/Z5dZr7wl3hSLjhF4mTxC1Wl501AQTsY5ixeCv /XFNg5UvTO2PBHdgkZ7IKTlSGr9RTplB5lKM+tmC1+XkdHnUcAjUeLYKV9OdGp0= =X3an -----END PGP SIGNATURE----- --skM5dBeGTFi73SLTHM6Sijco6AbFd7odK-- From owner-svn-src-all@freebsd.org Wed Jan 27 20:34:05 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92D2CA70FE8; Wed, 27 Jan 2016 20:34:05 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (mail.turbocat.net [IPv6:2a01:4f8:d16:4514::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5E327107C; Wed, 27 Jan 2016 20:34:05 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 1FF3B1FE023; Wed, 27 Jan 2016 21:34:01 +0100 (CET) Subject: Re: svn commit: r294915 - head/sys/conf To: Bryan Drewery , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201601271446.u0REkUOi081035@repo.freebsd.org> <56A91853.30103@FreeBSD.org> From: Hans Petter Selasky Message-ID: <56A92A43.40309@selasky.org> Date: Wed, 27 Jan 2016 21:36:19 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <56A91853.30103@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 20:34:05 -0000 On 01/27/16 20:19, Bryan Drewery wrote: > On 1/27/2016 6:46 AM, Hans Petter Selasky wrote: >> ============================================================================== >> --- head/sys/conf/kern.post.mk Wed Jan 27 14:16:13 2016 (r294914) >> +++ head/sys/conf/kern.post.mk Wed Jan 27 14:46:30 2016 (r294915) >> @@ -186,12 +186,23 @@ genassym.o: $S/$M/$M/genassym.c >> >> ${SYSTEM_OBJS} genassym.o vers.o: opt_global.h >> >> +# Normal files first >> +CFILES_NORMAL= ${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*:N*/compat/linuxkpi/common/*:N*/ofed/*:N*/dev/mlx5/*} >> +SFILES_NORMAL= ${SFILES:N*/cddl/*} >> + > > I plan to nuke this code quite soon in favor of FAST_DEPEND. None of > this or related hacks will be needed anymore. > OK, I guess you know what you are doing :-) BTW: Have you thought about implementing -jX option for make depend, by splitting the source files which needs depend in to some kind of groups? --HPS From owner-svn-src-all@freebsd.org Wed Jan 27 21:08:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5994CA6FD00; Wed, 27 Jan 2016 21:08:54 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2664E181D; Wed, 27 Jan 2016 21:08:54 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RL8rCY095361; Wed, 27 Jan 2016 21:08:53 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RL8p92095346; Wed, 27 Jan 2016 21:08:51 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272108.u0RL8p92095346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:08:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294938 - in vendor/llvm/dist: include/llvm/Analysis lib/Analysis lib/Target/AMDGPU lib/Target/X86 lib/Transforms/Instrumentation test/Analysis/DemandedBits test/CodeGen/X86 test/Transf... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:08:54 -0000 Author: dim Date: Wed Jan 27 21:08:51 2016 New Revision: 294938 URL: https://svnweb.freebsd.org/changeset/base/294938 Log: Vendor import of llvm release_38 branch r258968: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258968 Added: vendor/llvm/dist/test/Transforms/GCOVProfiling/modules.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr26207.ll Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h vendor/llvm/dist/lib/Analysis/DemandedBits.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/GCOVProfiling.cpp vendor/llvm/dist/test/Analysis/DemandedBits/basic.ll vendor/llvm/dist/test/CodeGen/X86/cmovcmov.ll vendor/llvm/dist/utils/release/test-release.sh Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h Wed Jan 27 21:08:51 2016 (r294938) @@ -412,7 +412,11 @@ namespace llvm { /*implicit*/ ExitLimit(const SCEV *E) : Exact(E), Max(E) {} - ExitLimit(const SCEV *E, const SCEV *M) : Exact(E), Max(M) {} + ExitLimit(const SCEV *E, const SCEV *M) : Exact(E), Max(M) { + assert((isa(Exact) || + !isa(Max)) && + "Exact is not allowed to be less precise than Max"); + } /// Test whether this ExitLimit contains any computed information, or /// whether it's all SCEVCouldNotCompute values. Modified: vendor/llvm/dist/lib/Analysis/DemandedBits.cpp ============================================================================== --- vendor/llvm/dist/lib/Analysis/DemandedBits.cpp Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/lib/Analysis/DemandedBits.cpp Wed Jan 27 21:08:51 2016 (r294938) @@ -244,7 +244,7 @@ void DemandedBits::determineLiveOperandB break; case Instruction::ICmp: // Count the number of leading zeroes in each operand. - ComputeKnownBits(BitWidth, I, UserI->getOperand(1)); + ComputeKnownBits(BitWidth, UserI->getOperand(0), UserI->getOperand(1)); auto NumLeadingZeroes = std::min(KnownZero.countLeadingOnes(), KnownZero2.countLeadingOnes()); AB = ~APInt::getHighBitsSet(BitWidth, NumLeadingZeroes); Modified: vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp ============================================================================== --- vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp Wed Jan 27 21:08:51 2016 (r294938) @@ -5368,6 +5368,14 @@ ScalarEvolution::computeExitLimitFromCon BECount = EL0.Exact; } + // There are cases (e.g. PR26207) where computeExitLimitFromCond is able + // to be more aggressive when computing BECount than when computing + // MaxBECount. In these cases it is possible for EL0.Exact and EL1.Exact + // to match, but for EL0.Max and EL1.Max to not. + if (isa(MaxBECount) && + !isa(BECount)) + MaxBECount = BECount; + return ExitLimit(BECount, MaxBECount); } if (BO->getOpcode() == Instruction::Or) { Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td Wed Jan 27 21:08:51 2016 (r294938) @@ -138,6 +138,11 @@ def FeatureEnableHugeScratchBuffer : Sub "true", "Enable scratch buffer sizes greater than 128 GB">; +def FeatureEnableSIScheduler : SubtargetFeature<"si-scheduler", + "EnableSIScheduler", + "true", + "Enable SI Machine Scheduler">; + class SubtargetFeatureFetchLimit : SubtargetFeature <"fetch"#Value, "TexVTXClauseSize", Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp Wed Jan 27 21:08:51 2016 (r294938) @@ -78,7 +78,7 @@ AMDGPUSubtarget::AMDGPUSubtarget(const T EnableVGPRSpilling(false), SGPRInitBug(false), IsGCN(false), GCN1Encoding(false), GCN3Encoding(false), CIInsts(false), LDSBankCount(0), IsaVersion(ISAVersion0_0_0), EnableHugeScratchBuffer(false), - FrameLowering(nullptr), + EnableSIScheduler(false), FrameLowering(nullptr), InstrItins(getInstrItineraryForCPU(GPU)), TargetTriple(TT) { initializeSubtargetDependencies(TT, GPU, FS); Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h Wed Jan 27 21:08:51 2016 (r294938) @@ -90,6 +90,7 @@ private: int LDSBankCount; unsigned IsaVersion; bool EnableHugeScratchBuffer; + bool EnableSIScheduler; std::unique_ptr FrameLowering; std::unique_ptr TLInfo; @@ -280,6 +281,10 @@ public: return EnableHugeScratchBuffer; } + bool enableSIScheduler() const { + return EnableSIScheduler; + } + bool dumpCode() const { return DumpCode; } Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp Wed Jan 27 21:08:51 2016 (r294938) @@ -147,6 +147,8 @@ public: const AMDGPUSubtarget &ST = *getAMDGPUTargetMachine().getSubtargetImpl(); if (ST.getGeneration() <= AMDGPUSubtarget::NORTHERN_ISLANDS) return createR600MachineScheduler(C); + else if (ST.enableSIScheduler()) + return createSIMachineScheduler(C); return nullptr; } Modified: vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp Wed Jan 27 21:08:51 2016 (r294938) @@ -21880,7 +21880,8 @@ X86TargetLowering::EmitLoweredSelect(Mac if (LastCMOV == MI && NextMIIt != BB->end() && NextMIIt->getOpcode() == MI->getOpcode() && NextMIIt->getOperand(2).getReg() == MI->getOperand(2).getReg() && - NextMIIt->getOperand(1).getReg() == MI->getOperand(0).getReg()) { + NextMIIt->getOperand(1).getReg() == MI->getOperand(0).getReg() && + NextMIIt->getOperand(1).isKill()) { CascadedCMOV = &*NextMIIt; } Modified: vendor/llvm/dist/lib/Transforms/Instrumentation/GCOVProfiling.cpp ============================================================================== --- vendor/llvm/dist/lib/Transforms/Instrumentation/GCOVProfiling.cpp Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/lib/Transforms/Instrumentation/GCOVProfiling.cpp Wed Jan 27 21:08:51 2016 (r294938) @@ -494,6 +494,11 @@ void GCOVProfiler::emitProfileNotes() { // LTO, we'll generate the same .gcno files. auto *CU = cast(CU_Nodes->getOperand(i)); + + // Skip module skeleton (and module) CUs. + if (CU->getDWOId()) + continue; + std::error_code EC; raw_fd_ostream out(mangleName(CU, "gcno"), EC, sys::fs::F_None); std::string EdgeDestinations; @@ -853,6 +858,11 @@ Function *GCOVProfiler::insertCounterWri if (CU_Nodes) { for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) { auto *CU = cast(CU_Nodes->getOperand(i)); + + // Skip module skeleton (and module) CUs. + if (CU->getDWOId()) + continue; + std::string FilenameGcda = mangleName(CU, "gcda"); uint32_t CfgChecksum = FileChecksums.empty() ? 0 : FileChecksums[i]; Builder.CreateCall(StartFile, Modified: vendor/llvm/dist/test/Analysis/DemandedBits/basic.ll ============================================================================== --- vendor/llvm/dist/test/Analysis/DemandedBits/basic.ll Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/test/Analysis/DemandedBits/basic.ll Wed Jan 27 21:08:51 2016 (r294938) @@ -24,11 +24,20 @@ define i1 @test_icmp1(i32 %a, i32 %b) { ; CHECK-LABEL: 'test_icmp2' ; CHECK-DAG: DemandedBits: 0x1 for %3 = icmp eq i32 %1, %2 -; CHECK-DAG: DemandedBits: 0xFF for %1 = and i32 %a, 255 -; CHECK-DAG: DemandedBits: 0xF for %2 = ashr i32 %1, 4 +; CHECK-DAG: DemandedBits: 0xFFF for %1 = and i32 %a, 255 +; CHECK-DAG: DemandedBits: 0xFF for %2 = ashr i32 %1, 4 define i1 @test_icmp2(i32 %a, i32 %b) { %1 = and i32 %a, 255 %2 = ashr i32 %1, 4 %3 = icmp eq i32 %1, %2 ret i1 %3 } + +; CHECK-LABEL: 'test_icmp3' +; CHECK-DAG: DemandedBits: 0xFFFFFFFF for %1 = and i32 %a, 255 +; CHECK-DAG: DemandedBits: 0x1 for %2 = icmp eq i32 -1, %1 +define i1 @test_icmp3(i32 %a) { + %1 = and i32 %a, 255 + %2 = icmp eq i32 -1, %1 + ret i1 %2 +} Modified: vendor/llvm/dist/test/CodeGen/X86/cmovcmov.ll ============================================================================== --- vendor/llvm/dist/test/CodeGen/X86/cmovcmov.ll Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/test/CodeGen/X86/cmovcmov.ll Wed Jan 27 21:08:51 2016 (r294938) @@ -224,3 +224,52 @@ entry: } attributes #0 = { nounwind } + +@g8 = global i8 0 + +; The following test failed because llvm had a bug where a structure like: +; +; %vreg12 = CMOV_GR8 %vreg7, %vreg11 ... (lt) +; %vreg13 = CMOV_GR8 %vreg12, %vreg11 ... (gt) +; +; was lowered to: +; +; The first two cmovs got expanded to: +; BB#0: +; JL_1 BB#9 +; BB#7: +; JG_1 BB#9 +; BB#8: +; BB#9: +; vreg12 = phi(vreg7, BB#8, vreg11, BB#0, vreg12, BB#7) +; vreg13 = COPY vreg12 +; Which was invalid as %vreg12 is not the same value as %vreg13 + +; CHECK-LABEL: no_cascade_opt: +; CMOV-DAG: cmpl %edx, %esi +; CMOV-DAG: movb $20, %al +; CMOV-DAG: movb $20, %dl +; CMOV: jl [[BB0:.LBB[0-9_]+]] +; CMOV: movb %cl, %dl +; CMOV: [[BB0]]: +; CMOV: jg [[BB1:.LBB[0-9_]+]] +; CMOV: movb %dl, %al +; CMOV: [[BB1]]: +; CMOV: testl %edi, %edi +; CMOV: je [[BB2:.LBB[0-9_]+]] +; CMOV: movb %dl, %al +; CMOV: [[BB2]]: +; CMOV: movb %al, g8(%rip) +; CMOV: retq +define void @no_cascade_opt(i32 %v0, i32 %v1, i32 %v2, i32 %v3) { +entry: + %c0 = icmp eq i32 %v0, 0 + %c1 = icmp slt i32 %v1, %v2 + %c2 = icmp sgt i32 %v1, %v2 + %trunc = trunc i32 %v3 to i8 + %sel0 = select i1 %c1, i8 20, i8 %trunc + %sel1 = select i1 %c2, i8 20, i8 %sel0 + %sel2 = select i1 %c0, i8 %sel1, i8 %sel0 + store volatile i8 %sel2, i8* @g8 + ret void +} Added: vendor/llvm/dist/test/Transforms/GCOVProfiling/modules.ll ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm/dist/test/Transforms/GCOVProfiling/modules.ll Wed Jan 27 21:08:51 2016 (r294938) @@ -0,0 +1,12 @@ +; RUN: opt -insert-gcov-profiling -o - < %s | llvm-dis | FileCheck -check-prefix=EMIT-ARCS %s + +; EMIT-ARCS-NOT: call void @llvm_gcda_start_file + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!3, !4} + +!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "LLVM", isOptimized: false, runtimeVersion: 2, splitDebugFilename: "my.dwo", emissionKind: 1, enums: !2, retainedTypes: !2, subprograms: !2, globals: !2, imports: !2, dwoId: 43981) +!1 = !DIFile(filename: "", directory: "/") +!2 = !{} +!3 = !{i32 2, !"Dwarf Version", i32 4} +!4 = !{i32 2, !"Debug Info Version", i32 3} Added: vendor/llvm/dist/test/Transforms/IndVarSimplify/pr26207.ll ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm/dist/test/Transforms/IndVarSimplify/pr26207.ll Wed Jan 27 21:08:51 2016 (r294938) @@ -0,0 +1,20 @@ +; RUN: opt -S -indvars < %s | FileCheck %s + +target triple = "x86_64-unknown-linux-gnu" + +define void @main(i16 %in) { +; CHECK-LABEL: @main( + br label %bb2 + +bb2: ; preds = %bb1.i, %bb2, %0 + %_tmp44.i = icmp slt i16 %in, 2 + br i1 %_tmp44.i, label %bb1.i, label %bb2 + +bb1.i: ; preds = %bb1.i, %bb2 + %_tmp25.i = phi i16 [ %in, %bb2 ], [ %_tmp6.i, %bb1.i ] + %_tmp6.i = add nsw i16 %_tmp25.i, 1 + %_tmp10.i = icmp sge i16 %_tmp6.i, 2 + %exitcond.i = icmp eq i16 %_tmp6.i, 2 + %or.cond = and i1 %_tmp10.i, %exitcond.i + br i1 %or.cond, label %bb2, label %bb1.i +} Modified: vendor/llvm/dist/utils/release/test-release.sh ============================================================================== --- vendor/llvm/dist/utils/release/test-release.sh Wed Jan 27 20:23:42 2016 (r294937) +++ vendor/llvm/dist/utils/release/test-release.sh Wed Jan 27 21:08:51 2016 (r294938) @@ -267,56 +267,36 @@ function export_sources() { check_valid_urls for proj in $projects ; do - if [ -d $proj.src ]; then - echo "# Reusing $proj $Release-$RC sources" + case $proj in + llvm) + projsrc=$proj.src + ;; + cfe) + projsrc=llvm.src/tools/clang + ;; + clang-tools-extra) + projsrc=llvm.src/tools/clang/tools/extra + ;; + compiler-rt|libcxx|libcxxabi|libunwind|openmp|test-suite) + projsrc=llvm.src/projects/$proj + ;; + *) + echo "error: unknown project $proj" + exit 1 + ;; + esac + + if [ -d $projsrc ]; then + echo "# Reusing $proj $Release-$RC sources in $projsrc" continue fi - echo "# Exporting $proj $Release-$RC sources" - if ! svn export -q $Base_url/$proj/$ExportBranch $proj.src ; then + echo "# Exporting $proj $Release-$RC sources to $projsrc" + if ! svn export -q $Base_url/$proj/$ExportBranch $projsrc ; then echo "error: failed to export $proj project" exit 1 fi done - echo "# Creating symlinks" - cd $BuildDir/llvm.src/tools - if [ ! -h clang ]; then - ln -s ../../cfe.src clang - fi - - # The autoconf and CMake builds want different symlinks here: - if [ "$use_autoconf" = "yes" ]; then - cd $BuildDir/llvm.src/tools/clang/tools - if [ ! -h extra ]; then - ln -s ../../../../clang-tools-extra.src extra - fi - else - cd $BuildDir/cfe.src/tools - if [ ! -h extra ]; then - ln -s ../../clang-tools-extra.src extra - fi - fi - - cd $BuildDir/llvm.src/projects - if [ -d $BuildDir/test-suite.src ] && [ ! -h test-suite ]; then - ln -s ../../test-suite.src test-suite - fi - if [ -d $BuildDir/compiler-rt.src ] && [ ! -h compiler-rt ]; then - ln -s ../../compiler-rt.src compiler-rt - fi - if [ -d $BuildDir/openmp.src ] && [ ! -h openmp ]; then - ln -s ../../openmp.src openmp - fi - if [ -d $BuildDir/libcxx.src ] && [ ! -h libcxx ]; then - ln -s ../../libcxx.src libcxx - fi - if [ -d $BuildDir/libcxxabi.src ] && [ ! -h libcxxabi ]; then - ln -s ../../libcxxabi.src libcxxabi - fi - if [ -d $BuildDir/libunwind.src ] && [ ! -h libunwind ]; then - ln -s ../../libunwind.src libunwind - fi - cd $BuildDir } @@ -560,8 +540,9 @@ for Flavor in $Flavors ; do # Substitute 'Phase2' for 'Phase3' in the Phase 2 object file in # case there are build paths in the debug info. On some systems, # sed adds a newline to the output, so pass $p3 through sed too. - if ! cmp -s <(sed -e 's,Phase2,Phase3,g' $p2) <(sed -e '' $p3) \ - 16 16 ; then + if ! cmp -s \ + <(env LC_CTYPE=C sed -e 's,Phase2,Phase3,g' $p2) \ + <(env LC_CTYPE=C sed -e '' $p3) 16 16; then echo "file `basename $p2` differs between phase 2 and phase 3" fi done From owner-svn-src-all@freebsd.org Wed Jan 27 21:09:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92654A6FD56; Wed, 27 Jan 2016 21:09:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4A59019B0; Wed, 27 Jan 2016 21:09:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RL9ER6095422; Wed, 27 Jan 2016 21:09:14 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RL9EDg095421; Wed, 27 Jan 2016 21:09:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272109.u0RL9EDg095421@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:09:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294939 - vendor/llvm/llvm-release_38-r258968 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:09:15 -0000 Author: dim Date: Wed Jan 27 21:09:14 2016 New Revision: 294939 URL: https://svnweb.freebsd.org/changeset/base/294939 Log: Tag llvm release_38 branch r258968. Added: vendor/llvm/llvm-release_38-r258968/ - copied from r294938, vendor/llvm/dist/ From owner-svn-src-all@freebsd.org Wed Jan 27 21:09:40 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 473DDA6FDCF; Wed, 27 Jan 2016 21:09:40 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 13D411AF5; Wed, 27 Jan 2016 21:09:40 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RL9dhQ095478; Wed, 27 Jan 2016 21:09:39 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RL9d1e095477; Wed, 27 Jan 2016 21:09:39 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272109.u0RL9d1e095477@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:09:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294940 - vendor/clang/dist/tools/driver X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:09:40 -0000 Author: dim Date: Wed Jan 27 21:09:38 2016 New Revision: 294940 URL: https://svnweb.freebsd.org/changeset/base/294940 Log: Vendor import of clang release_38 branch r258968: https://llvm.org/svn/llvm-project/cfe/branches/release_38@258968 Modified: vendor/clang/dist/tools/driver/driver.cpp Modified: vendor/clang/dist/tools/driver/driver.cpp ============================================================================== --- vendor/clang/dist/tools/driver/driver.cpp Wed Jan 27 21:09:14 2016 (r294939) +++ vendor/clang/dist/tools/driver/driver.cpp Wed Jan 27 21:09:38 2016 (r294940) @@ -290,9 +290,9 @@ static void SetInstallDir(SmallVectorImp if (CanonicalPrefixes) llvm::sys::fs::make_absolute(InstalledPath); - InstalledPath = llvm::sys::path::parent_path(InstalledPath); - if (llvm::sys::fs::exists(InstalledPath.c_str())) - TheDriver.setInstalledDir(InstalledPath); + StringRef InstalledPathParent(llvm::sys::path::parent_path(InstalledPath)); + if (llvm::sys::fs::exists(InstalledPathParent)) + TheDriver.setInstalledDir(InstalledPathParent); } static int ExecuteCC1Tool(ArrayRef argv, StringRef Tool) { From owner-svn-src-all@freebsd.org Wed Jan 27 21:09:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C6560A6FE36; Wed, 27 Jan 2016 21:09:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7FCD81C53; Wed, 27 Jan 2016 21:09:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RL9vIA095533; Wed, 27 Jan 2016 21:09:57 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RL9vPL095532; Wed, 27 Jan 2016 21:09:57 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272109.u0RL9vPL095532@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:09:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294941 - vendor/clang/clang-release_38-r258968 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:09:58 -0000 Author: dim Date: Wed Jan 27 21:09:57 2016 New Revision: 294941 URL: https://svnweb.freebsd.org/changeset/base/294941 Log: Tag clang release_38 branch r258968. Added: vendor/clang/clang-release_38-r258968/ - copied from r294940, vendor/clang/dist/ From owner-svn-src-all@freebsd.org Wed Jan 27 21:10:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0073DA6FEB1; Wed, 27 Jan 2016 21:10:18 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B5A531E8A; Wed, 27 Jan 2016 21:10:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLAG2D095656; Wed, 27 Jan 2016 21:10:16 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLAGou095652; Wed, 27 Jan 2016 21:10:16 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272110.u0RLAGou095652@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:10:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294943 - in vendor/compiler-rt/dist/cmake: . Modules X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:10:18 -0000 Author: dim Date: Wed Jan 27 21:10:16 2016 New Revision: 294943 URL: https://svnweb.freebsd.org/changeset/base/294943 Log: Vendor import of compiler-rt release_38 branch r258968: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_38@258968 Modified: vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake vendor/compiler-rt/dist/cmake/config-ix.cmake Modified: vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Wed Jan 27 21:10:03 2016 (r294942) +++ vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Wed Jan 27 21:10:16 2016 (r294943) @@ -19,7 +19,7 @@ function(add_compiler_rt_object_librarie set(libname "${name}.${os}") set(libnames ${libnames} ${libname}) set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS}) - list_union(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS) + list_intersect(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS) endforeach() else() foreach(arch ${LIB_ARCHS}) @@ -87,7 +87,7 @@ function(add_compiler_rt_runtime name ty set(libname "${name}_${os}_dynamic") set(extra_linkflags_${libname} ${DARWIN_${os}_LINKFLAGS} ${LIB_LINKFLAGS}) endif() - list_union(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS) + list_intersect(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS) if(LIB_ARCHS_${libname}) list(APPEND libnames ${libname}) set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS} ${LIB_CFLAGS}) Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake Wed Jan 27 21:10:03 2016 (r294942) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake Wed Jan 27 21:10:16 2016 (r294943) @@ -91,7 +91,7 @@ endfunction() # This function checks the host cpusubtype to see if it is post-haswell. Haswell # and later machines can run x86_64h binaries. Haswell is cpusubtype 8. function(darwin_filter_host_archs input output) - list_union(tmp_var DARWIN_osx_ARCHS ${input}) + list_intersect(tmp_var DARWIN_osx_ARCHS ${input}) execute_process( COMMAND sysctl hw.cpusubtype OUTPUT_VARIABLE SUBTYPE) @@ -285,7 +285,7 @@ macro(darwin_add_builtin_libraries) ../profile/InstrProfilingPlatformDarwin ../profile/InstrProfilingWriter) foreach (os ${ARGN}) - list_union(DARWIN_BUILTIN_ARCHS DARWIN_${os}_ARCHS BUILTIN_SUPPORTED_ARCH) + list_intersect(DARWIN_BUILTIN_ARCHS DARWIN_${os}_ARCHS BUILTIN_SUPPORTED_ARCH) foreach (arch ${DARWIN_BUILTIN_ARCHS}) darwin_find_excluded_builtins_list(${arch}_${os}_EXCLUDED_BUILTINS OS ${os} Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Wed Jan 27 21:10:03 2016 (r294942) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Wed Jan 27 21:10:16 2016 (r294943) @@ -58,7 +58,7 @@ macro(append_have_file_definition filena list(APPEND ${list} "${varname}=${${varname}}") endmacro() -macro(list_union output input1 input2) +macro(list_intersect output input1 input2) set(${output}) foreach(it ${${input1}}) list(FIND ${input2} ${it} index) Modified: vendor/compiler-rt/dist/cmake/config-ix.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/config-ix.cmake Wed Jan 27 21:10:03 2016 (r294942) +++ vendor/compiler-rt/dist/cmake/config-ix.cmake Wed Jan 27 21:10:16 2016 (r294943) @@ -488,42 +488,42 @@ if(APPLE) endforeach() endif() - # for list_union + # for list_intersect include(CompilerRTUtils) - list_union(BUILTIN_SUPPORTED_ARCH ALL_BUILTIN_SUPPORTED_ARCH toolchain_arches) + list_intersect(BUILTIN_SUPPORTED_ARCH ALL_BUILTIN_SUPPORTED_ARCH toolchain_arches) - list_union(SANITIZER_COMMON_SUPPORTED_ARCH + list_intersect(SANITIZER_COMMON_SUPPORTED_ARCH ALL_SANITIZER_COMMON_SUPPORTED_ARCH COMPILER_RT_SUPPORTED_ARCH ) set(LSAN_COMMON_SUPPORTED_ARCH ${SANITIZER_COMMON_SUPPORTED_ARCH}) set(UBSAN_COMMON_SUPPORTED_ARCH ${SANITIZER_COMMON_SUPPORTED_ARCH}) - list_union(ASAN_SUPPORTED_ARCH + list_intersect(ASAN_SUPPORTED_ARCH ALL_ASAN_SUPPORTED_ARCH SANITIZER_COMMON_SUPPORTED_ARCH) - list_union(DFSAN_SUPPORTED_ARCH + list_intersect(DFSAN_SUPPORTED_ARCH ALL_DFSAN_SUPPORTED_ARCH SANITIZER_COMMON_SUPPORTED_ARCH) - list_union(LSAN_SUPPORTED_ARCH + list_intersect(LSAN_SUPPORTED_ARCH ALL_LSAN_SUPPORTED_ARCH SANITIZER_COMMON_SUPPORTED_ARCH) - list_union(MSAN_SUPPORTED_ARCH + list_intersect(MSAN_SUPPORTED_ARCH ALL_MSAN_SUPPORTED_ARCH SANITIZER_COMMON_SUPPORTED_ARCH) - list_union(PROFILE_SUPPORTED_ARCH + list_intersect(PROFILE_SUPPORTED_ARCH ALL_PROFILE_SUPPORTED_ARCH SANITIZER_COMMON_SUPPORTED_ARCH) - list_union(TSAN_SUPPORTED_ARCH + list_intersect(TSAN_SUPPORTED_ARCH ALL_TSAN_SUPPORTED_ARCH SANITIZER_COMMON_SUPPORTED_ARCH) - list_union(UBSAN_SUPPORTED_ARCH + list_intersect(UBSAN_SUPPORTED_ARCH ALL_UBSAN_SUPPORTED_ARCH SANITIZER_COMMON_SUPPORTED_ARCH) - list_union(SAFESTACK_SUPPORTED_ARCH + list_intersect(SAFESTACK_SUPPORTED_ARCH ALL_SAFESTACK_SUPPORTED_ARCH SANITIZER_COMMON_SUPPORTED_ARCH) - list_union(CFI_SUPPORTED_ARCH + list_intersect(CFI_SUPPORTED_ARCH ALL_CFI_SUPPORTED_ARCH SANITIZER_COMMON_SUPPORTED_ARCH) else() From owner-svn-src-all@freebsd.org Wed Jan 27 21:10:41 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8A96A6FEF5; Wed, 27 Jan 2016 21:10:41 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 60CB41FE1; Wed, 27 Jan 2016 21:10:41 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLAePo095711; Wed, 27 Jan 2016 21:10:40 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLAetO095710; Wed, 27 Jan 2016 21:10:40 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272110.u0RLAetO095710@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:10:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294944 - vendor/compiler-rt/compiler-rt-release_38-r258968 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:10:41 -0000 Author: dim Date: Wed Jan 27 21:10:40 2016 New Revision: 294944 URL: https://svnweb.freebsd.org/changeset/base/294944 Log: Tag compiler-rt release_38 branch r258968. Added: vendor/compiler-rt/compiler-rt-release_38-r258968/ - copied from r294943, vendor/compiler-rt/dist/ From owner-svn-src-all@freebsd.org Wed Jan 27 21:10:59 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A9DACA6FF2C; Wed, 27 Jan 2016 21:10:59 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7112B114C; Wed, 27 Jan 2016 21:10:59 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLAwJV095790; Wed, 27 Jan 2016 21:10:58 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLAuUZ095763; Wed, 27 Jan 2016 21:10:56 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272110.u0RLAuUZ095763@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:10:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294945 - in vendor/libc++/dist/test/std: input.output/file.streams/fstreams/filebuf.virtuals input.output/iostream.format/ext.manip input.output/iostreams.base/ios.base/ios.base.callba... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:10:59 -0000 Author: dim Date: Wed Jan 27 21:10:55 2016 New Revision: 294945 URL: https://svnweb.freebsd.org/changeset/base/294945 Log: Vendor import of libc++ release_38 branch r258968: https://llvm.org/svn/llvm-project/libcxx/branches/release_38@258968 Modified: vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.virtuals/overflow.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.virtuals/underflow.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/get_time.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.callback/register_callback.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.locales/imbue.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/imbue.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.cons/copy.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.cons/default.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/assign.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/swap.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/hash.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/types.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt.byname/ctor_wchar_t.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/types.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/default.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.members/name.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.operators/eq.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.statics/global.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.locale/imbue.pass.cpp vendor/libc++/dist/test/std/re/re.traits/default.pass.cpp vendor/libc++/dist/test/std/re/re.traits/getloc.pass.cpp vendor/libc++/dist/test/std/re/re.traits/imbue.pass.cpp Modified: vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.virtuals/overflow.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.virtuals/overflow.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.virtuals/overflow.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // int_type overflow(int_type c = traits::eof()); Modified: vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.virtuals/underflow.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.virtuals/underflow.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.virtuals/underflow.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // int_type underflow(); Modified: vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/get_time.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/get_time.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/get_time.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template T9 get_time(struct tm* tmb, const charT* fmt); Modified: vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template T10 put_time(const struct tm* tmb, const charT* fmt); Modified: vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.callback/register_callback.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.callback/register_callback.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.callback/register_callback.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // class ios_base Modified: vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.locales/imbue.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.locales/imbue.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.locales/imbue.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // class ios_base Modified: vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/imbue.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/imbue.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/imbue.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template class basic_ios Modified: vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.cons/copy.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.cons/copy.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.cons/copy.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template > Modified: vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.cons/default.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.cons/default.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.cons/default.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template > Modified: vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/assign.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/assign.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/assign.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template > Modified: vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/swap.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/swap.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/swap.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template > Modified: vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/hash.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/hash.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/hash.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template class collate_byname Modified: vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/types.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/types.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/types.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template Modified: vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt.byname/ctor_wchar_t.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt.byname/ctor_wchar_t.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt.byname/ctor_wchar_t.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template <> class codecvt_byname Modified: vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/types.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/types.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/types.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template Modified: vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/default.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/default.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/default.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // locale() throw(); Modified: vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -6,7 +6,8 @@ // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// - + +// REQUIRES: locale.en_US.UTF-8 // REQUIRES: locale.ru_RU.UTF-8 // UNSUPPORTED: sanitizer-new-delete Modified: vendor/libc++/dist/test/std/localization/locales/locale/locale.members/name.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/localization/locales/locale/locale.members/name.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/localization/locales/locale/locale.members/name.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // basic_string name() const; Modified: vendor/libc++/dist/test/std/localization/locales/locale/locale.operators/eq.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/localization/locales/locale/locale.operators/eq.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/localization/locales/locale/locale.operators/eq.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // basic_string name() const; Modified: vendor/libc++/dist/test/std/localization/locales/locale/locale.statics/global.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/localization/locales/locale/locale.statics/global.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/localization/locales/locale/locale.statics/global.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // static const locale& classic(); Modified: vendor/libc++/dist/test/std/re/re.regex/re.regex.locale/imbue.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/re/re.regex/re.regex.locale/imbue.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/re/re.regex/re.regex.locale/imbue.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template > class basic_regex; Modified: vendor/libc++/dist/test/std/re/re.traits/default.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/re/re.traits/default.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/re/re.traits/default.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -8,6 +8,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template struct regex_traits; Modified: vendor/libc++/dist/test/std/re/re.traits/getloc.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/re/re.traits/getloc.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/re/re.traits/getloc.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template struct regex_traits; Modified: vendor/libc++/dist/test/std/re/re.traits/imbue.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/re/re.traits/imbue.pass.cpp Wed Jan 27 21:10:40 2016 (r294944) +++ vendor/libc++/dist/test/std/re/re.traits/imbue.pass.cpp Wed Jan 27 21:10:55 2016 (r294945) @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +// REQUIRES: locale.en_US.UTF-8 + // // template struct regex_traits; From owner-svn-src-all@freebsd.org Wed Jan 27 21:11:20 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 288CFA6FF85; Wed, 27 Jan 2016 21:11:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D40F912F0; Wed, 27 Jan 2016 21:11:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLBI0g095866; Wed, 27 Jan 2016 21:11:18 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLBINV095865; Wed, 27 Jan 2016 21:11:18 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272111.u0RLBINV095865@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:11:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294946 - vendor/libc++/libc++-release_38-r258968 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:11:20 -0000 Author: dim Date: Wed Jan 27 21:11:18 2016 New Revision: 294946 URL: https://svnweb.freebsd.org/changeset/base/294946 Log: Tag libc++ release_38 branch r258968. Added: vendor/libc++/libc++-release_38-r258968/ - copied from r294945, vendor/libc++/dist/ From owner-svn-src-all@freebsd.org Wed Jan 27 21:11:39 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB914A6FFC3; Wed, 27 Jan 2016 21:11:39 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9DB03159D; Wed, 27 Jan 2016 21:11:39 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLBcC8096534; Wed, 27 Jan 2016 21:11:38 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLBcie096533; Wed, 27 Jan 2016 21:11:38 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272111.u0RLBcie096533@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:11:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294947 - vendor/lld/dist/docs X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:11:39 -0000 Author: dim Date: Wed Jan 27 21:11:38 2016 New Revision: 294947 URL: https://svnweb.freebsd.org/changeset/base/294947 Log: Vendor import of lld release_38 branch r258968: https://llvm.org/svn/llvm-project/lld/branches/release_38@258968 Modified: vendor/lld/dist/docs/getting_started.rst Modified: vendor/lld/dist/docs/getting_started.rst ============================================================================== --- vendor/lld/dist/docs/getting_started.rst Wed Jan 27 21:11:18 2016 (r294946) +++ vendor/lld/dist/docs/getting_started.rst Wed Jan 27 21:11:38 2016 (r294947) @@ -68,7 +68,7 @@ Using Visual Studio * `Python 2.4`_\+ (not 3.x) for running tests. .. _CMake 2.8: http://www.cmake.org/cmake/resources/software.html -.. _Visual Studio 11 (2012) or later: http://www.microsoft.com/visualstudio/11/en-us +.. _Visual Studio 12 (2013) or later: http://www.microsoft.com/visualstudio/11/en-us .. _Python 2.4: http://python.org/download/ #. Check out LLVM:: From owner-svn-src-all@freebsd.org Wed Jan 27 21:12:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 139E2A700BE; Wed, 27 Jan 2016 21:12:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BE12017ED; Wed, 27 Jan 2016 21:12:03 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLC2TC098418; Wed, 27 Jan 2016 21:12:02 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLC2R1098417; Wed, 27 Jan 2016 21:12:02 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272112.u0RLC2R1098417@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:12:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294948 - vendor/lld/lld-release_38-r258968 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:12:04 -0000 Author: dim Date: Wed Jan 27 21:12:02 2016 New Revision: 294948 URL: https://svnweb.freebsd.org/changeset/base/294948 Log: Tag lld release_38 branch r258968. Added: vendor/lld/lld-release_38-r258968/ - copied from r294947, vendor/lld/dist/ From owner-svn-src-all@freebsd.org Wed Jan 27 21:12:19 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EBF2DA70114; Wed, 27 Jan 2016 21:12:19 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BDB7719A9; Wed, 27 Jan 2016 21:12:19 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLCIE7098471; Wed, 27 Jan 2016 21:12:18 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLCIDu098470; Wed, 27 Jan 2016 21:12:18 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601272112.u0RLCIDu098470@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 21:12:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294949 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:12:20 -0000 Author: bdrewery Date: Wed Jan 27 21:12:18 2016 New Revision: 294949 URL: https://svnweb.freebsd.org/changeset/base/294949 Log: filemon_ioctl: Handle error from devfs_get_cdevpriv(9). MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon.c Modified: head/sys/dev/filemon/filemon.c ============================================================================== --- head/sys/dev/filemon/filemon.c Wed Jan 27 21:12:02 2016 (r294948) +++ head/sys/dev/filemon/filemon.c Wed Jan 27 21:12:18 2016 (r294949) @@ -143,7 +143,8 @@ filemon_ioctl(struct cdev *dev, u_long c cap_rights_t rights; #endif - devfs_get_cdevpriv((void **) &filemon); + if ((error = devfs_get_cdevpriv((void **) &filemon)) != 0) + return (error); switch (cmd) { /* Set the output file descriptor. */ From owner-svn-src-all@freebsd.org Wed Jan 27 21:12:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D606A70136; Wed, 27 Jan 2016 21:12:25 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B8F1119FD; Wed, 27 Jan 2016 21:12:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLCNJX098522; Wed, 27 Jan 2016 21:12:23 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLCNR0098521; Wed, 27 Jan 2016 21:12:23 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272112.u0RLCNR0098521@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:12:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294950 - vendor/lldb/dist/cmake/modules X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:12:25 -0000 Author: dim Date: Wed Jan 27 21:12:23 2016 New Revision: 294950 URL: https://svnweb.freebsd.org/changeset/base/294950 Log: Vendor import of lldb release_38 branch r258968: https://llvm.org/svn/llvm-project/lldb/branches/release_38@258968 Modified: vendor/lldb/dist/cmake/modules/AddLLDB.cmake Modified: vendor/lldb/dist/cmake/modules/AddLLDB.cmake ============================================================================== --- vendor/lldb/dist/cmake/modules/AddLLDB.cmake Wed Jan 27 21:12:18 2016 (r294949) +++ vendor/lldb/dist/cmake/modules/AddLLDB.cmake Wed Jan 27 21:12:23 2016 (r294950) @@ -56,7 +56,7 @@ macro(add_lldb_library name) if (PARAM_OBJECT) add_library(${name} ${libkind} ${srcs}) else() - llvm_add_library(${name} ${libkind} ${srcs}) + llvm_add_library(${name} ${libkind} DISABLE_LLVM_LINK_LLVM_DYLIB ${srcs}) lldb_link_common_libs(${name} "${libkind}") @@ -93,7 +93,7 @@ macro(add_lldb_library name) endmacro(add_lldb_library) macro(add_lldb_executable name) - add_llvm_executable(${name} ${ARGN}) + add_llvm_executable(${name} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN}) set_target_properties(${name} PROPERTIES FOLDER "lldb executables") endmacro(add_lldb_executable) From owner-svn-src-all@freebsd.org Wed Jan 27 21:12:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EDD4EA70188; Wed, 27 Jan 2016 21:12:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A30FF1C78; Wed, 27 Jan 2016 21:12:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLClqu098578; Wed, 27 Jan 2016 21:12:47 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLClrS098577; Wed, 27 Jan 2016 21:12:47 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201601272112.u0RLClrS098577@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 27 Jan 2016 21:12:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294951 - vendor/lldb/lldb-release_38-r258968 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:12:49 -0000 Author: dim Date: Wed Jan 27 21:12:47 2016 New Revision: 294951 URL: https://svnweb.freebsd.org/changeset/base/294951 Log: Tag lldb release_38 branch r258968. Added: vendor/lldb/lldb-release_38-r258968/ - copied from r294950, vendor/lldb/dist/ From owner-svn-src-all@freebsd.org Wed Jan 27 21:14:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9422A701EA; Wed, 27 Jan 2016 21:14:10 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A0BF61E04; Wed, 27 Jan 2016 21:14:10 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLE9lp098690; Wed, 27 Jan 2016 21:14:09 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLE919098688; Wed, 27 Jan 2016 21:14:09 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601272114.u0RLE919098688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 21:14:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294952 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:14:11 -0000 Author: bdrewery Date: Wed Jan 27 21:14:09 2016 New Revision: 294952 URL: https://svnweb.freebsd.org/changeset/base/294952 Log: filemon_ioctl: Lock the associated filemon handle before writing to it. Reported by: mjg MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon.c head/sys/dev/filemon/filemon_wrapper.c Modified: head/sys/dev/filemon/filemon.c ============================================================================== --- head/sys/dev/filemon/filemon.c Wed Jan 27 21:12:47 2016 (r294951) +++ head/sys/dev/filemon/filemon.c Wed Jan 27 21:14:09 2016 (r294952) @@ -146,6 +146,8 @@ filemon_ioctl(struct cdev *dev, u_long c if ((error = devfs_get_cdevpriv((void **) &filemon)) != 0) return (error); + filemon_filemon_lock(filemon); + switch (cmd) { /* Set the output file descriptor. */ case FILEMON_SET_FD: @@ -177,6 +179,7 @@ filemon_ioctl(struct cdev *dev, u_long c break; } + filemon_filemon_unlock(filemon); return (error); } Modified: head/sys/dev/filemon/filemon_wrapper.c ============================================================================== --- head/sys/dev/filemon/filemon_wrapper.c Wed Jan 27 21:12:47 2016 (r294951) +++ head/sys/dev/filemon/filemon_wrapper.c Wed Jan 27 21:14:09 2016 (r294952) @@ -115,21 +115,14 @@ filemon_comment(struct filemon *filemon) int len; struct timeval now; - /* Load timestamp before locking. Less accurate but less contention. */ getmicrotime(&now); - /* Lock the found filemon structure. */ - filemon_filemon_lock(filemon); - len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "# filemon version %d\n# Target pid %d\n# Start %ju.%06ju\nV %d\n", FILEMON_VERSION, curproc->p_pid, (uintmax_t)now.tv_sec, (uintmax_t)now.tv_usec, FILEMON_VERSION); filemon_output(filemon, filemon->msgbufr, len); - - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); } static int From owner-svn-src-all@freebsd.org Wed Jan 27 21:17:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 76A7BA70306; Wed, 27 Jan 2016 21:17:45 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2DD631FDA; Wed, 27 Jan 2016 21:17:45 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLHiYF098848; Wed, 27 Jan 2016 21:17:44 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLHiE6098846; Wed, 27 Jan 2016 21:17:44 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601272117.u0RLHiE6098846@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 21:17:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294953 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:17:45 -0000 Author: bdrewery Date: Wed Jan 27 21:17:43 2016 New Revision: 294953 URL: https://svnweb.freebsd.org/changeset/base/294953 Log: filemon_comment has nothing to do with wrappers so move it out of filemon_wrapper.c. It only prints the header from filemon_ioctl. Keep the name though to stay closer to other implementations. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon.c head/sys/dev/filemon/filemon_wrapper.c Modified: head/sys/dev/filemon/filemon.c ============================================================================== --- head/sys/dev/filemon/filemon.c Wed Jan 27 21:14:09 2016 (r294952) +++ head/sys/dev/filemon/filemon.c Wed Jan 27 21:17:43 2016 (r294953) @@ -105,6 +105,22 @@ static struct cdev *filemon_dev; #include "filemon_wrapper.c" static void +filemon_comment(struct filemon *filemon) +{ + int len; + struct timeval now; + + getmicrotime(&now); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), + "# filemon version %d\n# Target pid %d\n# Start %ju.%06ju\nV %d\n", + FILEMON_VERSION, curproc->p_pid, (uintmax_t)now.tv_sec, + (uintmax_t)now.tv_usec, FILEMON_VERSION); + + filemon_output(filemon, filemon->msgbufr, len); +} + +static void filemon_dtr(void *data) { struct filemon *filemon = data; Modified: head/sys/dev/filemon/filemon_wrapper.c ============================================================================== --- head/sys/dev/filemon/filemon_wrapper.c Wed Jan 27 21:14:09 2016 (r294952) +++ head/sys/dev/filemon/filemon_wrapper.c Wed Jan 27 21:17:43 2016 (r294953) @@ -109,22 +109,6 @@ filemon_pid_check(struct proc *p) return (NULL); } -static void -filemon_comment(struct filemon *filemon) -{ - int len; - struct timeval now; - - getmicrotime(&now); - - len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), - "# filemon version %d\n# Target pid %d\n# Start %ju.%06ju\nV %d\n", - FILEMON_VERSION, curproc->p_pid, (uintmax_t)now.tv_sec, - (uintmax_t)now.tv_usec, FILEMON_VERSION); - - filemon_output(filemon, filemon->msgbufr, len); -} - static int filemon_wrapper_chdir(struct thread *td, struct chdir_args *uap) { From owner-svn-src-all@freebsd.org Wed Jan 27 21:23:03 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 61BABA704E5; Wed, 27 Jan 2016 21:23:03 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3929213DC; Wed, 27 Jan 2016 21:23:03 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLN2LB001779; Wed, 27 Jan 2016 21:23:02 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLN2Dc001776; Wed, 27 Jan 2016 21:23:02 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201601272123.u0RLN2Dc001776@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Wed, 27 Jan 2016 21:23:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294954 - in head/sys: kern ufs/ffs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:23:03 -0000 Author: mckusick Date: Wed Jan 27 21:23:01 2016 New Revision: 294954 URL: https://svnweb.freebsd.org/changeset/base/294954 Log: The bread() function was inconsistent about whether it would return a buffer pointer in the event of an error (for some errors it would return a buffer pointer and for other errors it would not return a buffer pointer). The cluster_read() function was similarly inconsistent. Clients of these functions were inconsistent in handling errors. Some would assume that no buffer was returned after an error and would thus lose buffers under certain error conditions. Others would assume that brelse() should always be called after an error and would thus panic the system under certain error conditions. To correct both of these problems with minimal code churn, bread() and cluster_write() now always free the buffer when returning an error thus ensuring that buffers will never be lost. The brelse() routine checks for being passed a NULL buffer pointer and silently returns to avoid panics. Thus both approaches to handling error returns from bread() and cluster_read() will work correctly. Future code should be written assuming that bread() and cluster_read() will never return a buffer with an error, so should not attempt to brelse() the buffer when an error is returned. Reviewed by: kib Modified: head/sys/kern/vfs_bio.c head/sys/kern/vfs_cluster.c head/sys/ufs/ffs/ffs_inode.c Modified: head/sys/kern/vfs_bio.c ============================================================================== --- head/sys/kern/vfs_bio.c Wed Jan 27 21:17:43 2016 (r294953) +++ head/sys/kern/vfs_bio.c Wed Jan 27 21:23:01 2016 (r294954) @@ -1809,6 +1809,8 @@ breada(struct vnode * vp, daddr_t * rabl * must clear BIO_ERROR and B_INVAL prior to initiating I/O. If B_CACHE * is set, the buffer is valid and we do not have to do anything, see * getblk(). Also starts asynchronous I/O on read-ahead blocks. + * + * Always return a NULL buffer pointer (in bpp) when returning an error. */ int breadn_flags(struct vnode *vp, daddr_t blkno, int size, daddr_t *rablkno, @@ -1844,6 +1846,10 @@ breadn_flags(struct vnode *vp, daddr_t b if (readwait) { rv = bufwait(bp); + if (rv != 0) { + brelse(bp); + *bpp = NULL; + } } return (rv); } @@ -2238,6 +2244,12 @@ brelse(struct buf *bp) { int qindex; + /* + * Many function erroneously call brelse with a NULL bp under rare + * error conditions. Simply return when called with a NULL bp. + */ + if (bp == NULL) + return; CTR3(KTR_BUF, "brelse(%p) vp %p flags %X", bp, bp->b_vp, bp->b_flags); KASSERT(!(bp->b_flags & (B_CLUSTER|B_PAGING)), Modified: head/sys/kern/vfs_cluster.c ============================================================================== --- head/sys/kern/vfs_cluster.c Wed Jan 27 21:17:43 2016 (r294953) +++ head/sys/kern/vfs_cluster.c Wed Jan 27 21:23:01 2016 (r294954) @@ -119,6 +119,8 @@ cluster_read(struct vnode *vp, u_quad_t * get the requested block */ *bpp = reqbp = bp = getblk(vp, lblkno, size, 0, 0, gbflags); + if (bp == NULL) + return (EBUSY); origblkno = lblkno; /* @@ -295,10 +297,18 @@ cluster_read(struct vnode *vp, u_quad_t curthread->td_ru.ru_inblock++; } - if (reqbp) - return (bufwait(reqbp)); - else - return (error); + if (reqbp) { + /* + * Like bread, always brelse() the buffer when + * returning an error. + */ + error = bufwait(reqbp); + if (error != 0) { + brelse(reqbp); + *bpp = NULL; + } + } + return (error); } /* Modified: head/sys/ufs/ffs/ffs_inode.c ============================================================================== --- head/sys/ufs/ffs/ffs_inode.c Wed Jan 27 21:17:43 2016 (r294953) +++ head/sys/ufs/ffs/ffs_inode.c Wed Jan 27 21:23:01 2016 (r294954) @@ -113,10 +113,8 @@ loop: fsbtodb(fs, ino_to_fsba(fs, ip->i_number)), (int) fs->fs_bsize, 0, 0, 0, NOCRED, flags, &bp); if (error != 0) { - if (error != EBUSY) { - brelse(bp); + if (error != EBUSY) return (error); - } KASSERT((IS_SNAPSHOT(ip)), ("EBUSY from non-snapshot")); /* * Wait for our inode block to become available. From owner-svn-src-all@freebsd.org Wed Jan 27 21:27:07 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B1B0A705B1; Wed, 27 Jan 2016 21:27:07 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D3ED117E8; Wed, 27 Jan 2016 21:27:06 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLR5AA002053; Wed, 27 Jan 2016 21:27:05 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLR5Ef002052; Wed, 27 Jan 2016 21:27:05 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201601272127.u0RLR5Ef002052@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Wed, 27 Jan 2016 21:27:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294956 - head/sys/ufs/ffs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:27:07 -0000 Author: mckusick Date: Wed Jan 27 21:27:05 2016 New Revision: 294956 URL: https://svnweb.freebsd.org/changeset/base/294956 Log: This fixes a bug in UFS2 exported NFS volumes. An NFS client can crash a server that has exported UFS2 by presenting a filehandle with an inode number that references an uninitialized inode in a cylinder group. The problem is that UFS2 only initializes blocks of inodes as they are first allocated and ffs_fhtovp() does not validate that the inode is in a range of inodes that have been initialized. Attempting to read an uninitialized inode gets random data from the disk. When the kernel tries to interpret it as an inode, panics often arise. Reported by: Christos Zoulas (from NetBSD) Reviewed by: kib Modified: head/sys/ufs/ffs/ffs_vfsops.c Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Wed Jan 27 21:24:45 2016 (r294955) +++ head/sys/ufs/ffs/ffs_vfsops.c Wed Jan 27 21:27:05 2016 (r294956) @@ -1797,6 +1797,7 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags * * Have to be really careful about stale file handles: * - check that the inode number is valid + * - for UFS2 check that the inode number is initialized * - call ffs_vget() to get the locked inode * - check for an unallocated inode (i_mode == 0) * - check that the given client host has export rights and return @@ -1810,13 +1811,37 @@ ffs_fhtovp(mp, fhp, flags, vpp) struct vnode **vpp; { struct ufid *ufhp; + struct ufsmount *ump; struct fs *fs; + struct cg *cgp; + struct buf *bp; + ino_t ino; + u_int cg; + int error; ufhp = (struct ufid *)fhp; - fs = VFSTOUFS(mp)->um_fs; - if (ufhp->ufid_ino < ROOTINO || - ufhp->ufid_ino >= fs->fs_ncg * fs->fs_ipg) + ino = ufhp->ufid_ino; + ump = VFSTOUFS(mp); + fs = ump->um_fs; + if (ino < ROOTINO || ino >= fs->fs_ncg * fs->fs_ipg) + return (ESTALE); + /* + * Need to check if inode is initialized because UFS2 does lazy + * initialization and nfs_fhtovp can offer arbitrary inode numbers. + */ + if (fs->fs_magic != FS_UFS2_MAGIC) + return (ufs_fhtovp(mp, ufhp, flags, vpp)); + cg = ino_to_cg(fs, ino); + error = bread(ump->um_devvp, fsbtodb(fs, cgtod(fs, cg)), + (int)fs->fs_cgsize, NOCRED, &bp); + if (error) + return (error); + cgp = (struct cg *)bp->b_data; + if (!cg_chkmagic(cgp) || ino >= cg * fs->fs_ipg + cgp->cg_initediblk) { + brelse(bp); return (ESTALE); + } + brelse(bp); return (ufs_fhtovp(mp, ufhp, flags, vpp)); } From owner-svn-src-all@freebsd.org Wed Jan 27 21:37:45 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20279A7089A; Wed, 27 Jan 2016 21:37:45 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E1C591CEC; Wed, 27 Jan 2016 21:37:44 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RLbhLF005005; Wed, 27 Jan 2016 21:37:43 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RLbhRW005004; Wed, 27 Jan 2016 21:37:43 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601272137.u0RLbhRW005004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 27 Jan 2016 21:37:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294957 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 21:37:45 -0000 Author: bdrewery Date: Wed Jan 27 21:37:43 2016 New Revision: 294957 URL: https://svnweb.freebsd.org/changeset/base/294957 Log: filemon_dtr: Lock the associated filemon handle before writing to it. Reported by: mjg MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon.c Modified: head/sys/dev/filemon/filemon.c ============================================================================== --- head/sys/dev/filemon/filemon.c Wed Jan 27 21:27:05 2016 (r294956) +++ head/sys/dev/filemon/filemon.c Wed Jan 27 21:37:43 2016 (r294957) @@ -126,14 +126,16 @@ filemon_dtr(void *data) struct filemon *filemon = data; if (filemon != NULL) { - struct file *fp = filemon->fp; + struct file *fp; - /* Get exclusive write access. */ + /* Follow same locking order as filemon_pid_check. */ filemon_lock_write(); + filemon_filemon_lock(filemon); /* Remove from the in-use list. */ TAILQ_REMOVE(&filemons_inuse, filemon, link); + fp = filemon->fp; filemon->fp = NULL; filemon->pid = -1; @@ -141,6 +143,7 @@ filemon_dtr(void *data) TAILQ_INSERT_TAIL(&filemons_free, filemon, link); /* Give up write access. */ + filemon_filemon_unlock(filemon); filemon_unlock_write(); if (fp != NULL) From owner-svn-src-all@freebsd.org Wed Jan 27 22:31:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C3010A6F880; Wed, 27 Jan 2016 22:31:10 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7CEFA1372; Wed, 27 Jan 2016 22:31:10 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RMV9Pd019404; Wed, 27 Jan 2016 22:31:09 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RMV8LW019394; Wed, 27 Jan 2016 22:31:08 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201601272231.u0RMV8LW019394@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Wed, 27 Jan 2016 22:31:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294958 - in stable/10: share/man/man4 sys/dev/e1000 sys/dev/ixgb sys/dev/netmap X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 22:31:11 -0000 Author: marius Date: Wed Jan 27 22:31:08 2016 New Revision: 294958 URL: https://svnweb.freebsd.org/changeset/base/294958 Log: Sync the e1000 drivers with what's in head as of r294327, modulo parts that don't apply to stable/10 (driver API, if_inc_counter(), RSS changes etc.) and modulo r287465 (which reportedly breaks igb(4)), i. e. assorted fixes and improvements only: o MFC r267385 (partial): - Don't compare bus_dma map pointers for static DMA allocations against NULL to determine if bus_dmamap_unload() or bus_dmamem_free() should be called. Instead, check the associated bus and virtual addresses. - Don't clear static DMA maps to NULL. o MFC r284933: Delete the refernce to VLAN handling being disabled by default. This is no longer the case. [1] o MFC r285639: Add an adapter CORE lock in the DDB hook em_dump_queue to avoid WITNESS panic in em_init_locked() while debugging. o MFC r285879: - Remove unused txd_saved. - Intialize txd_upper, txd_lower and txd_used at declaration. o MFC r286162: Free mbufs when busdma loading fails. o MFC r286829: Add capability to disable CRC stripping as it breaks IPMI/BMC capabilities on certain adatpers. [2] o MFC r286831: [3] - Increase EM_MAX_SCATTER to 64 such that the size of em_xmit():: segs[EM_MAX_SCATTER] doesn't get overrun by things like NFS that can and do shove more than 32 segs when being used with em(4) and TSO4. - Update tso handling code in em_xmit() with update from jhb@ - Set if_hw_tsomax, if_hw_tsomaxsegcount and if_hw_tsomaxsegsize to appropriate values. - Define a TSO workaround "magic" number of 4 that is used to avoid an alignment issue in hardware. - Change a couple of integer values that were used as booleans to actual bool types. - Ensure that em_enable_intr() enables the appropriate mask of interrupts and not just a hardcoded define of values. o MFC r286832: e1000/if_lem.c bump to 1.1.0 o MFC r286833: Bump all copywrite dates to 2015. o MFC r287112: Style/whitespace cleanup in shared/common code. o MFC r293331: - Switch em(4) to the extended RX descriptor format. - Split rxbuffer and txbuffer apart to support the new RX descriptor format structures. Move rxbuffer manipulation to em_setup_rxdesc() to unify the new behavior changes. - Add a RSSKEYLEN macro for help in generating the RSSKEY data structures in the card. - Change em_receive_checksum() to process the new rxdescriptor format status bit. o MFC r293332: Disable the reuse of checksum offload context descriptors in the case of multiple queues in em(4). Document errata in the code. o MFC r293854: Given that em(4), lem(4) and igb(4) hardware doesn't require the alignment guarantees provided by m_defrag(9), use m_collapse(9) instead for performance reasons. While at it, sanitize the statistics softc members, i. e. retire unused ones and add SYSCTL nodes missing for actually used ones. PR: 118693 [1], 161277 [2], 195078 [3], 199174 [3], 200221 [3] Modified: stable/10/share/man/man4/em.4 stable/10/sys/dev/e1000/e1000_80003es2lan.c stable/10/sys/dev/e1000/e1000_80003es2lan.h stable/10/sys/dev/e1000/e1000_82540.c stable/10/sys/dev/e1000/e1000_82541.c stable/10/sys/dev/e1000/e1000_82541.h stable/10/sys/dev/e1000/e1000_82542.c stable/10/sys/dev/e1000/e1000_82543.c stable/10/sys/dev/e1000/e1000_82543.h stable/10/sys/dev/e1000/e1000_82571.c stable/10/sys/dev/e1000/e1000_82571.h stable/10/sys/dev/e1000/e1000_82575.c stable/10/sys/dev/e1000/e1000_82575.h stable/10/sys/dev/e1000/e1000_api.c stable/10/sys/dev/e1000/e1000_api.h stable/10/sys/dev/e1000/e1000_defines.h stable/10/sys/dev/e1000/e1000_hw.h stable/10/sys/dev/e1000/e1000_i210.c stable/10/sys/dev/e1000/e1000_i210.h stable/10/sys/dev/e1000/e1000_ich8lan.c stable/10/sys/dev/e1000/e1000_ich8lan.h stable/10/sys/dev/e1000/e1000_mac.c stable/10/sys/dev/e1000/e1000_mac.h stable/10/sys/dev/e1000/e1000_manage.c stable/10/sys/dev/e1000/e1000_manage.h stable/10/sys/dev/e1000/e1000_mbx.c stable/10/sys/dev/e1000/e1000_mbx.h stable/10/sys/dev/e1000/e1000_nvm.c stable/10/sys/dev/e1000/e1000_nvm.h stable/10/sys/dev/e1000/e1000_osdep.c stable/10/sys/dev/e1000/e1000_osdep.h stable/10/sys/dev/e1000/e1000_phy.c stable/10/sys/dev/e1000/e1000_phy.h stable/10/sys/dev/e1000/e1000_regs.h stable/10/sys/dev/e1000/e1000_vf.c stable/10/sys/dev/e1000/e1000_vf.h stable/10/sys/dev/e1000/if_em.c stable/10/sys/dev/e1000/if_em.h stable/10/sys/dev/e1000/if_igb.c stable/10/sys/dev/e1000/if_igb.h stable/10/sys/dev/e1000/if_lem.c stable/10/sys/dev/e1000/if_lem.h stable/10/sys/dev/ixgb/if_ixgb.c stable/10/sys/dev/netmap/if_em_netmap.h Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man4/em.4 ============================================================================== --- stable/10/share/man/man4/em.4 Wed Jan 27 21:37:43 2016 (r294957) +++ stable/10/share/man/man4/em.4 Wed Jan 27 22:31:08 2016 (r294958) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 11, 2011 +.Dd August 16, 2015 .Dt EM 4 .Os .Sh NAME @@ -205,6 +205,11 @@ Tunables can be set at the prompt before booting the kernel or stored in .Xr loader.conf 5 . .Bl -tag -width indent +.It Va hw.em.disable_crc_stripping +Disable or enable hardware stripping of CRC field. +This is mostly useful on BMC/IPMI shared interfaces where stripping the CRC +causes remote access over IPMI to fail. +Default 0 (enabled). .It Va hw.em.eee_setting Disable or enable Energy Efficient Ethernet. Default 1 (disabled). @@ -307,10 +312,5 @@ The driver was written by .An Intel Corporation Aq freebsd@intel.com . .Sh BUGS -Hardware-assisted VLAN processing is disabled by default. -You can enable it on an -.Nm -interface using -.Xr ifconfig 8 . .Pp Activating EM_MULTIQUEUE support requires MSI-X features. Modified: stable/10/sys/dev/e1000/e1000_80003es2lan.c ============================================================================== --- stable/10/sys/dev/e1000/e1000_80003es2lan.c Wed Jan 27 21:37:43 2016 (r294957) +++ stable/10/sys/dev/e1000/e1000_80003es2lan.c Wed Jan 27 22:31:08 2016 (r294958) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2001-2013, Intel Corporation + Copyright (c) 2001-2015, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without Modified: stable/10/sys/dev/e1000/e1000_80003es2lan.h ============================================================================== --- stable/10/sys/dev/e1000/e1000_80003es2lan.h Wed Jan 27 21:37:43 2016 (r294957) +++ stable/10/sys/dev/e1000/e1000_80003es2lan.h Wed Jan 27 22:31:08 2016 (r294958) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2001-2013, Intel Corporation + Copyright (c) 2001-2015, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without Modified: stable/10/sys/dev/e1000/e1000_82540.c ============================================================================== --- stable/10/sys/dev/e1000/e1000_82540.c Wed Jan 27 21:37:43 2016 (r294957) +++ stable/10/sys/dev/e1000/e1000_82540.c Wed Jan 27 22:31:08 2016 (r294958) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2001-2011, Intel Corporation + Copyright (c) 2001-2015, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without Modified: stable/10/sys/dev/e1000/e1000_82541.c ============================================================================== --- stable/10/sys/dev/e1000/e1000_82541.c Wed Jan 27 21:37:43 2016 (r294957) +++ stable/10/sys/dev/e1000/e1000_82541.c Wed Jan 27 22:31:08 2016 (r294958) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2001-2011, Intel Corporation + Copyright (c) 2001-2015, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -49,34 +49,34 @@ static s32 e1000_init_mac_params_82541( static s32 e1000_reset_hw_82541(struct e1000_hw *hw); static s32 e1000_init_hw_82541(struct e1000_hw *hw); static s32 e1000_get_link_up_info_82541(struct e1000_hw *hw, u16 *speed, - u16 *duplex); + u16 *duplex); static s32 e1000_phy_hw_reset_82541(struct e1000_hw *hw); static s32 e1000_setup_copper_link_82541(struct e1000_hw *hw); static s32 e1000_check_for_link_82541(struct e1000_hw *hw); static s32 e1000_get_cable_length_igp_82541(struct e1000_hw *hw); static s32 e1000_set_d3_lplu_state_82541(struct e1000_hw *hw, - bool active); + bool active); static s32 e1000_setup_led_82541(struct e1000_hw *hw); static s32 e1000_cleanup_led_82541(struct e1000_hw *hw); static void e1000_clear_hw_cntrs_82541(struct e1000_hw *hw); static s32 e1000_read_mac_addr_82541(struct e1000_hw *hw); static s32 e1000_config_dsp_after_link_change_82541(struct e1000_hw *hw, - bool link_up); + bool link_up); static s32 e1000_phy_init_script_82541(struct e1000_hw *hw); static void e1000_power_down_phy_copper_82541(struct e1000_hw *hw); -static const u16 e1000_igp_cable_length_table[] = - { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 25, 25, 25, - 25, 25, 25, 25, 30, 30, 30, 30, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 50, 50, 50, 50, 50, 50, 50, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 70, 70, 70, 70, 70, 70, 80, 80, 80, 80, 80, 80, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120}; +static const u16 e1000_igp_cable_length_table[] = { + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, + 10, 10, 20, 20, 20, 20, 20, 25, 25, 25, 25, 25, 25, 25, 30, 30, 30, 30, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 50, 50, 50, 50, 50, 50, 50, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 70, 70, 70, 70, 70, 70, 80, 80, 80, 80, 80, + 80, 90, 90, 90, 90, 90, 90, 90, 90, 90, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120}; #define IGP01E1000_AGC_LENGTH_TABLE_SIZE \ - (sizeof(e1000_igp_cable_length_table) / \ - sizeof(e1000_igp_cable_length_table[0])) + (sizeof(e1000_igp_cable_length_table) / \ + sizeof(e1000_igp_cable_length_table[0])) /** * e1000_init_phy_params_82541 - Init PHY func ptrs. @@ -89,23 +89,23 @@ static s32 e1000_init_phy_params_82541(s DEBUGFUNC("e1000_init_phy_params_82541"); - phy->addr = 1; - phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; - phy->reset_delay_us = 10000; - phy->type = e1000_phy_igp; + phy->addr = 1; + phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; + phy->reset_delay_us = 10000; + phy->type = e1000_phy_igp; /* Function Pointers */ - phy->ops.check_polarity = e1000_check_polarity_igp; - phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_igp; - phy->ops.get_cable_length = e1000_get_cable_length_igp_82541; - phy->ops.get_cfg_done = e1000_get_cfg_done_generic; - phy->ops.get_info = e1000_get_phy_info_igp; - phy->ops.read_reg = e1000_read_phy_reg_igp; - phy->ops.reset = e1000_phy_hw_reset_82541; - phy->ops.set_d3_lplu_state = e1000_set_d3_lplu_state_82541; - phy->ops.write_reg = e1000_write_phy_reg_igp; - phy->ops.power_up = e1000_power_up_phy_copper; - phy->ops.power_down = e1000_power_down_phy_copper_82541; + phy->ops.check_polarity = e1000_check_polarity_igp; + phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_igp; + phy->ops.get_cable_length = e1000_get_cable_length_igp_82541; + phy->ops.get_cfg_done = e1000_get_cfg_done_generic; + phy->ops.get_info = e1000_get_phy_info_igp; + phy->ops.read_reg = e1000_read_phy_reg_igp; + phy->ops.reset = e1000_phy_hw_reset_82541; + phy->ops.set_d3_lplu_state = e1000_set_d3_lplu_state_82541; + phy->ops.write_reg = e1000_write_phy_reg_igp; + phy->ops.power_up = e1000_power_up_phy_copper; + phy->ops.power_down = e1000_power_down_phy_copper_82541; ret_val = e1000_get_phy_id(hw); if (ret_val) @@ -127,8 +127,8 @@ out: **/ static s32 e1000_init_nvm_params_82541(struct e1000_hw *hw) { - struct e1000_nvm_info *nvm = &hw->nvm; - s32 ret_val = E1000_SUCCESS; + struct e1000_nvm_info *nvm = &hw->nvm; + s32 ret_val = E1000_SUCCESS; u32 eecd = E1000_READ_REG(hw, E1000_EECD); u16 size; @@ -152,28 +152,25 @@ static s32 e1000_init_nvm_params_82541(s eecd &= ~E1000_EECD_SIZE; break; default: - nvm->type = eecd & E1000_EECD_TYPE - ? e1000_nvm_eeprom_spi - : e1000_nvm_eeprom_microwire; + nvm->type = eecd & E1000_EECD_TYPE ? e1000_nvm_eeprom_spi + : e1000_nvm_eeprom_microwire; break; } if (nvm->type == e1000_nvm_eeprom_spi) { - nvm->address_bits = (eecd & E1000_EECD_ADDR_BITS) - ? 16 : 8; - nvm->delay_usec = 1; - nvm->opcode_bits = 8; - nvm->page_size = (eecd & E1000_EECD_ADDR_BITS) - ? 32 : 8; + nvm->address_bits = (eecd & E1000_EECD_ADDR_BITS) ? 16 : 8; + nvm->delay_usec = 1; + nvm->opcode_bits = 8; + nvm->page_size = (eecd & E1000_EECD_ADDR_BITS) ? 32 : 8; /* Function Pointers */ - nvm->ops.acquire = e1000_acquire_nvm_generic; - nvm->ops.read = e1000_read_nvm_spi; - nvm->ops.release = e1000_release_nvm_generic; - nvm->ops.update = e1000_update_nvm_checksum_generic; + nvm->ops.acquire = e1000_acquire_nvm_generic; + nvm->ops.read = e1000_read_nvm_spi; + nvm->ops.release = e1000_release_nvm_generic; + nvm->ops.update = e1000_update_nvm_checksum_generic; nvm->ops.valid_led_default = e1000_valid_led_default_generic; - nvm->ops.validate = e1000_validate_nvm_checksum_generic; - nvm->ops.write = e1000_write_nvm_spi; + nvm->ops.validate = e1000_validate_nvm_checksum_generic; + nvm->ops.write = e1000_write_nvm_spi; /* * nvm->word_size must be discovered after the pointers @@ -196,21 +193,19 @@ static s32 e1000_init_nvm_params_82541(s nvm->word_size = 1 << size; } } else { - nvm->address_bits = (eecd & E1000_EECD_ADDR_BITS) - ? 8 : 6; - nvm->delay_usec = 50; - nvm->opcode_bits = 3; - nvm->word_size = (eecd & E1000_EECD_ADDR_BITS) - ? 256 : 64; + nvm->address_bits = (eecd & E1000_EECD_ADDR_BITS) ? 8 : 6; + nvm->delay_usec = 50; + nvm->opcode_bits = 3; + nvm->word_size = (eecd & E1000_EECD_ADDR_BITS) ? 256 : 64; /* Function Pointers */ - nvm->ops.acquire = e1000_acquire_nvm_generic; - nvm->ops.read = e1000_read_nvm_microwire; - nvm->ops.release = e1000_release_nvm_generic; - nvm->ops.update = e1000_update_nvm_checksum_generic; + nvm->ops.acquire = e1000_acquire_nvm_generic; + nvm->ops.read = e1000_read_nvm_microwire; + nvm->ops.release = e1000_release_nvm_generic; + nvm->ops.update = e1000_update_nvm_checksum_generic; nvm->ops.valid_led_default = e1000_valid_led_default_generic; - nvm->ops.validate = e1000_validate_nvm_checksum_generic; - nvm->ops.write = e1000_write_nvm_microwire; + nvm->ops.validate = e1000_validate_nvm_checksum_generic; + nvm->ops.write = e1000_write_nvm_microwire; } out: @@ -390,11 +385,10 @@ static s32 e1000_init_hw_82541(struct e1 DEBUGOUT("Error initializing identification LED\n"); /* This is not fatal and we should not stop init due to this */ } - + /* Storing the Speed Power Down value for later use */ - ret_val = hw->phy.ops.read_reg(hw, - IGP01E1000_GMII_FIFO, - &dev_spec->spd_default); + ret_val = hw->phy.ops.read_reg(hw, IGP01E1000_GMII_FIFO, + &dev_spec->spd_default); if (ret_val) goto out; @@ -423,7 +417,7 @@ static s32 e1000_init_hw_82541(struct e1 txdctl = E1000_READ_REG(hw, E1000_TXDCTL(0)); txdctl = (txdctl & ~E1000_TXDCTL_WTHRESH) | - E1000_TXDCTL_FULL_TX_DESC_WB; + E1000_TXDCTL_FULL_TX_DESC_WB; E1000_WRITE_REG(hw, E1000_TXDCTL(0), txdctl); /* @@ -447,7 +441,7 @@ out: * Retrieve the current speed and duplex configuration. **/ static s32 e1000_get_link_up_info_82541(struct e1000_hw *hw, u16 *speed, - u16 *duplex) + u16 *duplex) { struct e1000_phy_info *phy = &hw->phy; s32 ret_val; @@ -549,6 +543,7 @@ static s32 e1000_setup_copper_link_82541 ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); E1000_WRITE_REG(hw, E1000_CTRL, ctrl); + /* Earlier revs of the IGP phy require us to force MDI. */ if (hw->mac.type == e1000_82541 || hw->mac.type == e1000_82547) { dev_spec->dsp_config = e1000_dsp_config_disabled; @@ -651,9 +646,8 @@ static s32 e1000_check_for_link_82541(st * different link partner. */ ret_val = e1000_config_fc_after_link_up_generic(hw); - if (ret_val) { + if (ret_val) DEBUGOUT("Error configuring flow control\n"); - } out: return ret_val; @@ -671,7 +665,7 @@ out: * gigabit link is achieved to improve link quality. **/ static s32 e1000_config_dsp_after_link_change_82541(struct e1000_hw *hw, - bool link_up) + bool link_up) { struct e1000_phy_info *phy = &hw->phy; struct e1000_dev_spec_82541 *dev_spec = &hw->dev_spec._82541; @@ -679,11 +673,11 @@ static s32 e1000_config_dsp_after_link_c u32 idle_errs = 0; u16 phy_data, phy_saved_data, speed, duplex, i; u16 ffe_idle_err_timeout = FFE_IDLE_ERR_COUNT_TIMEOUT_20; - u16 dsp_reg_array[IGP01E1000_PHY_CHANNEL_NUM] = - {IGP01E1000_PHY_AGC_PARAM_A, - IGP01E1000_PHY_AGC_PARAM_B, - IGP01E1000_PHY_AGC_PARAM_C, - IGP01E1000_PHY_AGC_PARAM_D}; + u16 dsp_reg_array[IGP01E1000_PHY_CHANNEL_NUM] = { + IGP01E1000_PHY_AGC_PARAM_A, + IGP01E1000_PHY_AGC_PARAM_B, + IGP01E1000_PHY_AGC_PARAM_C, + IGP01E1000_PHY_AGC_PARAM_D}; DEBUGFUNC("e1000_config_dsp_after_link_change_82541"); @@ -708,16 +702,16 @@ static s32 e1000_config_dsp_after_link_c for (i = 0; i < IGP01E1000_PHY_CHANNEL_NUM; i++) { ret_val = phy->ops.read_reg(hw, - dsp_reg_array[i], - &phy_data); + dsp_reg_array[i], + &phy_data); if (ret_val) goto out; phy_data &= ~IGP01E1000_PHY_EDAC_MU_INDEX; ret_val = phy->ops.write_reg(hw, - dsp_reg_array[i], - phy_data); + dsp_reg_array[i], + phy_data); if (ret_val) goto out; } @@ -737,9 +731,8 @@ static s32 e1000_config_dsp_after_link_c for (i = 0; i < ffe_idle_err_timeout; i++) { usec_delay(1000); - ret_val = phy->ops.read_reg(hw, - PHY_1000T_STATUS, - &phy_data); + ret_val = phy->ops.read_reg(hw, PHY_1000T_STATUS, + &phy_data); if (ret_val) goto out; @@ -748,8 +741,8 @@ static s32 e1000_config_dsp_after_link_c dev_spec->ffe_config = e1000_ffe_config_active; ret_val = phy->ops.write_reg(hw, - IGP01E1000_PHY_DSP_FFE, - IGP01E1000_PHY_DSP_FFE_CM_CP); + IGP01E1000_PHY_DSP_FFE, + IGP01E1000_PHY_DSP_FFE_CM_CP); if (ret_val) goto out; break; @@ -757,7 +750,7 @@ static s32 e1000_config_dsp_after_link_c if (idle_errs) ffe_idle_err_timeout = - FFE_IDLE_ERR_COUNT_TIMEOUT_100; + FFE_IDLE_ERR_COUNT_TIMEOUT_100; } } else { if (dev_spec->dsp_config == e1000_dsp_config_activated) { @@ -765,9 +758,8 @@ static s32 e1000_config_dsp_after_link_c * Save off the current value of register 0x2F5B * to be restored at the end of the routines. */ - ret_val = phy->ops.read_reg(hw, - 0x2F5B, - &phy_saved_data); + ret_val = phy->ops.read_reg(hw, 0x2F5B, + &phy_saved_data); if (ret_val) goto out; @@ -778,15 +770,14 @@ static s32 e1000_config_dsp_after_link_c msec_delay_irq(20); - ret_val = phy->ops.write_reg(hw, - 0x0000, - IGP01E1000_IEEE_FORCE_GIG); + ret_val = phy->ops.write_reg(hw, 0x0000, + IGP01E1000_IEEE_FORCE_GIG); if (ret_val) goto out; for (i = 0; i < IGP01E1000_PHY_CHANNEL_NUM; i++) { ret_val = phy->ops.read_reg(hw, - dsp_reg_array[i], - &phy_data); + dsp_reg_array[i], + &phy_data); if (ret_val) goto out; @@ -794,24 +785,22 @@ static s32 e1000_config_dsp_after_link_c phy_data |= IGP01E1000_PHY_EDAC_SIGN_EXT_9_BITS; ret_val = phy->ops.write_reg(hw, - dsp_reg_array[i], - phy_data); + dsp_reg_array[i], + phy_data); if (ret_val) goto out; } - ret_val = phy->ops.write_reg(hw, - 0x0000, - IGP01E1000_IEEE_RESTART_AUTONEG); + ret_val = phy->ops.write_reg(hw, 0x0000, + IGP01E1000_IEEE_RESTART_AUTONEG); if (ret_val) goto out; msec_delay_irq(20); /* Now enable the transmitter */ - ret_val = phy->ops.write_reg(hw, - 0x2F5B, - phy_saved_data); + ret_val = phy->ops.write_reg(hw, 0x2F5B, + phy_saved_data); if (ret_val) goto out; @@ -838,21 +827,18 @@ static s32 e1000_config_dsp_after_link_c msec_delay_irq(20); - ret_val = phy->ops.write_reg(hw, - 0x0000, - IGP01E1000_IEEE_FORCE_GIG); + ret_val = phy->ops.write_reg(hw, 0x0000, + IGP01E1000_IEEE_FORCE_GIG); if (ret_val) goto out; - ret_val = phy->ops.write_reg(hw, - IGP01E1000_PHY_DSP_FFE, - IGP01E1000_PHY_DSP_FFE_DEFAULT); + ret_val = phy->ops.write_reg(hw, IGP01E1000_PHY_DSP_FFE, + IGP01E1000_PHY_DSP_FFE_DEFAULT); if (ret_val) goto out; - ret_val = phy->ops.write_reg(hw, - 0x0000, - IGP01E1000_IEEE_RESTART_AUTONEG); + ret_val = phy->ops.write_reg(hw, 0x0000, + IGP01E1000_IEEE_RESTART_AUTONEG); if (ret_val) goto out; @@ -889,11 +875,10 @@ static s32 e1000_get_cable_length_igp_82 u16 i, data; u16 cur_agc_value, agc_value = 0; u16 min_agc_value = IGP01E1000_AGC_LENGTH_TABLE_SIZE; - u16 agc_reg_array[IGP01E1000_PHY_CHANNEL_NUM] = - {IGP01E1000_PHY_AGC_A, - IGP01E1000_PHY_AGC_B, - IGP01E1000_PHY_AGC_C, - IGP01E1000_PHY_AGC_D}; + u16 agc_reg_array[IGP01E1000_PHY_CHANNEL_NUM] = {IGP01E1000_PHY_AGC_A, + IGP01E1000_PHY_AGC_B, + IGP01E1000_PHY_AGC_C, + IGP01E1000_PHY_AGC_D}; DEBUGFUNC("e1000_get_cable_length_igp_82541"); @@ -929,12 +914,12 @@ static s32 e1000_get_cable_length_igp_82 } phy->min_cable_length = (e1000_igp_cable_length_table[agc_value] > - IGP01E1000_AGC_RANGE) - ? (e1000_igp_cable_length_table[agc_value] - - IGP01E1000_AGC_RANGE) - : 0; + IGP01E1000_AGC_RANGE) + ? (e1000_igp_cable_length_table[agc_value] - + IGP01E1000_AGC_RANGE) + : 0; phy->max_cable_length = e1000_igp_cable_length_table[agc_value] + - IGP01E1000_AGC_RANGE; + IGP01E1000_AGC_RANGE; phy->cable_length = (phy->min_cable_length + phy->max_cable_length) / 2; @@ -992,50 +977,48 @@ static s32 e1000_set_d3_lplu_state_82541 */ if (phy->smart_speed == e1000_smart_speed_on) { ret_val = phy->ops.read_reg(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); + IGP01E1000_PHY_PORT_CONFIG, + &data); if (ret_val) goto out; data |= IGP01E1000_PSCFR_SMART_SPEED; ret_val = phy->ops.write_reg(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); + IGP01E1000_PHY_PORT_CONFIG, + data); if (ret_val) goto out; } else if (phy->smart_speed == e1000_smart_speed_off) { ret_val = phy->ops.read_reg(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); + IGP01E1000_PHY_PORT_CONFIG, + &data); if (ret_val) goto out; data &= ~IGP01E1000_PSCFR_SMART_SPEED; ret_val = phy->ops.write_reg(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); + IGP01E1000_PHY_PORT_CONFIG, + data); if (ret_val) goto out; } } else if ((phy->autoneg_advertised == E1000_ALL_SPEED_DUPLEX) || - (phy->autoneg_advertised == E1000_ALL_NOT_GIG) || - (phy->autoneg_advertised == E1000_ALL_10_SPEED)) { + (phy->autoneg_advertised == E1000_ALL_NOT_GIG) || + (phy->autoneg_advertised == E1000_ALL_10_SPEED)) { data |= IGP01E1000_GMII_FLEX_SPD; ret_val = phy->ops.write_reg(hw, IGP01E1000_GMII_FIFO, data); if (ret_val) goto out; /* When LPLU is enabled, we should disable SmartSpeed */ - ret_val = phy->ops.read_reg(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); + ret_val = phy->ops.read_reg(hw, IGP01E1000_PHY_PORT_CONFIG, + &data); if (ret_val) goto out; data &= ~IGP01E1000_PSCFR_SMART_SPEED; - ret_val = phy->ops.write_reg(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); + ret_val = phy->ops.write_reg(hw, IGP01E1000_PHY_PORT_CONFIG, + data); } out: @@ -1056,16 +1039,14 @@ static s32 e1000_setup_led_82541(struct DEBUGFUNC("e1000_setup_led_82541"); - ret_val = hw->phy.ops.read_reg(hw, - IGP01E1000_GMII_FIFO, - &dev_spec->spd_default); + ret_val = hw->phy.ops.read_reg(hw, IGP01E1000_GMII_FIFO, + &dev_spec->spd_default); if (ret_val) goto out; - ret_val = hw->phy.ops.write_reg(hw, - IGP01E1000_GMII_FIFO, - (u16)(dev_spec->spd_default & - ~IGP01E1000_GMII_SPD)); + ret_val = hw->phy.ops.write_reg(hw, IGP01E1000_GMII_FIFO, + (u16)(dev_spec->spd_default & + ~IGP01E1000_GMII_SPD)); if (ret_val) goto out; @@ -1089,9 +1070,8 @@ static s32 e1000_cleanup_led_82541(struc DEBUGFUNC("e1000_cleanup_led_82541"); - ret_val = hw->phy.ops.write_reg(hw, - IGP01E1000_GMII_FIFO, - dev_spec->spd_default); + ret_val = hw->phy.ops.write_reg(hw, IGP01E1000_GMII_FIFO, + dev_spec->spd_default); if (ret_val) goto out; @@ -1178,14 +1158,12 @@ static s32 e1000_phy_init_script_82541(s u16 fused, fine, coarse; /* Move to analog registers page */ - hw->phy.ops.read_reg(hw, - IGP01E1000_ANALOG_SPARE_FUSE_STATUS, - &fused); + hw->phy.ops.read_reg(hw, IGP01E1000_ANALOG_SPARE_FUSE_STATUS, + &fused); if (!(fused & IGP01E1000_ANALOG_SPARE_FUSE_ENABLED)) { - hw->phy.ops.read_reg(hw, - IGP01E1000_ANALOG_FUSE_STATUS, - &fused); + hw->phy.ops.read_reg(hw, IGP01E1000_ANALOG_FUSE_STATUS, + &fused); fine = fused & IGP01E1000_ANALOG_FUSE_FINE_MASK; coarse = fused & IGP01E1000_ANALOG_FUSE_COARSE_MASK; @@ -1194,19 +1172,19 @@ static s32 e1000_phy_init_script_82541(s coarse -= IGP01E1000_ANALOG_FUSE_COARSE_10; fine -= IGP01E1000_ANALOG_FUSE_FINE_1; } else if (coarse == - IGP01E1000_ANALOG_FUSE_COARSE_THRESH) + IGP01E1000_ANALOG_FUSE_COARSE_THRESH) fine -= IGP01E1000_ANALOG_FUSE_FINE_10; fused = (fused & IGP01E1000_ANALOG_FUSE_POLY_MASK) | - (fine & IGP01E1000_ANALOG_FUSE_FINE_MASK) | - (coarse & IGP01E1000_ANALOG_FUSE_COARSE_MASK); + (fine & IGP01E1000_ANALOG_FUSE_FINE_MASK) | + (coarse & IGP01E1000_ANALOG_FUSE_COARSE_MASK); hw->phy.ops.write_reg(hw, - IGP01E1000_ANALOG_FUSE_CONTROL, - fused); + IGP01E1000_ANALOG_FUSE_CONTROL, + fused); hw->phy.ops.write_reg(hw, - IGP01E1000_ANALOG_FUSE_BYPASS, - IGP01E1000_ANALOG_FUSE_ENABLE_SW_CONTROL); + IGP01E1000_ANALOG_FUSE_BYPASS, + IGP01E1000_ANALOG_FUSE_ENABLE_SW_CONTROL); } } Modified: stable/10/sys/dev/e1000/e1000_82541.h ============================================================================== --- stable/10/sys/dev/e1000/e1000_82541.h Wed Jan 27 21:37:43 2016 (r294957) +++ stable/10/sys/dev/e1000/e1000_82541.h Wed Jan 27 22:31:08 2016 (r294958) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2001-2008, Intel Corporation + Copyright (c) 2001-2015, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -37,55 +37,55 @@ #define NVM_WORD_SIZE_BASE_SHIFT_82541 (NVM_WORD_SIZE_BASE_SHIFT + 1) -#define IGP01E1000_PHY_CHANNEL_NUM 4 +#define IGP01E1000_PHY_CHANNEL_NUM 4 -#define IGP01E1000_PHY_AGC_A 0x1172 -#define IGP01E1000_PHY_AGC_B 0x1272 -#define IGP01E1000_PHY_AGC_C 0x1472 -#define IGP01E1000_PHY_AGC_D 0x1872 - -#define IGP01E1000_PHY_AGC_PARAM_A 0x1171 -#define IGP01E1000_PHY_AGC_PARAM_B 0x1271 -#define IGP01E1000_PHY_AGC_PARAM_C 0x1471 -#define IGP01E1000_PHY_AGC_PARAM_D 0x1871 - -#define IGP01E1000_PHY_EDAC_MU_INDEX 0xC000 -#define IGP01E1000_PHY_EDAC_SIGN_EXT_9_BITS 0x8000 - -#define IGP01E1000_PHY_DSP_RESET 0x1F33 - -#define IGP01E1000_PHY_DSP_FFE 0x1F35 -#define IGP01E1000_PHY_DSP_FFE_CM_CP 0x0069 -#define IGP01E1000_PHY_DSP_FFE_DEFAULT 0x002A - -#define IGP01E1000_IEEE_FORCE_GIG 0x0140 -#define IGP01E1000_IEEE_RESTART_AUTONEG 0x3300 - -#define IGP01E1000_AGC_LENGTH_SHIFT 7 -#define IGP01E1000_AGC_RANGE 10 - -#define FFE_IDLE_ERR_COUNT_TIMEOUT_20 20 -#define FFE_IDLE_ERR_COUNT_TIMEOUT_100 100 - -#define IGP01E1000_ANALOG_FUSE_STATUS 0x20D0 -#define IGP01E1000_ANALOG_SPARE_FUSE_STATUS 0x20D1 -#define IGP01E1000_ANALOG_FUSE_CONTROL 0x20DC -#define IGP01E1000_ANALOG_FUSE_BYPASS 0x20DE - -#define IGP01E1000_ANALOG_SPARE_FUSE_ENABLED 0x0100 -#define IGP01E1000_ANALOG_FUSE_FINE_MASK 0x0F80 -#define IGP01E1000_ANALOG_FUSE_COARSE_MASK 0x0070 -#define IGP01E1000_ANALOG_FUSE_COARSE_THRESH 0x0040 -#define IGP01E1000_ANALOG_FUSE_COARSE_10 0x0010 -#define IGP01E1000_ANALOG_FUSE_FINE_1 0x0080 -#define IGP01E1000_ANALOG_FUSE_FINE_10 0x0500 -#define IGP01E1000_ANALOG_FUSE_POLY_MASK 0xF000 +#define IGP01E1000_PHY_AGC_A 0x1172 +#define IGP01E1000_PHY_AGC_B 0x1272 +#define IGP01E1000_PHY_AGC_C 0x1472 +#define IGP01E1000_PHY_AGC_D 0x1872 + +#define IGP01E1000_PHY_AGC_PARAM_A 0x1171 +#define IGP01E1000_PHY_AGC_PARAM_B 0x1271 +#define IGP01E1000_PHY_AGC_PARAM_C 0x1471 +#define IGP01E1000_PHY_AGC_PARAM_D 0x1871 + +#define IGP01E1000_PHY_EDAC_MU_INDEX 0xC000 +#define IGP01E1000_PHY_EDAC_SIGN_EXT_9_BITS 0x8000 + +#define IGP01E1000_PHY_DSP_RESET 0x1F33 + +#define IGP01E1000_PHY_DSP_FFE 0x1F35 +#define IGP01E1000_PHY_DSP_FFE_CM_CP 0x0069 +#define IGP01E1000_PHY_DSP_FFE_DEFAULT 0x002A + +#define IGP01E1000_IEEE_FORCE_GIG 0x0140 +#define IGP01E1000_IEEE_RESTART_AUTONEG 0x3300 + +#define IGP01E1000_AGC_LENGTH_SHIFT 7 +#define IGP01E1000_AGC_RANGE 10 + +#define FFE_IDLE_ERR_COUNT_TIMEOUT_20 20 +#define FFE_IDLE_ERR_COUNT_TIMEOUT_100 100 + +#define IGP01E1000_ANALOG_FUSE_STATUS 0x20D0 +#define IGP01E1000_ANALOG_SPARE_FUSE_STATUS 0x20D1 +#define IGP01E1000_ANALOG_FUSE_CONTROL 0x20DC +#define IGP01E1000_ANALOG_FUSE_BYPASS 0x20DE + +#define IGP01E1000_ANALOG_SPARE_FUSE_ENABLED 0x0100 +#define IGP01E1000_ANALOG_FUSE_FINE_MASK 0x0F80 +#define IGP01E1000_ANALOG_FUSE_COARSE_MASK 0x0070 +#define IGP01E1000_ANALOG_FUSE_COARSE_THRESH 0x0040 +#define IGP01E1000_ANALOG_FUSE_COARSE_10 0x0010 +#define IGP01E1000_ANALOG_FUSE_FINE_1 0x0080 +#define IGP01E1000_ANALOG_FUSE_FINE_10 0x0500 +#define IGP01E1000_ANALOG_FUSE_POLY_MASK 0xF000 #define IGP01E1000_ANALOG_FUSE_ENABLE_SW_CONTROL 0x0002 -#define IGP01E1000_MSE_CHANNEL_D 0x000F -#define IGP01E1000_MSE_CHANNEL_C 0x00F0 -#define IGP01E1000_MSE_CHANNEL_B 0x0F00 -#define IGP01E1000_MSE_CHANNEL_A 0xF000 +#define IGP01E1000_MSE_CHANNEL_D 0x000F +#define IGP01E1000_MSE_CHANNEL_C 0x00F0 +#define IGP01E1000_MSE_CHANNEL_B 0x0F00 +#define IGP01E1000_MSE_CHANNEL_A 0xF000 void e1000_init_script_state_82541(struct e1000_hw *hw, bool state); Modified: stable/10/sys/dev/e1000/e1000_82542.c ============================================================================== --- stable/10/sys/dev/e1000/e1000_82542.c Wed Jan 27 21:37:43 2016 (r294957) +++ stable/10/sys/dev/e1000/e1000_82542.c Wed Jan 27 22:31:08 2016 (r294958) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2001-2014, Intel Corporation + Copyright (c) 2001-2015, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -62,7 +62,7 @@ static s32 e1000_init_phy_params_82542(s DEBUGFUNC("e1000_init_phy_params_82542"); - phy->type = e1000_phy_none; + phy->type = e1000_phy_none; return ret_val; } @@ -77,18 +77,18 @@ static s32 e1000_init_nvm_params_82542(s DEBUGFUNC("e1000_init_nvm_params_82542"); - nvm->address_bits = 6; - nvm->delay_usec = 50; - nvm->opcode_bits = 3; - nvm->type = e1000_nvm_eeprom_microwire; - nvm->word_size = 64; + nvm->address_bits = 6; + nvm->delay_usec = 50; + nvm->opcode_bits = 3; + nvm->type = e1000_nvm_eeprom_microwire; + nvm->word_size = 64; /* Function Pointers */ - nvm->ops.read = e1000_read_nvm_microwire; - nvm->ops.release = e1000_stop_nvm; - nvm->ops.write = e1000_write_nvm_microwire; - nvm->ops.update = e1000_update_nvm_checksum_generic; - nvm->ops.validate = e1000_validate_nvm_checksum_generic; + nvm->ops.read = e1000_read_nvm_microwire; + nvm->ops.release = e1000_stop_nvm; + nvm->ops.write = e1000_write_nvm_microwire; + nvm->ops.update = e1000_update_nvm_checksum_generic; + nvm->ops.validate = e1000_validate_nvm_checksum_generic; return E1000_SUCCESS; } @@ -124,7 +124,8 @@ static s32 e1000_init_mac_params_82542(s /* link setup */ mac->ops.setup_link = e1000_setup_link_82542; /* phy/fiber/serdes setup */ - mac->ops.setup_physical_interface = e1000_setup_fiber_serdes_link_generic; + mac->ops.setup_physical_interface = + e1000_setup_fiber_serdes_link_generic; /* check for link */ mac->ops.check_for_link = e1000_check_for_fiber_link_generic; /* multicast address update */ @@ -143,7 +144,8 @@ static s32 e1000_init_mac_params_82542(s /* clear hardware counters */ mac->ops.clear_hw_cntrs = e1000_clear_hw_cntrs_82542; /* link info */ - mac->ops.get_link_up_info = e1000_get_speed_and_duplex_fiber_serdes_generic; + mac->ops.get_link_up_info = + e1000_get_speed_and_duplex_fiber_serdes_generic; return E1000_SUCCESS; } @@ -325,7 +327,7 @@ static s32 e1000_setup_link_82542(struct hw->fc.requested_mode &= ~e1000_fc_tx_pause; - if (mac->report_tx_early == 1) + if (mac->report_tx_early) hw->fc.requested_mode &= ~e1000_fc_rx_pause; /* @@ -335,7 +337,7 @@ static s32 e1000_setup_link_82542(struct hw->fc.current_mode = hw->fc.requested_mode; DEBUGOUT1("After fix-ups FlowControl is now = %x\n", - hw->fc.current_mode); + hw->fc.current_mode); /* Call the necessary subroutine to configure the link. */ ret_val = mac->ops.setup_physical_interface(hw); @@ -419,9 +421,8 @@ static int e1000_rar_set_82542(struct e1 * HW expects these in little endian so we reverse the byte order * from network order (big endian) to little endian */ - rar_low = ((u32) addr[0] | - ((u32) addr[1] << 8) | - ((u32) addr[2] << 16) | ((u32) addr[3] << 24)); + rar_low = ((u32) addr[0] | ((u32) addr[1] << 8) | + ((u32) addr[2] << 16) | ((u32) addr[3] << 24)); rar_high = ((u32) addr[4] | ((u32) addr[5] << 8)); @@ -431,6 +432,7 @@ static int e1000_rar_set_82542(struct e1 E1000_WRITE_REG_ARRAY(hw, E1000_RA, (index << 1), rar_low); E1000_WRITE_REG_ARRAY(hw, E1000_RA, ((index << 1) + 1), rar_high); + return E1000_SUCCESS; } Modified: stable/10/sys/dev/e1000/e1000_82543.c ============================================================================== --- stable/10/sys/dev/e1000/e1000_82543.c Wed Jan 27 21:37:43 2016 (r294957) +++ stable/10/sys/dev/e1000/e1000_82543.c Wed Jan 27 22:31:08 2016 (r294958) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2001-2011, Intel Corporation + Copyright (c) 2001-2015, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -47,9 +47,9 @@ static s32 e1000_init_phy_params_82543( static s32 e1000_init_nvm_params_82543(struct e1000_hw *hw); static s32 e1000_init_mac_params_82543(struct e1000_hw *hw); static s32 e1000_read_phy_reg_82543(struct e1000_hw *hw, u32 offset, - u16 *data); + u16 *data); static s32 e1000_write_phy_reg_82543(struct e1000_hw *hw, u32 offset, - u16 data); + u16 data); static s32 e1000_phy_force_speed_duplex_82543(struct e1000_hw *hw); static s32 e1000_phy_hw_reset_82543(struct e1000_hw *hw); static s32 e1000_reset_hw_82543(struct e1000_hw *hw); @@ -62,7 +62,7 @@ static s32 e1000_check_for_fiber_link_8 static s32 e1000_led_on_82543(struct e1000_hw *hw); static s32 e1000_led_off_82543(struct e1000_hw *hw); static void e1000_write_vfta_82543(struct e1000_hw *hw, u32 offset, - u32 value); + u32 value); static void e1000_clear_hw_cntrs_82543(struct e1000_hw *hw); static s32 e1000_config_mac_to_phy_82543(struct e1000_hw *hw); static bool e1000_init_phy_disabled_82543(struct e1000_hw *hw); @@ -71,7 +71,7 @@ static s32 e1000_polarity_reversal_work static void e1000_raise_mdi_clk_82543(struct e1000_hw *hw, u32 *ctrl); static u16 e1000_shift_in_mdi_bits_82543(struct e1000_hw *hw); static void e1000_shift_out_mdi_bits_82543(struct e1000_hw *hw, u32 data, - u16 count); + u16 count); static bool e1000_tbi_compatibility_enabled_82543(struct e1000_hw *hw); static void e1000_set_tbi_sbp_82543(struct e1000_hw *hw, bool state); static s32 e1000_read_mac_addr_82543(struct e1000_hw *hw); @@ -89,34 +89,34 @@ static s32 e1000_init_phy_params_82543(s DEBUGFUNC("e1000_init_phy_params_82543"); if (hw->phy.media_type != e1000_media_type_copper) { - phy->type = e1000_phy_none; + phy->type = e1000_phy_none; goto out; } else { - phy->ops.power_up = e1000_power_up_phy_copper; - phy->ops.power_down = e1000_power_down_phy_copper; + phy->ops.power_up = e1000_power_up_phy_copper; + phy->ops.power_down = e1000_power_down_phy_copper; } - phy->addr = 1; - phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; - phy->reset_delay_us = 10000; - phy->type = e1000_phy_m88; + phy->addr = 1; + phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; + phy->reset_delay_us = 10000; + phy->type = e1000_phy_m88; /* Function Pointers */ - phy->ops.check_polarity = e1000_check_polarity_m88; - phy->ops.commit = e1000_phy_sw_reset_generic; - phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_82543; - phy->ops.get_cable_length = e1000_get_cable_length_m88; - phy->ops.get_cfg_done = e1000_get_cfg_done_generic; - phy->ops.read_reg = (hw->mac.type == e1000_82543) - ? e1000_read_phy_reg_82543 - : e1000_read_phy_reg_m88; - phy->ops.reset = (hw->mac.type == e1000_82543) - ? e1000_phy_hw_reset_82543 - : e1000_phy_hw_reset_generic; - phy->ops.write_reg = (hw->mac.type == e1000_82543) - ? e1000_write_phy_reg_82543 - : e1000_write_phy_reg_m88; - phy->ops.get_info = e1000_get_phy_info_m88; + phy->ops.check_polarity = e1000_check_polarity_m88; + phy->ops.commit = e1000_phy_sw_reset_generic; + phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_82543; + phy->ops.get_cable_length = e1000_get_cable_length_m88; + phy->ops.get_cfg_done = e1000_get_cfg_done_generic; + phy->ops.read_reg = (hw->mac.type == e1000_82543) + ? e1000_read_phy_reg_82543 + : e1000_read_phy_reg_m88; + phy->ops.reset = (hw->mac.type == e1000_82543) + ? e1000_phy_hw_reset_82543 + : e1000_phy_hw_reset_generic; + phy->ops.write_reg = (hw->mac.type == e1000_82543) + ? e1000_write_phy_reg_82543 + : e1000_write_phy_reg_m88; + phy->ops.get_info = e1000_get_phy_info_m88; /* * The external PHY of the 82543 can be in a funky state. @@ -170,18 +170,18 @@ static s32 e1000_init_nvm_params_82543(s DEBUGFUNC("e1000_init_nvm_params_82543"); - nvm->type = e1000_nvm_eeprom_microwire; - nvm->word_size = 64; - nvm->delay_usec = 50; - nvm->address_bits = 6; - nvm->opcode_bits = 3; + nvm->type = e1000_nvm_eeprom_microwire; + nvm->word_size = 64; + nvm->delay_usec = 50; + nvm->address_bits = 6; + nvm->opcode_bits = 3; /* Function Pointers */ - nvm->ops.read = e1000_read_nvm_microwire; - nvm->ops.update = e1000_update_nvm_checksum_generic; + nvm->ops.read = e1000_read_nvm_microwire; + nvm->ops.update = e1000_update_nvm_checksum_generic; nvm->ops.valid_led_default = e1000_valid_led_default_generic; - nvm->ops.validate = e1000_validate_nvm_checksum_generic; - nvm->ops.write = e1000_write_nvm_microwire; + nvm->ops.validate = e1000_validate_nvm_checksum_generic; + nvm->ops.write = e1000_write_nvm_microwire; return E1000_SUCCESS; } @@ -226,19 +226,18 @@ static s32 e1000_init_mac_params_82543(s mac->ops.setup_link = e1000_setup_link_82543; /* physical interface setup */ mac->ops.setup_physical_interface = - (hw->phy.media_type == e1000_media_type_copper) - ? e1000_setup_copper_link_82543 - : e1000_setup_fiber_link_82543; + (hw->phy.media_type == e1000_media_type_copper) + ? e1000_setup_copper_link_82543 : e1000_setup_fiber_link_82543; /* check for link */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Jan 27 22:48:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6410AA6FFA7; Wed, 27 Jan 2016 22:48:06 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2C4498C; Wed, 27 Jan 2016 22:48:06 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RMm5Ui025189; Wed, 27 Jan 2016 22:48:05 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RMm5Ia025186; Wed, 27 Jan 2016 22:48:05 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201601272248.u0RMm5Ia025186@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Wed, 27 Jan 2016 22:48:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294959 - in stable/10/sys: dev/uart kern sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 22:48:06 -0000 Author: marius Date: Wed Jan 27 22:48:04 2016 New Revision: 294959 URL: https://svnweb.freebsd.org/changeset/base/294959 Log: MFC: r294362, r294414, r294753 - Fix tty_drain() and, thus, TIOCDRAIN of the current tty(4) incarnation to actually wait until the TX FIFOs of UARTs have be drained before returning. This is done by bringing the equivalent of the TS_BUSY flag found in the previous implementation back in an ABI-preserving way. Reported and tested by: Patrick Powell - Make the code consistent with itself style-wise and bring it closer to style(9). - Mark unused arguments as such. - Make the ttystates table const. Modified: stable/10/sys/dev/uart/uart_tty.c stable/10/sys/kern/tty.c stable/10/sys/sys/ttydevsw.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/uart/uart_tty.c ============================================================================== --- stable/10/sys/dev/uart/uart_tty.c Wed Jan 27 22:31:08 2016 (r294958) +++ stable/10/sys/dev/uart/uart_tty.c Wed Jan 27 22:48:04 2016 (r294959) @@ -57,6 +57,16 @@ static cn_putc_t uart_cnputc; static cn_grab_t uart_cngrab; static cn_ungrab_t uart_cnungrab; +static tsw_open_t uart_tty_open; +static tsw_close_t uart_tty_close; +static tsw_outwakeup_t uart_tty_outwakeup; +static tsw_inwakeup_t uart_tty_inwakeup; +static tsw_ioctl_t uart_tty_ioctl; +static tsw_param_t uart_tty_param; +static tsw_modem_t uart_tty_modem; +static tsw_free_t uart_tty_free; +static tsw_busy_t uart_tty_busy; + CONSOLE_DRIVER(uart); static struct uart_devinfo uart_console; @@ -157,7 +167,7 @@ uart_tty_close(struct tty *tp) struct uart_softc *sc; sc = tty_softc(tp); - if (sc == NULL || sc->sc_leaving || !sc->sc_opened) + if (sc == NULL || sc->sc_leaving || !sc->sc_opened) return; if (sc->sc_hwiflow) @@ -169,7 +179,6 @@ uart_tty_close(struct tty *tp) wakeup(sc); sc->sc_opened = 0; - return; } static void @@ -215,7 +224,8 @@ uart_tty_inwakeup(struct tty *tp) } static int -uart_tty_ioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) +uart_tty_ioctl(struct tty *tp, u_long cmd, caddr_t data, + struct thread *td __unused) { struct uart_softc *sc; @@ -262,8 +272,8 @@ uart_tty_param(struct tty *tp, struct te } stopbits = (t->c_cflag & CSTOPB) ? 2 : 1; if (t->c_cflag & PARENB) - parity = (t->c_cflag & PARODD) ? UART_PARITY_ODD - : UART_PARITY_EVEN; + parity = (t->c_cflag & PARODD) ? UART_PARITY_ODD : + UART_PARITY_EVEN; else parity = UART_PARITY_NONE; if (UART_PARAM(sc, t->c_ospeed, databits, stopbits, parity) != 0) @@ -291,7 +301,7 @@ uart_tty_modem(struct tty *tp, int biton sc = tty_softc(tp); if (biton != 0 || bitoff != 0) - UART_SETSIG(sc, SER_DELTA(bitoff|biton) | biton); + UART_SETSIG(sc, SER_DELTA(bitoff | biton) | biton); return (sc->sc_hwsig); } @@ -350,7 +360,7 @@ uart_tty_intr(void *arg) } static void -uart_tty_free(void *arg) +uart_tty_free(void *arg __unused) { /* @@ -361,6 +371,18 @@ uart_tty_free(void *arg) */ } +static bool +uart_tty_busy(struct tty *tp) +{ + struct uart_softc *sc; + + sc = tty_softc(tp); + if (sc == NULL || sc->sc_leaving) + return (FALSE); + + return (sc->sc_txbusy); +} + static struct ttydevsw uart_tty_class = { .tsw_flags = TF_INITLOCK|TF_CALLOUT, .tsw_open = uart_tty_open, @@ -371,6 +393,7 @@ static struct ttydevsw uart_tty_class = .tsw_param = uart_tty_param, .tsw_modem = uart_tty_modem, .tsw_free = uart_tty_free, + .tsw_busy = uart_tty_busy, }; int Modified: stable/10/sys/kern/tty.c ============================================================================== --- stable/10/sys/kern/tty.c Wed Jan 27 22:31:08 2016 (r294958) +++ stable/10/sys/kern/tty.c Wed Jan 27 22:48:04 2016 (r294959) @@ -132,11 +132,11 @@ tty_drain(struct tty *tp, int leaving) /* buffer is inaccessible */ return (0); - while (ttyoutq_bytesused(&tp->t_outq) > 0) { + while (ttyoutq_bytesused(&tp->t_outq) > 0 || ttydevsw_busy(tp)) { ttydevsw_outwakeup(tp); /* Could be handled synchronously. */ bytesused = ttyoutq_bytesused(&tp->t_outq); - if (bytesused == 0) + if (bytesused == 0 && !ttydevsw_busy(tp)) return (0); /* Wait for data to be drained. */ @@ -175,6 +175,7 @@ tty_drain(struct tty *tp, int leaving) static __inline int ttydev_enter(struct tty *tp) { + tty_lock(tp); if (tty_gone(tp) || !tty_opened(tp)) { @@ -189,6 +190,7 @@ ttydev_enter(struct tty *tp) static void ttydev_leave(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); if (tty_opened(tp) || tp->t_flags & TF_OPENCLOSE) { @@ -234,7 +236,8 @@ ttydev_leave(struct tty *tp) * Operations that are exposed through the character device in /dev. */ static int -ttydev_open(struct cdev *dev, int oflags, int devtype, struct thread *td) +ttydev_open(struct cdev *dev, int oflags, int devtype __unused, + struct thread *td) { struct tty *tp; int error = 0; @@ -332,7 +335,8 @@ done: tp->t_flags &= ~TF_OPENCLOSE; } static int -ttydev_close(struct cdev *dev, int fflag, int devtype, struct thread *td) +ttydev_close(struct cdev *dev, int fflag, int devtype __unused, + struct thread *td __unused) { struct tty *tp = dev->si_drv1; @@ -373,6 +377,7 @@ ttydev_close(struct cdev *dev, int fflag static __inline int tty_is_ctty(struct tty *tp, struct proc *p) { + tty_lock_assert(tp, MA_OWNED); return (p->p_session == tp->t_session && p->p_flag & P_CONTROLT); @@ -653,7 +658,7 @@ tty_kqops_read_detach(struct knote *kn) } static int -tty_kqops_read_event(struct knote *kn, long hint) +tty_kqops_read_event(struct knote *kn, long hint __unused) { struct tty *tp = kn->kn_hook; @@ -677,7 +682,7 @@ tty_kqops_write_detach(struct knote *kn) } static int -tty_kqops_write_event(struct knote *kn, long hint) +tty_kqops_write_event(struct knote *kn, long hint __unused) { struct tty *tp = kn->kn_hook; @@ -697,6 +702,7 @@ static struct filterops tty_kqops_read = .f_detach = tty_kqops_read_detach, .f_event = tty_kqops_read_event, }; + static struct filterops tty_kqops_write = { .f_isfd = 1, .f_detach = tty_kqops_write_detach, @@ -752,7 +758,8 @@ static struct cdevsw ttydev_cdevsw = { */ static int -ttyil_open(struct cdev *dev, int oflags, int devtype, struct thread *td) +ttyil_open(struct cdev *dev, int oflags __unused, int devtype __unused, + struct thread *td) { struct tty *tp; int error = 0; @@ -771,14 +778,18 @@ ttyil_open(struct cdev *dev, int oflags, } static int -ttyil_close(struct cdev *dev, int flag, int mode, struct thread *td) +ttyil_close(struct cdev *dev __unused, int flag __unused, int mode __unused, + struct thread *td __unused) { + return (0); } static int -ttyil_rdwr(struct cdev *dev, struct uio *uio, int ioflag) +ttyil_rdwr(struct cdev *dev __unused, struct uio *uio __unused, + int ioflag __unused) { + return (ENODEV); } @@ -875,45 +886,49 @@ tty_init_console(struct tty *tp, speed_t */ static int -ttydevsw_defopen(struct tty *tp) +ttydevsw_defopen(struct tty *tp __unused) { return (0); } static void -ttydevsw_defclose(struct tty *tp) +ttydevsw_defclose(struct tty *tp __unused) { + } static void -ttydevsw_defoutwakeup(struct tty *tp) +ttydevsw_defoutwakeup(struct tty *tp __unused) { panic("Terminal device has output, while not implemented"); } static void -ttydevsw_definwakeup(struct tty *tp) +ttydevsw_definwakeup(struct tty *tp __unused) { + } static int -ttydevsw_defioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) +ttydevsw_defioctl(struct tty *tp __unused, u_long cmd __unused, + caddr_t data __unused, struct thread *td __unused) { return (ENOIOCTL); } static int -ttydevsw_defcioctl(struct tty *tp, int unit, u_long cmd, caddr_t data, struct thread *td) +ttydevsw_defcioctl(struct tty *tp __unused, int unit __unused, + u_long cmd __unused, caddr_t data __unused, struct thread *td __unused) { return (ENOIOCTL); } static int -ttydevsw_defparam(struct tty *tp, struct termios *t) +ttydevsw_defparam(struct tty *tp __unused, struct termios *t) { /* @@ -935,7 +950,8 @@ ttydevsw_defparam(struct tty *tp, struct } static int -ttydevsw_defmodem(struct tty *tp, int sigon, int sigoff) +ttydevsw_defmodem(struct tty *tp __unused, int sigon __unused, + int sigoff __unused) { /* Simulate a carrier to make the TTY layer happy. */ @@ -943,25 +959,34 @@ ttydevsw_defmodem(struct tty *tp, int si } static int -ttydevsw_defmmap(struct tty *tp, vm_ooffset_t offset, vm_paddr_t *paddr, - int nprot, vm_memattr_t *memattr) +ttydevsw_defmmap(struct tty *tp __unused, vm_ooffset_t offset __unused, + vm_paddr_t *paddr __unused, int nprot __unused, + vm_memattr_t *memattr __unused) { return (-1); } static void -ttydevsw_defpktnotify(struct tty *tp, char event) +ttydevsw_defpktnotify(struct tty *tp __unused, char event __unused) { + } static void -ttydevsw_deffree(void *softc) +ttydevsw_deffree(void *softc __unused) { panic("Terminal device freed without a free-handler"); } +static bool +ttydevsw_defbusy(struct tty *tp __unused) +{ + + return (FALSE); +} + /* * TTY allocation and deallocation. TTY devices can be deallocated when * the driver doesn't use it anymore, when the TTY isn't a session's @@ -996,6 +1021,7 @@ tty_alloc_mutex(struct ttydevsw *tsw, vo PATCH_FUNC(mmap); PATCH_FUNC(pktnotify); PATCH_FUNC(free); + PATCH_FUNC(busy); #undef PATCH_FUNC tp = malloc(sizeof(struct tty), M_TTY, M_WAITOK|M_ZERO); @@ -1082,6 +1108,7 @@ tty_rel_free(struct tty *tp) void tty_rel_pgrp(struct tty *tp, struct pgrp *pg) { + MPASS(tp->t_sessioncnt > 0); tty_lock_assert(tp, MA_OWNED); @@ -1094,6 +1121,7 @@ tty_rel_pgrp(struct tty *tp, struct pgrp void tty_rel_sess(struct tty *tp, struct session *sess) { + MPASS(tp->t_sessioncnt > 0); /* Current session has left. */ @@ -1108,6 +1136,7 @@ tty_rel_sess(struct tty *tp, struct sess void tty_rel_gone(struct tty *tp) { + MPASS(!tty_gone(tp)); /* Simulate carrier removal. */ @@ -1129,6 +1158,7 @@ tty_rel_gone(struct tty *tp) static void tty_to_xtty(struct tty *tp, struct xtty *xt) { + tty_lock_assert(tp, MA_OWNED); xt->xt_size = sizeof(struct xtty); @@ -1380,6 +1410,7 @@ tty_signal_pgrp(struct tty *tp, int sig) void tty_wakeup(struct tty *tp, int flags) { + if (tp->t_flags & TF_ASYNC && tp->t_sigio != NULL) pgsigio(&tp->t_sigio, SIGIO, (tp->t_session != NULL)); @@ -1442,6 +1473,7 @@ tty_timedwait(struct tty *tp, struct cv void tty_flush(struct tty *tp, int flags) { + if (flags & FWRITE) { tp->t_flags &= ~TF_HIWAT_OUT; ttyoutq_flush(&tp->t_outq); @@ -1832,10 +1864,11 @@ tty_ioctl(struct tty *tp, u_long cmd, vo dev_t tty_udev(struct tty *tp) { + if (tp->t_dev) - return dev2udev(tp->t_dev); + return (dev2udev(tp->t_dev)); else - return NODEV; + return (NODEV); } int @@ -1904,8 +1937,8 @@ ttyhook_defrint(struct tty *tp, char c, } int -ttyhook_register(struct tty **rtp, struct proc *p, int fd, - struct ttyhook *th, void *softc) +ttyhook_register(struct tty **rtp, struct proc *p, int fd, struct ttyhook *th, + void *softc) { struct tty *tp; struct file *fp; @@ -2056,7 +2089,7 @@ static struct cdevsw ttyconsdev_cdevsw = }; static void -ttyconsdev_init(void *unused) +ttyconsdev_init(void *unused __unused) { dev_console = make_dev_credf(MAKEDEV_ETERNAL, &ttyconsdev_cdevsw, 0, @@ -2081,7 +2114,7 @@ ttyconsdev_select(const char *name) #include #include -static struct { +static const struct { int flag; char val; } ttystates[] = { @@ -2134,6 +2167,7 @@ static struct { static void _db_show_devsw(const char *sep, const struct ttydevsw *tsw) { + db_printf("%sdevsw: ", sep); db_printsym((db_addr_t)tsw, DB_STGY_ANY); db_printf(" (%p)\n", tsw); @@ -2148,9 +2182,11 @@ _db_show_devsw(const char *sep, const st DB_PRINTSYM(pktnotify, tsw->tsw_pktnotify); DB_PRINTSYM(free, tsw->tsw_free); } + static void _db_show_hooks(const char *sep, const struct ttyhook *th) { + db_printf("%shook: ", sep); db_printsym((db_addr_t)th, DB_STGY_ANY); db_printf(" (%p)\n", th); @@ -2256,17 +2292,13 @@ DB_SHOW_ALL_COMMAND(ttys, db_show_all_tt isiz = tp->t_inq.ti_nblocks * TTYINQ_DATASIZE; osiz = tp->t_outq.to_nblocks * TTYOUTQ_DATASIZE; - db_printf("%p %10s %5zu %4u %4u %4zu %5zu %4u %4zu %5u %5d %5d ", - tp, - tty_devname(tp), - isiz, + db_printf("%p %10s %5zu %4u %4u %4zu %5zu %4u %4zu %5u %5d " + "%5d ", tp, tty_devname(tp), isiz, tp->t_inq.ti_linestart - tp->t_inq.ti_begin, tp->t_inq.ti_end - tp->t_inq.ti_linestart, - isiz - tp->t_inlow, - osiz, + isiz - tp->t_inlow, osiz, tp->t_outq.to_end - tp->t_outq.to_begin, - osiz - tp->t_outlow, - MIN(tp->t_column, 99999), + osiz - tp->t_outlow, MIN(tp->t_column, 99999), tp->t_session ? tp->t_session->s_sid : 0, tp->t_pgrp ? tp->t_pgrp->pg_id : 0); Modified: stable/10/sys/sys/ttydevsw.h ============================================================================== --- stable/10/sys/sys/ttydevsw.h Wed Jan 27 22:31:08 2016 (r294958) +++ stable/10/sys/sys/ttydevsw.h Wed Jan 27 22:48:04 2016 (r294959) @@ -54,6 +54,7 @@ typedef int tsw_mmap_t(struct tty *tp, v vm_paddr_t * paddr, int nprot, vm_memattr_t *memattr); typedef void tsw_pktnotify_t(struct tty *tp, char event); typedef void tsw_free_t(void *softc); +typedef bool tsw_busy_t(struct tty *tp); struct ttydevsw { unsigned int tsw_flags; /* Default TTY flags. */ @@ -74,21 +75,25 @@ struct ttydevsw { tsw_free_t *tsw_free; /* Destructor. */ - void *tsw_spare[4]; /* For future use. */ + tsw_busy_t *tsw_busy; /* Draining output. */ + + void *tsw_spare[3]; /* For future use. */ }; static __inline int ttydevsw_open(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_open(tp); + return (tp->t_devsw->tsw_open(tp)); } static __inline void ttydevsw_close(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); @@ -98,6 +103,7 @@ ttydevsw_close(struct tty *tp) static __inline void ttydevsw_outwakeup(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); @@ -111,6 +117,7 @@ ttydevsw_outwakeup(struct tty *tp) static __inline void ttydevsw_inwakeup(struct tty *tp) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); @@ -124,49 +131,56 @@ ttydevsw_inwakeup(struct tty *tp) static __inline int ttydevsw_ioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_ioctl(tp, cmd, data, td); + return (tp->t_devsw->tsw_ioctl(tp, cmd, data, td)); } static __inline int -ttydevsw_cioctl(struct tty *tp, int unit, u_long cmd, caddr_t data, struct thread *td) +ttydevsw_cioctl(struct tty *tp, int unit, u_long cmd, caddr_t data, + struct thread *td) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_cioctl(tp, unit, cmd, data, td); + return (tp->t_devsw->tsw_cioctl(tp, unit, cmd, data, td)); } static __inline int ttydevsw_param(struct tty *tp, struct termios *t) { + MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_param(tp, t); + return (tp->t_devsw->tsw_param(tp, t)); } static __inline int ttydevsw_modem(struct tty *tp, int sigon, int sigoff) { + MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_modem(tp, sigon, sigoff); + return (tp->t_devsw->tsw_modem(tp, sigon, sigoff)); } static __inline int ttydevsw_mmap(struct tty *tp, vm_ooffset_t offset, vm_paddr_t *paddr, int nprot, vm_memattr_t *memattr) { + MPASS(!tty_gone(tp)); - return tp->t_devsw->tsw_mmap(tp, offset, paddr, nprot, memattr); + return (tp->t_devsw->tsw_mmap(tp, offset, paddr, nprot, memattr)); } static __inline void ttydevsw_pktnotify(struct tty *tp, char event) { + tty_lock_assert(tp, MA_OWNED); MPASS(!tty_gone(tp)); @@ -176,9 +190,20 @@ ttydevsw_pktnotify(struct tty *tp, char static __inline void ttydevsw_free(struct tty *tp) { + MPASS(tty_gone(tp)); tp->t_devsw->tsw_free(tty_softc(tp)); } +static __inline bool +ttydevsw_busy(struct tty *tp) +{ + + tty_lock_assert(tp, MA_OWNED); + MPASS(!tty_gone(tp)); + + return (tp->t_devsw->tsw_busy(tp)); +} + #endif /* !_SYS_TTYDEVSW_H_ */ From owner-svn-src-all@freebsd.org Wed Jan 27 22:50:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 439ABA70094; Wed, 27 Jan 2016 22:50:06 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1DCED36A; Wed, 27 Jan 2016 22:50:06 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RMo5a3025412; Wed, 27 Jan 2016 22:50:05 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RMo5Ed025411; Wed, 27 Jan 2016 22:50:05 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201601272250.u0RMo5Ed025411@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Wed, 27 Jan 2016 22:50:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294961 - stable/10/sys/dev/puc X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 22:50:06 -0000 Author: marius Date: Wed Jan 27 22:50:04 2016 New Revision: 294961 URL: https://svnweb.freebsd.org/changeset/base/294961 Log: - Add an entry for the SIIG Cyber 2SP1 PCIe adapter, which is based on an Oxford Semiconductor OX16PCI954 but uses only two ports and a non-default clock rate. [1] - Add entries for the more prominent members of the Digi International Neo series, which are based on Exar PCI chips. Tested by: Patrick Powell - Mark some unused parameters as such. - Fix style/whitespace PR: 176407 [1] Modified: stable/10/sys/dev/puc/pucdata.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/puc/pucdata.c ============================================================================== --- stable/10/sys/dev/puc/pucdata.c Wed Jan 27 22:48:52 2016 (r294960) +++ stable/10/sys/dev/puc/pucdata.c Wed Jan 27 22:50:04 2016 (r294961) @@ -64,7 +64,6 @@ static puc_config_f puc_config_timedia; static puc_config_f puc_config_titan; const struct puc_cfg puc_pci_devices[] = { - { 0x0009, 0x7168, 0xffff, 0, "Sunix SUN1889", DEFAULT_RCLK * 8, @@ -179,6 +178,55 @@ const struct puc_cfg puc_pci_devices[] = .config_function = puc_config_amc }, + /* + * The following members of the Digi International Neo series are + * based on Exar PCI chips, f. e. the 8 port variants on XR17V258IV. + * Accordingly, the PCIe versions of these cards incorporate a PLX + * PCIe-PCI-bridge. + */ + + { 0x114f, 0x00b0, 0xffff, 0, + "Digi Neo PCI 4 Port", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00b1, 0xffff, 0, + "Digi Neo PCI 8 Port", + DEFAULT_RCLK * 8, + PUC_PORT_8S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00f0, 0xffff, 0, + "Digi Neo PCIe 8 Port", + DEFAULT_RCLK * 8, + PUC_PORT_8S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00f1, 0xffff, 0, + "Digi Neo PCIe 4 Port", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00f2, 0xffff, 0, + "Digi Neo PCIe 4 Port RJ45", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00f3, 0xffff, 0, + "Digi Neo PCIe 8 Port RJ45", + DEFAULT_RCLK * 8, + PUC_PORT_8S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + { 0x11fe, 0x8010, 0xffff, 0, "Comtrol RocketPort 550/8 RJ11 part A", DEFAULT_RCLK * 4, @@ -763,6 +811,12 @@ const struct puc_cfg puc_pci_devices[] = PUC_PORT_4S, 0x10, 0, 8, }, + { 0x1415, 0x950a, 0x131f, 0x2061, + "SIIG Cyber 2SP1 PCIe", + DEFAULT_RCLK * 10, + PUC_PORT_2S, 0x10, 0, 8, + }, + { 0x1415, 0x950a, 0xffff, 0, "Oxford Semiconductor OX16PCI954 UARTs", DEFAULT_RCLK, @@ -840,9 +894,9 @@ const struct puc_cfg puc_pci_devices[] = */ { 0x1415, 0xc11b, 0xffff, 0, - "Oxford Semiconductor OXPCIe952 1S1P", - DEFAULT_RCLK * 0x22, - PUC_PORT_NONSTANDARD, 0x10, 0, -1, + "Oxford Semiconductor OXPCIe952 1S1P", + DEFAULT_RCLK * 0x22, + PUC_PORT_NONSTANDARD, 0x10, 0, -1, .config_function = puc_config_oxford_pcie }, @@ -1202,9 +1256,10 @@ const struct puc_cfg puc_pci_devices[] = }; static int -puc_config_amc(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, +puc_config_amc(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, int port, intptr_t *res) { + switch (cmd) { case PUC_CFG_GET_OFS: *res = 8 * (port & 1); @@ -1236,9 +1291,10 @@ puc_config_diva(struct puc_softc *sc, en } static int -puc_config_exar(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_exar(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, + int port, intptr_t *res) { + if (cmd == PUC_CFG_GET_OFS) { *res = port * 0x200; return (0); @@ -1247,9 +1303,10 @@ puc_config_exar(struct puc_softc *sc, en } static int -puc_config_exar_pcie(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_exar_pcie(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, + int port, intptr_t *res) { + if (cmd == PUC_CFG_GET_OFS) { *res = port * 0x400; return (0); @@ -1258,9 +1315,10 @@ puc_config_exar_pcie(struct puc_softc *s } static int -puc_config_icbook(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_icbook(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, + int port __unused, intptr_t *res) { + if (cmd == PUC_CFG_GET_ILR) { *res = PUC_ILR_DIGI; return (0); @@ -1272,10 +1330,11 @@ static int puc_config_moxa(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, intptr_t *res) { - if (cmd == PUC_CFG_GET_OFS) { - const struct puc_cfg *cfg = sc->sc_cfg; + const struct puc_cfg *cfg = sc->sc_cfg; - if (port == 3 && (cfg->device == 0x1045 || cfg->device == 0x1144)) + if (cmd == PUC_CFG_GET_OFS) { + if (port == 3 && (cfg->device == 0x1045 || + cfg->device == 0x1144)) port = 7; *res = port * 0x200; @@ -1285,8 +1344,8 @@ puc_config_moxa(struct puc_softc *sc, en } static int -puc_config_quatech(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_quatech(struct puc_softc *sc, enum puc_cfg_cmd cmd, + int port __unused, intptr_t *res) { const struct puc_cfg *cfg = sc->sc_cfg; struct puc_bar *bar; @@ -1374,8 +1433,8 @@ puc_config_quatech(struct puc_softc *sc, case PUC_CFG_GET_ILR: v0 = (sc->sc_cfg_data >> 8) & 0xff; v1 = sc->sc_cfg_data & 0xff; - *res = (v0 == 0 && v1 == 0x80 + -cfg->clock) - ? PUC_ILR_NONE : PUC_ILR_QUATECH; + *res = (v0 == 0 && v1 == 0x80 + -cfg->clock) ? + PUC_ILR_NONE : PUC_ILR_QUATECH; return (0); default: break; @@ -1687,9 +1746,10 @@ puc_config_sunix(struct puc_softc *sc, e } static int -puc_config_titan(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_titan(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, + int port, intptr_t *res) { + switch (cmd) { case PUC_CFG_GET_OFS: *res = (port < 3) ? 0 : (port - 2) << 3; From owner-svn-src-all@freebsd.org Wed Jan 27 22:56:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2EB9FA703EF; Wed, 27 Jan 2016 22:56:06 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E51DBC3A; Wed, 27 Jan 2016 22:56:05 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RMu4Y3028196; Wed, 27 Jan 2016 22:56:04 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RMu40O028193; Wed, 27 Jan 2016 22:56:04 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201601272256.u0RMu40O028193@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Wed, 27 Jan 2016 22:56:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294963 - in stable/10: lib/libc/gen tools/regression/posixsem2 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 22:56:06 -0000 Author: jilles Date: Wed Jan 27 22:56:04 2016 New Revision: 294963 URL: https://svnweb.freebsd.org/changeset/base/294963 Log: MFC r294565: sem: Don't free nameinfo that is still in list when open() fails. This bug could be reproduced easily by calling sem_open() with O_CREAT | O_EXCL on a semaphore that is already open in the process. The struct sem_nameinfo would be freed while still in sem_list and later calls to sem_open() or sem_close() could access freed memory. PR: 206396 Modified: stable/10/lib/libc/gen/sem_new.c stable/10/tools/regression/posixsem2/semtest.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/gen/sem_new.c ============================================================================== --- stable/10/lib/libc/gen/sem_new.c Wed Jan 27 22:52:20 2016 (r294962) +++ stable/10/lib/libc/gen/sem_new.c Wed Jan 27 22:56:04 2016 (r294963) @@ -176,8 +176,10 @@ _sem_open(const char *name, int flags, . if (ni->name != NULL && strcmp(name, ni->name) == 0) { fd = _open(path, flags | O_RDWR | O_CLOEXEC | O_EXLOCK, mode); - if (fd == -1 || _fstat(fd, &sb) == -1) + if (fd == -1 || _fstat(fd, &sb) == -1) { + ni = NULL; goto error; + } if ((flags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) || ni->dev != sb.st_dev || ni->ino != sb.st_ino) { Modified: stable/10/tools/regression/posixsem2/semtest.c ============================================================================== --- stable/10/tools/regression/posixsem2/semtest.c Wed Jan 27 22:52:20 2016 (r294962) +++ stable/10/tools/regression/posixsem2/semtest.c Wed Jan 27 22:56:04 2016 (r294963) @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -14,6 +15,7 @@ int test_unnamed(void); int test_named(void); +int test_named2(void); int test_unnamed(void) @@ -94,9 +96,42 @@ test_named(void) } int +test_named2(void) +{ + sem_t *s, *s2, *s3; + + printf("testing named process-shared semaphore, O_EXCL cases\n"); + sem_unlink(SEM_NAME); + s = sem_open(SEM_NAME, O_CREAT | O_EXCL, 0777, 0); + if (s == SEM_FAILED) + err(1, "sem_open failed"); + s2 = sem_open(SEM_NAME, O_CREAT | O_EXCL, 0777, 0); + if (s2 != SEM_FAILED) + errx(2, "second sem_open call wrongly succeeded"); + if (errno != EEXIST) + err(3, "second sem_open call failed with wrong errno"); + + s3 = sem_open(SEM_NAME, 0); + if (s3 == SEM_FAILED) + err(4, "third sem_open call failed"); + if (s != s3) + errx(5, +"two sem_open calls for same semaphore do not return same address"); + if (sem_close(s3)) + err(6, "sem_close failed"); + + if (sem_close(s)) + err(7, "sem_close failed"); + + printf("OK.\n"); + return (0); +} + +int main(void) { test_unnamed(); test_named(); + test_named2(); return (0); } From owner-svn-src-all@freebsd.org Thu Jan 28 00:41:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CA5B8A6F44F; Thu, 28 Jan 2016 00:41:08 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 91C4015E2; Thu, 28 Jan 2016 00:41:08 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S0f7H0057253; Thu, 28 Jan 2016 00:41:07 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S0f7tl057252; Thu, 28 Jan 2016 00:41:07 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201601280041.u0S0f7tl057252@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Thu, 28 Jan 2016 00:41:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294964 - stable/10/etc/rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 00:41:08 -0000 Author: jamie Date: Thu Jan 28 00:41:07 2016 New Revision: 294964 URL: https://svnweb.freebsd.org/changeset/base/294964 Log: MFC r294749: Allow the (old rc-style) exec_afterstart jail parameters to start numbering at 0, like exec_prestart and the others do. Make param0 optional, i.e. still look for param1. PR: 142973 Modified: stable/10/etc/rc.d/jail Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/rc.d/jail ============================================================================== --- stable/10/etc/rc.d/jail Wed Jan 27 22:56:04 2016 (r294963) +++ stable/10/etc/rc.d/jail Thu Jan 28 00:41:07 2016 (r294964) @@ -32,7 +32,7 @@ need_dad_wait= # Extract value from ${jail_$jv_$name} or ${jail_$name} and # set it to $param. If not defined, $defval is used. # When $num is [0-9]*, ${jail_$jv_$name$num} are looked up and -# $param is set by using +=. +# $param is set by using +=. $num=0 is optional (params may start at 1). # When $num is YN or NY, the value is interpret as boolean. extract_var() { @@ -72,7 +72,7 @@ extract_var() eval _tmpargs=\"\${$_name1:-\${$_name2:-$_def}}\" if [ -n "$_tmpargs" ]; then echo " $_param += \"$_tmpargs\";" - else + elif [ $i != 0 ]; then break; fi i=$(($i + 1)) @@ -202,7 +202,7 @@ parse_options() extract_var $_jv exec_poststop exec.poststop 0 "" echo " exec.start += \"$_exec_start\";" - extract_var $_jv exec_afterstart exec.start 1 "" + extract_var $_jv exec_afterstart exec.start 0 "" echo " exec.stop = \"$_exec_stop\";" extract_var $_jv consolelog exec.consolelog - \ From owner-svn-src-all@freebsd.org Thu Jan 28 00:51:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73CE2A6F94A; Thu, 28 Jan 2016 00:51:18 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C01A1DAF; Thu, 28 Jan 2016 00:51:18 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S0pHtf062033; Thu, 28 Jan 2016 00:51:17 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S0pHXh062032; Thu, 28 Jan 2016 00:51:17 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601280051.u0S0pHXh062032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 28 Jan 2016 00:51:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294965 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 00:51:18 -0000 Author: bdrewery Date: Thu Jan 28 00:51:17 2016 New Revision: 294965 URL: https://svnweb.freebsd.org/changeset/base/294965 Log: filemon: Use process_exit EVENTHANDLER to capture process exit. This fixes some cases where a process could exit without being untracked by filemon. Reported by: mjg MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon_wrapper.c Modified: head/sys/dev/filemon/filemon_wrapper.c ============================================================================== --- head/sys/dev/filemon/filemon_wrapper.c Thu Jan 28 00:41:07 2016 (r294964) +++ head/sys/dev/filemon/filemon_wrapper.c Thu Jan 28 00:51:17 2016 (r294965) @@ -29,6 +29,7 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include "opt_compat.h" @@ -52,12 +53,13 @@ __FBSDID("$FreeBSD$"); #define sys_symlink symlink #define sys_unlink unlink #define sys_vfork vfork -#define sys_sys_exit sys_exit #ifdef FILEMON_HAS_LINKAT #define sys_linkat linkat #endif #endif /* __FreeBSD_version */ +static eventhandler_tag filemon_exit_tag; + static void filemon_output(struct filemon *filemon, char *msg, size_t len) { @@ -485,7 +487,7 @@ filemon_wrapper_freebsd32_stat(struct th #endif static void -filemon_wrapper_sys_exit(struct thread *td, struct sys_exit_args *uap) +filemon_event_process_exit(void *arg __unused, struct proc *p) { size_t len; struct filemon *filemon; @@ -494,14 +496,14 @@ filemon_wrapper_sys_exit(struct thread * /* Get timestamp before locking. */ getmicrotime(&now); - if ((filemon = filemon_pid_check(curproc)) != NULL) { + if ((filemon = filemon_pid_check(p)) != NULL) { len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), - "X %d %d\n", curproc->p_pid, uap->rval); + "X %d %d %d\n", p->p_pid, p->p_xexit, p->p_xsig); filemon_output(filemon, filemon->msgbufr, len); /* Check if the monitored process is about to exit. */ - if (filemon->pid == curproc->p_pid) { + if (filemon->pid == p->p_pid) { len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "# Stop %ju.%06ju\n# Bye bye\n", @@ -514,8 +516,6 @@ filemon_wrapper_sys_exit(struct thread * /* Unlock the found filemon structure. */ filemon_filemon_unlock(filemon); } - - sys_sys_exit(td, uap); } static int @@ -578,7 +578,6 @@ filemon_wrapper_install(void) #endif sv_table[SYS_chdir].sy_call = (sy_call_t *) filemon_wrapper_chdir; - sv_table[SYS_exit].sy_call = (sy_call_t *) filemon_wrapper_sys_exit; sv_table[SYS_execve].sy_call = (sy_call_t *) filemon_wrapper_execve; sv_table[SYS_fork].sy_call = (sy_call_t *) filemon_wrapper_fork; sv_table[SYS_open].sy_call = (sy_call_t *) filemon_wrapper_open; @@ -597,7 +596,6 @@ filemon_wrapper_install(void) sv_table = ia32_freebsd_sysvec.sv_table; sv_table[FREEBSD32_SYS_chdir].sy_call = (sy_call_t *) filemon_wrapper_chdir; - sv_table[FREEBSD32_SYS_exit].sy_call = (sy_call_t *) filemon_wrapper_sys_exit; sv_table[FREEBSD32_SYS_freebsd32_execve].sy_call = (sy_call_t *) filemon_wrapper_freebsd32_execve; sv_table[FREEBSD32_SYS_fork].sy_call = (sy_call_t *) filemon_wrapper_fork; sv_table[FREEBSD32_SYS_open].sy_call = (sy_call_t *) filemon_wrapper_open; @@ -612,6 +610,9 @@ filemon_wrapper_install(void) sv_table[FREEBSD32_SYS_linkat].sy_call = (sy_call_t *) filemon_wrapper_linkat; #endif #endif /* COMPAT_ARCH32 */ + + filemon_exit_tag = EVENTHANDLER_REGISTER(process_exit, + filemon_event_process_exit, NULL, EVENTHANDLER_PRI_LAST); } static void @@ -624,7 +625,6 @@ filemon_wrapper_deinstall(void) #endif sv_table[SYS_chdir].sy_call = (sy_call_t *)sys_chdir; - sv_table[SYS_exit].sy_call = (sy_call_t *)sys_sys_exit; sv_table[SYS_execve].sy_call = (sy_call_t *)sys_execve; sv_table[SYS_fork].sy_call = (sy_call_t *)sys_fork; sv_table[SYS_open].sy_call = (sy_call_t *)sys_open; @@ -643,7 +643,6 @@ filemon_wrapper_deinstall(void) sv_table = ia32_freebsd_sysvec.sv_table; sv_table[FREEBSD32_SYS_chdir].sy_call = (sy_call_t *)sys_chdir; - sv_table[FREEBSD32_SYS_exit].sy_call = (sy_call_t *)sys_sys_exit; sv_table[FREEBSD32_SYS_freebsd32_execve].sy_call = (sy_call_t *)freebsd32_execve; sv_table[FREEBSD32_SYS_fork].sy_call = (sy_call_t *)sys_fork; sv_table[FREEBSD32_SYS_open].sy_call = (sy_call_t *)sys_open; @@ -658,4 +657,6 @@ filemon_wrapper_deinstall(void) sv_table[FREEBSD32_SYS_linkat].sy_call = (sy_call_t *)sys_linkat; #endif #endif /* COMPAT_ARCH32 */ + + EVENTHANDLER_DEREGISTER(process_exit, filemon_exit_tag); } From owner-svn-src-all@freebsd.org Thu Jan 28 01:17:56 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B89A3A70558; Thu, 28 Jan 2016 01:17:56 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 950CA1BF8; Thu, 28 Jan 2016 01:17:56 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S1HtLx068729; Thu, 28 Jan 2016 01:17:55 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S1HttT068728; Thu, 28 Jan 2016 01:17:55 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601280117.u0S1HttT068728@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 28 Jan 2016 01:17:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294967 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 01:17:56 -0000 Author: bdrewery Date: Thu Jan 28 01:17:55 2016 New Revision: 294967 URL: https://svnweb.freebsd.org/changeset/base/294967 Log: filemon: Trace fork via process_fork event. This avoids needing ugly hooks and needing both a vfork and fork handler. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon_wrapper.c Modified: head/sys/dev/filemon/filemon_wrapper.c ============================================================================== --- head/sys/dev/filemon/filemon_wrapper.c Thu Jan 28 01:15:57 2016 (r294966) +++ head/sys/dev/filemon/filemon_wrapper.c Thu Jan 28 01:17:55 2016 (r294967) @@ -45,20 +45,19 @@ __FBSDID("$FreeBSD$"); 9-CURRENT September 10th-16th. */ #define sys_chdir chdir #define sys_execve execve -#define sys_fork fork #define sys_link link #define sys_open open #define sys_rename rename #define sys_stat stat #define sys_symlink symlink #define sys_unlink unlink -#define sys_vfork vfork #ifdef FILEMON_HAS_LINKAT #define sys_linkat linkat #endif #endif /* __FreeBSD_version */ static eventhandler_tag filemon_exit_tag; +static eventhandler_tag filemon_fork_tag; static void filemon_output(struct filemon *filemon, char *msg, size_t len) @@ -196,29 +195,6 @@ filemon_wrapper_freebsd32_execve(struct #endif static int -filemon_wrapper_fork(struct thread *td, struct fork_args *uap) -{ - int ret; - size_t len; - struct filemon *filemon; - - if ((ret = sys_fork(td, uap)) == 0) { - if ((filemon = filemon_pid_check(curproc)) != NULL) { - len = snprintf(filemon->msgbufr, - sizeof(filemon->msgbufr), "F %d %ld\n", - curproc->p_pid, (long)curthread->td_retval[0]); - - filemon_output(filemon, filemon->msgbufr, len); - - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); - } - } - - return (ret); -} - -static int filemon_wrapper_open(struct thread *td, struct open_args *uap) { int ret; @@ -545,27 +521,23 @@ filemon_wrapper_unlink(struct thread *td return (ret); } -static int -filemon_wrapper_vfork(struct thread *td, struct vfork_args *uap) +static void +filemon_event_process_fork(void *arg __unused, struct proc *p1, + struct proc *p2, int flags) { - int ret; size_t len; struct filemon *filemon; - if ((ret = sys_vfork(td, uap)) == 0) { - if ((filemon = filemon_pid_check(curproc)) != NULL) { - len = snprintf(filemon->msgbufr, - sizeof(filemon->msgbufr), "F %d %ld\n", - curproc->p_pid, (long)curthread->td_retval[0]); + if ((filemon = filemon_pid_check(p1)) != NULL) { + len = snprintf(filemon->msgbufr, + sizeof(filemon->msgbufr), "F %d %d\n", + p1->p_pid, p2->p_pid); - filemon_output(filemon, filemon->msgbufr, len); + filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); - } + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); } - - return (ret); } static void @@ -579,13 +551,11 @@ filemon_wrapper_install(void) sv_table[SYS_chdir].sy_call = (sy_call_t *) filemon_wrapper_chdir; sv_table[SYS_execve].sy_call = (sy_call_t *) filemon_wrapper_execve; - sv_table[SYS_fork].sy_call = (sy_call_t *) filemon_wrapper_fork; sv_table[SYS_open].sy_call = (sy_call_t *) filemon_wrapper_open; sv_table[SYS_openat].sy_call = (sy_call_t *) filemon_wrapper_openat; sv_table[SYS_rename].sy_call = (sy_call_t *) filemon_wrapper_rename; sv_table[SYS_stat].sy_call = (sy_call_t *) filemon_wrapper_stat; sv_table[SYS_unlink].sy_call = (sy_call_t *) filemon_wrapper_unlink; - sv_table[SYS_vfork].sy_call = (sy_call_t *) filemon_wrapper_vfork; sv_table[SYS_link].sy_call = (sy_call_t *) filemon_wrapper_link; sv_table[SYS_symlink].sy_call = (sy_call_t *) filemon_wrapper_symlink; #ifdef FILEMON_HAS_LINKAT @@ -597,13 +567,11 @@ filemon_wrapper_install(void) sv_table[FREEBSD32_SYS_chdir].sy_call = (sy_call_t *) filemon_wrapper_chdir; sv_table[FREEBSD32_SYS_freebsd32_execve].sy_call = (sy_call_t *) filemon_wrapper_freebsd32_execve; - sv_table[FREEBSD32_SYS_fork].sy_call = (sy_call_t *) filemon_wrapper_fork; sv_table[FREEBSD32_SYS_open].sy_call = (sy_call_t *) filemon_wrapper_open; sv_table[FREEBSD32_SYS_openat].sy_call = (sy_call_t *) filemon_wrapper_openat; sv_table[FREEBSD32_SYS_rename].sy_call = (sy_call_t *) filemon_wrapper_rename; sv_table[FREEBSD32_SYS_freebsd32_stat].sy_call = (sy_call_t *) filemon_wrapper_freebsd32_stat; sv_table[FREEBSD32_SYS_unlink].sy_call = (sy_call_t *) filemon_wrapper_unlink; - sv_table[FREEBSD32_SYS_vfork].sy_call = (sy_call_t *) filemon_wrapper_vfork; sv_table[FREEBSD32_SYS_link].sy_call = (sy_call_t *) filemon_wrapper_link; sv_table[FREEBSD32_SYS_symlink].sy_call = (sy_call_t *) filemon_wrapper_symlink; #ifdef FILEMON_HAS_LINKAT @@ -613,6 +581,8 @@ filemon_wrapper_install(void) filemon_exit_tag = EVENTHANDLER_REGISTER(process_exit, filemon_event_process_exit, NULL, EVENTHANDLER_PRI_LAST); + filemon_fork_tag = EVENTHANDLER_REGISTER(process_fork, + filemon_event_process_fork, NULL, EVENTHANDLER_PRI_LAST); } static void @@ -626,13 +596,11 @@ filemon_wrapper_deinstall(void) sv_table[SYS_chdir].sy_call = (sy_call_t *)sys_chdir; sv_table[SYS_execve].sy_call = (sy_call_t *)sys_execve; - sv_table[SYS_fork].sy_call = (sy_call_t *)sys_fork; sv_table[SYS_open].sy_call = (sy_call_t *)sys_open; sv_table[SYS_openat].sy_call = (sy_call_t *)sys_openat; sv_table[SYS_rename].sy_call = (sy_call_t *)sys_rename; sv_table[SYS_stat].sy_call = (sy_call_t *)sys_stat; sv_table[SYS_unlink].sy_call = (sy_call_t *)sys_unlink; - sv_table[SYS_vfork].sy_call = (sy_call_t *)sys_vfork; sv_table[SYS_link].sy_call = (sy_call_t *)sys_link; sv_table[SYS_symlink].sy_call = (sy_call_t *)sys_symlink; #ifdef FILEMON_HAS_LINKAT @@ -644,13 +612,11 @@ filemon_wrapper_deinstall(void) sv_table[FREEBSD32_SYS_chdir].sy_call = (sy_call_t *)sys_chdir; sv_table[FREEBSD32_SYS_freebsd32_execve].sy_call = (sy_call_t *)freebsd32_execve; - sv_table[FREEBSD32_SYS_fork].sy_call = (sy_call_t *)sys_fork; sv_table[FREEBSD32_SYS_open].sy_call = (sy_call_t *)sys_open; sv_table[FREEBSD32_SYS_openat].sy_call = (sy_call_t *)sys_openat; sv_table[FREEBSD32_SYS_rename].sy_call = (sy_call_t *)sys_rename; sv_table[FREEBSD32_SYS_freebsd32_stat].sy_call = (sy_call_t *)freebsd32_stat; sv_table[FREEBSD32_SYS_unlink].sy_call = (sy_call_t *)sys_unlink; - sv_table[FREEBSD32_SYS_vfork].sy_call = (sy_call_t *)sys_vfork; sv_table[FREEBSD32_SYS_link].sy_call = (sy_call_t *)sys_link; sv_table[FREEBSD32_SYS_symlink].sy_call = (sy_call_t *)sys_symlink; #ifdef FILEMON_HAS_LINKAT @@ -659,4 +625,5 @@ filemon_wrapper_deinstall(void) #endif /* COMPAT_ARCH32 */ EVENTHANDLER_DEREGISTER(process_exit, filemon_exit_tag); + EVENTHANDLER_DEREGISTER(process_fork, filemon_fork_tag); } From owner-svn-src-all@freebsd.org Thu Jan 28 01:19:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 12D45A7064C; Thu, 28 Jan 2016 01:19:21 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D56C01DCE; Thu, 28 Jan 2016 01:19:20 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S1JJCI068816; Thu, 28 Jan 2016 01:19:19 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S1JJbs068815; Thu, 28 Jan 2016 01:19:19 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601280119.u0S1JJbs068815@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 28 Jan 2016 01:19:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294968 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 01:19:21 -0000 Author: bdrewery Date: Thu Jan 28 01:19:19 2016 New Revision: 294968 URL: https://svnweb.freebsd.org/changeset/base/294968 Log: Follow-up r294967: Mark flags unused. X-MFC-With: r294967 MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon_wrapper.c Modified: head/sys/dev/filemon/filemon_wrapper.c ============================================================================== --- head/sys/dev/filemon/filemon_wrapper.c Thu Jan 28 01:17:55 2016 (r294967) +++ head/sys/dev/filemon/filemon_wrapper.c Thu Jan 28 01:19:19 2016 (r294968) @@ -523,7 +523,7 @@ filemon_wrapper_unlink(struct thread *td static void filemon_event_process_fork(void *arg __unused, struct proc *p1, - struct proc *p2, int flags) + struct proc *p2, int flags __unused) { size_t len; struct filemon *filemon; From owner-svn-src-all@freebsd.org Thu Jan 28 01:45:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8EEFA70DEF; Thu, 28 Jan 2016 01:45:16 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 961B91A00; Thu, 28 Jan 2016 01:45:16 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S1jFs7077493; Thu, 28 Jan 2016 01:45:15 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S1jFYS077492; Thu, 28 Jan 2016 01:45:15 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201601280145.u0S1jFYS077492@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 28 Jan 2016 01:45:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294969 - stable/10/sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 01:45:16 -0000 Author: emaste Date: Thu Jan 28 01:45:15 2016 New Revision: 294969 URL: https://svnweb.freebsd.org/changeset/base/294969 Log: MFC r294530: Add STB_GNU_UNIQUE symbol binding definition Red Hat created STB_GNU_UNIQUE to handle certain special cases relating to dynamically loading C++ DSOs[1]. We don't (currently) have support for STB_GNU_UNIQUE, but ought to reserve the value in ELFNN_ST_BIND. This will also be used by an upcoming ELF Tool Chain import. Modified: stable/10/sys/sys/elf_common.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/sys/elf_common.h ============================================================================== --- stable/10/sys/sys/elf_common.h Thu Jan 28 01:19:19 2016 (r294968) +++ stable/10/sys/sys/elf_common.h Thu Jan 28 01:45:15 2016 (r294969) @@ -748,8 +748,9 @@ typedef struct { #define STB_LOCAL 0 /* Local symbol */ #define STB_GLOBAL 1 /* Global symbol */ #define STB_WEAK 2 /* like global - lower precedence */ -#define STB_LOOS 10 /* Reserved range for operating system */ -#define STB_HIOS 12 /* specific semantics. */ +#define STB_LOOS 10 /* Start of operating system reserved range. */ +#define STB_GNU_UNIQUE 10 /* Unique symbol (GNU) */ +#define STB_HIOS 12 /* End of operating system reserved range. */ #define STB_LOPROC 13 /* reserved range for processor */ #define STB_HIPROC 15 /* specific semantics. */ From owner-svn-src-all@freebsd.org Thu Jan 28 02:19:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D514EA6FB4E; Thu, 28 Jan 2016 02:19:48 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8AB1A1AFA; Thu, 28 Jan 2016 02:19:48 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S2JlvM086410; Thu, 28 Jan 2016 02:19:47 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S2Jl4t086409; Thu, 28 Jan 2016 02:19:47 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201601280219.u0S2Jl4t086409@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 28 Jan 2016 02:19:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294970 - stable/10/sys/fs/ext2fs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 02:19:48 -0000 Author: pfg Date: Thu Jan 28 02:19:47 2016 New Revision: 294970 URL: https://svnweb.freebsd.org/changeset/base/294970 Log: MFC r294695: ext2fs: passthrough any extra timestamps to the dinode struct. In general we don't trust any of the extended timestamps unless the EXT2F_ROCOMPAT_EXTRA_ISIZE feature is set. However, in the case where we freshly allocated a new inode the information is valid and it is better to pass it along instead of leaving the value undefined. This should have no practical effect but should reduce the amount of garbage if EXT2F_ROCOMPAT_EXTRA_ISIZE is set, like in cases where the filesystem is converted from ext3 to ext4. Modified: stable/10/sys/fs/ext2fs/ext2_inode_cnv.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/ext2fs/ext2_inode_cnv.c ============================================================================== --- stable/10/sys/fs/ext2fs/ext2_inode_cnv.c Thu Jan 28 01:45:15 2016 (r294969) +++ stable/10/sys/fs/ext2fs/ext2_inode_cnv.c Thu Jan 28 02:19:47 2016 (r294970) @@ -149,13 +149,11 @@ ext2_i2ei(struct inode *ip, struct ext2f ei->e2di_atime = ip->i_atime; ei->e2di_mtime = ip->i_mtime; ei->e2di_ctime = ip->i_ctime; - if (E2DI_HAS_XTIME(ip)) { - ei->e2di_ctime_extra = NSEC_TO_XTIME(ip->i_ctimensec); - ei->e2di_mtime_extra = NSEC_TO_XTIME(ip->i_mtimensec); - ei->e2di_atime_extra = NSEC_TO_XTIME(ip->i_atimensec); - ei->e2di_crtime = ip->i_birthtime; - ei->e2di_crtime_extra = NSEC_TO_XTIME(ip->i_birthnsec); - } + ei->e2di_ctime_extra = NSEC_TO_XTIME(ip->i_ctimensec); + ei->e2di_mtime_extra = NSEC_TO_XTIME(ip->i_mtimensec); + ei->e2di_atime_extra = NSEC_TO_XTIME(ip->i_atimensec); + ei->e2di_crtime = ip->i_birthtime; + ei->e2di_crtime_extra = NSEC_TO_XTIME(ip->i_birthnsec); ei->e2di_flags = 0; ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND: 0; ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE: 0; From owner-svn-src-all@freebsd.org Thu Jan 28 02:21:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4807EA6FCEE; Thu, 28 Jan 2016 02:21:22 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F2CB71CC4; Thu, 28 Jan 2016 02:21:21 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S2LLLN087135; Thu, 28 Jan 2016 02:21:21 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S2LL5J087134; Thu, 28 Jan 2016 02:21:21 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201601280221.u0S2LL5J087134@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 28 Jan 2016 02:21:21 +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: r294971 - stable/9/sys/fs/ext2fs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 02:21:22 -0000 Author: pfg Date: Thu Jan 28 02:21:20 2016 New Revision: 294971 URL: https://svnweb.freebsd.org/changeset/base/294971 Log: MFC r294695: ext2fs: passthrough any extra timestamps to the dinode struct. In general we don't trust any of the extended timestamps unless the EXT2F_ROCOMPAT_EXTRA_ISIZE feature is set. However, in the case where we freshly allocated a new inode the information is valid and it is better to pass it along instead of leaving the value undefined. This should have no practical effect but should reduce the amount of garbage if EXT2F_ROCOMPAT_EXTRA_ISIZE is set, like in cases where the filesystem is converted from ext3 to ext4. Modified: stable/9/sys/fs/ext2fs/ext2_inode_cnv.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/fs/ (props changed) Modified: stable/9/sys/fs/ext2fs/ext2_inode_cnv.c ============================================================================== --- stable/9/sys/fs/ext2fs/ext2_inode_cnv.c Thu Jan 28 02:19:47 2016 (r294970) +++ stable/9/sys/fs/ext2fs/ext2_inode_cnv.c Thu Jan 28 02:21:20 2016 (r294971) @@ -149,13 +149,11 @@ ext2_i2ei(struct inode *ip, struct ext2f ei->e2di_atime = ip->i_atime; ei->e2di_mtime = ip->i_mtime; ei->e2di_ctime = ip->i_ctime; - if (E2DI_HAS_XTIME(ip)) { - ei->e2di_ctime_extra = NSEC_TO_XTIME(ip->i_ctimensec); - ei->e2di_mtime_extra = NSEC_TO_XTIME(ip->i_mtimensec); - ei->e2di_atime_extra = NSEC_TO_XTIME(ip->i_atimensec); - ei->e2di_crtime = ip->i_birthtime; - ei->e2di_crtime_extra = NSEC_TO_XTIME(ip->i_birthnsec); - } + ei->e2di_ctime_extra = NSEC_TO_XTIME(ip->i_ctimensec); + ei->e2di_mtime_extra = NSEC_TO_XTIME(ip->i_mtimensec); + ei->e2di_atime_extra = NSEC_TO_XTIME(ip->i_atimensec); + ei->e2di_crtime = ip->i_birthtime; + ei->e2di_crtime_extra = NSEC_TO_XTIME(ip->i_birthnsec); ei->e2di_flags = 0; ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND: 0; ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE: 0; From owner-svn-src-all@freebsd.org Thu Jan 28 03:24:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20E8BA70FE5; Thu, 28 Jan 2016 03:24:08 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7F451CCC; Thu, 28 Jan 2016 03:24:07 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S3O6Kk007133; Thu, 28 Jan 2016 03:24:06 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S3O6Zv007130; Thu, 28 Jan 2016 03:24:06 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601280324.u0S3O6Zv007130@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 28 Jan 2016 03:24:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294973 - head/sbin/ggate/ggated X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 03:24:08 -0000 Author: ngie Date: Thu Jan 28 03:24:06 2016 New Revision: 294973 URL: https://svnweb.freebsd.org/changeset/base/294973 Log: Add pidfile support to ggated(8) The tests will manipulate the system daemon today, which can cause undesired service interruption when the tests are run. This change allows the geom_gate tests to be run with an arbitrary ggated(8) daemon / geom_gate(4) device pairing. Other changes: - Sort #includes - Use a more common idiom for parsing options with getopt(3) Differential Revision: https://reviews.freebsd.org/D4836 MFC after: 2 weeks Reviewed by: bjk (manpages), pjd (maintainer timeout) Sponsored by: EMC / Isilon Storage Division Modified: head/sbin/ggate/ggated/Makefile head/sbin/ggate/ggated/ggated.8 head/sbin/ggate/ggated/ggated.c Modified: head/sbin/ggate/ggated/Makefile ============================================================================== --- head/sbin/ggate/ggated/Makefile Thu Jan 28 02:56:30 2016 (r294972) +++ head/sbin/ggate/ggated/Makefile Thu Jan 28 03:24:06 2016 (r294973) @@ -6,7 +6,7 @@ PROG= ggated MAN= ggated.8 SRCS= ggated.c ggate.c -LIBADD= pthread +LIBADD= pthread util CFLAGS+= -I${.CURDIR}/../shared Modified: head/sbin/ggate/ggated/ggated.8 ============================================================================== --- head/sbin/ggate/ggated/ggated.8 Thu Jan 28 02:56:30 2016 (r294972) +++ head/sbin/ggate/ggated/ggated.8 Thu Jan 28 03:24:06 2016 (r294973) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 14, 2015 +.Dd January 27, 2016 .Dt GGATED 8 .Os .Sh NAME @@ -37,6 +37,7 @@ .Op Fl v .Op Fl a Ar address .Op Fl p Ar port +.Op Fl F Ar pidfile .Op Fl R Ar rcvbuf .Op Fl S Ar sndbuf .Op Ar "exports file" @@ -67,6 +68,10 @@ Port on which .Nm listens for connections. Default is 3080. +.It Fl F Ar pidfile +PID file that +.Nm +uses. .It Fl R Ar rcvbuf Size of receive buffer to use. Default is 131072 (128kB). @@ -86,6 +91,13 @@ The format of an exports file is as foll 1.2.3.0/24 RW /tmp/test.img hostname WO /tmp/image .Ed +.Sh FILES +.Bl -tag -width ".Pa /var/run/ggated.pid" -compact +.It Pa /var/run/ggated.pid +The default location of the +.Nm +PID file. +.El .Sh EXIT STATUS Exit status is 0 on success, or 1 if the command fails. To get details about the failure, Modified: head/sbin/ggate/ggated/ggated.c ============================================================================== --- head/sbin/ggate/ggated/ggated.c Thu Jan 28 02:56:30 2016 (r294972) +++ head/sbin/ggate/ggated/ggated.c Thu Jan 28 03:24:06 2016 (r294973) @@ -26,32 +26,34 @@ * $FreeBSD$ */ -#include -#include -#include -#include -#include -#include #include -#include +#include +#include #include -#include #include +#include +#include #include #include -#include -#include +#include #include #include -#include -#include #include #include #include -#include +#include #include -#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include #include "ggate.h" @@ -110,8 +112,8 @@ static void usage(void) { - fprintf(stderr, "usage: %s [-nv] [-a address] [-p port] [-R rcvbuf] " - "[-S sndbuf] [exports file]\n", getprogname()); + fprintf(stderr, "usage: %s [-nv] [-a address] [-F pidfile] [-p port] " + "[-R rcvbuf] [-S sndbuf] [exports file]\n", getprogname()); exit(EXIT_FAILURE); } @@ -946,20 +948,18 @@ huphandler(int sig __unused) int main(int argc, char *argv[]) { + const char *ggated_pidfile = _PATH_VARRUN "/ggated.pid"; + struct pidfh *pfh; struct sockaddr_in serv; struct sockaddr from; socklen_t fromlen; - int sfd, tmpsfd; + pid_t otherpid; + int ch, sfd, tmpsfd; unsigned port; bindaddr = htonl(INADDR_ANY); port = G_GATE_PORT; - for (;;) { - int ch; - - ch = getopt(argc, argv, "a:hnp:R:S:v"); - if (ch == -1) - break; + while ((ch = getopt(argc, argv, "a:hnp:F:R:S:v")) != -1) { switch (ch) { case 'a': bindaddr = g_gate_str2ip(optarg); @@ -968,6 +968,9 @@ main(int argc, char *argv[]) "Invalid IP/host name to bind to."); } break; + case 'F': + ggated_pidfile = optarg; + break; case 'n': nagle = 0; break; @@ -1004,12 +1007,23 @@ main(int argc, char *argv[]) exports_file = argv[0]; exports_get(); + pfh = pidfile_open(ggated_pidfile, 0600, &otherpid); + if (pfh == NULL) { + if (errno == EEXIST) { + errx(EXIT_FAILURE, "Daemon already running, pid: %jd.", + (intmax_t)otherpid); + } + err(EXIT_FAILURE, "Cannot open/create pidfile"); + } + if (!g_gate_verbose) { /* Run in daemon mode. */ if (daemon(0, 0) == -1) g_gate_xlog("Cannot daemonize: %s", strerror(errno)); } + pidfile_write(pfh); + signal(SIGCHLD, SIG_IGN); sfd = socket(AF_INET, SOCK_STREAM, 0); @@ -1046,5 +1060,6 @@ main(int argc, char *argv[]) close(tmpsfd); } close(sfd); + pidfile_remove(pfh); exit(EXIT_SUCCESS); } From owner-svn-src-all@freebsd.org Thu Jan 28 08:49:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CBA64A71AB0; Thu, 28 Jan 2016 08:49:22 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9F9F11807; Thu, 28 Jan 2016 08:49:22 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S8nL0n099279; Thu, 28 Jan 2016 08:49:21 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S8nLps099278; Thu, 28 Jan 2016 08:49:21 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601280849.u0S8nLps099278@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 08:49:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294974 - stable/10/share/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 08:49:22 -0000 Author: smh Date: Thu Jan 28 08:49:21 2016 New Revision: 294974 URL: https://svnweb.freebsd.org/changeset/base/294974 Log: MFC r294968: Allow file specific user-specified flag overrides. Sponsored by: Multiplay Modified: stable/10/share/mk/bsd.sys.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/share/mk/bsd.sys.mk ============================================================================== --- stable/10/share/mk/bsd.sys.mk Thu Jan 28 03:24:06 2016 (r294973) +++ stable/10/share/mk/bsd.sys.mk Thu Jan 28 08:49:21 2016 (r294974) @@ -149,8 +149,9 @@ SSP_CFLAGS?= -fstack-protector CFLAGS+= ${SSP_CFLAGS} .endif # SSP && !IA64 && !ARM && !MIPS -# Allow user-specified additional warning flags -CFLAGS+= ${CWARNFLAGS} +# Allow user-specified additional warning flags and file specific flag +# overrides. +CFLAGS+= ${CWARNFLAGS} ${CWARNFLAGS.${.IMPSRC:T}} # Tell bmake not to mistake standard targets for things to be searched for From owner-svn-src-all@freebsd.org Thu Jan 28 08:51:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C38EA71BD0; Thu, 28 Jan 2016 08:51:02 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F26981A18; Thu, 28 Jan 2016 08:51:01 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S8p1m9099420; Thu, 28 Jan 2016 08:51:01 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S8p0f2099419; Thu, 28 Jan 2016 08:51:01 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601280851.u0S8p0f2099419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 08:51:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294975 - stable/10/sys/boot/zfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 08:51:02 -0000 Author: smh Date: Thu Jan 28 08:51:00 2016 New Revision: 294975 URL: https://svnweb.freebsd.org/changeset/base/294975 Log: MFC r294040: Prevent bogus compiler in ZFS boot code. Sponsored by: Multiplay Modified: stable/10/sys/boot/zfs/zfsimpl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/zfs/zfsimpl.c ============================================================================== --- stable/10/sys/boot/zfs/zfsimpl.c Thu Jan 28 08:49:21 2016 (r294974) +++ stable/10/sys/boot/zfs/zfsimpl.c Thu Jan 28 08:51:00 2016 (r294975) @@ -2165,7 +2165,13 @@ zfs_lookup(const struct zfsmount *mount, strcpy(&path[sb.st_size], p); else path[sb.st_size] = 0; - if (sb.st_size + sizeof(znode_phys_t) <= dn.dn_bonuslen) { + /* + * Second test is purely to silence bogus compiler + * warning about accessing past the end of dn_bonus. + */ + if (sb.st_size + sizeof(znode_phys_t) <= + dn.dn_bonuslen && sizeof(znode_phys_t) <= + sizeof(dn.dn_bonus)) { memcpy(path, &dn.dn_bonus[sizeof(znode_phys_t)], sb.st_size); } else { From owner-svn-src-all@freebsd.org Thu Jan 28 09:07:12 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF7C9A70707; Thu, 28 Jan 2016 09:07:12 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 77FB315D0; Thu, 28 Jan 2016 09:07:12 +0000 (UTC) (envelope-from des@des.no) Received: from desk.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 9FFA35FAE; Thu, 28 Jan 2016 09:07:11 +0000 (UTC) Received: by desk.des.no (Postfix, from userid 1001) id 1459448D80; Thu, 28 Jan 2016 10:07:13 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: NGie Cooper Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294909 - head/crypto/openssh References: <201601271340.u0RDeiU5060523@repo.freebsd.org> <7BEC31CD-F7AF-44B5-BBB5-9F4CAF3487A7@gmail.com> Date: Thu, 28 Jan 2016 10:07:13 +0100 In-Reply-To: <7BEC31CD-F7AF-44B5-BBB5-9F4CAF3487A7@gmail.com> (NGie Cooper's message of "Wed, 27 Jan 2016 09:25:06 -0800") Message-ID: <86oac6f4xq.fsf@desk.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 09:07:12 -0000 NGie Cooper writes: > Dag-Erling Sm=C3=B8rgrav writes: > > Log: > > Switch UseDNS back on > Please add "Relnotes: yes" to the MFC commit, if this is MFCed. Why? DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@freebsd.org Thu Jan 28 09:12:51 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E346AA70A3E for ; Thu, 28 Jan 2016 09:12:51 +0000 (UTC) (envelope-from 0000015287819c92-70182878-f5df-48dd-968c-b80ce03d45bc-000000@amazonses.com) Received: from a8-60.smtp-out.amazonses.com (a8-60.smtp-out.amazonses.com [54.240.8.60]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ACE481B3B for ; Thu, 28 Jan 2016 09:12:51 +0000 (UTC) (envelope-from 0000015287819c92-70182878-f5df-48dd-968c-b80ce03d45bc-000000@amazonses.com) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=dqtolf56kk3wpt62c3jnwboqvr7iedax; d=tarsnap.com; t=1453972364; h=Subject:To:References:Cc:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; bh=MqRXH4DhB0TmpAI/vAcfnxJfxctjm8EVwR09enCxB1k=; b=PD7xZFXMZOYdMxmEMgDplX0dhEKYrnwR42cYTNiHp/ihMPZVaHz7YgiKrtcpOd2Z Nozqee9WC2juT0nQEzWLLwodlLnicAI5mly17hdRUJKHvC1DmWPM3XDxkgBDaRLD/J4 QBwNP00NMa/yXfeB/dMHlNJ8vcRjWuzxpH6eRUls= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1453972364; h=Subject:To:References:Cc:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding:Feedback-ID; bh=MqRXH4DhB0TmpAI/vAcfnxJfxctjm8EVwR09enCxB1k=; b=tTDloEJeiPkIxdKMmE7qCQh+J2TBeQVrn/8KM0LAhrduGz3VoFJ2qrBQ7UGcV2LS rckOleZlVz9TsU+MMQYjFtkcZTiwl2KCnlIUNne0bQDdzSc7xQqBbYW1iwgvGW5Mvby th0gW4zefZ+hE1aGJITeseEUYaUAUxIiMXgQgmx0= Subject: Re: svn commit: r294909 - head/crypto/openssh To: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= , NGie Cooper References: <201601271340.u0RDeiU5060523@repo.freebsd.org> <7BEC31CD-F7AF-44B5-BBB5-9F4CAF3487A7@gmail.com> <86oac6f4xq.fsf@desk.des.no> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Colin Percival Message-ID: <0000015287819c92-70182878-f5df-48dd-968c-b80ce03d45bc-000000@email.amazonses.com> Date: Thu, 28 Jan 2016 09:12:44 +0000 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <86oac6f4xq.fsf@desk.des.no> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-SES-Outgoing: 2016.01.28-54.240.8.60 Feedback-ID: 1.us-east-1.Lv9FVjaNvvR5llaqfLoOVbo2VxOELl7cjN0AOyXnPlk=:AmazonSES X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 09:12:52 -0000 On 01/28/16 01:07, Dag-Erling Smørgrav wrote: > NGie Cooper writes: >> Dag-Erling Smørgrav writes: >>> Log: >>> Switch UseDNS back on >> Please add "Relnotes: yes" to the MFC commit, if this is MFCed. > > Why? At a guess, because NGie thinks that this is something which is important enough to be worth mentioning in the FreeBSD release notes, and "Relnotes: yes" flags the commit to the release engineering team for that purpose? -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From owner-svn-src-all@freebsd.org Thu Jan 28 09:18:14 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 999DDA70C41; Thu, 28 Jan 2016 09:18:14 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5ED411DDF; Thu, 28 Jan 2016 09:18:14 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S9ID6M008088; Thu, 28 Jan 2016 09:18:13 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S9IDn8008084; Thu, 28 Jan 2016 09:18:13 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601280918.u0S9IDn8008084@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 28 Jan 2016 09:18:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294976 - in stable/10: share/man/man9 sys/kern sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 09:18:14 -0000 Author: kib Date: Thu Jan 28 09:18:12 2016 New Revision: 294976 URL: https://svnweb.freebsd.org/changeset/base/294976 Log: MFC r293346: Provide yet another KPI for cdev creation, make_dev_s(9). Modified: stable/10/share/man/man9/Makefile stable/10/share/man/man9/make_dev.9 stable/10/sys/kern/kern_conf.c stable/10/sys/sys/conf.h Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man9/Makefile ============================================================================== --- stable/10/share/man/man9/Makefile Thu Jan 28 08:51:00 2016 (r294975) +++ stable/10/share/man/man9/Makefile Thu Jan 28 09:18:12 2016 (r294976) @@ -850,7 +850,8 @@ MLINKS+=make_dev.9 destroy_dev.9 \ make_dev.9 make_dev_alias_p.9 \ make_dev.9 make_dev_cred.9 \ make_dev.9 make_dev_credf.9 \ - make_dev.9 make_dev_p.9 + make_dev.9 make_dev_p.9 \ + make_dev.9 make_dev_s.9 MLINKS+=malloc.9 free.9 \ malloc.9 MALLOC_DECLARE.9 \ malloc.9 MALLOC_DEFINE.9 \ Modified: stable/10/share/man/man9/make_dev.9 ============================================================================== --- stable/10/share/man/man9/make_dev.9 Thu Jan 28 08:51:00 2016 (r294975) +++ stable/10/share/man/man9/make_dev.9 Thu Jan 28 09:18:12 2016 (r294976) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Dec 22, 2012 +.Dd Jan 3, 2016 .Dt MAKE_DEV 9 .Os .Sh NAME @@ -32,6 +32,7 @@ .Nm make_dev_cred , .Nm make_dev_credf , .Nm make_dev_p , +.Nm make_dev_s , .Nm make_dev_alias , .Nm make_dev_alias_p , .Nm destroy_dev , @@ -45,16 +46,10 @@ and DEVFS registration for devices .Sh SYNOPSIS .In sys/param.h .In sys/conf.h -.Ft struct cdev * -.Fn make_dev "struct cdevsw *cdevsw" "int unit" "uid_t uid" "gid_t gid" "int perms" "const char *fmt" ... -.Ft struct cdev * -.Fn make_dev_cred "struct cdevsw *cdevsw" "int unit" "struct ucred *cr" "uid_t uid" "gid_t gid" "int perms" "const char *fmt" ... -.Ft struct cdev * -.Fn make_dev_credf "int flags" "struct cdevsw *cdevsw" "int unit" "struct ucred *cr" "uid_t uid" "gid_t gid" "int perms" "const char *fmt" ... +.Ft void +.Fn make_dev_args_init "struct make_dev_args *args" .Ft int -.Fn make_dev_p "int flags" "struct cdev **cdev" "struct cdevsw *devsw" "struct ucred *cr" "uid_t uid" "gid_t gid" "int mode" "const char *fmt" ... -.Ft struct cdev * -.Fn make_dev_alias "struct cdev *pdev" "const char *fmt" ... +.Fn make_dev_s "struct make_dev_args *args" "struct cdev **cdev" "const char *fmt" ... .Ft int .Fn make_dev_alias_p "int flags" "struct cdev **cdev" "struct cdev *pdev" "const char *fmt" ... .Ft void @@ -67,12 +62,26 @@ and DEVFS registration for devices .Fn destroy_dev_drain "struct cdevsw *csw" .Ft void .Fn dev_depends "struct cdev *pdev" "struct cdev *cdev" +.Pp +LEGACY INTERFACES +.Ft struct cdev * +.Fn make_dev "struct cdevsw *cdevsw" "int unit" "uid_t uid" "gid_t gid" "int perms" "const char *fmt" ... +.Ft struct cdev * +.Fn make_dev_cred "struct cdevsw *cdevsw" "int unit" "struct ucred *cr" "uid_t uid" "gid_t gid" "int perms" "const char *fmt" ... +.Ft struct cdev * +.Fn make_dev_credf "int flags" "struct cdevsw *cdevsw" "int unit" "struct ucred *cr" "uid_t uid" "gid_t gid" "int perms" "const char *fmt" ... +.Ft int +.Fn make_dev_p "int flags" "struct cdev **cdev" "struct cdevsw *devsw" "struct ucred *cr" "uid_t uid" "gid_t gid" "int mode" "const char *fmt" ... +.Ft struct cdev * +.Fn make_dev_alias "struct cdev *pdev" "const char *fmt" ... .Sh DESCRIPTION The -.Fn make_dev_credf +.Fn make_dev_s function creates a .Fa cdev -structure for a new device. +structure for a new device, which is returned into the +.Fa cdev +argument. It also notifies .Xr devfs 5 of the presence of the new device, that causes corresponding nodes @@ -80,10 +89,34 @@ to be created. Besides this, a .Xr devctl 4 notification is sent. -The device will be owned by -.Va uid , +The function takes the structure +.Va struct make_dev_args args , +which specifies the parameters for the device creation: +.Pp +.Bd -literal -offset indent -compact +struct make_dev_args { + size_t mda_size; + int mda_flags; + struct cdevsw *mda_devsw; + struct ucred *mda_cr; + uid_t mda_uid; + gid_t mda_gid; + int mda_mode; + int mda_unit; + void *mda_si_drv1; + void *mda_si_drv2; +}; +.Ed +Before use and filling with the desired values, the structure must be +initialized by the +.Fn make_dev_args_init +function, which ensures that future kernel interface expansion does +not affect driver source code or binary interface. +.Pp +The created device will be owned by +.Va args.mda_uid , with the group ownership as -.Va gid . +.Va args.mda_gid . The name is the expansion of .Va fmt and following arguments as @@ -97,7 +130,7 @@ mount point and may contain slash .Ql / characters to denote subdirectories. The permissions of the file specified in -.Va perms +.Va args.mda_mode are defined in .In sys/stat.h : .Pp @@ -126,29 +159,28 @@ are defined in .Ed .Pp The -.Va cr +.Va args.mda_cr argument specifies credentials that will be stored in the .Fa si_cred member of the initialized .Fa struct cdev . +.Pp The -.Va flags +.Va args.mda_flags argument alters the operation of -.Fn make_dev_credf -or -.Fn make_dev_p . +.Fn make_dev_s. The following values are currently accepted: .Pp -.Bl -tag -width "MAKEDEV_CHECKNAME" -compact -offset indent -.It MAKEDEV_REF +.Bl -tag -width "It Dv MAKEDEV_CHECKNAME" -compact -offset indent +.It Dv MAKEDEV_REF reference the created device -.It MAKEDEV_NOWAIT +.It Dv MAKEDEV_NOWAIT do not sleep, the call may fail -.It MAKEDEV_WAITOK +.It Dv MAKEDEV_WAITOK allow the function to sleep to satisfy malloc -.It MAKEDEV_ETERNAL +.It Dv MAKEDEV_ETERNAL created device will be never destroyed -.It MAKEDEV_CHECKNAME +.It Dv MAKEDEV_CHECKNAME return an error if the device name is invalid or already exists .El .Pp @@ -189,10 +221,49 @@ For the convenience, use the flag for the code that can be compiled into kernel or loaded (and unloaded) as loadable module. .Pp -A panic will occur if the MAKEDEV_CHECKNAME flag is not specified +A panic will occur if the +.Dv MAKEDEV_CHECKNAME +flag is not specified and the device name is invalid or already exists. .Pp The +.Fn make_dev_p +use of the form +.Bd -literal -offset indent +struct cdev *dev; +int res; +res = make_dev_p(flags, &dev, cdevsw, cred, uid, gid, perms, name); +.Ed +is equivalent to the code +.Bd -literal -offset indent +struct cdev *dev; +struct make_dev_args args; +int res; + +make_dev_args_init(&args); +args.mda_flags = flags; +args.mda_devsw = cdevsw; +args.mda_cred = cred; +args.mda_uid = uid; +args.mda_gid = gid; +args.mda_mode = perms; +res = make_dev_s(&args, &dev, name); +.Ed +.Pp +Similarly, the +.Fn make_dev_credf +function call is equivalent to +.Bd -literal -offset indent + (void) make_dev_s(&args, &dev, name); +.Ed +In other words, +.Fn make_dev_credf +does not allow the caller to obtain the return value, and in +kernels compiled with the +.Va INVARIANTS +options, the function asserts that the device creation succeeded. +.Pp +The .Fn make_dev_cred function is equivalent to the call .Bd -literal -offset indent @@ -207,45 +278,55 @@ make_dev_credf(0, cdevsw, unit, NULL, ui .Ed .Pp The -.Fn make_dev_p -function is similar to -.Fn make_dev_credf -but it may return an error number and takes a pointer to the resulting -.Ft *cdev -as an argument. -.Pp -The -.Fn make_dev_alias +.Fn make_dev_alias_p function takes the returned .Ft cdev from .Fn make_dev and makes another (aliased) name for this device. It is an error to call -.Fn make_dev_alias +.Fn make_dev_alias_p prior to calling .Fn make_dev . .Pp -.Fn make_dev_alias_p +The +.Fn make_dev_alias function is similar to .Fn make_dev_alias -but it takes a pointer to the resulting +but it returns the resulting aliasing .Ft *cdev -as an argument and may return an error. +and may not return an error. .Pp The .Fa cdev returned by -.Fn make_dev +.Fn make_dev_s and -.Fn make_dev_alias +.Fn make_dev_alias_p has two fields, .Fa si_drv1 and .Fa si_drv2 , that are available to store state. Both fields are of type -.Ft void * . +.Ft void * , +and can be initialized simultaneously with the +.Va cdev +allocation by filling +.Va args.mda_si_drv1 +and +.Va args.mda_si_drv2 +members of the +.Fn make_dev_s +argument structure, or filled after the +.Va cdev +is allocated, if using legacy interfaces. +In the latter case, the driver should handle the race of +accessing uninitialized +.Va si_drv1 +and +.Va si_drv2 +itself. These are designed to replace the .Fa unit argument to @@ -331,8 +412,10 @@ unload until is actually finished for all of them. .Sh RETURN VALUES If successful, +.Fn make_dev_s +and .Fn make_dev_p -will return 0, otherwise it will return an error. +will return 0, otherwise they will return an error. If successful, .Fn make_dev_credf will return a valid @@ -341,10 +424,11 @@ pointer, otherwise it will return .Dv NULL . .Sh ERRORS The +.Fn make_dev_s , .Fn make_dev_p and .Fn make_dev_alias_p -call will fail and the device will be not registered if: +calls will fail and the device will be not registered if: .Bl -tag -width Er .It Bq Er ENOMEM The @@ -403,3 +487,7 @@ The function .Fn make_dev_p first appeared in .Fx 8.2 . +The function +.Fn make_dev_s +first appeared in +.Fx 11.0 . Modified: stable/10/sys/kern/kern_conf.c ============================================================================== --- stable/10/sys/kern/kern_conf.c Thu Jan 28 08:51:00 2016 (r294975) +++ stable/10/sys/kern/kern_conf.c Thu Jan 28 09:18:12 2016 (r294976) @@ -566,22 +566,26 @@ notify_destroy(struct cdev *dev) } static struct cdev * -newdev(struct cdevsw *csw, int unit, struct cdev *si) +newdev(struct make_dev_args *args, struct cdev *si) { struct cdev *si2; + struct cdevsw *csw; mtx_assert(&devmtx, MA_OWNED); + csw = args->mda_devsw; if (csw->d_flags & D_NEEDMINOR) { /* We may want to return an existing device */ LIST_FOREACH(si2, &csw->d_devs, si_list) { - if (dev2unit(si2) == unit) { + if (dev2unit(si2) == args->mda_unit) { dev_free_devlocked(si); return (si2); } } } - si->si_drv0 = unit; + si->si_drv0 = args->mda_unit; si->si_devsw = csw; + si->si_drv1 = args->mda_si_drv1; + si->si_drv2 = args->mda_si_drv2; LIST_INSERT_HEAD(&csw->d_devs, si, si_list); return (si); } @@ -737,33 +741,46 @@ prep_devname(struct cdev *dev, const cha return (0); } +void +make_dev_args_init_impl(struct make_dev_args *args, size_t sz) +{ + + bzero(args, sz); + args->mda_size = sz; +} + static int -make_dev_credv(int flags, struct cdev **dres, struct cdevsw *devsw, int unit, - struct ucred *cr, uid_t uid, gid_t gid, int mode, const char *fmt, - va_list ap) +make_dev_sv(struct make_dev_args *args1, struct cdev **dres, + const char *fmt, va_list ap) { struct cdev *dev, *dev_new; + struct make_dev_args args; int res; - KASSERT((flags & MAKEDEV_WAITOK) == 0 || (flags & MAKEDEV_NOWAIT) == 0, - ("make_dev_credv: both WAITOK and NOWAIT specified")); - dev_new = devfs_alloc(flags); + bzero(&args, sizeof(args)); + if (sizeof(args) < args1->mda_size) + return (EINVAL); + bcopy(args1, &args, args1->mda_size); + KASSERT((args.mda_flags & MAKEDEV_WAITOK) == 0 || + (args.mda_flags & MAKEDEV_NOWAIT) == 0, + ("make_dev_sv: both WAITOK and NOWAIT specified")); + dev_new = devfs_alloc(args.mda_flags); if (dev_new == NULL) return (ENOMEM); dev_lock(); - res = prep_cdevsw(devsw, flags); + res = prep_cdevsw(args.mda_devsw, args.mda_flags); if (res != 0) { dev_unlock(); devfs_free(dev_new); return (res); } - dev = newdev(devsw, unit, dev_new); + dev = newdev(&args, dev_new); if ((dev->si_flags & SI_NAMED) == 0) { res = prep_devname(dev, fmt, ap); if (res != 0) { - if ((flags & MAKEDEV_CHECKNAME) == 0) { + if ((args.mda_flags & MAKEDEV_CHECKNAME) == 0) { panic( - "make_dev_credv: bad si_name (error=%d, si_name=%s)", + "make_dev_sv: bad si_name (error=%d, si_name=%s)", res, dev->si_name); } if (dev == dev_new) { @@ -775,9 +792,9 @@ make_dev_credv(int flags, struct cdev ** return (res); } } - if (flags & MAKEDEV_REF) + if ((args.mda_flags & MAKEDEV_REF) != 0) dev_refl(dev); - if (flags & MAKEDEV_ETERNAL) + if ((args.mda_flags & MAKEDEV_ETERNAL) != 0) dev->si_flags |= SI_ETERNAL; if (dev->si_flags & SI_CHEAPCLONE && dev->si_flags & SI_NAMED) { @@ -792,24 +809,55 @@ make_dev_credv(int flags, struct cdev ** } KASSERT(!(dev->si_flags & SI_NAMED), ("make_dev() by driver %s on pre-existing device (min=%x, name=%s)", - devsw->d_name, dev2unit(dev), devtoname(dev))); + args.mda_devsw->d_name, dev2unit(dev), devtoname(dev))); dev->si_flags |= SI_NAMED; - if (cr != NULL) - dev->si_cred = crhold(cr); - dev->si_uid = uid; - dev->si_gid = gid; - dev->si_mode = mode; + if (args.mda_cr != NULL) + dev->si_cred = crhold(args.mda_cr); + dev->si_uid = args.mda_uid; + dev->si_gid = args.mda_gid; + dev->si_mode = args.mda_mode; devfs_create(dev); clean_unrhdrl(devfs_inos); dev_unlock_and_free(); - notify_create(dev, flags); + notify_create(dev, args.mda_flags); *dres = dev; return (0); } +int +make_dev_s(struct make_dev_args *args, struct cdev **dres, + const char *fmt, ...) +{ + va_list ap; + int res; + + va_start(ap, fmt); + res = make_dev_sv(args, dres, fmt, ap); + va_end(ap); + return (res); +} + +static int +make_dev_credv(int flags, struct cdev **dres, struct cdevsw *devsw, int unit, + struct ucred *cr, uid_t uid, gid_t gid, int mode, const char *fmt, + va_list ap) +{ + struct make_dev_args args; + + make_dev_args_init(&args); + args.mda_flags = flags; + args.mda_devsw = devsw; + args.mda_cr = cr; + args.mda_uid = uid; + args.mda_gid = gid; + args.mda_mode = mode; + args.mda_unit = unit; + return (make_dev_sv(&args, dres, fmt, ap)); +} + struct cdev * make_dev(struct cdevsw *devsw, int unit, uid_t uid, gid_t gid, int mode, const char *fmt, ...) @@ -1247,6 +1295,7 @@ clone_create(struct clonedevs **cdp, str { struct clonedevs *cd; struct cdev *dev, *ndev, *dl, *de; + struct make_dev_args args; int unit, low, u; KASSERT(*cdp != NULL, @@ -1298,7 +1347,10 @@ clone_create(struct clonedevs **cdp, str } if (unit == -1) unit = low & CLONE_UNITMASK; - dev = newdev(csw, unit | extra, ndev); + make_dev_args_init(&args); + args.mda_unit = unit | extra; + args.mda_devsw = csw; + dev = newdev(&args, ndev); if (dev->si_flags & SI_CLONELIST) { printf("dev %p (%s) is on clonelist\n", dev, dev->si_name); printf("unit=%d, low=%d, extra=0x%x\n", unit, low, extra); Modified: stable/10/sys/sys/conf.h ============================================================================== --- stable/10/sys/sys/conf.h Thu Jan 28 08:51:00 2016 (r294975) +++ stable/10/sys/sys/conf.h Thu Jan 28 09:18:12 2016 (r294976) @@ -244,6 +244,28 @@ void clone_cleanup(struct clonedevs **); #define CLONE_FLAG0 (CLONE_UNITMASK + 1) int clone_create(struct clonedevs **, struct cdevsw *, int *unit, struct cdev **dev, int extra); +#define MAKEDEV_REF 0x01 +#define MAKEDEV_WHTOUT 0x02 +#define MAKEDEV_NOWAIT 0x04 +#define MAKEDEV_WAITOK 0x08 +#define MAKEDEV_ETERNAL 0x10 +#define MAKEDEV_CHECKNAME 0x20 +struct make_dev_args { + size_t mda_size; + int mda_flags; + struct cdevsw *mda_devsw; + struct ucred *mda_cr; + uid_t mda_uid; + gid_t mda_gid; + int mda_mode; + int mda_unit; + void *mda_si_drv1; + void *mda_si_drv2; +}; +void make_dev_args_init_impl(struct make_dev_args *_args, size_t _sz); +#define make_dev_args_init(a) \ + make_dev_args_init_impl((a), sizeof(struct make_dev_args)) + int count_dev(struct cdev *_dev); void delist_dev(struct cdev *_dev); void destroy_dev(struct cdev *_dev); @@ -265,12 +287,6 @@ struct cdev *make_dev(struct cdevsw *_de struct cdev *make_dev_cred(struct cdevsw *_devsw, int _unit, struct ucred *_cr, uid_t _uid, gid_t _gid, int _perms, const char *_fmt, ...) __printflike(7, 8); -#define MAKEDEV_REF 0x01 -#define MAKEDEV_WHTOUT 0x02 -#define MAKEDEV_NOWAIT 0x04 -#define MAKEDEV_WAITOK 0x08 -#define MAKEDEV_ETERNAL 0x10 -#define MAKEDEV_CHECKNAME 0x20 struct cdev *make_dev_credf(int _flags, struct cdevsw *_devsw, int _unit, struct ucred *_cr, uid_t _uid, gid_t _gid, int _mode, @@ -278,6 +294,8 @@ struct cdev *make_dev_credf(int _flags, int make_dev_p(int _flags, struct cdev **_cdev, struct cdevsw *_devsw, struct ucred *_cr, uid_t _uid, gid_t _gid, int _mode, const char *_fmt, ...) __printflike(8, 9); +int make_dev_s(struct make_dev_args *_args, struct cdev **_cdev, + const char *_fmt, ...) __printflike(3, 4); struct cdev *make_dev_alias(struct cdev *_pdev, const char *_fmt, ...) __printflike(2, 3); int make_dev_alias_p(int _flags, struct cdev **_cdev, struct cdev *_pdev, From owner-svn-src-all@freebsd.org Thu Jan 28 09:22:40 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E29BA70F08; Thu, 28 Jan 2016 09:22:40 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1C9F31287; Thu, 28 Jan 2016 09:22:40 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S9MdeT010987; Thu, 28 Jan 2016 09:22:39 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S9MdXA010986; Thu, 28 Jan 2016 09:22:39 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601280922.u0S9MdXA010986@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 28 Jan 2016 09:22:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294977 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 09:22:40 -0000 Author: kib Date: Thu Jan 28 09:22:38 2016 New Revision: 294977 URL: https://svnweb.freebsd.org/changeset/base/294977 Log: MFC r293349: Convert tty common code to use make_dev_s(). Modified: stable/10/sys/kern/tty.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/tty.c ============================================================================== --- stable/10/sys/kern/tty.c Thu Jan 28 09:18:12 2016 (r294976) +++ stable/10/sys/kern/tty.c Thu Jan 28 09:22:38 2016 (r294977) @@ -240,14 +240,10 @@ ttydev_open(struct cdev *dev, int oflags struct thread *td) { struct tty *tp; - int error = 0; - - while ((tp = dev->si_drv1) == NULL) { - error = tsleep(&dev->si_drv1, PCATCH, "ttdrv1", 1); - if (error != EWOULDBLOCK) - return (error); - } + int error; + tp = dev->si_drv1; + error = 0; tty_lock(tp); if (tty_gone(tp)) { /* Device is already gone. */ @@ -762,13 +758,10 @@ ttyil_open(struct cdev *dev, int oflags struct thread *td) { struct tty *tp; - int error = 0; + int error; - while ((tp = dev->si_drv1) == NULL) { - error = tsleep(&dev->si_drv1, PCATCH, "ttdrv1", 1); - if (error != EWOULDBLOCK) - return (error); - } + tp = dev->si_drv1; + error = 0; tty_lock(tp); if (tty_gone(tp)) error = ENODEV; @@ -1218,6 +1211,7 @@ static int tty_vmakedevf(struct tty *tp, struct ucred *cred, int flags, const char *fmt, va_list ap) { + struct make_dev_args args; struct cdev *dev, *init, *lock, *cua, *cinit, *clock; const char *prefix = "tty"; char name[SPECNAMELEN - 3]; /* for "tty" and "cua". */ @@ -1248,71 +1242,72 @@ tty_vmakedevf(struct tty *tp, struct ucr flags |= MAKEDEV_CHECKNAME; /* Master call-in device. */ - error = make_dev_p(flags, &dev, &ttydev_cdevsw, cred, uid, gid, mode, - "%s%s", prefix, name); - if (error) + make_dev_args_init(&args); + args.mda_flags = flags; + args.mda_devsw = &ttydev_cdevsw; + args.mda_cr = cred; + args.mda_uid = uid; + args.mda_gid = gid; + args.mda_mode = mode; + args.mda_si_drv1 = tp; + error = make_dev_s(&args, &dev, "%s%s", prefix, name); + if (error != 0) return (error); - dev->si_drv1 = tp; - wakeup(&dev->si_drv1); tp->t_dev = dev; init = lock = cua = cinit = clock = NULL; /* Slave call-in devices. */ if (tp->t_flags & TF_INITLOCK) { - error = make_dev_p(flags, &init, &ttyil_cdevsw, cred, uid, - gid, mode, "%s%s.init", prefix, name); - if (error) + args.mda_devsw = &ttyil_cdevsw; + args.mda_unit = TTYUNIT_INIT; + args.mda_si_drv1 = tp; + args.mda_si_drv2 = &tp->t_termios_init_in; + error = make_dev_s(&args, &init, "%s%s.init", prefix, name); + if (error != 0) goto fail; dev_depends(dev, init); - dev2unit(init) = TTYUNIT_INIT; - init->si_drv1 = tp; - wakeup(&init->si_drv1); - init->si_drv2 = &tp->t_termios_init_in; - error = make_dev_p(flags, &lock, &ttyil_cdevsw, cred, uid, - gid, mode, "%s%s.lock", prefix, name); - if (error) + args.mda_unit = TTYUNIT_LOCK; + args.mda_si_drv2 = &tp->t_termios_lock_in; + error = make_dev_s(&args, &lock, "%s%s.lock", prefix, name); + if (error != 0) goto fail; dev_depends(dev, lock); - dev2unit(lock) = TTYUNIT_LOCK; - lock->si_drv1 = tp; - wakeup(&lock->si_drv1); - lock->si_drv2 = &tp->t_termios_lock_in; } /* Call-out devices. */ if (tp->t_flags & TF_CALLOUT) { - error = make_dev_p(flags, &cua, &ttydev_cdevsw, cred, - UID_UUCP, GID_DIALER, 0660, "cua%s", name); - if (error) + make_dev_args_init(&args); + args.mda_flags = flags; + args.mda_devsw = &ttydev_cdevsw; + args.mda_cr = cred; + args.mda_uid = UID_UUCP; + args.mda_gid = GID_DIALER; + args.mda_mode = 0660; + args.mda_unit = TTYUNIT_CALLOUT; + args.mda_si_drv1 = tp; + error = make_dev_s(&args, &cua, "cua%s", name); + if (error != 0) goto fail; dev_depends(dev, cua); - dev2unit(cua) = TTYUNIT_CALLOUT; - cua->si_drv1 = tp; - wakeup(&cua->si_drv1); /* Slave call-out devices. */ if (tp->t_flags & TF_INITLOCK) { - error = make_dev_p(flags, &cinit, &ttyil_cdevsw, cred, - UID_UUCP, GID_DIALER, 0660, "cua%s.init", name); - if (error) + args.mda_devsw = &ttyil_cdevsw; + args.mda_unit = TTYUNIT_CALLOUT | TTYUNIT_INIT; + args.mda_si_drv2 = &tp->t_termios_init_out; + error = make_dev_s(&args, &cinit, "cua%s.init", name); + if (error != 0) goto fail; dev_depends(dev, cinit); - dev2unit(cinit) = TTYUNIT_CALLOUT | TTYUNIT_INIT; - cinit->si_drv1 = tp; - wakeup(&cinit->si_drv1); - cinit->si_drv2 = &tp->t_termios_init_out; - error = make_dev_p(flags, &clock, &ttyil_cdevsw, cred, - UID_UUCP, GID_DIALER, 0660, "cua%s.lock", name); - if (error) + args.mda_unit = TTYUNIT_CALLOUT | TTYUNIT_LOCK; + args.mda_si_drv2 = &tp->t_termios_lock_out; + error = make_dev_s(&args, &clock, "cua%s.lock", name); + if (error != 0) goto fail; dev_depends(dev, clock); - dev2unit(clock) = TTYUNIT_CALLOUT | TTYUNIT_LOCK; - clock->si_drv1 = tp; - wakeup(&clock->si_drv1); - clock->si_drv2 = &tp->t_termios_lock_out; } } From owner-svn-src-all@freebsd.org Thu Jan 28 09:25:17 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2880A70FD8; Thu, 28 Jan 2016 09:25:17 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B3B611437; Thu, 28 Jan 2016 09:25:17 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0S9PGau011135; Thu, 28 Jan 2016 09:25:16 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0S9PGQn011128; Thu, 28 Jan 2016 09:25:16 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601280925.u0S9PGQn011128@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 28 Jan 2016 09:25:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294978 - in stable/10/sys/cam: ctl scsi X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 09:25:18 -0000 Author: kib Date: Thu Jan 28 09:25:15 2016 New Revision: 294978 URL: https://svnweb.freebsd.org/changeset/base/294978 Log: MFC r293350: Convert sys/cam to use make_dev_s(). Modified: stable/10/sys/cam/ctl/ctl.c stable/10/sys/cam/scsi/scsi_ch.c stable/10/sys/cam/scsi/scsi_enc.c stable/10/sys/cam/scsi/scsi_pass.c stable/10/sys/cam/scsi/scsi_pt.c stable/10/sys/cam/scsi/scsi_sa.c stable/10/sys/cam/scsi/scsi_sg.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl.c ============================================================================== --- stable/10/sys/cam/ctl/ctl.c Thu Jan 28 09:22:38 2016 (r294977) +++ stable/10/sys/cam/ctl/ctl.c Thu Jan 28 09:25:15 2016 (r294978) @@ -1780,6 +1780,7 @@ ctl_ha_role_sysctl(SYSCTL_HANDLER_ARGS) static int ctl_init(void) { + struct make_dev_args args; struct ctl_softc *softc; void *other_pool; int i, error; @@ -1787,9 +1788,17 @@ ctl_init(void) softc = control_softc = malloc(sizeof(*control_softc), M_DEVBUF, M_WAITOK | M_ZERO); - softc->dev = make_dev(&ctl_cdevsw, 0, UID_ROOT, GID_OPERATOR, 0600, - "cam/ctl"); - softc->dev->si_drv1 = softc; + make_dev_args_init(&args); + args.mda_devsw = &ctl_cdevsw; + args.mda_uid = UID_ROOT; + args.mda_gid = GID_OPERATOR; + args.mda_mode = 0600; + args.mda_si_drv1 = softc; + error = make_dev_s(&args, &softc->dev, "cam/ctl"); + if (error != 0) { + free(control_softc, M_DEVBUF); + return (error); + } sysctl_ctx_init(&softc->sysctl_ctx); softc->sysctl_tree = SYSCTL_ADD_NODE(&softc->sysctl_ctx, Modified: stable/10/sys/cam/scsi/scsi_ch.c ============================================================================== --- stable/10/sys/cam/scsi/scsi_ch.c Thu Jan 28 09:22:38 2016 (r294977) +++ stable/10/sys/cam/scsi/scsi_ch.c Thu Jan 28 09:25:15 2016 (r294978) @@ -372,6 +372,8 @@ chregister(struct cam_periph *periph, vo struct ch_softc *softc; struct ccb_getdev *cgd; struct ccb_pathinq cpi; + struct make_dev_args args; + int error; cgd = (struct ccb_getdev *)arg; if (cgd == NULL) { @@ -431,11 +433,20 @@ chregister(struct cam_periph *periph, vo /* Register the device */ - softc->dev = make_dev(&ch_cdevsw, periph->unit_number, UID_ROOT, - GID_OPERATOR, 0600, "%s%d", periph->periph_name, - periph->unit_number); + make_dev_args_init(&args); + args.mda_devsw = &ch_cdevsw; + args.mda_unit = periph->unit_number; + args.mda_uid = UID_ROOT; + args.mda_gid = GID_OPERATOR; + args.mda_mode = 0600; + args.mda_si_drv1 = periph; + error = make_dev_s(&args, &softc->dev, "%s%d", periph->periph_name, + periph->unit_number); cam_periph_lock(periph); - softc->dev->si_drv1 = periph; + if (error != 0) { + cam_periph_release_locked(periph); + return (CAM_REQ_CMP_ERR); + } /* * Add an async callback so that we get @@ -507,8 +518,6 @@ chclose(struct cdev *dev, int flag, int struct mtx *mtx; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return(ENXIO); mtx = cam_periph_mtx(periph); mtx_lock(mtx); @@ -754,9 +763,6 @@ chioctl(struct cdev *dev, u_long cmd, ca int error; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return(ENXIO); - cam_periph_lock(periph); CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("entering chioctl\n")); Modified: stable/10/sys/cam/scsi/scsi_enc.c ============================================================================== --- stable/10/sys/cam/scsi/scsi_enc.c Thu Jan 28 09:22:38 2016 (r294977) +++ stable/10/sys/cam/scsi/scsi_enc.c Thu Jan 28 09:25:15 2016 (r294978) @@ -264,10 +264,6 @@ enc_open(struct cdev *dev, int flags, in int error = 0; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) { - return (ENXIO); - } - if (cam_periph_acquire(periph) != CAM_REQ_CMP) return (ENXIO); @@ -302,8 +298,6 @@ enc_close(struct cdev *dev, int flag, in struct mtx *mtx; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); mtx = cam_periph_mtx(periph); mtx_lock(mtx); @@ -364,9 +358,6 @@ enc_ioctl(struct cdev *dev, u_long cmd, addr = NULL; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); - CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("entering encioctl\n")); cam_periph_lock(periph); @@ -905,6 +896,7 @@ enc_ctor(struct cam_periph *periph, void enc_softc_t *enc; struct ccb_getdev *cgd; char *tname; + struct make_dev_args args; cgd = (struct ccb_getdev *)arg; if (cgd == NULL) { @@ -987,12 +979,20 @@ enc_ctor(struct cam_periph *periph, void return (CAM_REQ_CMP_ERR); } - enc->enc_dev = make_dev(&enc_cdevsw, periph->unit_number, - UID_ROOT, GID_OPERATOR, 0600, "%s%d", - periph->periph_name, periph->unit_number); - + make_dev_args_init(&args); + args.mda_devsw = &enc_cdevsw; + args.mda_unit = periph->unit_number; + args.mda_uid = UID_ROOT; + args.mda_gid = GID_OPERATOR; + args.mda_mode = 0600; + args.mda_si_drv1 = periph; + err = make_dev_s(&args, &enc->enc_dev, "%s%d", periph->periph_name, + periph->unit_number); cam_periph_lock(periph); - enc->enc_dev->si_drv1 = periph; + if (err != 0) { + cam_periph_release_locked(periph); + return (CAM_REQ_CMP_ERR); + } enc->enc_flags |= ENC_FLAG_INITIALIZED; Modified: stable/10/sys/cam/scsi/scsi_pass.c ============================================================================== --- stable/10/sys/cam/scsi/scsi_pass.c Thu Jan 28 09:22:38 2016 (r294977) +++ stable/10/sys/cam/scsi/scsi_pass.c Thu Jan 28 09:25:15 2016 (r294978) @@ -548,7 +548,8 @@ passregister(struct cam_periph *periph, struct pass_softc *softc; struct ccb_getdev *cgd; struct ccb_pathinq cpi; - int no_tags; + struct make_dev_args args; + int error, no_tags; cgd = (struct ccb_getdev *)arg; if (cgd == NULL) { @@ -648,9 +649,20 @@ passregister(struct cam_periph *periph, } /* Register the device */ - softc->dev = make_dev(&pass_cdevsw, periph->unit_number, - UID_ROOT, GID_OPERATOR, 0600, "%s%d", - periph->periph_name, periph->unit_number); + make_dev_args_init(&args); + args.mda_devsw = &pass_cdevsw; + args.mda_unit = periph->unit_number; + args.mda_uid = UID_ROOT; + args.mda_gid = GID_OPERATOR; + args.mda_mode = 0600; + args.mda_si_drv1 = periph; + error = make_dev_s(&args, &softc->dev, "%s%d", periph->periph_name, + periph->unit_number); + if (error != 0) { + cam_periph_lock(periph); + cam_periph_release_locked(periph); + return (CAM_REQ_CMP_ERR); + } /* * Hold a reference to the periph before we create the physical @@ -664,7 +676,6 @@ passregister(struct cam_periph *periph, } cam_periph_lock(periph); - softc->dev->si_drv1 = periph; TASK_INIT(&softc->add_physpath_task, /*priority*/0, pass_add_physpath, periph); @@ -754,8 +765,6 @@ passclose(struct cdev *dev, int flag, in struct mtx *mtx; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); mtx = cam_periph_mtx(periph); mtx_lock(mtx); @@ -1759,9 +1768,6 @@ passdoioctl(struct cdev *dev, u_long cmd uint32_t priority; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return(ENXIO); - cam_periph_lock(periph); softc = (struct pass_softc *)periph->softc; @@ -2068,9 +2074,6 @@ passpoll(struct cdev *dev, int poll_even int revents; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); - softc = (struct pass_softc *)periph->softc; revents = poll_events & (POLLOUT | POLLWRNORM); @@ -2095,9 +2098,6 @@ passkqfilter(struct cdev *dev, struct kn struct pass_softc *softc; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); - softc = (struct pass_softc *)periph->softc; kn->kn_hook = (caddr_t)periph; Modified: stable/10/sys/cam/scsi/scsi_pt.c ============================================================================== --- stable/10/sys/cam/scsi/scsi_pt.c Thu Jan 28 09:22:38 2016 (r294977) +++ stable/10/sys/cam/scsi/scsi_pt.c Thu Jan 28 09:25:15 2016 (r294978) @@ -173,9 +173,6 @@ ptclose(struct cdev *dev, int flag, int struct pt_softc *softc; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); - softc = (struct pt_softc *)periph->softc; cam_periph_lock(periph); @@ -252,6 +249,8 @@ ptctor(struct cam_periph *periph, void * struct pt_softc *softc; struct ccb_getdev *cgd; struct ccb_pathinq cpi; + struct make_dev_args args; + int error; cgd = (struct ccb_getdev *)arg; if (cgd == NULL) { @@ -282,6 +281,21 @@ ptctor(struct cam_periph *periph, void * xpt_action((union ccb *)&cpi); cam_periph_unlock(periph); + + make_dev_args_init(&args); + args.mda_devsw = &pt_cdevsw; + args.mda_unit = periph->unit_number; + args.mda_uid = UID_ROOT; + args.mda_gid = GID_OPERATOR; + args.mda_mode = 0600; + args.mda_si_drv1 = periph; + error = make_dev_s(&args, &softc->dev, "%s%d", periph->periph_name, + periph->unit_number); + if (error != 0) { + cam_periph_lock(periph); + return (CAM_REQ_CMP_ERR); + } + softc->device_stats = devstat_new_entry("pt", periph->unit_number, 0, DEVSTAT_NO_BLOCKSIZE, @@ -289,11 +303,7 @@ ptctor(struct cam_periph *periph, void * XPORT_DEVSTAT_TYPE(cpi.transport), DEVSTAT_PRIORITY_OTHER); - softc->dev = make_dev(&pt_cdevsw, periph->unit_number, UID_ROOT, - GID_OPERATOR, 0600, "%s%d", periph->periph_name, - periph->unit_number); cam_periph_lock(periph); - softc->dev->si_drv1 = periph; /* * Add async callbacks for bus reset and @@ -571,9 +581,6 @@ ptioctl(struct cdev *dev, u_long cmd, ca int error = 0; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return(ENXIO); - softc = (struct pt_softc *)periph->softc; cam_periph_lock(periph); Modified: stable/10/sys/cam/scsi/scsi_sa.c ============================================================================== --- stable/10/sys/cam/scsi/scsi_sa.c Thu Jan 28 09:22:38 2016 (r294977) +++ stable/10/sys/cam/scsi/scsi_sa.c Thu Jan 28 09:25:15 2016 (r294978) @@ -730,9 +730,6 @@ saclose(struct cdev *dev, int flag, int mode = SAMODE(dev); periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); - cam_periph_lock(periph); softc = (struct sa_softc *)periph->softc; @@ -905,10 +902,6 @@ sastrategy(struct bio *bp) return; } periph = (struct cam_periph *)bp->bio_dev->si_drv1; - if (periph == NULL) { - biofinish(bp, NULL, ENXIO); - return; - } cam_periph_lock(periph); softc = (struct sa_softc *)periph->softc; @@ -1516,9 +1509,6 @@ saioctl(struct cdev *dev, u_long cmd, ca spaceop = 0; /* shut up gcc */ periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); - cam_periph_lock(periph); softc = (struct sa_softc *)periph->softc; @@ -2284,7 +2274,7 @@ saasync(void *callback_arg, u_int32_t co static void sasetupdev(struct sa_softc *softc, struct cdev *dev) { - dev->si_drv1 = softc->periph; + dev->si_iosize_max = softc->maxio; dev->si_flags |= softc->si_flags; /* @@ -2346,8 +2336,10 @@ saregister(struct cam_periph *periph, vo struct sa_softc *softc; struct ccb_getdev *cgd; struct ccb_pathinq cpi; + struct make_dev_args args; caddr_t match; char tmpstr[80]; + int error; cgd = (struct ccb_getdev *)arg; if (cgd == NULL) { @@ -2505,25 +2497,48 @@ saregister(struct cam_periph *periph, vo return (CAM_REQ_CMP_ERR); } - softc->devs.ctl_dev = make_dev(&sa_cdevsw, SAMINOR(SA_CTLDEV, - SA_ATYPE_R), UID_ROOT, GID_OPERATOR, - 0660, "%s%d.ctl", periph->periph_name, periph->unit_number); + make_dev_args_init(&args); + args.mda_devsw = &sa_cdevsw; + args.mda_si_drv1 = softc->periph; + args.mda_uid = UID_ROOT; + args.mda_gid = GID_OPERATOR; + args.mda_mode = 0660; + + args.mda_unit = SAMINOR(SA_CTLDEV, SA_ATYPE_R); + error = make_dev_s(&args, &softc->devs.ctl_dev, "%s%d.ctl", + periph->periph_name, periph->unit_number); + if (error != 0) { + cam_periph_lock(periph); + return (CAM_REQ_CMP_ERR); + } sasetupdev(softc, softc->devs.ctl_dev); - softc->devs.r_dev = make_dev(&sa_cdevsw, SAMINOR(SA_NOT_CTLDEV, - SA_ATYPE_R), UID_ROOT, GID_OPERATOR, - 0660, "%s%d", periph->periph_name, periph->unit_number); + args.mda_unit = SAMINOR(SA_NOT_CTLDEV, SA_ATYPE_R); + error = make_dev_s(&args, &softc->devs.r_dev, "%s%d", + periph->periph_name, periph->unit_number); + if (error != 0) { + cam_periph_lock(periph); + return (CAM_REQ_CMP_ERR); + } sasetupdev(softc, softc->devs.r_dev); - softc->devs.nr_dev = make_dev(&sa_cdevsw, SAMINOR(SA_NOT_CTLDEV, - SA_ATYPE_NR), UID_ROOT, GID_OPERATOR, - 0660, "n%s%d", periph->periph_name, periph->unit_number); + args.mda_unit = SAMINOR(SA_NOT_CTLDEV, SA_ATYPE_NR); + error = make_dev_s(&args, &softc->devs.nr_dev, "n%s%d", + periph->periph_name, periph->unit_number); + if (error != 0) { + cam_periph_lock(periph); + return (CAM_REQ_CMP_ERR); + } sasetupdev(softc, softc->devs.nr_dev); - softc->devs.er_dev = make_dev(&sa_cdevsw, SAMINOR(SA_NOT_CTLDEV, - SA_ATYPE_ER), UID_ROOT, GID_OPERATOR, - 0660, "e%s%d", periph->periph_name, periph->unit_number); - sasetupdev(softc, softc->devs.er_dev); + args.mda_unit = SAMINOR(SA_NOT_CTLDEV, SA_ATYPE_ER); + error = make_dev_s(&args, &softc->devs.er_dev, "e%s%d", + periph->periph_name, periph->unit_number); + if (error != 0) { + cam_periph_lock(periph); + return (CAM_REQ_CMP_ERR); + } + sasetupdev(softc, softc->devs.er_dev); cam_periph_lock(periph); Modified: stable/10/sys/cam/scsi/scsi_sg.c ============================================================================== --- stable/10/sys/cam/scsi/scsi_sg.c Thu Jan 28 09:22:38 2016 (r294977) +++ stable/10/sys/cam/scsi/scsi_sg.c Thu Jan 28 09:25:15 2016 (r294978) @@ -300,7 +300,8 @@ sgregister(struct cam_periph *periph, vo struct sg_softc *softc; struct ccb_getdev *cgd; struct ccb_pathinq cpi; - int no_tags; + struct make_dev_args args; + int no_tags, error; cgd = (struct ccb_getdev *)arg; if (cgd == NULL) { @@ -361,9 +362,20 @@ sgregister(struct cam_periph *periph, vo } /* Register the device */ - softc->dev = make_dev(&sg_cdevsw, periph->unit_number, - UID_ROOT, GID_OPERATOR, 0600, "%s%d", - periph->periph_name, periph->unit_number); + make_dev_args_init(&args); + args.mda_devsw = &sg_cdevsw; + args.mda_unit = periph->unit_number; + args.mda_uid = UID_ROOT; + args.mda_gid = GID_OPERATOR; + args.mda_mode = 0600; + args.mda_si_drv1 = periph; + error = make_dev_s(&args, &softc->dev, "%s%d", + periph->periph_name, periph->unit_number); + if (error != 0) { + cam_periph_lock(periph); + cam_periph_release_locked(periph); + return (CAM_REQ_CMP_ERR); + } if (periph->unit_number < 26) { (void)make_dev_alias(softc->dev, "sg%c", periph->unit_number + 'a'); @@ -373,7 +385,6 @@ sgregister(struct cam_periph *periph, vo (periph->unit_number % 26) + 'a'); } cam_periph_lock(periph); - softc->dev->si_drv1 = periph; /* * Add as async callback so that we get @@ -429,9 +440,6 @@ sgopen(struct cdev *dev, int flags, int int error = 0; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); - if (cam_periph_acquire(periph) != CAM_REQ_CMP) return (ENXIO); @@ -468,8 +476,6 @@ sgclose(struct cdev *dev, int flag, int struct mtx *mtx; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); mtx = cam_periph_mtx(periph); mtx_lock(mtx); @@ -506,9 +512,6 @@ sgioctl(struct cdev *dev, u_long cmd, ca int dir, error; periph = (struct cam_periph *)dev->si_drv1; - if (periph == NULL) - return (ENXIO); - cam_periph_lock(periph); softc = (struct sg_softc *)periph->softc; From owner-svn-src-all@freebsd.org Thu Jan 28 10:05:35 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4FE9A702C1; Thu, 28 Jan 2016 10:05:35 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 6F7A01735; Thu, 28 Jan 2016 10:05:35 +0000 (UTC) (envelope-from des@des.no) Received: from desk.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 7953B53B1; Thu, 28 Jan 2016 10:05:34 +0000 (UTC) Received: by desk.des.no (Postfix, from userid 1001) id 5BF7D48D8B; Thu, 28 Jan 2016 11:05:34 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Colin Percival Cc: NGie Cooper , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294909 - head/crypto/openssh References: <201601271340.u0RDeiU5060523@repo.freebsd.org> <7BEC31CD-F7AF-44B5-BBB5-9F4CAF3487A7@gmail.com> <86oac6f4xq.fsf@desk.des.no> <000001528781a663-adcfe209-147a-4fb4-83e4-e0911293f7f3-000000@email.amazonses.com> Date: Thu, 28 Jan 2016 11:05:34 +0100 In-Reply-To: <000001528781a663-adcfe209-147a-4fb4-83e4-e0911293f7f3-000000@email.amazonses.com> (Colin Percival's message of "Thu, 28 Jan 2016 09:12:47 +0000") Message-ID: <86fuxif28h.fsf@desk.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 10:05:35 -0000 Colin Percival writes: > At a guess, because NGie thinks that this is something which is important > enough to be worth mentioning in the FreeBSD release notes, and "Relnotes: > yes" flags the commit to the release engineering team for that purpose? UseDNS was (unintentionally) turned off in head last week, I just turned it back on. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@freebsd.org Thu Jan 28 12:00:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94929A706D7; Thu, 28 Jan 2016 12:00:18 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 669AA18B6; Thu, 28 Jan 2016 12:00:18 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SC0Hij054522; Thu, 28 Jan 2016 12:00:17 GMT (envelope-from wma@FreeBSD.org) Received: (from wma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SC0HLw054521; Thu, 28 Jan 2016 12:00:17 GMT (envelope-from wma@FreeBSD.org) Message-Id: <201601281200.u0SC0HLw054521@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wma set sender to wma@FreeBSD.org using -f From: Wojciech Macek Date: Thu, 28 Jan 2016 12:00:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294979 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:00:18 -0000 Author: wma Date: Thu Jan 28 12:00:17 2016 New Revision: 294979 URL: https://svnweb.freebsd.org/changeset/base/294979 Log: Fix mutex releasing in ARM64 cpu_switch The code should be comparing pointers, not any data gathered from a blocked_lock. Spotted by: cognet Approved by: zbb, cognet (mentor) Differential revision: https://reviews.freebsd.org/D5100 Modified: head/sys/arm64/arm64/swtch.S Modified: head/sys/arm64/arm64/swtch.S ============================================================================== --- head/sys/arm64/arm64/swtch.S Thu Jan 28 09:25:15 2016 (r294978) +++ head/sys/arm64/arm64/swtch.S Thu Jan 28 12:00:17 2016 (r294979) @@ -166,9 +166,8 @@ ENTRY(cpu_switch) */ str x2, [x0, #TD_LOCK] #if defined(SCHED_ULE) && defined(SMP) - /* Read the value in blocked_lock */ - ldr x0, =_C_LABEL(blocked_lock) - ldr x2, [x0] + /* Spin if TD_LOCK points to a blocked_lock */ + ldr x2, =_C_LABEL(blocked_lock) 1: ldar x3, [x1, #TD_LOCK] cmp x3, x2 From owner-svn-src-all@freebsd.org Thu Jan 28 12:03:31 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AB881A70B3B; Thu, 28 Jan 2016 12:03:31 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7A9501DDF; Thu, 28 Jan 2016 12:03:31 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SC3Uvp057101; Thu, 28 Jan 2016 12:03:30 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SC3U2W057100; Thu, 28 Jan 2016 12:03:30 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601281203.u0SC3U2W057100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 12:03:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294980 - stable/10/release/amd64 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:03:31 -0000 Author: smh Date: Thu Jan 28 12:03:30 2016 New Revision: 294980 URL: https://svnweb.freebsd.org/changeset/base/294980 Log: MFC r293831: Increase efiboot.img size used in ISO creation This changes mkisoimages-uefi.sh instead of mkisoimages.sh in r293831 due to refactor not MFC'ed. Sponsored by: Multiplay Modified: stable/10/release/amd64/mkisoimages-uefi.sh Directory Properties: stable/10/ (props changed) Modified: stable/10/release/amd64/mkisoimages-uefi.sh ============================================================================== --- stable/10/release/amd64/mkisoimages-uefi.sh Thu Jan 28 12:00:17 2016 (r294979) +++ stable/10/release/amd64/mkisoimages-uefi.sh Thu Jan 28 12:03:30 2016 (r294980) @@ -28,7 +28,7 @@ if [ "x$1" = "x-b" ]; then bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot" # Make EFI system partition (should be done with makefs in the future) - dd if=/dev/zero of=efiboot.img bs=4k count=100 + dd if=/dev/zero of=efiboot.img bs=4k count=200 device=`mdconfig -a -t vnode -f efiboot.img` newfs_msdos -F 12 -m 0xf8 /dev/$device mkdir efi From owner-svn-src-all@freebsd.org Thu Jan 28 12:11:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8950EA70E4D; Thu, 28 Jan 2016 12:11:48 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5216F13E3; Thu, 28 Jan 2016 12:11:48 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SCBlk0058196; Thu, 28 Jan 2016 12:11:47 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SCBhQG058154; Thu, 28 Jan 2016 12:11:43 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601281211.u0SCBhQG058154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 12:11:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294981 - in stable/10/sys/boot: common efi efi/boot1 efi/include efi/libefi efi/loader efi/loader/arch/amd64 fdt i386/libi386 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:11:48 -0000 Author: smh Date: Thu Jan 28 12:11:42 2016 New Revision: 294981 URL: https://svnweb.freebsd.org/changeset/base/294981 Log: MFC r281169, r293724, r293796, r294029, r294041, r294058 MFC r281169 (by andrew): Make global variabled only used in this file static MFC r294058: Make common boot file_loadraw name parameter const MFC r294041: Remove unused reg param from fdt_fixup_memory MFC r293724: Enable warnings in EFI boot code MFC r293796: Fix typo in libefi.c MFC r294029: Only build EFI components on supported compilers Sponsored by: Multiplay Modified: stable/10/sys/boot/common/bootstrap.h stable/10/sys/boot/common/load_elf.c stable/10/sys/boot/common/load_elf_obj.c stable/10/sys/boot/common/misc.c stable/10/sys/boot/common/module.c stable/10/sys/boot/common/part.c stable/10/sys/boot/common/self_reloc.c stable/10/sys/boot/common/ufsread.c stable/10/sys/boot/efi/Makefile stable/10/sys/boot/efi/boot1/Makefile stable/10/sys/boot/efi/boot1/boot1.c stable/10/sys/boot/efi/include/efi_nii.h stable/10/sys/boot/efi/include/efiapi.h stable/10/sys/boot/efi/include/eficon.h stable/10/sys/boot/efi/include/eficonsctl.h stable/10/sys/boot/efi/include/efidevp.h stable/10/sys/boot/efi/include/efierr.h stable/10/sys/boot/efi/include/efifpswa.h stable/10/sys/boot/efi/include/efigop.h stable/10/sys/boot/efi/include/efilib.h stable/10/sys/boot/efi/include/efinet.h stable/10/sys/boot/efi/include/efiprot.h stable/10/sys/boot/efi/include/efipxebc.h stable/10/sys/boot/efi/include/efiser.h stable/10/sys/boot/efi/libefi/Makefile stable/10/sys/boot/efi/libefi/efi_console.c stable/10/sys/boot/efi/libefi/efipart.c stable/10/sys/boot/efi/libefi/libefi.c stable/10/sys/boot/efi/loader/Makefile stable/10/sys/boot/efi/loader/arch/amd64/elf64_freebsd.c stable/10/sys/boot/efi/loader/arch/amd64/framebuffer.c stable/10/sys/boot/efi/loader/arch/amd64/reloc.c stable/10/sys/boot/efi/loader/autoload.c stable/10/sys/boot/efi/loader/bootinfo.c stable/10/sys/boot/efi/loader/copy.c stable/10/sys/boot/efi/loader/devicename.c stable/10/sys/boot/efi/loader/loader_efi.h stable/10/sys/boot/efi/loader/main.c stable/10/sys/boot/fdt/fdt_loader_cmd.c stable/10/sys/boot/i386/libi386/smbios.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/common/bootstrap.h ============================================================================== --- stable/10/sys/boot/common/bootstrap.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/common/bootstrap.h Thu Jan 28 12:11:42 2016 (r294981) @@ -233,7 +233,7 @@ int mod_loadkld(const char *name, int struct preloaded_file *file_alloc(void); struct preloaded_file *file_findfile(const char *name, const char *type); struct file_metadata *file_findmetadata(struct preloaded_file *fp, int type); -struct preloaded_file *file_loadraw(char *name, char *type, int insert); +struct preloaded_file *file_loadraw(const char *name, char *type, int insert); void file_discard(struct preloaded_file *fp); void file_addmetadata(struct preloaded_file *fp, int type, size_t size, void *p); int file_addmodule(struct preloaded_file *fp, char *modname, int version, Modified: stable/10/sys/boot/common/load_elf.c ============================================================================== --- stable/10/sys/boot/common/load_elf.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/common/load_elf.c Thu Jan 28 12:11:42 2016 (r294981) @@ -856,7 +856,7 @@ __elfN(parse_modmetadata)(struct preload error = __elfN(reloc_ptr)(fp, ef, v, &md, sizeof(md)); if (error == EOPNOTSUPP) { md.md_cval += ef->off; - md.md_data += ef->off; + md.md_data = (void *)((uintptr_t)md.md_data + ef->off); } else if (error != 0) return (error); #endif Modified: stable/10/sys/boot/common/load_elf_obj.c ============================================================================== --- stable/10/sys/boot/common/load_elf_obj.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/common/load_elf_obj.c Thu Jan 28 12:11:42 2016 (r294981) @@ -519,10 +519,8 @@ __elfN(obj_symaddr)(struct elf_file *ef, { Elf_Sym sym; Elf_Addr base; - int symcnt; - symcnt = ef->e_shdr[ef->symtabindex].sh_size / sizeof(Elf_Sym); - if (symidx >= symcnt) + if (symidx >= ef->e_shdr[ef->symtabindex].sh_size / sizeof(Elf_Sym)) return (0); COPYOUT(ef->e_shdr[ef->symtabindex].sh_addr + symidx * sizeof(Elf_Sym), &sym, sizeof(sym)); Modified: stable/10/sys/boot/common/misc.c ============================================================================== --- stable/10/sys/boot/common/misc.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/common/misc.c Thu Jan 28 12:11:42 2016 (r294981) @@ -118,14 +118,12 @@ kern_bzero(vm_offset_t dest, size_t len) int kern_pread(int fd, vm_offset_t dest, size_t len, off_t off) { - ssize_t nread; if (lseek(fd, off, SEEK_SET) == -1) { printf("\nlseek failed\n"); return (-1); } - nread = archsw.arch_readin(fd, dest, len); - if (nread != len) { + if ((size_t)archsw.arch_readin(fd, dest, len) != len) { printf("\nreadin failed\n"); return (-1); } @@ -140,7 +138,6 @@ void * alloc_pread(int fd, off_t off, size_t len) { void *buf; - ssize_t nread; buf = malloc(len); if (buf == NULL) { @@ -152,8 +149,7 @@ alloc_pread(int fd, off_t off, size_t le free(buf); return (NULL); } - nread = read(fd, buf, len); - if (nread != len) { + if ((size_t)read(fd, buf, len) != len) { printf("\nread failed\n"); free(buf); return (NULL); Modified: stable/10/sys/boot/common/module.c ============================================================================== --- stable/10/sys/boot/common/module.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/common/module.c Thu Jan 28 12:11:42 2016 (r294981) @@ -358,14 +358,14 @@ file_load_dependencies(struct preloaded_ } /* - * We've been asked to load (name) as (type), so just suck it in, + * We've been asked to load (fname) as (type), so just suck it in, * no arguments or anything. */ struct preloaded_file * -file_loadraw(char *name, char *type, int insert) +file_loadraw(const char *fname, char *type, int insert) { struct preloaded_file *fp; - char *cp; + char *name; int fd, got; vm_offset_t laddr; @@ -376,12 +376,11 @@ file_loadraw(char *name, char *type, int } /* locate the file on the load path */ - cp = file_search(name, NULL); - if (cp == NULL) { - sprintf(command_errbuf, "can't find '%s'", name); + name = file_search(fname, NULL); + if (name == NULL) { + sprintf(command_errbuf, "can't find '%s'", fname); return(NULL); } - name = cp; if ((fd = open(name, O_RDONLY)) < 0) { sprintf(command_errbuf, "can't open '%s': %s", name, strerror(errno)); @@ -962,7 +961,7 @@ moduledir_rebuild(void) { struct moduledir *mdp, *mtmp; const char *path, *cp, *ep; - int cplen; + size_t cplen; path = getenv("module_path"); if (path == NULL) Modified: stable/10/sys/boot/common/part.c ============================================================================== --- stable/10/sys/boot/common/part.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/common/part.c Thu Jan 28 12:11:42 2016 (r294981) @@ -102,7 +102,7 @@ static struct parttypes { const char * parttype2str(enum partition_type type) { - int i; + size_t i; for (i = 0; i < sizeof(ptypes) / sizeof(ptypes[0]); i++) if (ptypes[i].type == type) @@ -203,7 +203,7 @@ gpt_checktbl(const struct gpt_hdr *hdr, uint64_t lba_last) { struct gpt_ent *ent; - int i, cnt; + uint32_t i, cnt; cnt = size / hdr->hdr_entsz; if (hdr->hdr_entries <= cnt) { @@ -234,8 +234,8 @@ ptable_gptread(struct ptable *table, voi struct gpt_ent *ent; u_char *buf, *tbl; uint64_t offset; - int pri, sec, i; - size_t size; + int pri, sec; + size_t size, i; buf = malloc(table->sectorsize); if (buf == NULL) @@ -358,7 +358,7 @@ mbr_parttype(uint8_t type) return (PART_UNKNOWN); } -struct ptable* +static struct ptable* ptable_ebrread(struct ptable *table, void *dev, diskread_t dread) { struct dos_partition *dp; @@ -435,7 +435,7 @@ bsd_parttype(uint8_t type) return (PART_UNKNOWN); } -struct ptable* +static struct ptable* ptable_bsdread(struct ptable *table, void *dev, diskread_t dread) { struct disklabel *dl; Modified: stable/10/sys/boot/common/self_reloc.c ============================================================================== --- stable/10/sys/boot/common/self_reloc.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/common/self_reloc.c Thu Jan 28 12:11:42 2016 (r294981) @@ -61,6 +61,8 @@ __FBSDID("$FreeBSD$"); #define RELOC_TYPE_RELATIVE R_386_RELATIVE #endif +void self_reloc(Elf_Addr baseaddr, ElfW_Dyn *dynamic); + /* * A simple elf relocator. */ @@ -118,6 +120,6 @@ self_reloc(Elf_Addr baseaddr, ElfW_Dyn * /* XXX: do we need other relocations ? */ break; } - rel = (ElfW_Rel *) ((caddr_t) rel + relent); + rel = (ElfW_Rel *)(void *)((caddr_t) rel + relent); } } Modified: stable/10/sys/boot/common/ufsread.c ============================================================================== --- stable/10/sys/boot/common/ufsread.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/common/ufsread.c Thu Jan 28 12:11:42 2016 (r294981) @@ -207,7 +207,7 @@ fsread(ufs_ino_t inode, void *buf, size_ #endif ) && fs.fs_bsize <= MAXBSIZE && - fs.fs_bsize >= sizeof(struct fs)) + fs.fs_bsize >= (int32_t)sizeof(struct fs)) break; } if (sblock_try[n] == -1) { @@ -231,10 +231,10 @@ fsread(ufs_ino_t inode, void *buf, size_ sizeof(struct ufs2_dinode)); #else if (fs.fs_magic == FS_UFS1_MAGIC) - memcpy(&dp1, (struct ufs1_dinode *)blkbuf + n, + memcpy(&dp1, (struct ufs1_dinode *)(void *)blkbuf + n, sizeof(struct ufs1_dinode)); else - memcpy(&dp2, (struct ufs2_dinode *)blkbuf + n, + memcpy(&dp2, (struct ufs2_dinode *)(void *)blkbuf + n, sizeof(struct ufs2_dinode)); #endif inomap = inode; @@ -283,7 +283,7 @@ fsread(ufs_ino_t inode, void *buf, size_ return -1; vbaddr = fsbtodb(&fs, addr2) + (off >> VBLKSHIFT) * DBPERVBLK; vboff = off & VBLKMASK; - n = sblksize(&fs, size, lbn) - (off & ~VBLKMASK); + n = sblksize(&fs, (off_t)size, lbn) - (off & ~VBLKMASK); if (n > VBLKSIZE) n = VBLKSIZE; if (blkmap != vbaddr) { Modified: stable/10/sys/boot/efi/Makefile ============================================================================== --- stable/10/sys/boot/efi/Makefile Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/Makefile Thu Jan 28 12:11:42 2016 (r294981) @@ -1,9 +1,13 @@ # $FreeBSD$ -SUBDIR= libefi +# In-tree GCC does not support __attribute__((ms_abi)). +.if ${COMPILER_TYPE} != "gcc" .if ${MACHINE_CPUARCH} == "amd64" -SUBDIR+= loader boot1 +SUBDIR+= libefi loader boot1 .endif +.endif # ${COMPILER_TYPE} != "gcc" + .include + Modified: stable/10/sys/boot/efi/boot1/Makefile ============================================================================== --- stable/10/sys/boot/efi/boot1/Makefile Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/boot1/Makefile Thu Jan 28 12:11:42 2016 (r294981) @@ -4,13 +4,11 @@ MAN= .include -# In-tree GCC does not support __attribute__((ms_abi)). -.if ${COMPILER_TYPE} != "gcc" - MK_SSP= no PROG= boot1.sym INTERNALPROG= +WARNS?= 6 # architecture-specific loader code SRCS= boot1.c reloc.c start.S @@ -81,8 +79,6 @@ boot1.efifat: boot1.efi CLEANFILES= boot1.efi boot1.efifat -.endif # ${COMPILER_TYPE} != "gcc" - .include .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" Modified: stable/10/sys/boot/efi/boot1/boot1.c ============================================================================== --- stable/10/sys/boot/efi/boot1/boot1.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/boot1/boot1.c Thu Jan 28 12:11:42 2016 (r294981) @@ -36,12 +36,13 @@ __FBSDID("$FreeBSD$"); void panic(const char *fmt, ...) __dead2; void putchar(int c); +EFI_STATUS efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE* Xsystab); static int domount(EFI_DEVICE_PATH *device, EFI_BLOCK_IO *blkio, int quiet); static void load(const char *fname); -EFI_SYSTEM_TABLE *systab; -EFI_HANDLE *image; +static EFI_SYSTEM_TABLE *systab; +static EFI_HANDLE *image; static EFI_GUID BlockIoProtocolGUID = BLOCK_IO_PROTOCOL; static EFI_GUID DevicePathGUID = DEVICE_PATH_PROTOCOL; @@ -62,7 +63,7 @@ EFI_STATUS efi_main(EFI_HANDLE Ximage, E EFI_BOOT_SERVICES *BS; EFI_CONSOLE_CONTROL_PROTOCOL *ConsoleControl = NULL; SIMPLE_TEXT_OUTPUT_INTERFACE *conout = NULL; - char *path = _PATH_LOADER; + const char *path = _PATH_LOADER; systab = Xsystab; image = Ximage; @@ -156,7 +157,6 @@ fsstat(ufs_ino_t inode) { #ifndef UFS2_ONLY static struct ufs1_dinode dp1; - ufs1_daddr_t addr1; #endif #ifndef UFS1_ONLY static struct ufs2_dinode dp2; @@ -165,11 +165,8 @@ fsstat(ufs_ino_t inode) static ufs_ino_t inomap; char *blkbuf; void *indbuf; - size_t n, nb, size, off, vboff; - ufs_lbn_t lbn; - ufs2_daddr_t addr2, vbaddr; + size_t n, size; static ufs2_daddr_t blkmap, indmap; - u_int u; blkbuf = dmadat->blkbuf; indbuf = dmadat->indbuf; @@ -193,7 +190,7 @@ fsstat(ufs_ino_t inode) #endif ) && fs.fs_bsize <= MAXBSIZE && - fs.fs_bsize >= sizeof(struct fs)) + fs.fs_bsize >= (int32_t)sizeof(struct fs)) break; } if (sblock_try[n] == -1) { @@ -217,10 +214,10 @@ fsstat(ufs_ino_t inode) sizeof(struct ufs2_dinode)); #else if (fs.fs_magic == FS_UFS1_MAGIC) - memcpy(&dp1, (struct ufs1_dinode *)blkbuf + n, + memcpy(&dp1, (struct ufs1_dinode *)(void *)blkbuf + n, sizeof(struct ufs1_dinode)); else - memcpy(&dp2, (struct ufs2_dinode *)blkbuf + n, + memcpy(&dp2, (struct ufs2_dinode *)(void *)blkbuf + n, sizeof(struct ufs2_dinode)); #endif inomap = inode; Modified: stable/10/sys/boot/efi/include/efi_nii.h ============================================================================== --- stable/10/sys/boot/efi/include/efi_nii.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efi_nii.h Thu Jan 28 12:11:42 2016 (r294981) @@ -26,9 +26,9 @@ Revision history: --*/ #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL \ - { 0xE18541CD, 0xF755, 0x4f73, 0x92, 0x8D, 0x64, 0x3C, 0x8A, 0x79, 0xB2, 0x29 } + { 0xE18541CD, 0xF755, 0x4f73, {0x92, 0x8D, 0x64, 0x3C, 0x8A, 0x79, 0xB2, 0x29} } #define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_31 \ - { 0x1ACED566, 0x76ED, 0x4218, 0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 } + { 0x1ACED566, 0x76ED, 0x4218, {0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89} } #define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION 0x00010000 #define EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE_REVISION_31 0x00010001 Modified: stable/10/sys/boot/efi/include/efiapi.h ============================================================================== --- stable/10/sys/boot/efi/include/efiapi.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efiapi.h Thu Jan 28 12:11:42 2016 (r294981) @@ -214,8 +214,8 @@ VOID // EFI platform varibles // -#define EFI_GLOBAL_VARIABLE \ - { 0x8BE4DF61, 0x93CA, 0x11d2, 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C } +#define EFI_GLOBAL_VARIABLE \ + { 0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C} } // Variable attributes #define EFI_VARIABLE_NON_VOLATILE 0x00000001 @@ -367,8 +367,8 @@ EFI_STATUS // Image handle -#define LOADED_IMAGE_PROTOCOL \ - { 0x5B1B31A1, 0x9562, 0x11d2, 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B } +#define LOADED_IMAGE_PROTOCOL \ + { 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} } #define EFI_LOADED_IMAGE_INFORMATION_REVISION 0x1000 typedef struct { @@ -831,35 +831,35 @@ typedef struct { // EFI Configuration Table and GUID definitions // -#define MPS_TABLE_GUID \ - { 0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } +#define MPS_TABLE_GUID \ + { 0xeb9d2d2f, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } -#define ACPI_TABLE_GUID \ - { 0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } +#define ACPI_TABLE_GUID \ + { 0xeb9d2d30, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } -#define ACPI_20_TABLE_GUID \ - { 0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } +#define ACPI_20_TABLE_GUID \ + { 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} } -#define SMBIOS_TABLE_GUID \ - { 0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } +#define SMBIOS_TABLE_GUID \ + { 0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } -#define SAL_SYSTEM_TABLE_GUID \ - { 0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } +#define SAL_SYSTEM_TABLE_GUID \ + { 0xeb9d2d32, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } -#define FDT_TABLE_GUID \ - { 0xb1b621d5, 0xf19c, 0x41a5, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 } +#define FDT_TABLE_GUID \ + { 0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0} } -#define DXE_SERVICES_TABLE_GUID \ - { 0x5ad34ba, 0x6f02, 0x4214, 0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9 } +#define DXE_SERVICES_TABLE_GUID \ + { 0x5ad34ba, 0x6f02, 0x4214, {0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9} } -#define HOB_LIST_TABLE_GUID \ - { 0x7739f24c, 0x93d7, 0x11d4, 0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } +#define HOB_LIST_TABLE_GUID \ + { 0x7739f24c, 0x93d7, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } #define MEMORY_TYPE_INFORMATION_TABLE_GUID \ - { 0x4c19049f, 0x4137, 0x4dd3, 0x9c, 0x10, 0x8b, 0x97, 0xa8, 0x3f, 0xfd, 0xfa } + { 0x4c19049f, 0x4137, 0x4dd3, {0x9c, 0x10, 0x8b, 0x97, 0xa8, 0x3f, 0xfd, 0xfa} } #define DEBUG_IMAGE_INFO_TABLE_GUID \ - { 0x49152e77, 0x1ada, 0x4764, 0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b } + { 0x49152e77, 0x1ada, 0x4764, {0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b} } typedef struct _EFI_CONFIGURATION_TABLE { EFI_GUID VendorGuid; Modified: stable/10/sys/boot/efi/include/eficon.h ============================================================================== --- stable/10/sys/boot/efi/include/eficon.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/eficon.h Thu Jan 28 12:11:42 2016 (r294981) @@ -32,7 +32,7 @@ Revision History // #define SIMPLE_TEXT_OUTPUT_PROTOCOL \ - { 0x387477c2, 0x69c7, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } + { 0x387477c2, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } INTERFACE_DECL(_SIMPLE_TEXT_OUTPUT_INTERFACE); @@ -239,8 +239,8 @@ typedef struct _SIMPLE_TEXT_OUTPUT_INTER // Text input protocol // -#define SIMPLE_TEXT_INPUT_PROTOCOL \ - { 0x387477c1, 0x69c7, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } +#define SIMPLE_TEXT_INPUT_PROTOCOL \ + { 0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } INTERFACE_DECL(_SIMPLE_INPUT_INTERFACE); Modified: stable/10/sys/boot/efi/include/eficonsctl.h ============================================================================== --- stable/10/sys/boot/efi/include/eficonsctl.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/eficonsctl.h Thu Jan 28 12:11:42 2016 (r294981) @@ -35,7 +35,7 @@ #define _EFI_CONS_CTL_H #define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \ - { 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21} } + { 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21} } typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL; Modified: stable/10/sys/boot/efi/include/efidevp.h ============================================================================== --- stable/10/sys/boot/efi/include/efidevp.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efidevp.h Thu Jan 28 12:11:42 2016 (r294981) @@ -110,7 +110,7 @@ typedef struct _VENDOR_DEVICE_PATH { } VENDOR_DEVICE_PATH; #define UNKNOWN_DEVICE_GUID \ - { 0xcf31fac5, 0xc24e, 0x11d2, 0x85, 0xf3, 0x0, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b } + { 0xcf31fac5, 0xc24e, 0x11d2, {0x85, 0xf3, 0x0, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b} } typedef struct _UKNOWN_DEVICE_VENDOR_DP { VENDOR_DEVICE_PATH DevicePath; @@ -274,16 +274,16 @@ typedef struct _UART_DEVICE_PATH { /* Use VENDOR_DEVICE_PATH struct */ #define DEVICE_PATH_MESSAGING_PC_ANSI \ - { 0xe0c14753, 0xf9be, 0x11d2, 0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } + { 0xe0c14753, 0xf9be, 0x11d2, {0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } #define DEVICE_PATH_MESSAGING_VT_100 \ - { 0xdfa66065, 0xb419, 0x11d3, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } + { 0xdfa66065, 0xb419, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } #define DEVICE_PATH_MESSAGING_VT_100_PLUS \ - { 0x7baec70b, 0x57e0, 0x4c76, 0x8e, 0x87, 0x2f, 0x9e, 0x28, 0x08, 0x83, 0x43 } + { 0x7baec70b, 0x57e0, 0x4c76, {0x8e, 0x87, 0x2f, 0x9e, 0x28, 0x08, 0x83, 0x43} } #define DEVICE_PATH_MESSAGING_VT_UTF8 \ - { 0xad15a0d6, 0x8bec, 0x4acf, 0xa0, 0x73, 0xd0, 0x1d, 0xe7, 0x7e, 0x2d, 0x88 } + { 0xad15a0d6, 0x8bec, 0x4acf, {0xa0, 0x73, 0xd0, 0x1d, 0xe7, 0x7e, 0x2d, 0x88} } #define MEDIA_DEVICE_PATH 0x04 Modified: stable/10/sys/boot/efi/include/efierr.h ============================================================================== --- stable/10/sys/boot/efi/include/efierr.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efierr.h Thu Jan 28 12:11:42 2016 (r294981) @@ -31,7 +31,7 @@ Revision History #define EFIWARN(a) (a) #define EFI_ERROR(a) (((INTN) a) < 0) -#define EFI_ERROR_CODE(a) (a & ~EFI_ERROR_MASK) +#define EFI_ERROR_CODE(a) (unsigned long)(a & ~EFI_ERROR_MASK) #define EFI_SUCCESS 0 Modified: stable/10/sys/boot/efi/include/efifpswa.h ============================================================================== --- stable/10/sys/boot/efi/include/efifpswa.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efifpswa.h Thu Jan 28 12:11:42 2016 (r294981) @@ -7,7 +7,7 @@ */ #define EFI_INTEL_FPSWA \ - { 0xc41b6531, 0x97b9, 0x11d3, 0x9a, 0x29, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } + { 0xc41b6531, 0x97b9, 0x11d3, {0x9a, 0x29, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } INTERFACE_DECL(_FPSWA_INTERFACE); Modified: stable/10/sys/boot/efi/include/efigop.h ============================================================================== --- stable/10/sys/boot/efi/include/efigop.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efigop.h Thu Jan 28 12:11:42 2016 (r294981) @@ -27,9 +27,8 @@ Revision History #ifndef _EFIGOP_H #define _EFIGOP_H -#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \ - { 0x9042a9de, 0x23dc, 0x4a38, 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, \ - 0x51, 0x6a } +#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \ + { 0x9042a9de, 0x23dc, 0x4a38, {0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a} } INTERFACE_DECL(_EFI_GRAPHICS_OUTPUT); Modified: stable/10/sys/boot/efi/include/efilib.h ============================================================================== --- stable/10/sys/boot/efi/include/efilib.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efilib.h Thu Jan 28 12:11:42 2016 (r294981) @@ -50,3 +50,4 @@ time_t efi_time(EFI_TIME *); EFI_STATUS main(int argc, CHAR16 *argv[]); void exit(EFI_STATUS status); +void delay(int usecs); Modified: stable/10/sys/boot/efi/include/efinet.h ============================================================================== --- stable/10/sys/boot/efi/include/efinet.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efinet.h Thu Jan 28 12:11:42 2016 (r294981) @@ -29,7 +29,7 @@ Revision History // #define EFI_SIMPLE_NETWORK_PROTOCOL \ - { 0xA19832B9, 0xAC25, 0x11D3, 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } + { 0xA19832B9, 0xAC25, 0x11D3, {0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D} } INTERFACE_DECL(_EFI_SIMPLE_NETWORK); Modified: stable/10/sys/boot/efi/include/efiprot.h ============================================================================== --- stable/10/sys/boot/efi/include/efiprot.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efiprot.h Thu Jan 28 12:11:42 2016 (r294981) @@ -31,8 +31,8 @@ Revision History // Device Path protocol // -#define DEVICE_PATH_PROTOCOL \ - { 0x9576e91, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } +#define DEVICE_PATH_PROTOCOL \ + { 0x9576e91, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } // @@ -40,7 +40,7 @@ Revision History // #define BLOCK_IO_PROTOCOL \ - { 0x964e5b21, 0x6459, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } + { 0x964e5b21, 0x6459, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } #define EFI_BLOCK_IO_INTERFACE_REVISION 0x00010000 INTERFACE_DECL(_EFI_BLOCK_IO); @@ -116,7 +116,7 @@ typedef struct _EFI_BLOCK_IO { // #define DISK_IO_PROTOCOL \ - { 0xce345171, 0xba0b, 0x11d2, 0x8e, 0x4f, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } + { 0xce345171, 0xba0b, 0x11d2, {0x8e, 0x4f, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } #define EFI_DISK_IO_INTERFACE_REVISION 0x00010000 INTERFACE_DECL(_EFI_DISK_IO); @@ -155,7 +155,7 @@ typedef struct _EFI_DISK_IO { // #define SIMPLE_FILE_SYSTEM_PROTOCOL \ - { 0x964e5b22, 0x6459, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } + { 0x964e5b22, 0x6459, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } INTERFACE_DECL(_EFI_FILE_IO_INTERFACE); INTERFACE_DECL(_EFI_FILE_HANDLE); @@ -290,8 +290,8 @@ typedef struct _EFI_FILE_HANDLE { // File information types // -#define EFI_FILE_INFO_ID \ - { 0x9576e92, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } +#define EFI_FILE_INFO_ID \ + { 0x9576e92, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } typedef struct { UINT64 Size; @@ -314,8 +314,8 @@ typedef struct { #define SIZE_OF_EFI_FILE_INFO EFI_FIELD_OFFSET(EFI_FILE_INFO,FileName) -#define EFI_FILE_SYSTEM_INFO_ID \ - { 0x9576e93, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } +#define EFI_FILE_SYSTEM_INFO_ID \ + { 0x9576e93, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } typedef struct { UINT64 Size; @@ -336,8 +336,8 @@ typedef struct { #define SIZE_OF_EFI_FILE_SYSTEM_INFO EFI_FIELD_OFFSET(EFI_FILE_SYSTEM_INFO,VolumeLabel) -#define EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID \ - { 0xDB47D7D3,0xFE81, 0x11d3, 0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } +#define EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID \ + { 0xDB47D7D3,0xFE81, 0x11d3, {0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D} } typedef struct { CHAR16 VolumeLabel[1]; @@ -351,7 +351,7 @@ typedef struct { #define LOAD_FILE_PROTOCOL \ - { 0x56EC3091, 0x954C, 0x11d2, 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B } + { 0x56EC3091, 0x954C, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} } INTERFACE_DECL(_EFI_LOAD_FILE_INTERFACE); @@ -375,7 +375,7 @@ typedef struct _EFI_LOAD_FILE_INTERFACE // #define DEVICE_IO_PROTOCOL \ - { 0xaf6ac311, 0x84c3, 0x11d2, 0x8e, 0x3c, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } + { 0xaf6ac311, 0x84c3, 0x11d2, {0x8e, 0x3c, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } INTERFACE_DECL(_EFI_DEVICE_IO_INTERFACE); @@ -485,7 +485,7 @@ typedef struct _EFI_DEVICE_IO_INTERFACE // #define UNICODE_COLLATION_PROTOCOL \ - { 0x1d85cd7f, 0xf43d, 0x11d2, 0x9a, 0xc, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } + { 0x1d85cd7f, 0xf43d, 0x11d2, {0x9a, 0xc, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } #define UNICODE_BYTE_ORDER_MARK (CHAR16)(0xfeff) Modified: stable/10/sys/boot/efi/include/efipxebc.h ============================================================================== --- stable/10/sys/boot/efi/include/efipxebc.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efipxebc.h Thu Jan 28 12:11:42 2016 (r294981) @@ -32,7 +32,7 @@ Revision History // #define EFI_PXE_BASE_CODE_PROTOCOL \ - { 0x03c4e603, 0xac28, 0x11d3, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } + { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } INTERFACE_DECL(_EFI_PXE_BASE_CODE); @@ -425,7 +425,7 @@ typedef struct _EFI_PXE_BASE_CODE { // #define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL \ - { 0x245dca21, 0xfb7b, 0x11d3, 0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } + { 0x245dca21, 0xfb7b, 0x11d3, {0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } // // Revision Number Modified: stable/10/sys/boot/efi/include/efiser.h ============================================================================== --- stable/10/sys/boot/efi/include/efiser.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/include/efiser.h Thu Jan 28 12:11:42 2016 (r294981) @@ -30,7 +30,7 @@ Revision History // #define SERIAL_IO_PROTOCOL \ - { 0xBB25CF6F, 0xF1D4, 0x11D2, 0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD } + { 0xBB25CF6F, 0xF1D4, 0x11D2, {0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD} } INTERFACE_DECL(_SERIAL_IO_INTERFACE); Modified: stable/10/sys/boot/efi/libefi/Makefile ============================================================================== --- stable/10/sys/boot/efi/libefi/Makefile Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/libefi/Makefile Thu Jan 28 12:11:42 2016 (r294981) @@ -2,6 +2,7 @@ LIB= efi INTERNALLIB= +WARNS?= 2 SRCS= delay.c efi_console.c efinet.c efipart.c errno.c handles.c \ libefi.c time.c Modified: stable/10/sys/boot/efi/libefi/efi_console.c ============================================================================== --- stable/10/sys/boot/efi/libefi/efi_console.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/libefi/efi_console.c Thu Jan 28 12:11:42 2016 (r294981) @@ -47,6 +47,8 @@ static int esc; void get_pos(int *x, int *y); void curs_move(int *_x, int *_y, int x, int y); static void CL(int); +void HO(void); +void end_term(void); #endif static void efi_cons_probe(struct console *); Modified: stable/10/sys/boot/efi/libefi/efipart.c ============================================================================== --- stable/10/sys/boot/efi/libefi/efipart.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/libefi/efipart.c Thu Jan 28 12:11:42 2016 (r294981) @@ -67,7 +67,6 @@ efipart_init(void) EFI_HANDLE *hin, *hout, *aliases, handle; EFI_STATUS status; UINTN sz; - CHAR16 *path; u_int n, nin, nout; int err; size_t devpathlen; Modified: stable/10/sys/boot/efi/libefi/libefi.c ============================================================================== --- stable/10/sys/boot/efi/libefi/libefi.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/libefi/libefi.c Thu Jan 28 12:11:42 2016 (r294981) @@ -179,7 +179,7 @@ efi_main(EFI_HANDLE image_handle, EFI_SY argv = malloc((argc + 1) * sizeof(CHAR16*)); argc = 0; if (addprog) - argv[argc++] = L"loader.efi"; + argv[argc++] = (CHAR16 *)L"loader.efi"; argp = args; while (argp != NULL && *argp != 0) { argp = arg_skipsep(argp); Modified: stable/10/sys/boot/efi/loader/Makefile ============================================================================== --- stable/10/sys/boot/efi/loader/Makefile Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/Makefile Thu Jan 28 12:11:42 2016 (r294981) @@ -4,13 +4,11 @@ MAN= .include -# In-tree GCC does not support __attribute__((ms_abi)). -.if ${COMPILER_TYPE} != "gcc" - MK_SSP= no PROG= loader.sym INTERNALPROG= +WARNS?= 3 # architecture-specific loader code SRCS= autoload.c \ @@ -94,8 +92,6 @@ LIBEFI= ${.OBJDIR}/../libefi/libefi.a DPADD= ${LIBFICL} ${LIBEFI} ${LIBSTAND} ${LDSCRIPT} LDADD= ${LIBFICL} ${LIBEFI} ${LIBSTAND} -.endif # ${COMPILER_TYPE} != "gcc" - .include beforedepend ${OBJS}: machine x86 Modified: stable/10/sys/boot/efi/loader/arch/amd64/elf64_freebsd.c ============================================================================== --- stable/10/sys/boot/efi/loader/arch/amd64/elf64_freebsd.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/arch/amd64/elf64_freebsd.c Thu Jan 28 12:11:42 2016 (r294981) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include "platform/acfreebsd.h" #include "acconfig.h" #define ACPI_SYSTEM_XFACE +#define ACPI_USE_SYSTEM_INTTYPES #include "actypes.h" #include "actbl.h" @@ -100,7 +101,6 @@ elf64_exec(struct preloaded_file *fp) ACPI_TABLE_RSDP *rsdp; char buf[24]; int revision; - EFI_STATUS status; rsdp = efi_get_table(&acpi20_guid); if (rsdp == NULL) { Modified: stable/10/sys/boot/efi/loader/arch/amd64/framebuffer.c ============================================================================== --- stable/10/sys/boot/efi/loader/arch/amd64/framebuffer.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/arch/amd64/framebuffer.c Thu Jan 28 12:11:42 2016 (r294981) @@ -35,6 +35,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include "framebuffer.h" + static EFI_GUID gop_guid = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID; int Modified: stable/10/sys/boot/efi/loader/arch/amd64/reloc.c ============================================================================== --- stable/10/sys/boot/efi/loader/arch/amd64/reloc.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/arch/amd64/reloc.c Thu Jan 28 12:11:42 2016 (r294981) @@ -42,12 +42,15 @@ __FBSDID("$FreeBSD$"); #define ELFW_R_TYPE ELF64_R_TYPE #endif +EFI_STATUS _reloc(unsigned long ImageBase, ElfW_Dyn *dynamic, EFI_HANDLE image_handle __unused, + EFI_SYSTEM_TABLE *system_table __unused); + /* * A simple relocator for IA32/AMD64 EFI binaries. */ EFI_STATUS -_reloc(unsigned long ImageBase, ElfW_Dyn *dynamic, EFI_HANDLE image_handle, - EFI_SYSTEM_TABLE *system_table) +_reloc(unsigned long ImageBase, ElfW_Dyn *dynamic, EFI_HANDLE image_handle __unused, + EFI_SYSTEM_TABLE *system_table __unused) { unsigned long relsz, relent; unsigned long *newaddr; @@ -100,7 +103,7 @@ _reloc(unsigned long ImageBase, ElfW_Dyn /* XXX: do we need other relocations ? */ break; } - rel = (ElfW_Rel *) ((caddr_t) rel + relent); + rel = (ElfW_Rel *)(void *) ((caddr_t) rel + relent); } return (EFI_SUCCESS); Modified: stable/10/sys/boot/efi/loader/autoload.c ============================================================================== --- stable/10/sys/boot/efi/loader/autoload.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/autoload.c Thu Jan 28 12:11:42 2016 (r294981) @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "loader_efi.h" + int efi_autoload(void) { Modified: stable/10/sys/boot/efi/loader/bootinfo.c ============================================================================== --- stable/10/sys/boot/efi/loader/bootinfo.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/bootinfo.c Thu Jan 28 12:11:42 2016 (r294981) @@ -48,6 +48,8 @@ __FBSDID("$FreeBSD$"); #include "framebuffer.h" #include "loader_efi.h" +int bi_load(char *args, vm_offset_t *modulep, vm_offset_t *kernendp); + static const char howto_switches[] = "aCdrgDmphsv"; static int howto_masks[] = { RB_ASKNAME, RB_CDROM, RB_KDB, RB_DFLTROOT, RB_GDB, RB_MULTIPLE, @@ -113,7 +115,7 @@ bi_copyenv(vm_offset_t start) /* Traverse the environment. */ for (ep = environ; ep != NULL; ep = ep->ev_next) { len = strlen(ep->ev_name); - if (archsw.arch_copyin(ep->ev_name, addr, len) != len) + if ((size_t)archsw.arch_copyin(ep->ev_name, addr, len) != len) break; addr += len; if (archsw.arch_copyin("=", addr, 1) != 1) @@ -121,7 +123,7 @@ bi_copyenv(vm_offset_t start) addr++; if (ep->ev_value != NULL) { len = strlen(ep->ev_value); - if (archsw.arch_copyin(ep->ev_value, addr, len) != len) + if ((size_t)archsw.arch_copyin(ep->ev_value, addr, len) != len) break; addr += len; } Modified: stable/10/sys/boot/efi/loader/copy.c ============================================================================== --- stable/10/sys/boot/efi/loader/copy.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/copy.c Thu Jan 28 12:11:42 2016 (r294981) @@ -37,6 +37,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include "loader_efi.h" + #ifndef EFI_STAGING_SIZE #define EFI_STAGING_SIZE 48 #endif Modified: stable/10/sys/boot/efi/loader/devicename.c ============================================================================== --- stable/10/sys/boot/efi/loader/devicename.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/devicename.c Thu Jan 28 12:11:42 2016 (r294981) @@ -31,11 +31,13 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include "bootstrap.h" +#include #include #include +#include "loader_efi.h" + static int efi_parsedev(struct devdesc **, const char *, const char **); /* Modified: stable/10/sys/boot/efi/loader/loader_efi.h ============================================================================== --- stable/10/sys/boot/efi/loader/loader_efi.h Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/loader_efi.h Thu Jan 28 12:11:42 2016 (r294981) @@ -31,6 +31,8 @@ #ifndef _LOADER_EFI_COPY_H_ #define _LOADER_EFI_COPY_H_ +#include + int efi_autoload(void); int efi_getdev(void **vdev, const char *devspec, const char **path); Modified: stable/10/sys/boot/efi/loader/main.c ============================================================================== --- stable/10/sys/boot/efi/loader/main.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/efi/loader/main.c Thu Jan 28 12:11:42 2016 (r294981) @@ -67,6 +67,7 @@ main(int argc, CHAR16 *argv[]) EFI_LOADED_IMAGE *img; EFI_GUID *guid; int i, j, vargood; + UINTN k; /* * XXX Chicken-and-egg problem; we want to have console output @@ -154,10 +155,10 @@ main(int argc, CHAR16 *argv[]) archsw.arch_copyout = efi_copyout; archsw.arch_readin = efi_readin; - for (i = 0; i < ST->NumberOfTableEntries; i++) { - guid = &ST->ConfigurationTable[i].VendorGuid; + for (k = 0; k < ST->NumberOfTableEntries; k++) { + guid = &ST->ConfigurationTable[k].VendorGuid; if (!memcmp(guid, &smbios, sizeof(EFI_GUID))) { - smbios_detect(ST->ConfigurationTable[i].VendorTable); + smbios_detect(ST->ConfigurationTable[k].VendorTable); break; } } @@ -241,8 +242,9 @@ command_memmap(int argc, char *argv[]) for (i = 0, p = map; i < ndesc; i++, p = NextMemoryDescriptor(p, dsz)) { - printf("%23s %012lx %012lx %08lx ", types[p->Type], - p->PhysicalStart, p->VirtualStart, p->NumberOfPages); + printf("%23s %012jx %012jx %08jx ", types[p->Type], + (uintmax_t)p->PhysicalStart, (uintmax_t)p->VirtualStart, + (uintmax_t)p->NumberOfPages); if (p->Attribute & EFI_MEMORY_UC) printf("UC "); if (p->Attribute & EFI_MEMORY_WC) @@ -283,9 +285,10 @@ guid_to_string(EFI_GUID *guid) static int command_configuration(int argc, char *argv[]) { - int i; + UINTN i; - printf("NumberOfTableEntries=%ld\n", ST->NumberOfTableEntries); + printf("NumberOfTableEntries=%lu\n", + (unsigned long)ST->NumberOfTableEntries); for (i = 0; i < ST->NumberOfTableEntries; i++) { EFI_GUID *guid; @@ -379,9 +382,8 @@ command_nvram(int argc, char *argv[]) CHAR16 *data; EFI_STATUS status; EFI_GUID varguid = { 0,0,0,{0,0,0,0,0,0,0,0} }; - UINTN varsz, datasz; + UINTN varsz, datasz, i; SIMPLE_TEXT_OUTPUT_INTERFACE *conout; - int i; conout = ST->ConOut; Modified: stable/10/sys/boot/fdt/fdt_loader_cmd.c ============================================================================== --- stable/10/sys/boot/fdt/fdt_loader_cmd.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/fdt/fdt_loader_cmd.c Thu Jan 28 12:11:42 2016 (r294981) @@ -464,7 +464,7 @@ fdt_fixup_memory(struct fdt_mem_region * { struct fdt_mem_region *curmr; uint32_t addr_cells, size_cells; - uint32_t *addr_cellsp, *reg, *size_cellsp; + uint32_t *addr_cellsp, *size_cellsp; int err, i, len, memory, root; size_t realmrno; uint8_t *buf, *sb; Modified: stable/10/sys/boot/i386/libi386/smbios.c ============================================================================== --- stable/10/sys/boot/i386/libi386/smbios.c Thu Jan 28 12:03:30 2016 (r294980) +++ stable/10/sys/boot/i386/libi386/smbios.c Thu Jan 28 12:11:42 2016 (r294981) @@ -332,7 +332,7 @@ static caddr_t smbios_find_struct(int type) { caddr_t dmi; - int i; + size_t i; if (smbios.addr == NULL) return (NULL); @@ -402,7 +402,7 @@ smbios_detect(const caddr_t addr) { char buf[16]; caddr_t dmi; - int i; + size_t i; smbios_probe(addr); if (smbios.addr == NULL) From owner-svn-src-all@freebsd.org Thu Jan 28 12:15:52 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 33B40A70FFF; Thu, 28 Jan 2016 12:15:52 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0512A173D; Thu, 28 Jan 2016 12:15:51 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SCFper060342; Thu, 28 Jan 2016 12:15:51 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SCFpMt060341; Thu, 28 Jan 2016 12:15:51 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601281215.u0SCFpMt060341@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 12:15:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294982 - stable/10/sys/boot/common X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:15:52 -0000 Author: smh Date: Thu Jan 28 12:15:50 2016 New Revision: 294982 URL: https://svnweb.freebsd.org/changeset/base/294982 Log: MFC r294059: Ensure boot fsread correctly probes all partitions Sponsored by: Multiplay Modified: stable/10/sys/boot/common/ufsread.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/common/ufsread.c ============================================================================== --- stable/10/sys/boot/common/ufsread.c Thu Jan 28 12:11:42 2016 (r294981) +++ stable/10/sys/boot/common/ufsread.c Thu Jan 28 12:15:50 2016 (r294982) @@ -187,8 +187,15 @@ fsread(ufs_ino_t inode, void *buf, size_ blkbuf = dmadat->blkbuf; indbuf = dmadat->indbuf; - if (!dsk_meta) { + + /* + * Force probe if inode is zero to ensure we have a valid fs, otherwise + * when probing multiple paritions, reads from subsequent parititions + * will incorrectly succeed. + */ + if (!dsk_meta || inode == 0) { inomap = 0; + dsk_meta = 0; for (n = 0; sblock_try[n] != -1; n++) { if (dskread(dmadat->sbbuf, sblock_try[n] / DEV_BSIZE, SBLOCKSIZE / DEV_BSIZE)) From owner-svn-src-all@freebsd.org Thu Jan 28 12:21:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E3C65A711C6; Thu, 28 Jan 2016 12:21:24 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AE4C91A8B; Thu, 28 Jan 2016 12:21:24 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SCLNF7062536; Thu, 28 Jan 2016 12:21:23 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SCLNtv062535; Thu, 28 Jan 2016 12:21:23 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201601281221.u0SCLNtv062535@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Thu, 28 Jan 2016 12:21:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294983 - head/sys/ufs/ffs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:21:25 -0000 Author: trasz Date: Thu Jan 28 12:21:23 2016 New Revision: 294983 URL: https://svnweb.freebsd.org/changeset/base/294983 Log: Remove ffs_mountroot() prototype; seems to be long gone. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/sys/ufs/ffs/ffs_extern.h Modified: head/sys/ufs/ffs/ffs_extern.h ============================================================================== --- head/sys/ufs/ffs/ffs_extern.h Thu Jan 28 12:15:50 2016 (r294982) +++ head/sys/ufs/ffs/ffs_extern.h Thu Jan 28 12:21:23 2016 (r294983) @@ -77,7 +77,6 @@ void ffs_fserr(struct fs *, ino_t, char int ffs_isblock(struct fs *, u_char *, ufs1_daddr_t); int ffs_isfreeblock(struct fs *, u_char *, ufs1_daddr_t); void ffs_load_inode(struct buf *, struct inode *, struct fs *, ino_t); -int ffs_mountroot(void); void ffs_oldfscompat_write(struct fs *, struct ufsmount *); int ffs_own_mount(const struct mount *mp); int ffs_reallocblks(struct vop_reallocblks_args *); From owner-svn-src-all@freebsd.org Thu Jan 28 12:22:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 84A60A71236; Thu, 28 Jan 2016 12:22:16 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5377B1C8F; Thu, 28 Jan 2016 12:22:16 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SCMFGg063241; Thu, 28 Jan 2016 12:22:15 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SCMFck063240; Thu, 28 Jan 2016 12:22:15 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601281222.u0SCMFck063240@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 12:22:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294984 - stable/10/sys/boot/common X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:22:16 -0000 Author: smh Date: Thu Jan 28 12:22:15 2016 New Revision: 294984 URL: https://svnweb.freebsd.org/changeset/base/294984 Log: MFC r286234 (by trasz): Fix a problem which made loader(8) load non-kld files twice. Sponsored by: Multiplay Modified: stable/10/sys/boot/common/module.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/common/module.c ============================================================================== --- stable/10/sys/boot/common/module.c Thu Jan 28 12:21:23 2016 (r294983) +++ stable/10/sys/boot/common/module.c Thu Jan 28 12:22:15 2016 (r294984) @@ -101,6 +101,7 @@ COMMAND_SET(load, "load", "load a kernel static int command_load(int argc, char *argv[]) { + struct preloaded_file *fp; char *typestr; int dofile, dokld, ch, error; @@ -138,6 +139,13 @@ command_load(int argc, char *argv[]) command_errmsg = "invalid load type"; return(CMD_ERROR); } + + fp = file_findfile(argv[1], typestr); + if (fp) { + sprintf(command_errbuf, "warning: file '%s' already loaded", argv[1]); + return (CMD_ERROR); + } + return (file_loadraw(argv[1], typestr, 1) ? CMD_OK : CMD_ERROR); } /* From owner-svn-src-all@freebsd.org Thu Jan 28 12:23:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B758A7134C; Thu, 28 Jan 2016 12:23:27 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0558A1E6B; Thu, 28 Jan 2016 12:23:26 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SCNQMl063338; Thu, 28 Jan 2016 12:23:26 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SCNPXP063335; Thu, 28 Jan 2016 12:23:25 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601281223.u0SCNPXP063335@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 12:23:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294985 - stable/10/sys/boot/common X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:23:27 -0000 Author: smh Date: Thu Jan 28 12:23:25 2016 New Revision: 294985 URL: https://svnweb.freebsd.org/changeset/base/294985 Log: MFC r293835: Improve non-interactive forth cmd error reporting Sponsored by: Multiplay Modified: stable/10/sys/boot/common/bootstrap.h stable/10/sys/boot/common/interp_forth.c stable/10/sys/boot/common/module.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/common/bootstrap.h ============================================================================== --- stable/10/sys/boot/common/bootstrap.h Thu Jan 28 12:22:15 2016 (r294984) +++ stable/10/sys/boot/common/bootstrap.h Thu Jan 28 12:23:25 2016 (r294985) @@ -56,7 +56,10 @@ typedef int (bootblk_cmd_t)(int argc, ch extern char *command_errmsg; extern char command_errbuf[]; /* XXX blah, length */ #define CMD_OK 0 -#define CMD_ERROR 1 +#define CMD_WARN 1 +#define CMD_ERROR 2 +#define CMD_CRIT 3 +#define CMD_FATAL 4 /* interp.c */ void interact(void); Modified: stable/10/sys/boot/common/interp_forth.c ============================================================================== --- stable/10/sys/boot/common/interp_forth.c Thu Jan 28 12:22:15 2016 (r294984) +++ stable/10/sys/boot/common/interp_forth.c Thu Jan 28 12:23:25 2016 (r294985) @@ -138,13 +138,23 @@ bf_command(FICL_VM *vm) } else { result=BF_PARSE; } + + switch (result) { + case CMD_CRIT: + printf("%s\n", command_errmsg); + break; + case CMD_FATAL: + panic("%s\n", command_errmsg); + } + free(line); /* * If there was error during nested ficlExec(), we may no longer have * valid environment to return. Throw all exceptions from here. */ - if (result != 0) + if (result != CMD_OK) vmThrow(vm, result); + /* This is going to be thrown!!! */ stackPushINT(vm->pStack,result); } Modified: stable/10/sys/boot/common/module.c ============================================================================== --- stable/10/sys/boot/common/module.c Thu Jan 28 12:22:15 2016 (r294984) +++ stable/10/sys/boot/common/module.c Thu Jan 28 12:23:25 2016 (r294985) @@ -111,7 +111,7 @@ command_load(int argc, char *argv[]) typestr = NULL; if (argc == 1) { command_errmsg = "no filename specified"; - return(CMD_ERROR); + return (CMD_CRIT); } while ((ch = getopt(argc, argv, "kt:")) != -1) { switch(ch) { @@ -125,7 +125,7 @@ command_load(int argc, char *argv[]) case '?': default: /* getopt has already reported an error */ - return(CMD_OK); + return (CMD_OK); } } argv += (optind - 1); @@ -137,33 +137,46 @@ command_load(int argc, char *argv[]) if (dofile) { if ((argc != 2) || (typestr == NULL) || (*typestr == 0)) { command_errmsg = "invalid load type"; - return(CMD_ERROR); + return (CMD_CRIT); } fp = file_findfile(argv[1], typestr); if (fp) { sprintf(command_errbuf, "warning: file '%s' already loaded", argv[1]); - return (CMD_ERROR); + return (CMD_WARN); } - return (file_loadraw(argv[1], typestr, 1) ? CMD_OK : CMD_ERROR); + if (file_loadraw(argv[1], typestr, 1) != NULL) + return (CMD_OK); + + /* Failing to load mfs_root is never going to end well! */ + if (strcmp("mfs_root", typestr) == 0) + return (CMD_FATAL); + + return (CMD_ERROR); } /* * Do we have explicit KLD load ? */ if (dokld || file_havepath(argv[1])) { error = mod_loadkld(argv[1], argc - 2, argv + 2); - if (error == EEXIST) + if (error == EEXIST) { sprintf(command_errbuf, "warning: KLD '%s' already loaded", argv[1]); - return (error == 0 ? CMD_OK : CMD_ERROR); + return (CMD_WARN); + } + + return (error == 0 ? CMD_OK : CMD_CRIT); } /* * Looks like a request for a module. */ error = mod_load(argv[1], NULL, argc - 2, argv + 2); - if (error == EEXIST) + if (error == EEXIST) { sprintf(command_errbuf, "warning: module '%s' already loaded", argv[1]); - return (error == 0 ? CMD_OK : CMD_ERROR); + return (CMD_WARN); + } + + return (error == 0 ? CMD_OK : CMD_CRIT); } COMMAND_SET(load_geli, "load_geli", "load a geli key", command_load_geli); From owner-svn-src-all@freebsd.org Thu Jan 28 12:25:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35B58A71405; Thu, 28 Jan 2016 12:25:29 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ED39D1FF4; Thu, 28 Jan 2016 12:25:28 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SCPSta063463; Thu, 28 Jan 2016 12:25:28 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SCPSAd063462; Thu, 28 Jan 2016 12:25:28 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601281225.u0SCPSAd063462@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 12:25:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294986 - stable/10/sys/boot/common X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:25:29 -0000 Author: smh Date: Thu Jan 28 12:25:27 2016 New Revision: 294986 URL: https://svnweb.freebsd.org/changeset/base/294986 Log: MFC r294506: Prevent loader.conf load failure due to unknown console entries Sponsored by: Multiplay Modified: stable/10/sys/boot/common/console.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/common/console.c ============================================================================== --- stable/10/sys/boot/common/console.c Thu Jan 28 12:23:25 2016 (r294985) +++ stable/10/sys/boot/common/console.c Thu Jan 28 12:25:27 2016 (r294986) @@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$"); static int cons_set(struct env_var *ev, int flags, const void *value); static int cons_find(const char *name); static int cons_check(const char *string); -static void cons_change(const char *string); +static int cons_change(const char *string); static int twiddle_set(struct env_var *ev, int flags, const void *value); /* @@ -47,12 +47,12 @@ static int twiddle_set(struct env_var *e * as active. Also create the console variable. */ void -cons_probe(void) +cons_probe(void) { int cons; int active; char *prefconsole; - + /* We want a callback to install the new value when this var changes. */ env_setenv("twiddle_divisor", EV_VOLATILE, "1", twiddle_set, env_nounset); @@ -162,54 +162,69 @@ cons_find(const char *name) static int cons_set(struct env_var *ev, int flags, const void *value) { - int cons; + int ret; - if ((value == NULL) || (cons_check(value) == -1)) { - if (value != NULL) - printf("no such console!\n"); - printf("Available consoles:\n"); - for (cons = 0; consoles[cons] != NULL; cons++) - printf(" %s\n", consoles[cons]->c_name); - return(CMD_ERROR); + if ((value == NULL) || (cons_check(value) == 0)) { + /* + * Return CMD_OK instead of CMD_ERROR to prevent forth syntax error, + * which would prevent it processing any further loader.conf entries. + */ + return (CMD_OK); } - cons_change(value); + ret = cons_change(value); + if (ret != CMD_OK) + return (ret); env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL); - return(CMD_OK); + return (CMD_OK); } /* - * Check that all of the consoles listed in *string are valid consoles + * Check that at least one the consoles listed in *string is valid */ static int cons_check(const char *string) { - int cons; + int cons, found, failed; char *curpos, *dup, *next; dup = next = strdup(string); - cons = -1; + found = failed = 0; while (next != NULL) { curpos = strsep(&next, " ,"); if (*curpos != '\0') { cons = cons_find(curpos); - if (cons == -1) - break; + if (cons == -1) { + printf("console %s is invalid!\n", curpos); + failed++; + } else { + found++; + } } } free(dup); - return (cons); + + if (found == 0) + printf("no valid consoles!\n"); + + if (found == 0 || failed != 0) { + printf("Available consoles:\n"); + for (cons = 0; consoles[cons] != NULL; cons++) + printf(" %s\n", consoles[cons]->c_name); + } + + return (found); } /* - * Activate all of the consoles listed in *string and disable all the others. + * Activate all the valid consoles listed in *string and disable all others. */ -static void +static int cons_change(const char *string) { - int cons; + int cons, active; char *curpos, *dup, *next; /* Disable all consoles */ @@ -219,6 +234,7 @@ cons_change(const char *string) /* Enable selected consoles */ dup = next = strdup(string); + active = 0; while (next != NULL) { curpos = strsep(&next, " ,"); if (*curpos == '\0') @@ -227,14 +243,37 @@ cons_change(const char *string) if (cons >= 0) { consoles[cons]->c_flags |= C_ACTIVEIN | C_ACTIVEOUT; consoles[cons]->c_init(0); - if ((consoles[cons]->c_flags & (C_PRESENTIN | C_PRESENTOUT)) != - (C_PRESENTIN | C_PRESENTOUT)) - printf("console %s failed to initialize\n", - consoles[cons]->c_name); + if ((consoles[cons]->c_flags & (C_PRESENTIN | C_PRESENTOUT)) == + (C_PRESENTIN | C_PRESENTOUT)) { + active++; + continue; + } + + if (active != 0) { + /* If no consoles have initialised we wouldn't see this. */ + printf("console %s failed to initialize\n", consoles[cons]->c_name); + } } } free(dup); + + if (active == 0) { + /* All requested consoles failed to initialise, try to recover. */ + for (cons = 0; consoles[cons] != NULL; cons++) { + consoles[cons]->c_flags |= C_ACTIVEIN | C_ACTIVEOUT; + consoles[cons]->c_init(0); + if ((consoles[cons]->c_flags & + (C_PRESENTIN | C_PRESENTOUT)) == + (C_PRESENTIN | C_PRESENTOUT)) + active++; + } + + if (active == 0) + return (CMD_ERROR); /* Recovery failed. */ + } + + return (CMD_OK); } /* From owner-svn-src-all@freebsd.org Thu Jan 28 12:44:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E127A71B99; Thu, 28 Jan 2016 12:44:00 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2092F1BE4; Thu, 28 Jan 2016 12:44:00 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SChx4f069220; Thu, 28 Jan 2016 12:43:59 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SChwn4069214; Thu, 28 Jan 2016 12:43:58 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601281243.u0SChwn4069214@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Thu, 28 Jan 2016 12:43:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294987 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:44:00 -0000 Author: zbb Date: Thu Jan 28 12:43:58 2016 New Revision: 294987 URL: https://svnweb.freebsd.org/changeset/base/294987 Log: SMP support for ARMv6/v7 HW watchpoints Use per-CPU structure to store HW watchpoints registers state for each CPU present in the system. Those registers will be restored upon wake up from the STOP state if requested by the debug_monitor code. The method is similar to the one introduced to AMD64. We store all possible 16 registers for HW watchpoints (maximum allowed by the architecture). HW breakpoints are not maintained since they are used for single stepping only. Pointed out by: kib Reviewed by: wma No strong objections from: kib Submitted by: Zbigniew Bodek Obtained from: Semihalf Sponsored by: Juniper Networks Inc. Differential Revision: https://reviews.freebsd.org/D4338 Modified: head/sys/arm/arm/debug_monitor.c head/sys/arm/arm/mp_machdep.c head/sys/arm/include/debug_monitor.h head/sys/arm/include/pcpu.h head/sys/arm/include/reg.h Modified: head/sys/arm/arm/debug_monitor.c ============================================================================== --- head/sys/arm/arm/debug_monitor.c Thu Jan 28 12:25:27 2016 (r294986) +++ head/sys/arm/arm/debug_monitor.c Thu Jan 28 12:43:58 2016 (r294987) @@ -35,14 +35,17 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include #include #include #include #include +#include #include #include @@ -80,7 +83,7 @@ static boolean_t dbg_ossr; /* OS Save an static uint32_t dbg_watchpoint_num; static uint32_t dbg_breakpoint_num; -static int dbg_ref_count_mme[MAXCPU]; /* Times monitor mode was enabled */ +static int dbg_ref_count_mme; /* Times monitor mode was enabled */ /* ID_DFR0 - Debug Feature Register 0 */ #define ID_DFR0_CP_DEBUG_M_SHIFT 0 @@ -542,11 +545,9 @@ dbg_enable_monitor(void) { uint32_t dbg_dscr; - /* Already enabled? Just increment reference counter and return */ - if (dbg_monitor_is_enabled()) { - dbg_ref_count_mme[PCPU_GET(cpuid)]++; + /* Already enabled? Just return */ + if (dbg_monitor_is_enabled()) return (0); - } dbg_dscr = cp14_dbgdscrint_get(); @@ -565,10 +566,8 @@ dbg_enable_monitor(void) isb(); /* Verify that Monitor mode is set */ - if (dbg_monitor_is_enabled()) { - dbg_ref_count_mme[PCPU_GET(cpuid)]++; + if (dbg_monitor_is_enabled()) return (0); - } return (ENXIO); } @@ -581,9 +580,6 @@ dbg_disable_monitor(void) if (!dbg_monitor_is_enabled()) return (0); - if (--dbg_ref_count_mme[PCPU_GET(cpuid)] > 0) - return (0); - dbg_dscr = cp14_dbgdscrint_get(); switch (dbg_model) { case ID_DFR0_CP_DEBUG_M_V6: @@ -607,11 +603,13 @@ dbg_disable_monitor(void) static int dbg_setup_xpoint(struct dbg_wb_conf *conf) { + struct pcpu *pcpu; + struct dbreg *d; const char *typestr; uint32_t cr_size, cr_priv, cr_access; uint32_t reg_ctrl, reg_addr, ctrl, addr; boolean_t is_bkpt; - u_int cpuid; + u_int cpuid, cpu; u_int i; int err; @@ -705,20 +703,52 @@ dbg_setup_xpoint(struct dbg_wb_conf *con dbg_wb_write_reg(reg_addr, i, addr); dbg_wb_write_reg(reg_ctrl, i, ctrl); - return (dbg_enable_monitor()); + err = dbg_enable_monitor(); + if (err != 0) + return (err); + + /* Increment monitor enable counter */ + dbg_ref_count_mme++; + + /* + * Save watchpoint settings for all CPUs. + * We don't need to do the same with breakpoints since HW breakpoints + * are only used to perform single stepping. + */ + if (!is_bkpt) { + CPU_FOREACH(cpu) { + pcpu = pcpu_find(cpu); + /* Fill out the settings for watchpoint */ + d = (struct dbreg *)pcpu->pc_dbreg; + d->dbg_wvr[i] = addr; + d->dbg_wcr[i] = ctrl; + /* Skip update command for the current CPU */ + if (cpu != cpuid) + pcpu->pc_dbreg_cmd = PC_DBREG_CMD_LOAD; + } + } + /* Ensure all data is written before waking other CPUs */ + atomic_thread_fence_rel(); + + return (0); } static int dbg_remove_xpoint(struct dbg_wb_conf *conf) { + struct pcpu *pcpu; + struct dbreg *d; uint32_t reg_ctrl, reg_addr, addr; - u_int cpuid; + boolean_t is_bkpt; + u_int cpuid, cpu; u_int i; int err; if (!dbg_capable) return (ENXIO); + is_bkpt = (conf->type == DBG_TYPE_BREAKPOINT); + cpuid = PCPU_GET(cpuid); if (!dbg_ready[cpuid]) { err = dbg_reset_state(); @@ -729,7 +759,7 @@ dbg_remove_xpoint(struct dbg_wb_conf *co addr = conf->address; - if (conf->type == DBG_TYPE_BREAKPOINT) { + if (is_bkpt) { i = conf->slot; reg_ctrl = DBG_REG_BASE_BCR; reg_addr = DBG_REG_BASE_BVR; @@ -746,7 +776,40 @@ dbg_remove_xpoint(struct dbg_wb_conf *co dbg_wb_write_reg(reg_ctrl, i, 0); dbg_wb_write_reg(reg_addr, i, 0); - return (dbg_disable_monitor()); + /* Decrement monitor enable counter */ + dbg_ref_count_mme--; + if (dbg_ref_count_mme < 0) + dbg_ref_count_mme = 0; + + atomic_thread_fence_rel(); + + if (dbg_ref_count_mme == 0) { + err = dbg_disable_monitor(); + if (err != 0) + return (err); + } + + /* + * Save watchpoint settings for all CPUs. + * We don't need to do the same with breakpoints since HW breakpoints + * are only used to perform single stepping. + */ + if (!is_bkpt) { + CPU_FOREACH(cpu) { + pcpu = pcpu_find(cpu); + /* Fill out the settings for watchpoint */ + d = (struct dbreg *)pcpu->pc_dbreg; + d->dbg_wvr[i] = 0; + d->dbg_wcr[i] = 0; + /* Skip update command for the current CPU */ + if (cpu != cpuid) + pcpu->pc_dbreg_cmd = PC_DBREG_CMD_LOAD; + } + /* Ensure all data is written before waking other CPUs */ + atomic_thread_fence_rel(); + } + + return (0); } static __inline uint32_t @@ -941,3 +1004,67 @@ dbg_monitor_init(void) db_printf("HW Breakpoints/Watchpoints not enabled on CPU%d\n", PCPU_GET(cpuid)); } + +CTASSERT(sizeof(struct dbreg) == sizeof(((struct pcpu *)NULL)->pc_dbreg)); + +void +dbg_resume_dbreg(void) +{ + struct dbreg *d; + u_int cpuid; + u_int i; + int err; + + /* + * This flag is set on the primary CPU + * and its meaning is valid for other CPUs too. + */ + if (!dbg_capable) + return; + + atomic_thread_fence_acq(); + + switch (PCPU_GET(dbreg_cmd)) { + case PC_DBREG_CMD_LOAD: + d = (struct dbreg *)PCPU_PTR(dbreg); + cpuid = PCPU_GET(cpuid); + + /* Reset Debug Architecture State if not done earlier */ + if (!dbg_ready[cpuid]) { + err = dbg_reset_state(); + if (err != 0) { + /* + * Something is very wrong. + * WPs/BPs will not work correctly in this CPU. + */ + panic("%s: Failed to reset Debug Architecture " + "state on CPU%d", __func__, cpuid); + } + dbg_ready[cpuid] = TRUE; + } + + /* Restore watchpoints */ + for (i = 0; i < dbg_watchpoint_num; i++) { + dbg_wb_write_reg(DBG_REG_BASE_WVR, i, d->dbg_wvr[i]); + dbg_wb_write_reg(DBG_REG_BASE_WCR, i, d->dbg_wcr[i]); + } + + if ((dbg_ref_count_mme > 0) && !dbg_monitor_is_enabled()) { + err = dbg_enable_monitor(); + if (err != 0) { + panic("%s: Failed to enable Debug Monitor " + "on CPU%d", __func__, cpuid); + } + } + if ((dbg_ref_count_mme == 0) && dbg_monitor_is_enabled()) { + err = dbg_disable_monitor(); + if (err != 0) { + panic("%s: Failed to disable Debug Monitor " + "on CPU%d", __func__, cpuid); + } + } + + PCPU_SET(dbreg_cmd, PC_DBREG_CMD_NONE); + break; + } +} Modified: head/sys/arm/arm/mp_machdep.c ============================================================================== --- head/sys/arm/arm/mp_machdep.c Thu Jan 28 12:25:27 2016 (r294986) +++ head/sys/arm/arm/mp_machdep.c Thu Jan 28 12:43:58 2016 (r294987) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -303,6 +304,9 @@ ipi_stop(void *dummy __unused) CPU_CLR_ATOMIC(cpu, &started_cpus); CPU_CLR_ATOMIC(cpu, &stopped_cpus); +#ifdef DDB + dbg_resume_dbreg(); +#endif CTR0(KTR_SMP, "IPI_STOP (restart)"); } @@ -405,6 +409,9 @@ ipi_handler(void *arg) CPU_CLR_ATOMIC(cpu, &started_cpus); CPU_CLR_ATOMIC(cpu, &stopped_cpus); +#ifdef DDB + dbg_resume_dbreg(); +#endif CTR0(KTR_SMP, "IPI_STOP (restart)"); break; case IPI_PREEMPT: Modified: head/sys/arm/include/debug_monitor.h ============================================================================== --- head/sys/arm/include/debug_monitor.h Thu Jan 28 12:25:27 2016 (r294986) +++ head/sys/arm/include/debug_monitor.h Thu Jan 28 12:43:58 2016 (r294987) @@ -48,6 +48,7 @@ void dbg_monitor_init(void); void dbg_show_watchpoint(void); int dbg_setup_watchpoint(db_expr_t, db_expr_t, enum dbg_access_t); int dbg_remove_watchpoint(db_expr_t, db_expr_t); +void dbg_resume_dbreg(void); #else /* __ARM_ARCH >= 6 */ static __inline void dbg_show_watchpoint(void) @@ -68,6 +69,11 @@ static __inline void dbg_monitor_init(void) { } + +static __inline void +dbg_resume_dbreg(void) +{ +} #endif /* __ARM_ARCH < 6 */ #else /* DDB */ Modified: head/sys/arm/include/pcpu.h ============================================================================== --- head/sys/arm/include/pcpu.h Thu Jan 28 12:25:27 2016 (r294986) +++ head/sys/arm/include/pcpu.h Thu Jan 28 12:43:58 2016 (r294987) @@ -49,7 +49,9 @@ struct vmspace; struct pmap *pc_curpmap; \ vm_offset_t pc_qmap_addr; \ void *pc_qmap_pte; \ - char __pad[133] + unsigned int pc_dbreg[32]; \ + int pc_dbreg_cmd; \ + char __pad[1] #else #define PCPU_MD_FIELDS \ vm_offset_t qmap_addr; \ @@ -59,6 +61,9 @@ struct vmspace; #ifdef _KERNEL +#define PC_DBREG_CMD_NONE 0 +#define PC_DBREG_CMD_LOAD 1 + struct pcb; struct pcpu; Modified: head/sys/arm/include/reg.h ============================================================================== --- head/sys/arm/include/reg.h Thu Jan 28 12:25:27 2016 (r294986) +++ head/sys/arm/include/reg.h Thu Jan 28 12:43:58 2016 (r294987) @@ -19,7 +19,9 @@ struct fpreg { }; struct dbreg { - unsigned int dr[8]; /* debug registers */ +#define ARM_WR_MAX 16 /* Maximum number of watchpoint registers */ + unsigned int dbg_wcr[ARM_WR_MAX]; /* Watchpoint Control Registers */ + unsigned int dbg_wvr[ARM_WR_MAX]; /* Watchpoint Value Registers */ }; #ifdef _KERNEL From owner-svn-src-all@freebsd.org Thu Jan 28 14:12:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26D7CA6FE90; Thu, 28 Jan 2016 14:12:01 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EA5E718DE; Thu, 28 Jan 2016 14:12:00 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SEC0vX094647; Thu, 28 Jan 2016 14:12:00 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SEBxeV094637; Thu, 28 Jan 2016 14:11:59 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601281411.u0SEBxeV094637@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Thu, 28 Jan 2016 14:11:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294989 - in head/sys: arm/freescale/vybrid arm/xilinx dev/usb/controller mips/atheros powerpc/ps3 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 14:12:01 -0000 Author: mmel Date: Thu Jan 28 14:11:59 2016 New Revision: 294989 URL: https://svnweb.freebsd.org/changeset/base/294989 Log: EHCI: Make core reset and port speed reading more generic. Use driver settable callbacks for handling of: - core post reset - reading actual port speed Typically, OTG enabled EHCI cores wants setting of USBMODE register, but this register is not defined in EHCI specification and different cores can have it on different offset. Also, for cores with TT extension, actual port speed must be determinable. But again, EHCI specification not covers this so this patch provides function for two most common variant of speed bits layout. Reviewed by: hselasky Differential Revision: https://reviews.freebsd.org/D5088 Modified: head/sys/arm/freescale/vybrid/vf_ehci.c head/sys/arm/xilinx/zy7_ehci.c head/sys/dev/usb/controller/ehci.c head/sys/dev/usb/controller/ehci.h head/sys/dev/usb/controller/ehci_ixp4xx.c head/sys/dev/usb/controller/ehci_mv.c head/sys/dev/usb/controller/ehcireg.h head/sys/mips/atheros/ar71xx_ehci.c head/sys/powerpc/ps3/ehci_ps3.c Modified: head/sys/arm/freescale/vybrid/vf_ehci.c ============================================================================== --- head/sys/arm/freescale/vybrid/vf_ehci.c Thu Jan 28 13:32:00 2016 (r294988) +++ head/sys/arm/freescale/vybrid/vf_ehci.c Thu Jan 28 14:11:59 2016 (r294989) @@ -169,6 +169,18 @@ static devclass_t ehci_devclass; DRIVER_MODULE(ehci, simplebus, ehci_driver, ehci_devclass, 0, 0); MODULE_DEPEND(ehci, usb, 1, 1, 1); +static void +vybrid_ehci_post_reset(struct ehci_softc *ehci_softc) +{ + uint32_t usbmode; + + /* Force HOST mode */ + usbmode = EOREAD4(ehci_softc, EHCI_USBMODE_NOLPM); + usbmode &= ~EHCI_UM_CM; + usbmode |= EHCI_UM_CM_HOST; + EOWRITE4(ehci_softc, EHCI_USBMODE_NOLPM, usbmode); +} + /* * Public methods */ @@ -343,8 +355,10 @@ vybrid_ehci_attach(device_t dev) reg |= 0x3; bus_space_write_4(sc->sc_io_tag, sc->sc_io_hdl, 0xA8, reg); - /* Set flags */ - sc->sc_flags |= EHCI_SCFLG_SETMODE | EHCI_SCFLG_NORESTERM; + /* Set flags and callbacks*/ + sc->sc_flags |= EHCI_SCFLG_TT | EHCI_SCFLG_NORESTERM; + sc->sc_vendor_post_reset = vybrid_ehci_post_reset; + sc->sc_vendor_get_port_speed = ehci_get_port_speed_portsc; err = ehci_init(sc); if (!err) { Modified: head/sys/arm/xilinx/zy7_ehci.c ============================================================================== --- head/sys/arm/xilinx/zy7_ehci.c Thu Jan 28 13:32:00 2016 (r294988) +++ head/sys/arm/xilinx/zy7_ehci.c Thu Jan 28 14:11:59 2016 (r294989) @@ -138,6 +138,18 @@ __FBSDID("$FreeBSD$"); #define EHCI_REG_OFFSET ZY7_USB_CAPLENGTH_HCIVERSION #define EHCI_REG_SIZE 0x100 +static void +zy7_ehci_post_reset(struct ehci_softc *ehci_softc) +{ + uint32_t usbmode; + + /* Force HOST mode */ + usbmode = EOREAD4(ehci_softc, EHCI_USBMODE_NOLPM); + usbmode &= ~EHCI_UM_CM; + usbmode |= EHCI_UM_CM_HOST; + EOWRITE4(ehci_softc, EHCI_USBMODE_NOLPM, usbmode); +} + static int zy7_phy_config(device_t dev, bus_space_tag_t io_tag, bus_space_handle_t bsh) { @@ -275,8 +287,9 @@ zy7_ehci_attach(device_t dev) } /* Customization. */ - sc->sc_flags |= EHCI_SCFLG_SETMODE | EHCI_SCFLG_TT | - EHCI_SCFLG_NORESTERM; + sc->sc_flags |= EHCI_SCFLG_TT | EHCI_SCFLG_NORESTERM; + sc->sc_vendor_post_reset = zy7_ehci_post_reset; + sc->sc_vendor_get_port_speed = ehci_get_port_speed_portsc; /* Modify FIFO burst threshold from 2 to 8. */ bus_space_write_4(sc->sc_io_tag, bsh, Modified: head/sys/dev/usb/controller/ehci.c ============================================================================== --- head/sys/dev/usb/controller/ehci.c Thu Jan 28 13:32:00 2016 (r294988) +++ head/sys/dev/usb/controller/ehci.c Thu Jan 28 14:11:59 2016 (r294989) @@ -189,24 +189,8 @@ ehci_reset(ehci_softc_t *sc) usb_pause_mtx(NULL, hz / 128); hcr = EOREAD4(sc, EHCI_USBCMD) & EHCI_CMD_HCRESET; if (!hcr) { - if (sc->sc_flags & (EHCI_SCFLG_SETMODE | EHCI_SCFLG_BIGEMMIO)) { - /* - * Force USBMODE as requested. Controllers - * may have multiple operating modes. - */ - uint32_t usbmode = EOREAD4(sc, EHCI_USBMODE); - if (sc->sc_flags & EHCI_SCFLG_SETMODE) { - usbmode = (usbmode &~ EHCI_UM_CM) | EHCI_UM_CM_HOST; - device_printf(sc->sc_bus.bdev, - "set host controller mode\n"); - } - if (sc->sc_flags & EHCI_SCFLG_BIGEMMIO) { - usbmode = (usbmode &~ EHCI_UM_ES) | EHCI_UM_ES_BE; - device_printf(sc->sc_bus.bdev, - "set big-endian mode\n"); - } - EOWRITE4(sc, EHCI_USBMODE, usbmode); - } + if (sc->sc_vendor_post_reset != NULL) + sc->sc_vendor_post_reset(sc); return (0); } } @@ -3066,6 +3050,36 @@ struct usb_hub_descriptor ehci_hubd = .bDescriptorType = UDESC_HUB, }; +uint16_t +ehci_get_port_speed_portsc(struct ehci_softc *sc, uint16_t index) +{ + uint32_t v; + + v = EOREAD4(sc, EHCI_PORTSC(index)); + v = (v >> EHCI_PORTSC_PSPD_SHIFT) & EHCI_PORTSC_PSPD_MASK; + + if (v == EHCI_PORT_SPEED_HIGH) + return (UPS_HIGH_SPEED); + if (v == EHCI_PORT_SPEED_LOW) + return (UPS_LOW_SPEED); + return (0); +} + +uint16_t +ehci_get_port_speed_hostc(struct ehci_softc *sc, uint16_t index) +{ + uint32_t v; + + v = EOREAD4(sc, EHCI_HOSTC(index)); + v = (v >> EHCI_HOSTC_PSPD_SHIFT) & EHCI_HOSTC_PSPD_MASK; + + if (v == EHCI_PORT_SPEED_HIGH) + return (UPS_HIGH_SPEED); + if (v == EHCI_PORT_SPEED_LOW) + return (UPS_LOW_SPEED); + return (0); +} + static void ehci_disown(ehci_softc_t *sc, uint16_t index, uint8_t lowspeed) { @@ -3330,13 +3344,15 @@ ehci_roothub_exec(struct usb_device *ude } v = EOREAD4(sc, EHCI_PORTSC(index)); DPRINTFN(9, "port status=0x%04x\n", v); - if (sc->sc_flags & (EHCI_SCFLG_FORCESPEED | EHCI_SCFLG_TT)) { - if ((v & 0xc000000) == 0x8000000) + if (sc->sc_flags & EHCI_SCFLG_TT) { + if (sc->sc_vendor_get_port_speed != NULL) { + i = sc->sc_vendor_get_port_speed(sc, index); + } else { + device_printf(sc->sc_bus.bdev, + "EHCI_SCFLG_TT quirk is set but " + "sc_vendor_get_hub_speed() is NULL\n"); i = UPS_HIGH_SPEED; - else if ((v & 0xc000000) == 0x4000000) - i = UPS_LOW_SPEED; - else - i = 0; + } } else { i = UPS_HIGH_SPEED; } Modified: head/sys/dev/usb/controller/ehci.h ============================================================================== --- head/sys/dev/usb/controller/ehci.h Thu Jan 28 13:32:00 2016 (r294988) +++ head/sys/dev/usb/controller/ehci.h Thu Jan 28 14:11:59 2016 (r294989) @@ -337,11 +337,8 @@ typedef struct ehci_softc { uint16_t sc_intr_stat[EHCI_VIRTUAL_FRAMELIST_COUNT]; uint16_t sc_id_vendor; /* vendor ID for root hub */ uint16_t sc_flags; /* chip specific flags */ -#define EHCI_SCFLG_SETMODE 0x0001 /* set bridge mode again after init */ -#define EHCI_SCFLG_FORCESPEED 0x0002 /* force speed */ #define EHCI_SCFLG_NORESTERM 0x0004 /* don't terminate reset sequence */ #define EHCI_SCFLG_BIGEDESC 0x0008 /* big-endian byte order descriptors */ -#define EHCI_SCFLG_BIGEMMIO 0x0010 /* big-endian byte order MMIO */ #define EHCI_SCFLG_TT 0x0020 /* transaction translator present */ #define EHCI_SCFLG_LOSTINTRBUG 0x0040 /* workaround for VIA / ATI chipsets */ #define EHCI_SCFLG_IAADBUG 0x0080 /* workaround for nVidia chipsets */ @@ -358,6 +355,10 @@ typedef struct ehci_softc { char sc_vendor[16]; /* vendor string for root hub */ + void (*sc_vendor_post_reset)(struct ehci_softc *sc); + uint16_t (*sc_vendor_get_port_speed)(struct ehci_softc *sc, + uint16_t index); + } ehci_softc_t; #define EREAD1(sc, a) bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (a)) @@ -446,5 +447,7 @@ usb_error_t ehci_reset(ehci_softc_t *sc) usb_error_t ehci_init(ehci_softc_t *sc); void ehci_detach(struct ehci_softc *sc); void ehci_interrupt(ehci_softc_t *sc); +uint16_t ehci_get_port_speed_portsc(struct ehci_softc *sc, uint16_t index); +uint16_t ehci_get_port_speed_hostc(struct ehci_softc *sc, uint16_t index); #endif /* _EHCI_H_ */ Modified: head/sys/dev/usb/controller/ehci_ixp4xx.c ============================================================================== --- head/sys/dev/usb/controller/ehci_ixp4xx.c Thu Jan 28 13:32:00 2016 (r294988) +++ head/sys/dev/usb/controller/ehci_ixp4xx.c Thu Jan 28 14:11:59 2016 (r294989) @@ -86,6 +86,19 @@ static void ehci_bs_w_2(bus_space_tag_t static uint32_t ehci_bs_r_4(bus_space_tag_t tag, bus_space_handle_t, bus_size_t); static void ehci_bs_w_4(bus_space_tag_t tag, bus_space_handle_t, bus_size_t, uint32_t); +static void +ehci_ixp_post_reset(struct ehci_softc *ehci_softc) +{ + uint32_t usbmode; + + /* Force HOST mode, select big-endian mode */ + usbmode = EOREAD4(ehci_softc, EHCI_USBMODE_NOLPM); + usbmode &= ~EHCI_UM_CM; + usbmode |= EHCI_UM_CM_HOST; + usbmode |= EHCI_UM_ES_BE; + EOWRITE4(ehci_softc, EHCI_USBMODE_NOLPM, usbmode); +} + static int ehci_ixp_probe(device_t self) { @@ -173,20 +186,21 @@ ehci_ixp_attach(device_t self) } /* - * Arrange to force Host mode, select big-endian byte alignment, - * and arrange to not terminate reset operations (the adapter - * will ignore it if we do but might as well save a reg write). - * Also, the controller has an embedded Transaction Translator - * which means port speed must be read from the Port Status - * register following a port enable. + * Select big-endian byte alignment and arrange to not terminate + * reset operations (the adapter will ignore it if we do but might + * as well save a reg write). Also, the controller has an embedded + * Transaction Translator which means port speed must be read from + * the Port Status register following a port enable. */ sc->sc_flags |= EHCI_SCFLG_TT - | EHCI_SCFLG_SETMODE | EHCI_SCFLG_BIGEDESC - | EHCI_SCFLG_BIGEMMIO | EHCI_SCFLG_NORESTERM ; + /* Setup callbacks. */ + sc->sc_vendor_post_reset = ehci_ixp_post_reset; + sc->sc_vendor_get_port_speed = ehci_get_port_speed_portsc; + err = ehci_init(sc); if (!err) { err = device_probe_and_attach(sc->sc_bus.bdev); Modified: head/sys/dev/usb/controller/ehci_mv.c ============================================================================== --- head/sys/dev/usb/controller/ehci_mv.c Thu Jan 28 13:32:00 2016 (r294988) +++ head/sys/dev/usb/controller/ehci_mv.c Thu Jan 28 14:11:59 2016 (r294989) @@ -105,6 +105,18 @@ static struct ofw_compat_data compat_dat {NULL, false} }; +static void +mv_ehci_post_reset(struct ehci_softc *ehci_softc) +{ + uint32_t usbmode; + + /* Force HOST mode */ + usbmode = EOREAD4(ehci_softc, EHCI_USBMODE_NOLPM); + usbmode &= ~EHCI_UM_CM; + usbmode |= EHCI_UM_CM_HOST; + EOWRITE4(ehci_softc, EHCI_USBMODE_NOLPM, usbmode); +} + static int mv_ehci_probe(device_t self) { @@ -226,13 +238,13 @@ mv_ehci_attach(device_t self) * Refer to errata document MV-S500832-00D.pdf (p. 5.24 GL USB-2) for * details. */ - sc->sc_flags |= EHCI_SCFLG_SETMODE; + sc->sc_vendor_post_reset = mv_ehci_post_reset; if (bootverbose) device_printf(self, "5.24 GL USB-2 workaround enabled\n"); /* XXX all MV chips need it? */ - sc->sc_flags |= EHCI_SCFLG_FORCESPEED | EHCI_SCFLG_NORESTERM; - + sc->sc_flags |= EHCI_SCFLG_TT | EHCI_SCFLG_NORESTERM; + sc->sc_vendor_get_port_speed = ehci_get_port_speed_portsc; err = ehci_init(sc); if (!err) { err = device_probe_and_attach(sc->sc_bus.bdev); Modified: head/sys/dev/usb/controller/ehcireg.h ============================================================================== --- head/sys/dev/usb/controller/ehcireg.h Thu Jan 28 13:32:00 2016 (r294988) +++ head/sys/dev/usb/controller/ehcireg.h Thu Jan 28 14:11:59 2016 (r294989) @@ -157,7 +157,17 @@ #define EHCI_PS_CS 0x00000001 /* RO connect status */ #define EHCI_PS_CLEAR (EHCI_PS_OCC | EHCI_PS_PEC | EHCI_PS_CSC) -#define EHCI_USBMODE 0x68 /* RW USB Device mode register */ +#define EHCI_PORT_RESET_COMPLETE 2 /* ms */ + +/* + * Registers not covered by EHCI specification + * + * + * EHCI_USBMODE register offset is different for cores with LPM support, + * bits are equal + */ +#define EHCI_USBMODE_NOLPM 0x68 /* RW USB Device mode reg (no LPM) */ +#define EHCI_USBMODE_LPM 0xA8 /* RW USB Device mode reg (LPM) */ #define EHCI_UM_CM 0x00000003 /* R/WO Controller Mode */ #define EHCI_UM_CM_IDLE 0x0 /* Idle */ #define EHCI_UM_CM_HOST 0x3 /* Host Controller */ @@ -166,6 +176,18 @@ #define EHCI_UM_ES_BE 0x4 /* Big-endian byte alignment */ #define EHCI_UM_SDIS 0x00000010 /* R/WO Stream Disable Mode */ -#define EHCI_PORT_RESET_COMPLETE 2 /* ms */ +/* + * Actual port speed bits depends on EHCI_HOSTC(n) registers presence, + * speed encoding is equal + */ +#define EHCI_HOSTC(n) (0x80+(4*(n))) /* RO, RW Host mode control reg */ +#define EHCI_HOSTC_PSPD_SHIFT 25 +#define EHCI_HOSTC_PSPD_MASK 0x3 + +#define EHCI_PORTSC_PSPD_SHIFT 26 +#define EHCI_PORTSC_PSPD_MASK 0x3 +#define EHCI_PORT_SPEED_FULL 0 +#define EHCI_PORT_SPEED_LOW 1 +#define EHCI_PORT_SPEED_HIGH 2 #endif /* _EHCIREG_H_ */ Modified: head/sys/mips/atheros/ar71xx_ehci.c ============================================================================== --- head/sys/mips/atheros/ar71xx_ehci.c Thu Jan 28 13:32:00 2016 (r294988) +++ head/sys/mips/atheros/ar71xx_ehci.c Thu Jan 28 14:11:59 2016 (r294989) @@ -61,6 +61,10 @@ __FBSDID("$FreeBSD$"); #define EHCI_HC_DEVSTR "AR71XX Integrated USB 2.0 controller" +#define EHCI_USBMODE 0x68 /* USB Device mode register */ +#define EHCI_UM_CM 0x00000003 /* R/WO Controller Mode */ +#define EHCI_UM_CM_HOST 0x3 /* Host Controller */ + struct ar71xx_ehci_softc { ehci_softc_t base; /* storage for EHCI code */ }; @@ -71,6 +75,18 @@ static device_detach_t ar71xx_ehci_detac bs_r_1_proto(reversed); bs_w_1_proto(reversed); +static void +ar71xx_ehci_post_reset(struct ehci_softc *ehci_softc) +{ + uint32_t usbmode; + + /* Force HOST mode */ + usbmode = EOREAD4(ehci_softc, EHCI_USBMODE_NOLPM); + usbmode &= ~EHCI_UM_CM; + usbmode |= EHCI_UM_CM_HOST; + EOWRITE4(ehci_softc, EHCI_USBMODE_NOLPM, usbmode); +} + static int ar71xx_ehci_probe(device_t self) { @@ -161,7 +177,8 @@ ar71xx_ehci_attach(device_t self) * which means port speed must be read from the Port Status * register following a port enable. */ - sc->sc_flags = EHCI_SCFLG_SETMODE; + sc->sc_flags = 0; + sc->sc_vendor_post_reset = ar71xx_ehci_post_reset; switch (ar71xx_soc) { case AR71XX_SOC_AR7241: @@ -178,6 +195,8 @@ ar71xx_ehci_attach(device_t self) case AR71XX_SOC_QCA9556: case AR71XX_SOC_QCA9558: sc->sc_flags |= EHCI_SCFLG_TT | EHCI_SCFLG_NORESTERM; + sc->sc_vendor_get_port_speed = + ehci_get_port_speed_portsc; break; default: /* fallthrough */ Modified: head/sys/powerpc/ps3/ehci_ps3.c ============================================================================== --- head/sys/powerpc/ps3/ehci_ps3.c Thu Jan 28 13:32:00 2016 (r294988) +++ head/sys/powerpc/ps3/ehci_ps3.c Thu Jan 28 14:11:59 2016 (r294989) @@ -69,6 +69,17 @@ struct ps3_ehci_softc { struct bus_space tag; }; +static void +ehci_ps3_post_reset(struct ehci_softc *ehci_softc) +{ + uint32_t usbmode; + + /* Select big-endian mode */ + usbmode = EOREAD4(ehci_softc, EHCI_USBMODE_NOLPM); + usbmode |= EHCI_UM_ES_BE; + EOWRITE4(ehci_softc, EHCI_USBMODE_NOLPM, usbmode); +} + static int ehci_ps3_probe(device_t dev) { @@ -135,7 +146,7 @@ ehci_ps3_attach(device_t dev) goto error; } - sc->sc_flags |= EHCI_SCFLG_BIGEMMIO; + sc->sc_vendor_post_reset = ehci_ps3_post_reset; err = ehci_init(sc); if (err) { device_printf(dev, "USB init failed err=%d\n", err); From owner-svn-src-all@freebsd.org Thu Jan 28 15:31:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67B89A71A5C; Thu, 28 Jan 2016 15:31:00 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 41E941F07; Thu, 28 Jan 2016 15:31:00 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SFUxDm015508; Thu, 28 Jan 2016 15:30:59 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SFUxjO015505; Thu, 28 Jan 2016 15:30:59 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601281530.u0SFUxjO015505@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Thu, 28 Jan 2016 15:30:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294990 - head/sys/dev/vnic X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 15:31:00 -0000 Author: zbb Date: Thu Jan 28 15:30:58 2016 New Revision: 294990 URL: https://svnweb.freebsd.org/changeset/base/294990 Log: Fix finding appropriate BGX node in DTB and move it to a separate function Search for BGX node in DTS in two ways: 1. Try to find it uder root node first 2. If not found under root, find the top level PCI bridge node and search all nodes below it until appropriate BGX node is found. Move search code to another function to make the code more clear. Remove unused variable by the way. Reviewed by: wma Obtained from: Semihalf Sponsored by: Cavium Differential Revision: https://reviews.freebsd.org/D5066 Modified: head/sys/dev/vnic/thunder_bgx.c head/sys/dev/vnic/thunder_bgx_fdt.c head/sys/dev/vnic/thunder_bgx_var.h Modified: head/sys/dev/vnic/thunder_bgx.c ============================================================================== --- head/sys/dev/vnic/thunder_bgx.c Thu Jan 28 14:11:59 2016 (r294989) +++ head/sys/dev/vnic/thunder_bgx.c Thu Jan 28 15:30:58 2016 (r294990) @@ -68,7 +68,7 @@ __FBSDID("$FreeBSD$"); #define THUNDER_BGX_DEVSTR "ThunderX BGX Ethernet I/O Interface" -static MALLOC_DEFINE(M_BGX, "thunder_bgx", "ThunderX BGX dynamic memory"); +MALLOC_DEFINE(M_BGX, "thunder_bgx", "ThunderX BGX dynamic memory"); #define BGX_NODE_ID_MASK 0x1 #define BGX_NODE_ID_SHIFT 24 Modified: head/sys/dev/vnic/thunder_bgx_fdt.c ============================================================================== --- head/sys/dev/vnic/thunder_bgx_fdt.c Thu Jan 28 14:11:59 2016 (r294989) +++ head/sys/dev/vnic/thunder_bgx_fdt.c Thu Jan 28 15:30:58 2016 (r294990) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include "thunder_bgx.h" @@ -61,6 +62,11 @@ __FBSDID("$FreeBSD$"); #define CONN_TYPE_MAXLEN 16 #define CONN_TYPE_OFFSET 2 +#define BGX_NODE_NAME "bgx" +#define BGX_MAXID 9 + +#define FDT_NAME_MAXLEN 31 + int bgx_fdt_init_phy(struct bgx *); static void @@ -119,28 +125,152 @@ bgx_fdt_phy_mode_match(struct bgx *bgx, return (FALSE); } +static phandle_t +bgx_fdt_traverse_nodes(phandle_t start, char *name, size_t len) +{ + phandle_t node, ret; + size_t buf_size; + char *node_name; + int err; + + buf_size = sizeof(*node_name) * FDT_NAME_MAXLEN; + if (len > buf_size) { + /* + * This is an erroneous situation since the string + * to compare cannot be longer than FDT_NAME_MAXLEN. + */ + return (0); + } + + node_name = malloc(buf_size, M_BGX, M_WAITOK); + for (node = OF_child(start); node != 0; node = OF_peer(node)) { + /* Clean-up the buffer */ + memset(node_name, 0, buf_size); + /* Recurse to children */ + if (OF_child(node) != 0) { + ret = bgx_fdt_traverse_nodes(node, name, len); + if (ret != 0) { + free(node_name, M_BGX); + return (ret); + } + } + err = OF_getprop(node, "name", node_name, FDT_NAME_MAXLEN); + if ((err > 0) && (strncmp(node_name, name, len) == 0)) { + free(node_name, M_BGX); + return (node); + } + } + free(node_name, M_BGX); + + return (0); +} + +/* + * Similar functionality to pci_find_pcie_root_port() + * but this one works for ThunderX. + */ +static device_t +bgx_find_root_pcib(device_t dev) +{ + devclass_t pci_class; + device_t pcib, bus; + + pci_class = devclass_find("pci"); + KASSERT(device_get_devclass(device_get_parent(dev)) == pci_class, + ("%s: non-pci device %s", __func__, device_get_nameunit(dev))); + + /* Walk the bridge hierarchy until we find a non-PCI device */ + for (;;) { + bus = device_get_parent(dev); + KASSERT(bus != NULL, ("%s: null parent of %s", __func__, + device_get_nameunit(dev))); + + if (device_get_devclass(bus) != pci_class) + return (NULL); + + pcib = device_get_parent(bus); + KASSERT(pcib != NULL, ("%s: null bridge of %s", __func__, + device_get_nameunit(bus))); + + /* + * If the parent of this PCIB is not PCI + * then we found our root PCIB. + */ + if (device_get_devclass(device_get_parent(pcib)) != pci_class) + return (pcib); + + dev = pcib; + } +} + +static __inline phandle_t +bgx_fdt_find_node(struct bgx *bgx) +{ + device_t root_pcib; + phandle_t node; + char *bgx_sel; + size_t len; + + KASSERT(bgx->bgx_id <= BGX_MAXID, + ("Invalid BGX ID: %d, max: %d", bgx->bgx_id, BGX_MAXID)); + + len = sizeof(BGX_NODE_NAME) + 1; /* ++<\0> */ + /* Allocate memory for BGX node name + "/" character */ + bgx_sel = malloc(sizeof(*bgx_sel) * (len + 1), M_BGX, + M_ZERO | M_WAITOK); + + /* Prepare node's name */ + snprintf(bgx_sel, len + 1, "/"BGX_NODE_NAME"%d", bgx->bgx_id); + /* First try the root node */ + node = OF_finddevice(bgx_sel); + if ((int)node > 0) { + /* Found relevant node */ + goto out; + } + /* + * Clean-up and try to find BGX in DT + * starting from the parent PCI bridge node. + */ + memset(bgx_sel, 0, sizeof(*bgx_sel) * (len + 1)); + snprintf(bgx_sel, len, BGX_NODE_NAME"%d", bgx->bgx_id); + + /* Find PCI bridge that we are connected to */ + + root_pcib = bgx_find_root_pcib(bgx->dev); + if (root_pcib == NULL) { + device_printf(bgx->dev, "Unable to find BGX root bridge\n"); + node = 0; + goto out; + } + + node = ofw_bus_get_node(root_pcib); + if (node == 0) { + device_printf(bgx->dev, "No parent FDT node for BGX\n"); + goto out; + } + + node = bgx_fdt_traverse_nodes(node, bgx_sel, len); +out: + free(bgx_sel, M_BGX); + return (node); +} + int bgx_fdt_init_phy(struct bgx *bgx) { phandle_t node, child; phandle_t phy, mdio; uint8_t lmac; - char bgx_sel[6]; char qlm_mode[CONN_TYPE_MAXLEN]; - const char *mac; - - (void)mac; - lmac = 0; - /* Get BGX node from DT */ - snprintf(bgx_sel, 6, "/bgx%d", bgx->bgx_id); - node = OF_finddevice(bgx_sel); - if (node == 0 || node == -1) { + node = bgx_fdt_find_node(bgx); + if (node == 0) { device_printf(bgx->dev, - "Could not find %s node in FDT\n", bgx_sel); + "Could not find bgx%d node in FDT\n", bgx->bgx_id); return (ENXIO); } + lmac = 0; for (child = OF_child(node); child > 0; child = OF_peer(child)) { if (OF_getprop(child, "qlm-mode", qlm_mode, sizeof(qlm_mode)) <= 0) { Modified: head/sys/dev/vnic/thunder_bgx_var.h ============================================================================== --- head/sys/dev/vnic/thunder_bgx_var.h Thu Jan 28 14:11:59 2016 (r294989) +++ head/sys/dev/vnic/thunder_bgx_var.h Thu Jan 28 15:30:58 2016 (r294990) @@ -30,6 +30,8 @@ #ifndef __THUNDER_BGX_VAR_H__ #define __THUNDER_BGX_VAR_H__ +MALLOC_DECLARE(M_BGX); + struct lmac { struct bgx *bgx; int dmac; From owner-svn-src-all@freebsd.org Thu Jan 28 15:34:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E2AEA71BE4; Thu, 28 Jan 2016 15:34:15 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C7D2212BA; Thu, 28 Jan 2016 15:34:14 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SFYDEO018128; Thu, 28 Jan 2016 15:34:13 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SFYDcT018123; Thu, 28 Jan 2016 15:34:13 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601281534.u0SFYDcT018123@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Thu, 28 Jan 2016 15:34:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294991 - in head/sys: arm64/cavium conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 15:34:15 -0000 Author: zbb Date: Thu Jan 28 15:34:13 2016 New Revision: 294991 URL: https://svnweb.freebsd.org/changeset/base/294991 Log: Divide ThunderX PCIe driver to general and FDT part - Separate FDT and general PCIe driver parts - Drop some irrelevant printfs that cannot be displayed in FDT attach - Move ranges parsing to FDT portion of PCIe code Obtained from: Semihalf Sponsored by: Cavium Differential Revision: https://reviews.freebsd.org/D5067 Added: head/sys/arm64/cavium/thunder_pcie_fdt.c (contents, props changed) Modified: head/sys/arm64/cavium/thunder_pcie.c head/sys/arm64/cavium/thunder_pcie_common.c head/sys/arm64/cavium/thunder_pcie_common.h head/sys/conf/files.arm64 Modified: head/sys/arm64/cavium/thunder_pcie.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie.c Thu Jan 28 15:30:58 2016 (r294990) +++ head/sys/arm64/cavium/thunder_pcie.c Thu Jan 28 15:34:13 2016 (r294991) @@ -43,9 +43,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include -#include -#include #include #include #include @@ -82,23 +79,6 @@ __FBSDID("$FreeBSD$"); #define THUNDER_ECAM6_CFG_BASE 0x94a000000000UL #define THUNDER_ECAM7_CFG_BASE 0x94b000000000UL -#define OFW_CELL_TO_UINT64(cell) \ - (((uint64_t)(*(cell)) << 32) | (uint64_t)(*((cell) + 1))) - -#define SPACE_CODE_SHIFT 24 -#define SPACE_CODE_MASK 0x3 -#define SPACE_CODE_IO_SPACE 0x1 -#define PROPS_CELL_SIZE 1 -#define PCI_ADDR_CELL_SIZE 2 - -struct thunder_pcie_softc { - struct pcie_range ranges[RANGES_TUPLES_MAX]; - struct rman mem_rman; - struct resource *res; - int ecam; - device_t dev; -}; - /* * ThunderX supports up to 4 ethernet interfaces, so it's good * value to use as default for numbers of VFs, since each eth @@ -111,11 +91,8 @@ SYSCTL_INT(_hw, OID_AUTO, thunder_pcie_m /* Forward prototypes */ static struct resource *thunder_pcie_alloc_resource(device_t, device_t, int, int *, rman_res_t, rman_res_t, rman_res_t, u_int); -static int thunder_pcie_attach(device_t); static int thunder_pcie_identify_pcib(device_t); static int thunder_pcie_maxslots(device_t); -static int parse_pci_mem_ranges(struct thunder_pcie_softc *); -static int thunder_pcie_probe(device_t); static uint32_t thunder_pcie_read_config(device_t, u_int, u_int, u_int, u_int, int); static int thunder_pcie_read_ivar(device_t, device_t, int, uintptr_t *); @@ -125,23 +102,7 @@ static void thunder_pcie_write_config(de u_int, u_int, uint32_t, int); static int thunder_pcie_write_ivar(device_t, device_t, int, uintptr_t); -static int -thunder_pcie_probe(device_t dev) -{ - - if (!ofw_bus_status_okay(dev)) - return (ENXIO); - - if (ofw_bus_is_compatible(dev, "cavium,thunder-pcie") || - ofw_bus_is_compatible(dev, "cavium,pci-host-thunder-ecam")) { - device_set_desc(dev, "Cavium Integrated PCI/PCI-E Controller"); - return (BUS_PROBE_DEFAULT); - } - - return (ENXIO); -} - -static int +int thunder_pcie_attach(device_t dev) { int rid; @@ -167,13 +128,6 @@ thunder_pcie_attach(device_t dev) sc->mem_rman.rm_type = RMAN_ARRAY; sc->mem_rman.rm_descr = "PCIe Memory"; - /* Retrieve 'ranges' property from FDT */ - if (bootverbose) - device_printf(dev, "parsing FDT for ECAM%d:\n", - sc->ecam); - if (parse_pci_mem_ranges(sc)) - return (ENXIO); - /* Initialize rman and allocate memory regions */ error = rman_init(&sc->mem_rman); if (error) { @@ -199,115 +153,6 @@ thunder_pcie_attach(device_t dev) return (bus_generic_attach(dev)); } -static int -parse_pci_mem_ranges(struct thunder_pcie_softc *sc) -{ - phandle_t node; - pcell_t pci_addr_cells, parent_addr_cells, size_cells; - pcell_t attributes; - pcell_t *ranges_buf, *cell_ptr; - int cells_count, tuples_count; - int tuple; - int rv; - - node = ofw_bus_get_node(sc->dev); - - /* Find address cells if present */ - if (OF_getencprop(node, "#address-cells", &pci_addr_cells, - sizeof(pci_addr_cells)) < sizeof(pci_addr_cells)) - pci_addr_cells = 2; - - /* Find size cells if present */ - if (OF_getencprop(node, "#size-cells", &size_cells, - sizeof(size_cells)) < sizeof(size_cells)) - size_cells = 1; - - /* Find parent address cells if present */ - if (OF_getencprop(OF_parent(node), "#address-cells", - &parent_addr_cells, sizeof(parent_addr_cells)) < sizeof(parent_addr_cells)) - parent_addr_cells = 2; - - /* Check if FDT format matches driver requirements */ - if ((parent_addr_cells != 2) || (pci_addr_cells != 3) || - (size_cells != 2)) { - device_printf(sc->dev, - "Unexpected number of address or size cells in FDT " - " %d:%d:%d\n", - parent_addr_cells, pci_addr_cells, size_cells); - return (ENXIO); - } - - cells_count = OF_getencprop_alloc(node, "ranges", - sizeof(pcell_t), (void **)&ranges_buf); - if (cells_count == -1) { - device_printf(sc->dev, "Error parsing FDT 'ranges' property\n"); - return (ENXIO); - } - - tuples_count = cells_count / - (pci_addr_cells + parent_addr_cells + size_cells); - if (tuples_count > RANGES_TUPLES_MAX) { - device_printf(sc->dev, - "Unexpected number of 'ranges' tuples in FDT\n"); - rv = ENXIO; - goto out; - } - - cell_ptr = ranges_buf; - - for (tuple = 0; tuple < tuples_count; tuple++) { - /* - * TUPLE FORMAT: - * attributes - 32-bit attributes field - * PCI address - bus address combined of two cells in - * a following format: - * - * PA address - physical address combined of two cells in - * a following format: - * - * size - range size combined of two cells in - * a following format: - * - */ - attributes = *cell_ptr; - attributes = (attributes >> SPACE_CODE_SHIFT) & SPACE_CODE_MASK; - if (attributes == SPACE_CODE_IO_SPACE) { - /* Internal PCIe does not support IO space, ignore. */ - sc->ranges[tuple].phys_base = 0; - sc->ranges[tuple].size = 0; - cell_ptr += - (pci_addr_cells + parent_addr_cells + size_cells); - continue; - } - cell_ptr += PROPS_CELL_SIZE; - sc->ranges[tuple].pci_base = OFW_CELL_TO_UINT64(cell_ptr); - cell_ptr += PCI_ADDR_CELL_SIZE; - sc->ranges[tuple].phys_base = OFW_CELL_TO_UINT64(cell_ptr); - cell_ptr += parent_addr_cells; - sc->ranges[tuple].size = OFW_CELL_TO_UINT64(cell_ptr); - cell_ptr += size_cells; - - if (bootverbose) { - device_printf(sc->dev, - "\tPCI addr: 0x%jx, CPU addr: 0x%jx, Size: 0x%jx\n", - sc->ranges[tuple].pci_base, - sc->ranges[tuple].phys_base, - sc->ranges[tuple].size); - } - - } - for (; tuple < RANGES_TUPLES_MAX; tuple++) { - /* zero-fill remaining tuples to mark empty elements in array */ - sc->ranges[tuple].phys_base = 0; - sc->ranges[tuple].size = 0; - } - - rv = 0; -out: - free(ranges_buf, M_OFWPROP); - return (rv); -} - static uint32_t thunder_pcie_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, int bytes) @@ -558,8 +403,6 @@ thunder_pcie_identify_pcib(device_t dev) } static device_method_t thunder_pcie_methods[] = { - DEVMETHOD(device_probe, thunder_pcie_probe), - DEVMETHOD(device_attach, thunder_pcie_attach), DEVMETHOD(pcib_maxslots, thunder_pcie_maxslots), DEVMETHOD(pcib_read_config, thunder_pcie_read_config), DEVMETHOD(pcib_write_config, thunder_pcie_write_config), @@ -581,15 +424,5 @@ static device_method_t thunder_pcie_meth DEVMETHOD_END }; -static driver_t thunder_pcie_driver = { - "pcib", - thunder_pcie_methods, - sizeof(struct thunder_pcie_softc), -}; - -static devclass_t thunder_pcie_devclass; - -DRIVER_MODULE(thunder_pcib, simplebus, thunder_pcie_driver, -thunder_pcie_devclass, 0, 0); -DRIVER_MODULE(thunder_pcib, ofwbus, thunder_pcie_driver, -thunder_pcie_devclass, 0, 0); +DEFINE_CLASS_0(pcib, thunder_pcie_driver, thunder_pcie_methods, + sizeof(struct thunder_pcie_softc)); Modified: head/sys/arm64/cavium/thunder_pcie_common.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_common.c Thu Jan 28 15:30:58 2016 (r294990) +++ head/sys/arm64/cavium/thunder_pcie_common.c Thu Jan 28 15:34:13 2016 (r294991) @@ -36,6 +36,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include + #include #include #include Modified: head/sys/arm64/cavium/thunder_pcie_common.h ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_common.h Thu Jan 28 15:30:58 2016 (r294990) +++ head/sys/arm64/cavium/thunder_pcie_common.h Thu Jan 28 15:34:13 2016 (r294991) @@ -32,6 +32,8 @@ #define RANGES_TUPLES_MAX 6 #define RANGES_TUPLES_INVALID (RANGES_TUPLES_MAX + 1) +DECLARE_CLASS(thunder_pcie_driver); + struct pcie_range { uint64_t pci_base; uint64_t phys_base; @@ -39,6 +41,14 @@ struct pcie_range { uint64_t flags; }; +struct thunder_pcie_softc { + struct pcie_range ranges[RANGES_TUPLES_MAX]; + struct rman mem_rman; + struct resource *res; + int ecam; + device_t dev; +}; + uint32_t range_addr_is_pci(struct pcie_range *, uint64_t, uint64_t); uint32_t range_addr_is_phys(struct pcie_range *, uint64_t, uint64_t); uint64_t range_addr_pci_to_phys(struct pcie_range *, uint64_t); @@ -48,4 +58,6 @@ int thunder_common_map_msi(device_t, dev int thunder_common_release_msi(device_t, device_t, int, int *); int thunder_common_release_msix(device_t, device_t, int); +int thunder_pcie_attach(device_t); + #endif /* _CAVIUM_THUNDER_PCIE_COMMON_H_ */ Added: head/sys/arm64/cavium/thunder_pcie_fdt.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm64/cavium/thunder_pcie_fdt.c Thu Jan 28 15:34:13 2016 (r294991) @@ -0,0 +1,219 @@ +/* + * Copyright (C) 2016 Cavium Inc. + * All rights reserved. + * + * Developed by Semihalf. + * + * 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 "opt_platform.h" + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "thunder_pcie_common.h" + +#define OFW_CELL_TO_UINT64(cell) \ + (((uint64_t)(*(cell)) << 32) | (uint64_t)(*((cell) + 1))) + +#define SPACE_CODE_SHIFT 24 +#define SPACE_CODE_MASK 0x3 +#define SPACE_CODE_IO_SPACE 0x1 +#define PROPS_CELL_SIZE 1 +#define PCI_ADDR_CELL_SIZE 2 + +static int thunder_pcie_fdt_probe(device_t); +static int thunder_pcie_fdt_attach(device_t); + +static device_method_t thunder_pcie_fdt_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, thunder_pcie_fdt_probe), + DEVMETHOD(device_attach, thunder_pcie_fdt_attach), + /* End */ + DEVMETHOD_END +}; + +DEFINE_CLASS_1(pcib, thunder_pcie_fdt_driver, thunder_pcie_fdt_methods, + sizeof(struct thunder_pcie_softc), thunder_pcie_driver); + +static devclass_t thunder_pcie_fdt_devclass; + +DRIVER_MODULE(thunder_pcib, simplebus, thunder_pcie_fdt_driver, + thunder_pcie_fdt_devclass, 0, 0); +DRIVER_MODULE(thunder_pcib, ofwbus, thunder_pcie_fdt_driver, + thunder_pcie_fdt_devclass, 0, 0); + +static int thunder_pcie_fdt_ranges(device_t); + +static int +thunder_pcie_fdt_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_is_compatible(dev, "cavium,thunder-pcie") || + ofw_bus_is_compatible(dev, "cavium,pci-host-thunder-ecam")) { + device_set_desc(dev, "Cavium Integrated PCI/PCI-E Controller"); + return (BUS_PROBE_DEFAULT); + } + + return (ENXIO); +} + +static int +thunder_pcie_fdt_attach(device_t dev) +{ + + /* Retrieve 'ranges' property from FDT */ + if (thunder_pcie_fdt_ranges(dev) != 0) + return (ENXIO); + + return (thunder_pcie_attach(dev)); +} + +static int +thunder_pcie_fdt_ranges(device_t dev) +{ + struct thunder_pcie_softc *sc; + phandle_t node; + pcell_t pci_addr_cells, parent_addr_cells, size_cells; + pcell_t attributes; + pcell_t *ranges_buf, *cell_ptr; + int cells_count, tuples_count; + int tuple; + int rv; + + sc = device_get_softc(dev); + node = ofw_bus_get_node(dev); + + /* Find address cells if present */ + if (OF_getencprop(node, "#address-cells", &pci_addr_cells, + sizeof(pci_addr_cells)) < sizeof(pci_addr_cells)) + pci_addr_cells = 2; + + /* Find size cells if present */ + if (OF_getencprop(node, "#size-cells", &size_cells, + sizeof(size_cells)) < sizeof(size_cells)) + size_cells = 1; + + /* Find parent address cells if present */ + if (OF_getencprop(OF_parent(node), "#address-cells", + &parent_addr_cells, sizeof(parent_addr_cells)) < sizeof(parent_addr_cells)) + parent_addr_cells = 2; + + /* Check if FDT format matches driver requirements */ + if ((parent_addr_cells != 2) || (pci_addr_cells != 3) || + (size_cells != 2)) { + device_printf(dev, + "Unexpected number of address or size cells in FDT " + " %d:%d:%d\n", + parent_addr_cells, pci_addr_cells, size_cells); + return (ENXIO); + } + + cells_count = OF_getencprop_alloc(node, "ranges", + sizeof(pcell_t), (void **)&ranges_buf); + if (cells_count == -1) { + device_printf(dev, "Error parsing FDT 'ranges' property\n"); + return (ENXIO); + } + + tuples_count = cells_count / + (pci_addr_cells + parent_addr_cells + size_cells); + if (tuples_count > RANGES_TUPLES_MAX) { + device_printf(dev, + "Unexpected number of 'ranges' tuples in FDT\n"); + rv = ENXIO; + goto out; + } + + cell_ptr = ranges_buf; + + for (tuple = 0; tuple < tuples_count; tuple++) { + /* + * TUPLE FORMAT: + * attributes - 32-bit attributes field + * PCI address - bus address combined of two cells in + * a following format: + * + * PA address - physical address combined of two cells in + * a following format: + * + * size - range size combined of two cells in + * a following format: + * + */ + attributes = *cell_ptr; + attributes = (attributes >> SPACE_CODE_SHIFT) & SPACE_CODE_MASK; + if (attributes == SPACE_CODE_IO_SPACE) { + /* Internal PCIe does not support IO space, ignore. */ + sc->ranges[tuple].phys_base = 0; + sc->ranges[tuple].size = 0; + cell_ptr += + (pci_addr_cells + parent_addr_cells + size_cells); + continue; + } + cell_ptr += PROPS_CELL_SIZE; + sc->ranges[tuple].pci_base = OFW_CELL_TO_UINT64(cell_ptr); + cell_ptr += PCI_ADDR_CELL_SIZE; + sc->ranges[tuple].phys_base = OFW_CELL_TO_UINT64(cell_ptr); + cell_ptr += parent_addr_cells; + sc->ranges[tuple].size = OFW_CELL_TO_UINT64(cell_ptr); + cell_ptr += size_cells; + + if (bootverbose) { + device_printf(dev, + "\tPCI addr: 0x%jx, CPU addr: 0x%jx, Size: 0x%jx\n", + sc->ranges[tuple].pci_base, + sc->ranges[tuple].phys_base, + sc->ranges[tuple].size); + } + + } + for (; tuple < RANGES_TUPLES_MAX; tuple++) { + /* zero-fill remaining tuples to mark empty elements in array */ + sc->ranges[tuple].phys_base = 0; + sc->ranges[tuple].size = 0; + } + + rv = 0; +out: + free(ranges_buf, M_OFWPROP); + return (rv); +} Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Thu Jan 28 15:30:58 2016 (r294990) +++ head/sys/conf/files.arm64 Thu Jan 28 15:34:13 2016 (r294991) @@ -51,7 +51,8 @@ arm64/arm64/uma_machdep.c standard arm64/arm64/unwind.c optional ddb | kdtrace_hooks | stack arm64/arm64/vfp.c standard arm64/arm64/vm_machdep.c standard -arm64/cavium/thunder_pcie.c optional soc_cavm_thunderx pci fdt +arm64/cavium/thunder_pcie.c optional soc_cavm_thunderx pci +arm64/cavium/thunder_pcie_fdt.c optional soc_cavm_thunderx pci fdt arm64/cavium/thunder_pcie_pem.c optional soc_cavm_thunderx pci arm64/cavium/thunder_pcie_common.c optional soc_cavm_thunderx pci arm64/cloudabi64/cloudabi64_sysvec.c optional compat_cloudabi64 From owner-svn-src-all@freebsd.org Thu Jan 28 15:38:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C3FFA71CBB; Thu, 28 Jan 2016 15:38:04 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F277414D6; Thu, 28 Jan 2016 15:38:03 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SFc3El018300; Thu, 28 Jan 2016 15:38:03 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SFc3M6018299; Thu, 28 Jan 2016 15:38:03 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601281538.u0SFc3M6018299@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Thu, 28 Jan 2016 15:38:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294992 - head/sys/arm64/cavium X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 15:38:04 -0000 Author: zbb Date: Thu Jan 28 15:38:02 2016 New Revision: 294992 URL: https://svnweb.freebsd.org/changeset/base/294992 Log: Correct alloc_ and release_resource methods in thunder_pcie driver - Avoid using BUS_ macros as bus_generic_ functions should be used instead. - Fix mistaken device_t pointers in thunder_pcie_alloc_resource. Should use dev->parent method and allocate resource for child device Reviewed by: wma Obtained from: Semihalf Sponsored by: Cavium Differential Revision: https://reviews.freebsd.org/D5068 Modified: head/sys/arm64/cavium/thunder_pcie.c Modified: head/sys/arm64/cavium/thunder_pcie.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie.c Thu Jan 28 15:34:13 2016 (r294991) +++ head/sys/arm64/cavium/thunder_pcie.c Thu Jan 28 15:38:02 2016 (r294992) @@ -268,7 +268,7 @@ thunder_pcie_release_resource(device_t d { if (type != SYS_RES_MEMORY) - return (BUS_RELEASE_RESOURCE(device_get_parent(dev), child, + return (bus_generic_release_resource(dev, child, type, rid, res)); return (rman_release_resource(res)); @@ -291,7 +291,7 @@ thunder_pcie_alloc_resource(device_t dev rm = &sc->mem_rman; break; default: - return (BUS_ALLOC_RESOURCE(device_get_parent(dev), dev, + return (bus_generic_alloc_resource(dev, child, type, rid, start, end, count, flags)); }; From owner-svn-src-all@freebsd.org Thu Jan 28 15:40:57 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CD77EA71D9C; Thu, 28 Jan 2016 15:40:57 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8DBFC186A; Thu, 28 Jan 2016 15:40:57 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SFeuSC018447; Thu, 28 Jan 2016 15:40:56 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SFeuTb018443; Thu, 28 Jan 2016 15:40:56 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601281540.u0SFeuTb018443@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Thu, 28 Jan 2016 15:40:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294993 - head/sys/arm64/cavium X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 15:40:57 -0000 Author: zbb Date: Thu Jan 28 15:40:56 2016 New Revision: 294993 URL: https://svnweb.freebsd.org/changeset/base/294993 Log: Add FDT bus capabilities to ThunderX PCI driver New ThunderX firmware incorporates modified DTB that presents different device hierarchy. In the new device tree, MDIO devices are below two additional buses that oddly hang on PCI bridge. Obtained from: Semihalf Sponsored by: Cavium Differential Revision: https://reviews.freebsd.org/D5069 Modified: head/sys/arm64/cavium/thunder_pcie.c head/sys/arm64/cavium/thunder_pcie_common.c head/sys/arm64/cavium/thunder_pcie_common.h head/sys/arm64/cavium/thunder_pcie_fdt.c Modified: head/sys/arm64/cavium/thunder_pcie.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie.c Thu Jan 28 15:38:02 2016 (r294992) +++ head/sys/arm64/cavium/thunder_pcie.c Thu Jan 28 15:40:56 2016 (r294993) @@ -28,6 +28,7 @@ */ /* PCIe root complex driver for Cavium Thunder SOC */ +#include "opt_platform.h" #include __FBSDID("$FreeBSD$"); @@ -89,15 +90,11 @@ SYSCTL_INT(_hw, OID_AUTO, thunder_pcie_m &thunder_pcie_max_vfs, 0, "Max VFs supported by ThunderX internal PCIe"); /* Forward prototypes */ -static struct resource *thunder_pcie_alloc_resource(device_t, - device_t, int, int *, rman_res_t, rman_res_t, rman_res_t, u_int); static int thunder_pcie_identify_pcib(device_t); static int thunder_pcie_maxslots(device_t); static uint32_t thunder_pcie_read_config(device_t, u_int, u_int, u_int, u_int, int); static int thunder_pcie_read_ivar(device_t, device_t, int, uintptr_t *); -static int thunder_pcie_release_resource(device_t, device_t, int, int, - struct resource *); static void thunder_pcie_write_config(device_t, u_int, u_int, u_int, u_int, uint32_t, int); static int thunder_pcie_write_ivar(device_t, device_t, int, uintptr_t); @@ -262,7 +259,7 @@ thunder_pcie_write_ivar(device_t dev, de return (ENOENT); } -static int +int thunder_pcie_release_resource(device_t dev, device_t child, int type, int rid, struct resource *res) { @@ -274,7 +271,7 @@ thunder_pcie_release_resource(device_t d return (rman_release_resource(res)); } -static struct resource * +struct resource * thunder_pcie_alloc_resource(device_t dev, device_t child, int type, int *rid, rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) { Modified: head/sys/arm64/cavium/thunder_pcie_common.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_common.c Thu Jan 28 15:38:02 2016 (r294992) +++ head/sys/arm64/cavium/thunder_pcie_common.c Thu Jan 28 15:40:56 2016 (r294993) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -44,6 +45,8 @@ __FBSDID("$FreeBSD$"); #include "thunder_pcie_common.h" +MALLOC_DEFINE(M_THUNDER_PCIE, "Thunder PCIe driver", "Thunder PCIe driver memory"); + uint32_t range_addr_is_pci(struct pcie_range *ranges, uint64_t addr, uint64_t size) { Modified: head/sys/arm64/cavium/thunder_pcie_common.h ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_common.h Thu Jan 28 15:38:02 2016 (r294992) +++ head/sys/arm64/cavium/thunder_pcie_common.h Thu Jan 28 15:40:56 2016 (r294993) @@ -34,6 +34,8 @@ DECLARE_CLASS(thunder_pcie_driver); +MALLOC_DECLARE(M_THUNDER_PCIE); + struct pcie_range { uint64_t pci_base; uint64_t phys_base; @@ -58,6 +60,11 @@ int thunder_common_map_msi(device_t, dev int thunder_common_release_msi(device_t, device_t, int, int *); int thunder_common_release_msix(device_t, device_t, int); +struct resource *thunder_pcie_alloc_resource(device_t, + device_t, int, int *, rman_res_t, rman_res_t, rman_res_t, u_int); +int thunder_pcie_release_resource(device_t, device_t, int, int, + struct resource *); + int thunder_pcie_attach(device_t); #endif /* _CAVIUM_THUNDER_PCIE_COMMON_H_ */ Modified: head/sys/arm64/cavium/thunder_pcie_fdt.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_fdt.c Thu Jan 28 15:38:02 2016 (r294992) +++ head/sys/arm64/cavium/thunder_pcie_fdt.c Thu Jan 28 15:40:56 2016 (r294993) @@ -60,10 +60,32 @@ __FBSDID("$FreeBSD$"); static int thunder_pcie_fdt_probe(device_t); static int thunder_pcie_fdt_attach(device_t); +static struct resource * thunder_pcie_ofw_bus_alloc_res(device_t, device_t, + int, int *, rman_res_t, rman_res_t, rman_res_t, u_int); +static int thunder_pcie_ofw_bus_rel_res(device_t, device_t, int, int, + struct resource *); + +static const struct ofw_bus_devinfo *thunder_pcie_ofw_get_devinfo(device_t, + device_t); + static device_method_t thunder_pcie_fdt_methods[] = { /* Device interface */ DEVMETHOD(device_probe, thunder_pcie_fdt_probe), DEVMETHOD(device_attach, thunder_pcie_fdt_attach), + + /* Bus interface */ + DEVMETHOD(bus_alloc_resource, thunder_pcie_ofw_bus_alloc_res), + DEVMETHOD(bus_release_resource, thunder_pcie_ofw_bus_rel_res), + DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), + + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_devinfo, thunder_pcie_ofw_get_devinfo), + DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), + DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), + DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), + DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), + DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), + /* End */ DEVMETHOD_END }; @@ -79,6 +101,7 @@ DRIVER_MODULE(thunder_pcib, ofwbus, thun thunder_pcie_fdt_devclass, 0, 0); static int thunder_pcie_fdt_ranges(device_t); +static int thunder_pcie_ofw_bus_attach(device_t); static int thunder_pcie_fdt_probe(device_t dev) @@ -99,14 +122,32 @@ thunder_pcie_fdt_probe(device_t dev) static int thunder_pcie_fdt_attach(device_t dev) { + int err; /* Retrieve 'ranges' property from FDT */ if (thunder_pcie_fdt_ranges(dev) != 0) return (ENXIO); + err = thunder_pcie_ofw_bus_attach(dev); + if (err != 0) + return (err); + return (thunder_pcie_attach(dev)); } +static __inline void +get_addr_size_cells(phandle_t node, pcell_t *addr_cells, pcell_t *size_cells) +{ + + *addr_cells = 2; + /* Find address cells if present */ + OF_getencprop(node, "#address-cells", addr_cells, sizeof(*addr_cells)); + + *size_cells = 2; + /* Find size cells if present */ + OF_getencprop(node, "#size-cells", size_cells, sizeof(*size_cells)); +} + static int thunder_pcie_fdt_ranges(device_t dev) { @@ -122,15 +163,7 @@ thunder_pcie_fdt_ranges(device_t dev) sc = device_get_softc(dev); node = ofw_bus_get_node(dev); - /* Find address cells if present */ - if (OF_getencprop(node, "#address-cells", &pci_addr_cells, - sizeof(pci_addr_cells)) < sizeof(pci_addr_cells)) - pci_addr_cells = 2; - - /* Find size cells if present */ - if (OF_getencprop(node, "#size-cells", &size_cells, - sizeof(size_cells)) < sizeof(size_cells)) - size_cells = 1; + get_addr_size_cells(node, &pci_addr_cells, &size_cells); /* Find parent address cells if present */ if (OF_getencprop(OF_parent(node), "#address-cells", @@ -217,3 +250,133 @@ out: free(ranges_buf, M_OFWPROP); return (rv); } + +/* OFW bus interface */ +struct thunder_pcie_ofw_devinfo { + struct ofw_bus_devinfo di_dinfo; + struct resource_list di_rl; +}; + +static const struct ofw_bus_devinfo * +thunder_pcie_ofw_get_devinfo(device_t bus __unused, device_t child) +{ + struct thunder_pcie_ofw_devinfo *di; + + di = device_get_ivars(child); + return (&di->di_dinfo); +} + +static struct resource * +thunder_pcie_ofw_bus_alloc_res(device_t bus, device_t child, int type, int *rid, + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) +{ + struct thunder_pcie_softc *sc; + struct thunder_pcie_ofw_devinfo *di; + struct resource_list_entry *rle; + int i; + + /* For PCIe devices that do not have FDT nodes, use PCIB method */ + if (ofw_bus_get_node(child) == 0) { + return (thunder_pcie_alloc_resource(bus, child, type, rid, + start, end, count, flags)); + } + + sc = device_get_softc(bus); + + if ((start == 0UL) && (end == ~0UL)) { + if ((di = device_get_ivars(child)) == NULL) + return (NULL); + if (type == SYS_RES_IOPORT) + type = SYS_RES_MEMORY; + + /* Find defaults for this rid */ + rle = resource_list_find(&di->di_rl, type, *rid); + if (rle == NULL) + return (NULL); + + start = rle->start; + end = rle->end; + count = rle->count; + } + + if (type == SYS_RES_MEMORY) { + /* Remap through ranges property */ + for (i = 0; i < RANGES_TUPLES_MAX; i++) { + if (start >= sc->ranges[i].phys_base && end < + sc->ranges[i].pci_base + sc->ranges[i].size) { + start -= sc->ranges[i].phys_base; + start += sc->ranges[i].pci_base; + end -= sc->ranges[i].phys_base; + end += sc->ranges[i].pci_base; + break; + } + } + + if (i == RANGES_TUPLES_MAX) { + device_printf(bus, "Could not map resource " + "%#lx-%#lx\n", start, end); + return (NULL); + } + } + + return (bus_generic_alloc_resource(bus, child, type, rid, start, end, + count, flags)); +} + +static int +thunder_pcie_ofw_bus_rel_res(device_t bus, device_t child, int type, int rid, + struct resource *res) +{ + + /* For PCIe devices that do not have FDT nodes, use PCIB method */ + if (ofw_bus_get_node(child) == 0) { + return (thunder_pcie_release_resource(bus, + child, type, rid, res)); + } + + return (bus_generic_release_resource(bus, child, type, rid, res)); +} + +/* Helper functions */ + +static int +thunder_pcie_ofw_bus_attach(device_t dev) +{ + struct thunder_pcie_ofw_devinfo *di; + device_t child; + phandle_t parent, node; + pcell_t addr_cells, size_cells; + + parent = ofw_bus_get_node(dev); + if (parent > 0) { + get_addr_size_cells(parent, &addr_cells, &size_cells); + /* Iterate through all bus subordinates */ + for (node = OF_child(parent); node > 0; node = OF_peer(node)) { + /* Allocate and populate devinfo. */ + di = malloc(sizeof(*di), M_THUNDER_PCIE, M_WAITOK | M_ZERO); + if (ofw_bus_gen_setup_devinfo(&di->di_dinfo, node) != 0) { + free(di, M_THUNDER_PCIE); + continue; + } + + /* Initialize and populate resource list. */ + resource_list_init(&di->di_rl); + ofw_bus_reg_to_rl(dev, node, addr_cells, size_cells, + &di->di_rl); + ofw_bus_intr_to_rl(dev, node, &di->di_rl, NULL); + + /* Add newbus device for this FDT node */ + child = device_add_child(dev, NULL, -1); + if (child == NULL) { + resource_list_free(&di->di_rl); + ofw_bus_gen_destroy_devinfo(&di->di_dinfo); + free(di, M_THUNDER_PCIE); + continue; + } + + device_set_ivars(child, di); + } + } + + return (0); +} From owner-svn-src-all@freebsd.org Thu Jan 28 15:41:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7691A71DF9; Thu, 28 Jan 2016 15:41:54 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-oi0-x22b.google.com (mail-oi0-x22b.google.com [IPv6:2607:f8b0:4003:c06::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8A3A61AA3; Thu, 28 Jan 2016 15:41:54 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-oi0-x22b.google.com with SMTP id r14so28825500oie.0; Thu, 28 Jan 2016 07:41:54 -0800 (PST) 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; bh=STLt4Fh0ocHeX8rF3dZ1///4tWZxeHG5LpefF9YcCxk=; b=ay4Il746PNdQWP1PK3qgAjA5TuXe6G9b3AsQEn//9kFgoXQwY9Uysh23NMG2oMmC36 YrMgOSCqfsM5qPKufjfvabY2eAAEbUP5htgkts9/2uxtU/+PAHLa37RpBxk0lOUP1sv5 xY926Sf9enPgX4gjUuYNPcVssHq2e9DIL7My1EOefvwrq3m1MnbYu1998t6AkHwptpcl LSM51ENbMvwnYpNGf+Ppl2Af2likUIl/iRxgM6JSAtbn6Dm2yIm9l4IlevFUPC+8fobl 0r6ZpTyN5gxKyRyP2nyoZSJhGFwgWFx9wCnQ//9Ql+sfNGFLShKl6vkO1ZFP7XA9RDs9 kLZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=STLt4Fh0ocHeX8rF3dZ1///4tWZxeHG5LpefF9YcCxk=; b=YOgtsRRtmu1huiXYne+MFMbRvfyDvxYDX8ewGtxHYa9EaGgHxsnuW6W7CA3ZFGYc2B gdi573ck+EJDgJO8ipyJb+mnjBnUWJI8ADuGENkWNcpvkVvKk6cw+aF9RIhtJwvqlWHi S7ZRcNMRcYsWWLf4B5IEFnFtOW/Qkqn1Q6x/Jm6dn6510MzKZfFKdcVSR6EFWrYGpy1v vHt3qtbol8TyXgC7ma9AGRUynZu+6WY2ITwmDPJLRzWWBqVrPhYj2On8HY2Kah0mGGp7 XOv5J4QkLWBuLOFNHi/UhuonEoMgjmwvwlzi38Csk52PscRa4xfZ4vgzib5J0+plewq0 TivA== X-Gm-Message-State: AG10YOSoIjeWQF/kDgc4RLR3CHzC1vz++21ne0hmhumaXEVYG2TO+bJbkFEAmC82fZKS9Q== X-Received: by 10.202.214.144 with SMTP id n138mr2630723oig.69.1453995713763; Thu, 28 Jan 2016 07:41:53 -0800 (PST) Received: from [192.168.20.11] (c-24-16-212-205.hsd1.wa.comcast.net. [24.16.212.205]) by smtp.gmail.com with ESMTPSA id o8sm4615064obm.28.2016.01.28.07.41.51 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 28 Jan 2016 07:41:52 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r294909 - head/crypto/openssh From: NGie Cooper X-Mailer: iPhone Mail (13D15) In-Reply-To: <86fuxif28h.fsf@desk.des.no> Date: Thu, 28 Jan 2016 07:41:50 -0800 Cc: Colin Percival , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <987A875E-45F0-4C3C-B6E2-42C619228ADA@gmail.com> References: <201601271340.u0RDeiU5060523@repo.freebsd.org> <7BEC31CD-F7AF-44B5-BBB5-9F4CAF3487A7@gmail.com> <86oac6f4xq.fsf@desk.des.no> <000001528781a663-adcfe209-147a-4fb4-83e4-e0911293f7f3-000000@email.amazonses.com> <86fuxif28h.fsf@desk.des.no> To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 15:41:54 -0000 > On Jan 28, 2016, at 02:05, Dag-Erling Sm=C3=B8rgrav wrote: >=20 > Colin Percival writes: >> At a guess, because NGie thinks that this is something which is important= >> enough to be worth mentioning in the FreeBSD release notes, and "Relnotes= : >> yes" flags the commit to the release engineering team for that purpose? >=20 > UseDNS was (unintentionally) turned off in head last week, I just turned > it back on. As Conrad said earlier, I incorrectly assumed that this needed to be MFCed: I= didn't look at the commit history for openssh, and the message stated the w= hat, not the why behind the change, so I assumed incorrectly that this was a= new feature. I apologize for the confusion. -NGie= From owner-svn-src-all@freebsd.org Thu Jan 28 15:44:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1658AA71F8B; Thu, 28 Jan 2016 15:44:16 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CCDFF1DE0; Thu, 28 Jan 2016 15:44:15 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SFiEAO021164; Thu, 28 Jan 2016 15:44:14 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SFiEML021160; Thu, 28 Jan 2016 15:44:14 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601281544.u0SFiEML021160@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Thu, 28 Jan 2016 15:44:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294994 - in head/sys: conf dev/vnic X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 15:44:16 -0000 Author: zbb Date: Thu Jan 28 15:44:14 2016 New Revision: 294994 URL: https://svnweb.freebsd.org/changeset/base/294994 Log: Support new MDIO hierarchy in ThunderX DTB Some firmware revisions provide different DTB tree that include odd MDIO placement in the tree. This commit adds support for 2 new buses: - MRML bridge (PCIB subordinate) - MDIO nexus (MRML subordinate) This allows for the correct MDIO attachment with both - new and old firmware. Obtained from: Semihalf Sponsored by: Cavium Differential Revision: https://reviews.freebsd.org/D5070 Added: head/sys/dev/vnic/mrml_bridge.c (contents, props changed) Modified: head/sys/conf/files.arm64 head/sys/dev/vnic/thunder_mdio_fdt.c head/sys/dev/vnic/thunder_mdio_var.h Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Thu Jan 28 15:40:56 2016 (r294993) +++ head/sys/conf/files.arm64 Thu Jan 28 15:44:14 2016 (r294994) @@ -71,6 +71,7 @@ dev/psci/psci_arm64.S optional psci dev/uart/uart_cpu_fdt.c optional uart fdt dev/uart/uart_dev_pl011.c optional uart pl011 dev/usb/controller/dwc_otg_hisi.c optional dwcotg soc_hisi_hi6220 +dev/vnic/mrml_bridge.c optional vnic fdt dev/vnic/nic_main.c optional vnic pci dev/vnic/nicvf_main.c optional vnic pci pci_iov dev/vnic/nicvf_queues.c optional vnic pci pci_iov Added: head/sys/dev/vnic/mrml_bridge.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/vnic/mrml_bridge.c Thu Jan 28 15:44:14 2016 (r294994) @@ -0,0 +1,280 @@ +/* + * Copyright (C) 2016 Cavium Inc. + * All rights reserved. + * + * Developed by Semihalf. + * + * 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 "opt_platform.h" + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +static MALLOC_DEFINE(M_MRMLB, "MRML bridge", "Cavium MRML bridge"); + +static device_probe_t mrmlb_fdt_probe; +static device_attach_t mrmlb_fdt_attach; + +static struct resource * mrmlb_ofw_bus_alloc_res(device_t, device_t, int, int *, + rman_res_t, rman_res_t, rman_res_t, u_int); + +static const struct ofw_bus_devinfo * mrmlb_ofw_get_devinfo(device_t, device_t); + +static device_method_t mrmlbus_fdt_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, mrmlb_fdt_probe), + DEVMETHOD(device_attach, mrmlb_fdt_attach), + + /* Bus interface */ + DEVMETHOD(bus_alloc_resource, mrmlb_ofw_bus_alloc_res), + DEVMETHOD(bus_release_resource, bus_generic_release_resource), + DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), + + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_devinfo, mrmlb_ofw_get_devinfo), + DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), + DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), + DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), + DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), + DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), + + DEVMETHOD_END +}; + +DEFINE_CLASS_0(mrmlbus, mrmlbus_fdt_driver, mrmlbus_fdt_methods, + sizeof(struct simplebus_softc)); + +static devclass_t mrmlbus_fdt_devclass; + +EARLY_DRIVER_MODULE(mrmlbus, pcib, mrmlbus_fdt_driver, mrmlbus_fdt_devclass, 0, 0, + BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); + +static int mrmlb_ofw_fill_ranges(phandle_t, struct simplebus_softc *); +static int mrmlb_ofw_bus_attach(device_t); + +static int +mrmlb_fdt_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_is_compatible(dev, "cavium,thunder-8890-mrml-bridge")) + return (ENXIO); + + device_set_desc(dev, "Cavium ThunderX MRML bridge"); + return (BUS_PROBE_SPECIFIC); +} + +static int +mrmlb_fdt_attach(device_t dev) +{ + int err; + + err = mrmlb_ofw_bus_attach(dev); + if (err != 0) + return (err); + + return (bus_generic_attach(dev)); +} + +/* OFW bus interface */ +struct mrmlb_ofw_devinfo { + struct ofw_bus_devinfo di_dinfo; + struct resource_list di_rl; +}; + +static const struct ofw_bus_devinfo * +mrmlb_ofw_get_devinfo(device_t bus __unused, device_t child) +{ + struct mrmlb_ofw_devinfo *di; + + di = device_get_ivars(child); + return (&di->di_dinfo); +} + +static struct resource * +mrmlb_ofw_bus_alloc_res(device_t bus, device_t child, int type, int *rid, + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) +{ + struct simplebus_softc *sc; + struct mrmlb_ofw_devinfo *di; + struct resource_list_entry *rle; + int i; + + if ((start == 0UL) && (end == ~0UL)) { + if ((di = device_get_ivars(child)) == NULL) + return (NULL); + if (type == SYS_RES_IOPORT) + type = SYS_RES_MEMORY; + + /* Find defaults for this rid */ + rle = resource_list_find(&di->di_rl, type, *rid); + if (rle == NULL) + return (NULL); + + start = rle->start; + end = rle->end; + count = rle->count; + } + + sc = device_get_softc(bus); + + if (type == SYS_RES_MEMORY) { + /* Remap through ranges property */ + for (i = 0; i < sc->nranges; i++) { + if (start >= sc->ranges[i].bus && end < + sc->ranges[i].bus + sc->ranges[i].size) { + start -= sc->ranges[i].bus; + start += sc->ranges[i].host; + end -= sc->ranges[i].bus; + end += sc->ranges[i].host; + break; + } + } + + if (i == sc->nranges && sc->nranges != 0) { + device_printf(bus, "Could not map resource " + "%#lx-%#lx\n", start, end); + return (NULL); + } + } + + return (bus_generic_alloc_resource(bus, child, type, rid, start, end, + count, flags)); +} + +/* Helper functions */ + +static int +mrmlb_ofw_fill_ranges(phandle_t node, struct simplebus_softc *sc) +{ + int host_address_cells; + cell_t *base_ranges; + ssize_t nbase_ranges; + int err; + int i, j, k; + + err = OF_searchencprop(OF_parent(node), "#address-cells", + &host_address_cells, sizeof(host_address_cells)); + if (err <= 0) + return (-1); + + nbase_ranges = OF_getproplen(node, "ranges"); + if (nbase_ranges < 0) + return (-1); + sc->nranges = nbase_ranges / sizeof(cell_t) / + (sc->acells + host_address_cells + sc->scells); + if (sc->nranges == 0) + return (0); + + sc->ranges = malloc(sc->nranges * sizeof(sc->ranges[0]), + M_MRMLB, M_WAITOK); + base_ranges = malloc(nbase_ranges, M_MRMLB, M_WAITOK); + OF_getencprop(node, "ranges", base_ranges, nbase_ranges); + + for (i = 0, j = 0; i < sc->nranges; i++) { + sc->ranges[i].bus = 0; + for (k = 0; k < sc->acells; k++) { + sc->ranges[i].bus <<= 32; + sc->ranges[i].bus |= base_ranges[j++]; + } + sc->ranges[i].host = 0; + for (k = 0; k < host_address_cells; k++) { + sc->ranges[i].host <<= 32; + sc->ranges[i].host |= base_ranges[j++]; + } + sc->ranges[i].size = 0; + for (k = 0; k < sc->scells; k++) { + sc->ranges[i].size <<= 32; + sc->ranges[i].size |= base_ranges[j++]; + } + } + + free(base_ranges, M_MRMLB); + return (sc->nranges); +} + +static int +mrmlb_ofw_bus_attach(device_t dev) +{ + struct simplebus_softc *sc; + struct mrmlb_ofw_devinfo *di; + device_t child; + phandle_t parent, node; + + parent = ofw_bus_get_node(dev); + simplebus_init(dev, parent); + + sc = device_get_softc(dev); + + if (mrmlb_ofw_fill_ranges(parent, sc) < 0) { + device_printf(dev, "could not get ranges\n"); + return (ENXIO); + } + /* Iterate through all bus subordinates */ + for (node = OF_child(parent); node > 0; node = OF_peer(node)) { + /* Allocate and populate devinfo. */ + di = malloc(sizeof(*di), M_MRMLB, M_WAITOK | M_ZERO); + if (ofw_bus_gen_setup_devinfo(&di->di_dinfo, node) != 0) { + free(di, M_MRMLB); + continue; + } + + /* Initialize and populate resource list. */ + resource_list_init(&di->di_rl); + ofw_bus_reg_to_rl(dev, node, sc->acells, sc->scells, + &di->di_rl); + ofw_bus_intr_to_rl(dev, node, &di->di_rl, NULL); + + /* Add newbus device for this FDT node */ + child = device_add_child(dev, NULL, -1); + if (child == NULL) { + resource_list_free(&di->di_rl); + ofw_bus_gen_destroy_devinfo(&di->di_dinfo); + free(di, M_MRMLB); + continue; + } + + device_set_ivars(child, di); + } + + return (0); +} Modified: head/sys/dev/vnic/thunder_mdio_fdt.c ============================================================================== --- head/sys/dev/vnic/thunder_mdio_fdt.c Thu Jan 28 15:40:56 2016 (r294993) +++ head/sys/dev/vnic/thunder_mdio_fdt.c Thu Jan 28 15:44:14 2016 (r294994) @@ -38,6 +38,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include + +#include +#include #include "thunder_mdio_var.h" @@ -60,17 +64,26 @@ static devclass_t thunder_mdio_fdt_devcl EARLY_DRIVER_MODULE(thunder_mdio, ofwbus, thunder_mdio_fdt_driver, thunder_mdio_fdt_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); +EARLY_DRIVER_MODULE(thunder_mdio, mdionexus, thunder_mdio_fdt_driver, + thunder_mdio_fdt_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); + +static struct ofw_compat_data mdio_compat_data[] = { + {"cavium,octeon-3860-mdio", true}, + {"cavium,thunder-8890-mdio", true}, + {NULL, false} +}; static int thunder_mdio_fdt_probe(device_t dev) { - if (ofw_bus_is_compatible(dev, "cavium,octeon-3860-mdio")) { - device_set_desc(dev, THUNDER_MDIO_DEVSTR); - return (BUS_PROBE_DEFAULT); - } + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + if (!ofw_bus_search_compatible(dev, mdio_compat_data)->ocd_data) + return (ENXIO); - return (ENXIO); + device_set_desc(dev, THUNDER_MDIO_DEVSTR); + return (BUS_PROBE_DEFAULT); } static int @@ -93,3 +106,184 @@ thunder_mdio_fdt_attach(device_t dev) return (0); } + +struct mdionexus_softc { + struct simplebus_softc simplebus_sc; +}; + +static device_probe_t mdionexus_fdt_probe; +static device_attach_t mdionexus_fdt_attach; + +static const struct ofw_bus_devinfo * mdionexus_ofw_get_devinfo(device_t, + device_t); + +static device_method_t mdionexus_fdt_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, mdionexus_fdt_probe), + DEVMETHOD(device_attach, mdionexus_fdt_attach), + + /* Bus interface */ + DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource), + DEVMETHOD(bus_release_resource, bus_generic_release_resource), + DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), + + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_devinfo, mdionexus_ofw_get_devinfo), + DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), + DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), + DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), + DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), + DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), + + DEVMETHOD_END +}; + +DEFINE_CLASS_0(mdionexus, mdionexus_fdt_driver, mdionexus_fdt_methods, + sizeof(struct mdionexus_softc)); + +static devclass_t mdionexus_fdt_devclass; + +EARLY_DRIVER_MODULE(mdionexus, mrmlbus, mdionexus_fdt_driver, + mdionexus_fdt_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); + +static int mdionexus_ofw_fill_ranges(phandle_t, struct simplebus_softc *); +static int mdionexus_ofw_bus_attach(device_t); + +static int +mdionexus_fdt_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_is_compatible(dev, "cavium,thunder-8890-mdio-nexus")) + return (ENXIO); + + device_set_desc(dev, "Cavium ThunderX MDIO nexus"); + return (BUS_PROBE_SPECIFIC); +} + +static int +mdionexus_fdt_attach(device_t dev) +{ + int err; + + err = mdionexus_ofw_bus_attach(dev); + if (err != 0) + return (err); + + return (bus_generic_attach(dev)); +} + +/* OFW bus interface */ +struct mdionexus_ofw_devinfo { + struct ofw_bus_devinfo di_dinfo; + struct resource_list di_rl; +}; + +static const struct ofw_bus_devinfo * +mdionexus_ofw_get_devinfo(device_t bus __unused, device_t child) +{ + struct mdionexus_ofw_devinfo *di; + + di = device_get_ivars(child); + return (&di->di_dinfo); +} + +/* Helper functions */ + +static int +mdionexus_ofw_fill_ranges(phandle_t node, struct simplebus_softc *sc) +{ + int host_address_cells; + cell_t *base_ranges; + ssize_t nbase_ranges; + int err; + int i, j, k; + + err = OF_searchencprop(OF_parent(node), "#address-cells", + &host_address_cells, sizeof(host_address_cells)); + if (err <= 0) + return (-1); + + nbase_ranges = OF_getproplen(node, "ranges"); + if (nbase_ranges < 0) + return (-1); + sc->nranges = nbase_ranges / sizeof(cell_t) / + (sc->acells + host_address_cells + sc->scells); + if (sc->nranges == 0) + return (0); + + sc->ranges = malloc(sc->nranges * sizeof(sc->ranges[0]), + M_THUNDER_MDIO, M_WAITOK); + base_ranges = malloc(nbase_ranges, M_THUNDER_MDIO, M_WAITOK); + OF_getencprop(node, "ranges", base_ranges, nbase_ranges); + + for (i = 0, j = 0; i < sc->nranges; i++) { + sc->ranges[i].bus = 0; + for (k = 0; k < sc->acells; k++) { + sc->ranges[i].bus <<= 32; + sc->ranges[i].bus |= base_ranges[j++]; + } + sc->ranges[i].host = 0; + for (k = 0; k < host_address_cells; k++) { + sc->ranges[i].host <<= 32; + sc->ranges[i].host |= base_ranges[j++]; + } + sc->ranges[i].size = 0; + for (k = 0; k < sc->scells; k++) { + sc->ranges[i].size <<= 32; + sc->ranges[i].size |= base_ranges[j++]; + } + } + + free(base_ranges, M_THUNDER_MDIO); + return (sc->nranges); +} + +static int +mdionexus_ofw_bus_attach(device_t dev) +{ + struct simplebus_softc *sc; + struct mdionexus_ofw_devinfo *di; + device_t child; + phandle_t parent, node; + + parent = ofw_bus_get_node(dev); + simplebus_init(dev, parent); + + sc = (struct simplebus_softc *)device_get_softc(dev); + + if (mdionexus_ofw_fill_ranges(parent, sc) < 0) { + device_printf(dev, "could not get ranges\n"); + return (ENXIO); + } + /* Iterate through all bus subordinates */ + for (node = OF_child(parent); node > 0; node = OF_peer(node)) { + /* Allocate and populate devinfo. */ + di = malloc(sizeof(*di), M_THUNDER_MDIO, M_WAITOK | M_ZERO); + if (ofw_bus_gen_setup_devinfo(&di->di_dinfo, node) != 0) { + free(di, M_THUNDER_MDIO); + continue; + } + + /* Initialize and populate resource list. */ + resource_list_init(&di->di_rl); + ofw_bus_reg_to_rl(dev, node, sc->acells, sc->scells, + &di->di_rl); + ofw_bus_intr_to_rl(dev, node, &di->di_rl, NULL); + + /* Add newbus device for this FDT node */ + child = device_add_child(dev, NULL, -1); + if (child == NULL) { + resource_list_free(&di->di_rl); + ofw_bus_gen_destroy_devinfo(&di->di_dinfo); + free(di, M_THUNDER_MDIO); + continue; + } + + device_set_ivars(child, di); + } + + return (0); +} Modified: head/sys/dev/vnic/thunder_mdio_var.h ============================================================================== --- head/sys/dev/vnic/thunder_mdio_var.h Thu Jan 28 15:40:56 2016 (r294993) +++ head/sys/dev/vnic/thunder_mdio_var.h Thu Jan 28 15:44:14 2016 (r294994) @@ -34,6 +34,7 @@ #define __THUNDER_MDIO_VAR_H__ #define THUNDER_MDIO_DEVSTR "Cavium ThunderX SMI/MDIO driver" +MALLOC_DECLARE(M_THUNDER_MDIO); DECLARE_CLASS(thunder_mdio_driver); enum thunder_mdio_mode { From owner-svn-src-all@freebsd.org Thu Jan 28 16:05:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4D7FA708BE; Thu, 28 Jan 2016 16:05:47 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 65635199E; Thu, 28 Jan 2016 16:05:47 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SG5k0v027053; Thu, 28 Jan 2016 16:05:46 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SG5kYU027051; Thu, 28 Jan 2016 16:05:46 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601281605.u0SG5kYU027051@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 28 Jan 2016 16:05:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294995 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 16:05:47 -0000 Author: tuexen Date: Thu Jan 28 16:05:46 2016 New Revision: 294995 URL: https://svnweb.freebsd.org/changeset/base/294995 Log: Always look in the TCP pool. This fixes issues with a restarting peer when the listening 1-to-1 style socket is closed. MFC after: 3 days Modified: head/sys/netinet/sctp_input.c head/sys/netinet/sctp_pcb.c Modified: head/sys/netinet/sctp_input.c ============================================================================== --- head/sys/netinet/sctp_input.c Thu Jan 28 15:44:14 2016 (r294994) +++ head/sys/netinet/sctp_input.c Thu Jan 28 16:05:46 2016 (r294995) @@ -5688,6 +5688,7 @@ sctp_common_input_processing(struct mbuf if (net->port == 0) { sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); } +printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port)); net->port = port; } #endif @@ -5719,6 +5720,7 @@ sctp_common_input_processing(struct mbuf if (net->port == 0) { sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); } +printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port)); net->port = port; } #endif @@ -5831,6 +5833,7 @@ sctp_common_input_processing(struct mbuf if (net->port == 0) { sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); } +printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port)); net->port = port; } #endif Modified: head/sys/netinet/sctp_pcb.c ============================================================================== --- head/sys/netinet/sctp_pcb.c Thu Jan 28 15:44:14 2016 (r294994) +++ head/sys/netinet/sctp_pcb.c Thu Jan 28 16:05:46 2016 (r294995) @@ -2256,7 +2256,6 @@ sctp_findassociation_addr(struct mbuf *m struct sctphdr *sh, struct sctp_chunkhdr *ch, struct sctp_inpcb **inp_p, struct sctp_nets **netp, uint32_t vrf_id) { - int find_tcp_pool; struct sctp_tcb *stcb; struct sctp_inpcb *inp; @@ -2268,25 +2267,13 @@ sctp_findassociation_addr(struct mbuf *m return (stcb); } } - find_tcp_pool = 0; - /* - * Don't consider INIT chunks since that breaks 1-to-1 sockets: When - * a server closes the listener, incoming INIT chunks are not - * responsed by an INIT-ACK chunk. - */ - if ((ch->chunk_type != SCTP_INITIATION_ACK) && - (ch->chunk_type != SCTP_COOKIE_ACK) && - (ch->chunk_type != SCTP_COOKIE_ECHO)) { - /* Other chunk types go to the tcp pool. */ - find_tcp_pool = 1; - } if (inp_p) { stcb = sctp_findassociation_addr_sa(src, dst, inp_p, netp, - find_tcp_pool, vrf_id); + 1, vrf_id); inp = *inp_p; } else { stcb = sctp_findassociation_addr_sa(src, dst, &inp, netp, - find_tcp_pool, vrf_id); + 1, vrf_id); } SCTPDBG(SCTP_DEBUG_PCB1, "stcb:%p inp:%p\n", (void *)stcb, (void *)inp); if (stcb == NULL && inp) { From owner-svn-src-all@freebsd.org Thu Jan 28 16:51:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0C96DA7199E; Thu, 28 Jan 2016 16:51:58 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B87D71272; Thu, 28 Jan 2016 16:51:57 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SGpu5F039440; Thu, 28 Jan 2016 16:51:56 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SGpujK039438; Thu, 28 Jan 2016 16:51:56 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201601281651.u0SGpujK039438@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 28 Jan 2016 16:51:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294996 - head/sys/dev/sfxge X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 16:51:58 -0000 Author: glebius Date: Thu Jan 28 16:51:56 2016 New Revision: 294996 URL: https://svnweb.freebsd.org/changeset/base/294996 Log: Use m_getjcl() instead of manually selecting zone. Reviewed by: arybchik Modified: head/sys/dev/sfxge/sfxge.h head/sys/dev/sfxge/sfxge_rx.c Modified: head/sys/dev/sfxge/sfxge.h ============================================================================== --- head/sys/dev/sfxge/sfxge.h Thu Jan 28 16:05:46 2016 (r294995) +++ head/sys/dev/sfxge/sfxge.h Thu Jan 28 16:51:56 2016 (r294996) @@ -273,7 +273,7 @@ struct sfxge_softc { size_t rx_prefix_size; size_t rx_buffer_size; size_t rx_buffer_align; - uma_zone_t rx_buffer_zone; + int rx_cluster_size; unsigned int evq_max; unsigned int evq_count; Modified: head/sys/dev/sfxge/sfxge_rx.c ============================================================================== --- head/sys/dev/sfxge/sfxge_rx.c Thu Jan 28 16:05:46 2016 (r294995) +++ head/sys/dev/sfxge/sfxge_rx.c Thu Jan 28 16:51:56 2016 (r294996) @@ -205,25 +205,6 @@ sfxge_rx_schedule_refill(struct sfxge_rx sfxge_rx_post_refill, rxq); } -static struct mbuf *sfxge_rx_alloc_mbuf(struct sfxge_softc *sc) -{ - struct mb_args args; - struct mbuf *m; - - /* Allocate mbuf structure */ - args.flags = M_PKTHDR; - args.type = MT_DATA; - m = (struct mbuf *)uma_zalloc_arg(zone_mbuf, &args, M_NOWAIT); - - /* Allocate (and attach) packet buffer */ - if (m != NULL && !uma_zalloc_arg(sc->rx_buffer_zone, m, M_NOWAIT)) { - uma_zfree(zone_mbuf, m); - m = NULL; - } - - return (m); -} - #define SFXGE_REFILL_BATCH 64 static void @@ -273,7 +254,8 @@ sfxge_rx_qfill(struct sfxge_rxq *rxq, un KASSERT(rx_desc->mbuf == NULL, ("rx_desc->mbuf != NULL")); rx_desc->flags = EFX_DISCARD; - m = rx_desc->mbuf = sfxge_rx_alloc_mbuf(sc); + m = rx_desc->mbuf = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, + sc->rx_cluster_size); if (m == NULL) break; @@ -1125,13 +1107,13 @@ sfxge_rx_start(struct sfxge_softc *sc) /* Select zone for packet buffers */ if (reserved <= MCLBYTES) - sc->rx_buffer_zone = zone_clust; + sc->rx_cluster_size = MCLBYTES; else if (reserved <= MJUMPAGESIZE) - sc->rx_buffer_zone = zone_jumbop; + sc->rx_cluster_size = MJUMPAGESIZE; else if (reserved <= MJUM9BYTES) - sc->rx_buffer_zone = zone_jumbo9; + sc->rx_cluster_size = MJUM9BYTES; else - sc->rx_buffer_zone = zone_jumbo16; + sc->rx_cluster_size = MJUM16BYTES; /* * Set up the scale table. Enable all hash types and hash insertion. From owner-svn-src-all@freebsd.org Thu Jan 28 16:52:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94B71A719CA; Thu, 28 Jan 2016 16:52:04 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4E54D138C; Thu, 28 Jan 2016 16:52:04 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SGq3aV039501; Thu, 28 Jan 2016 16:52:03 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SGq2L9039493; Thu, 28 Jan 2016 16:52:02 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601281652.u0SGq2L9039493@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 16:52:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294997 - in stable/10/sys/boot: common efi/boot1 efi/include efi/loader X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 16:52:04 -0000 Author: smh Date: Thu Jan 28 16:52:02 2016 New Revision: 294997 URL: https://svnweb.freebsd.org/changeset/base/294997 Log: MFC r281060, r294060, r294291, r294493, r294284: MFC r281060: Remove an unnecessary space in a printf call MFC r294060: Modularise EFI boot loader MFC r294291 (by andrew): Reset the filesystem cache MFC r294493: Fix EFI UFS caching MFC r294284 (by emaste): boot1: correct typo in error message Sponsored by: Multiplay Added: stable/10/sys/boot/efi/boot1/boot_module.h - copied unchanged from r294060, head/sys/boot/efi/boot1/boot_module.h stable/10/sys/boot/efi/boot1/ufs_module.c - copied, changed from r294060, head/sys/boot/efi/boot1/ufs_module.c Modified: stable/10/sys/boot/common/ufsread.c stable/10/sys/boot/efi/boot1/Makefile stable/10/sys/boot/efi/boot1/boot1.c stable/10/sys/boot/efi/include/efilib.h stable/10/sys/boot/efi/loader/devicename.c stable/10/sys/boot/efi/loader/main.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/common/ufsread.c ============================================================================== --- stable/10/sys/boot/common/ufsread.c Thu Jan 28 16:51:56 2016 (r294996) +++ stable/10/sys/boot/common/ufsread.c Thu Jan 28 16:52:02 2016 (r294997) @@ -165,7 +165,7 @@ static int sblock_try[] = SBLOCKSEARCH; #endif static ssize_t -fsread(ufs_ino_t inode, void *buf, size_t nbyte) +fsread_size(ufs_ino_t inode, void *buf, size_t nbyte, size_t *fsizep) { #ifndef UFS2_ONLY static struct ufs1_dinode dp1; @@ -185,6 +185,10 @@ fsread(ufs_ino_t inode, void *buf, size_ static ufs2_daddr_t blkmap, indmap; u_int u; + /* Basic parameter validation. */ + if ((buf == NULL && nbyte != 0) || dmadat == NULL) + return (-1); + blkbuf = dmadat->blkbuf; indbuf = dmadat->indbuf; @@ -231,18 +235,18 @@ fsread(ufs_ino_t inode, void *buf, size_ return -1; n = INO_TO_VBO(n, inode); #if defined(UFS1_ONLY) - memcpy(&dp1, (struct ufs1_dinode *)blkbuf + n, - sizeof(struct ufs1_dinode)); + memcpy(&dp1, (struct ufs1_dinode *)(void *)blkbuf + n, + sizeof(dp1)); #elif defined(UFS2_ONLY) - memcpy(&dp2, (struct ufs2_dinode *)blkbuf + n, - sizeof(struct ufs2_dinode)); + memcpy(&dp2, (struct ufs2_dinode *)(void *)blkbuf + n, + sizeof(dp2)); #else if (fs.fs_magic == FS_UFS1_MAGIC) memcpy(&dp1, (struct ufs1_dinode *)(void *)blkbuf + n, - sizeof(struct ufs1_dinode)); + sizeof(dp1)); else memcpy(&dp2, (struct ufs2_dinode *)(void *)blkbuf + n, - sizeof(struct ufs2_dinode)); + sizeof(dp2)); #endif inomap = inode; fs_off = 0; @@ -306,5 +310,17 @@ fsread(ufs_ino_t inode, void *buf, size_ fs_off += n; nb -= n; } + + if (fsizep != NULL) + *fsizep = size; + return nbyte; } + +static ssize_t +fsread(ufs_ino_t inode, void *buf, size_t nbyte) +{ + + return fsread_size(inode, buf, nbyte, NULL); +} + Modified: stable/10/sys/boot/efi/boot1/Makefile ============================================================================== --- stable/10/sys/boot/efi/boot1/Makefile Thu Jan 28 16:51:56 2016 (r294996) +++ stable/10/sys/boot/efi/boot1/Makefile Thu Jan 28 16:52:02 2016 (r294997) @@ -11,7 +11,7 @@ INTERNALPROG= WARNS?= 6 # architecture-specific loader code -SRCS= boot1.c reloc.c start.S +SRCS= boot1.c reloc.c start.S ufs_module.c CFLAGS+= -fPIC CFLAGS+= -I. @@ -19,6 +19,7 @@ CFLAGS+= -I${.CURDIR}/../include CFLAGS+= -I${.CURDIR}/../include/${MACHINE} CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/include CFLAGS+= -I${.CURDIR}/../../.. +CFLAGS+= -DEFI_UFS_BOOT # Always add MI sources and REGULAR efi loader bits .PATH: ${.CURDIR}/../loader/arch/${MACHINE} Modified: stable/10/sys/boot/efi/boot1/boot1.c ============================================================================== --- stable/10/sys/boot/efi/boot1/boot1.c Thu Jan 28 16:51:56 2016 (r294996) +++ stable/10/sys/boot/efi/boot1/boot1.c Thu Jan 28 16:52:02 2016 (r294997) @@ -5,6 +5,8 @@ * All rights reserved. * Copyright (c) 2014 Nathan Whitehorn * All rights reserved. + * Copyright (c) 2015 Eric McCorkle + * All rights reserved. * * Redistribution and use in source and binary forms are freely * permitted provided that the above copyright notice and this @@ -21,7 +23,6 @@ __FBSDID("$FreeBSD$"); #include -#include #include #include #include @@ -29,19 +30,29 @@ __FBSDID("$FreeBSD$"); #include #include +#include "boot_module.h" + #define _PATH_LOADER "/boot/loader.efi" -#define _PATH_KERNEL "/boot/kernel/kernel" -#define BSIZEMAX 16384 +static const boot_module_t *boot_modules[] = +{ +#ifdef EFI_UFS_BOOT + &ufs_module +#endif +}; + +#define NUM_BOOT_MODULES (sizeof(boot_modules) / sizeof(boot_module_t*)) +/* The initial number of handles used to query EFI for partitions. */ +#define NUM_HANDLES_INIT 24 -void panic(const char *fmt, ...) __dead2; void putchar(int c); EFI_STATUS efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE* Xsystab); -static int domount(EFI_DEVICE_PATH *device, EFI_BLOCK_IO *blkio, int quiet); -static void load(const char *fname); +static void try_load(const boot_module_t* mod); +static EFI_STATUS probe_handle(EFI_HANDLE h); -static EFI_SYSTEM_TABLE *systab; +EFI_SYSTEM_TABLE *systab; +EFI_BOOT_SERVICES *bs; static EFI_HANDLE *image; static EFI_GUID BlockIoProtocolGUID = BLOCK_IO_PROTOCOL; @@ -49,27 +60,92 @@ static EFI_GUID DevicePathGUID = DEVICE_ static EFI_GUID LoadedImageGUID = LOADED_IMAGE_PROTOCOL; static EFI_GUID ConsoleControlGUID = EFI_CONSOLE_CONTROL_PROTOCOL_GUID; -static EFI_BLOCK_IO *bootdev; -static EFI_DEVICE_PATH *bootdevpath; -static EFI_HANDLE *bootdevhandle; +/* + * Provide Malloc / Free backed by EFIs AllocatePool / FreePool which ensures + * memory is correctly aligned avoiding EFI_INVALID_PARAMETER returns from + * EFI methods. + */ +void * +Malloc(size_t len, const char *file __unused, int line __unused) +{ + void *out; + + if (bs->AllocatePool(EfiLoaderData, len, &out) == EFI_SUCCESS) + return (out); + + return (NULL); +} + +void +Free(void *buf, const char *file __unused, int line __unused) +{ + (void)bs->FreePool(buf); +} -EFI_STATUS efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE* Xsystab) +/* + * This function only returns if it fails to load the kernel. If it + * succeeds, it simply boots the kernel. + */ +void +try_load(const boot_module_t *mod) { - EFI_HANDLE handles[128]; - EFI_BLOCK_IO *blkio; - UINTN i, nparts = sizeof(handles), cols, rows, max_dim, best_mode; + size_t bufsize; + void *buf; + dev_info_t *dev; + EFI_HANDLE loaderhandle; + EFI_LOADED_IMAGE *loaded_image; + EFI_STATUS status; + + status = mod->load(_PATH_LOADER, &dev, &buf, &bufsize); + if (status == EFI_NOT_FOUND) + return; + + if (status != EFI_SUCCESS) { + printf("%s failed to load %s (%lu)\n", mod->name, _PATH_LOADER, + EFI_ERROR_CODE(status)); + return; + } + + if ((status = bs->LoadImage(TRUE, image, dev->devpath, buf, bufsize, + &loaderhandle)) != EFI_SUCCESS) { + printf("Failed to load image provided by %s, size: %zu, (%lu)\n", + mod->name, bufsize, EFI_ERROR_CODE(status)); + return; + } + + if ((status = bs->HandleProtocol(loaderhandle, &LoadedImageGUID, + (VOID**)&loaded_image)) != EFI_SUCCESS) { + printf("Failed to query LoadedImage provided by %s (%lu)\n", + mod->name, EFI_ERROR_CODE(status)); + return; + } + + loaded_image->DeviceHandle = dev->devhandle; + + if ((status = bs->StartImage(loaderhandle, NULL, NULL)) != + EFI_SUCCESS) { + printf("Failed to start image provided by %s (%lu)\n", + mod->name, EFI_ERROR_CODE(status)); + return; + } +} + +EFI_STATUS +efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE *Xsystab) +{ + EFI_HANDLE *handles; EFI_STATUS status; - EFI_DEVICE_PATH *devpath; - EFI_BOOT_SERVICES *BS; EFI_CONSOLE_CONTROL_PROTOCOL *ConsoleControl = NULL; SIMPLE_TEXT_OUTPUT_INTERFACE *conout = NULL; - const char *path = _PATH_LOADER; + UINTN i, max_dim, best_mode, cols, rows, hsize, nhandles; + /* Basic initialization*/ systab = Xsystab; image = Ximage; + bs = Xsystab->BootServices; - BS = systab->BootServices; - status = BS->LocateProtocol(&ConsoleControlGUID, NULL, + /* Set up the console, so printf works. */ + status = bs->LocateProtocol(&ConsoleControlGUID, NULL, (VOID **)&ConsoleControl); if (status == EFI_SUCCESS) (void)ConsoleControl->SetMode(ConsoleControl, @@ -94,199 +170,162 @@ EFI_STATUS efi_main(EFI_HANDLE Ximage, E conout->EnableCursor(conout, TRUE); conout->ClearScreen(conout); - printf(" \n>> FreeBSD EFI boot block\n"); - printf(" Loader path: %s\n", path); - - status = systab->BootServices->LocateHandle(ByProtocol, - &BlockIoProtocolGUID, NULL, &nparts, handles); - nparts /= sizeof(handles[0]); - - for (i = 0; i < nparts; i++) { - status = systab->BootServices->HandleProtocol(handles[i], - &DevicePathGUID, (void **)&devpath); - if (EFI_ERROR(status)) + printf("\n>> FreeBSD EFI boot block\n"); + printf(" Loader path: %s\n\n", _PATH_LOADER); + printf(" Initializing modules:"); + for (i = 0; i < NUM_BOOT_MODULES; i++) { + if (boot_modules[i] == NULL) continue; - while (!IsDevicePathEnd(NextDevicePathNode(devpath))) - devpath = NextDevicePathNode(devpath); + printf(" %s", boot_modules[i]->name); + if (boot_modules[i]->init != NULL) + boot_modules[i]->init(); + } + putchar('\n'); - status = systab->BootServices->HandleProtocol(handles[i], - &BlockIoProtocolGUID, (void **)&blkio); - if (EFI_ERROR(status)) - continue; + /* Get all the device handles */ + hsize = (UINTN)NUM_HANDLES_INIT * sizeof(EFI_HANDLE); + if ((status = bs->AllocatePool(EfiLoaderData, hsize, (void **)&handles)) + != EFI_SUCCESS) + panic("Failed to allocate %d handles (%lu)", NUM_HANDLES_INIT, + EFI_ERROR_CODE(status)); - if (!blkio->Media->LogicalPartition) - continue; + status = bs->LocateHandle(ByProtocol, &BlockIoProtocolGUID, NULL, + &hsize, handles); + switch (status) { + case EFI_SUCCESS: + break; + case EFI_BUFFER_TOO_SMALL: + (void)bs->FreePool(handles); + if ((status = bs->AllocatePool(EfiLoaderData, hsize, + (void **)&handles) != EFI_SUCCESS)) { + panic("Failed to allocate %zu handles (%lu)", hsize / + sizeof(*handles), EFI_ERROR_CODE(status)); + } + status = bs->LocateHandle(ByProtocol, &BlockIoProtocolGUID, + NULL, &hsize, handles); + if (status != EFI_SUCCESS) + panic("Failed to get device handles (%lu)\n", + EFI_ERROR_CODE(status)); + break; + default: + panic("Failed to get device handles (%lu)", + EFI_ERROR_CODE(status)); + } - if (domount(devpath, blkio, 1) >= 0) + /* Scan all partitions, probing with all modules. */ + nhandles = hsize / sizeof(*handles); + printf(" Probing %zu block devices...", nhandles); + for (i = 0; i < nhandles; i++) { + status = probe_handle(handles[i]); + switch (status) { + case EFI_UNSUPPORTED: + printf("."); + break; + case EFI_SUCCESS: + printf("+"); + break; + default: + printf("x"); break; + } } + printf(" done\n"); - if (i == nparts) - panic("No bootable partition found"); - - bootdevhandle = handles[i]; - load(path); + /* Status summary. */ + for (i = 0; i < NUM_BOOT_MODULES; i++) { + if (boot_modules[i] != NULL) { + printf(" "); + boot_modules[i]->status(); + } + } - panic("Load failed"); + /* Select a partition to boot by trying each module in order. */ + for (i = 0; i < NUM_BOOT_MODULES; i++) + if (boot_modules[i] != NULL) + try_load(boot_modules[i]); - return EFI_SUCCESS; + /* If we get here, we're out of luck... */ + panic("No bootable partitions found!"); } -static int -dskread(void *buf, u_int64_t lba, int nblk) +static EFI_STATUS +probe_handle(EFI_HANDLE h) { + dev_info_t *devinfo; + EFI_BLOCK_IO *blkio; + EFI_DEVICE_PATH *devpath; EFI_STATUS status; - int size; + UINTN i; - lba = lba / (bootdev->Media->BlockSize / DEV_BSIZE); - size = nblk * DEV_BSIZE; - status = bootdev->ReadBlocks(bootdev, bootdev->Media->MediaId, lba, - size, buf); + /* Figure out if we're dealing with an actual partition. */ + status = bs->HandleProtocol(h, &DevicePathGUID, (void **)&devpath); + if (status == EFI_UNSUPPORTED) + return (status); - if (EFI_ERROR(status)) - return (-1); + if (status != EFI_SUCCESS) { + DPRINTF("\nFailed to query DevicePath (%lu)\n", + EFI_ERROR_CODE(status)); + return (status); + } - return (0); -} + while (!IsDevicePathEnd(NextDevicePathNode(devpath))) + devpath = NextDevicePathNode(devpath); -#include "ufsread.c" + status = bs->HandleProtocol(h, &BlockIoProtocolGUID, (void **)&blkio); + if (status == EFI_UNSUPPORTED) + return (status); -static ssize_t -fsstat(ufs_ino_t inode) -{ -#ifndef UFS2_ONLY - static struct ufs1_dinode dp1; -#endif -#ifndef UFS1_ONLY - static struct ufs2_dinode dp2; -#endif - static struct fs fs; - static ufs_ino_t inomap; - char *blkbuf; - void *indbuf; - size_t n, size; - static ufs2_daddr_t blkmap, indmap; - - blkbuf = dmadat->blkbuf; - indbuf = dmadat->indbuf; - if (!dsk_meta) { - inomap = 0; - for (n = 0; sblock_try[n] != -1; n++) { - if (dskread(dmadat->sbbuf, sblock_try[n] / DEV_BSIZE, - SBLOCKSIZE / DEV_BSIZE)) - return -1; - memcpy(&fs, dmadat->sbbuf, sizeof(struct fs)); - if (( -#if defined(UFS1_ONLY) - fs.fs_magic == FS_UFS1_MAGIC -#elif defined(UFS2_ONLY) - (fs.fs_magic == FS_UFS2_MAGIC && - fs.fs_sblockloc == sblock_try[n]) -#else - fs.fs_magic == FS_UFS1_MAGIC || - (fs.fs_magic == FS_UFS2_MAGIC && - fs.fs_sblockloc == sblock_try[n]) -#endif - ) && - fs.fs_bsize <= MAXBSIZE && - fs.fs_bsize >= (int32_t)sizeof(struct fs)) - break; - } - if (sblock_try[n] == -1) { - return -1; - } - dsk_meta++; - } else - memcpy(&fs, dmadat->sbbuf, sizeof(struct fs)); - if (!inode) - return 0; - if (inomap != inode) { - n = IPERVBLK(&fs); - if (dskread(blkbuf, INO_TO_VBA(&fs, n, inode), DBPERVBLK)) - return -1; - n = INO_TO_VBO(n, inode); -#if defined(UFS1_ONLY) - memcpy(&dp1, (struct ufs1_dinode *)blkbuf + n, - sizeof(struct ufs1_dinode)); -#elif defined(UFS2_ONLY) - memcpy(&dp2, (struct ufs2_dinode *)blkbuf + n, - sizeof(struct ufs2_dinode)); -#else - if (fs.fs_magic == FS_UFS1_MAGIC) - memcpy(&dp1, (struct ufs1_dinode *)(void *)blkbuf + n, - sizeof(struct ufs1_dinode)); - else - memcpy(&dp2, (struct ufs2_dinode *)(void *)blkbuf + n, - sizeof(struct ufs2_dinode)); -#endif - inomap = inode; - fs_off = 0; - blkmap = indmap = 0; - } - size = DIP(di_size); - n = size - fs_off; - return (n); -} + if (status != EFI_SUCCESS) { + DPRINTF("\nFailed to query BlockIoProtocol (%lu)\n", + EFI_ERROR_CODE(status)); + return (status); + } -static struct dmadat __dmadat; + if (!blkio->Media->LogicalPartition) + return (EFI_UNSUPPORTED); -static int -domount(EFI_DEVICE_PATH *device, EFI_BLOCK_IO *blkio, int quiet) -{ + /* Run through each module, see if it can load this partition */ + for (i = 0; i < NUM_BOOT_MODULES; i++) { + if (boot_modules[i] == NULL) + continue; + + if ((status = bs->AllocatePool(EfiLoaderData, + sizeof(*devinfo), (void **)&devinfo)) != + EFI_SUCCESS) { + DPRINTF("\nFailed to allocate devinfo (%lu)\n", + EFI_ERROR_CODE(status)); + continue; + } + devinfo->dev = blkio; + devinfo->devpath = devpath; + devinfo->devhandle = h; + devinfo->devdata = NULL; + devinfo->next = NULL; + + status = boot_modules[i]->probe(devinfo); + if (status == EFI_SUCCESS) + return (EFI_SUCCESS); + (void)bs->FreePool(devinfo); + } - dmadat = &__dmadat; - bootdev = blkio; - bootdevpath = device; - if (fsread(0, NULL, 0)) { - if (!quiet) - printf("domount: can't read superblock\n"); - return (-1); - } - if (!quiet) - printf("Succesfully mounted UFS filesystem\n"); - return (0); + return (EFI_UNSUPPORTED); } -static void -load(const char *fname) +void +add_device(dev_info_t **devinfop, dev_info_t *devinfo) { - ufs_ino_t ino; - EFI_STATUS status; - EFI_HANDLE loaderhandle; - EFI_LOADED_IMAGE *loaded_image; - void *buffer; - size_t bufsize; + dev_info_t *dev; - if ((ino = lookup(fname)) == 0) { - printf("File %s not found\n", fname); + if (*devinfop == NULL) { + *devinfop = devinfo; return; } - bufsize = fsstat(ino); - status = systab->BootServices->AllocatePool(EfiLoaderData, - bufsize, &buffer); - fsread(ino, buffer, bufsize); - - /* XXX: For secure boot, we need our own loader here */ - status = systab->BootServices->LoadImage(TRUE, image, bootdevpath, - buffer, bufsize, &loaderhandle); - if (EFI_ERROR(status)) - printf("LoadImage failed with error %lu\n", - EFI_ERROR_CODE(status)); - - status = systab->BootServices->HandleProtocol(loaderhandle, - &LoadedImageGUID, (VOID**)&loaded_image); - if (EFI_ERROR(status)) - printf("HandleProtocol failed with error %lu\n", - EFI_ERROR_CODE(status)); + for (dev = *devinfop; dev->next != NULL; dev = dev->next) + ; - loaded_image->DeviceHandle = bootdevhandle; - - status = systab->BootServices->StartImage(loaderhandle, NULL, NULL); - if (EFI_ERROR(status)) - printf("StartImage failed with error %lu\n", - EFI_ERROR_CODE(status)); + dev->next = devinfo; } void Copied: stable/10/sys/boot/efi/boot1/boot_module.h (from r294060, head/sys/boot/efi/boot1/boot_module.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/boot/efi/boot1/boot_module.h Thu Jan 28 16:52:02 2016 (r294997, copy of r294060, head/sys/boot/efi/boot1/boot_module.h) @@ -0,0 +1,110 @@ +/*- + * Copyright (c) 2015 Eric McCorkle + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _BOOT_MODULE_H_ +#define _BOOT_MODULE_H_ + +#include + +#include +#include +#include + +#ifdef EFI_DEBUG +#define DPRINTF(fmt, args...) \ + do { \ + printf(fmt, ##args) \ + } while (0) +#else +#define DPRINTF(fmt, args...) {} +#endif + +/* EFI device info */ +typedef struct dev_info +{ + EFI_BLOCK_IO *dev; + EFI_DEVICE_PATH *devpath; + EFI_HANDLE *devhandle; + void *devdata; + struct dev_info *next; +} dev_info_t; + +/* + * A boot loader module. + * + * This is a standard interface for filesystem modules in the EFI system. + */ +typedef struct boot_module_t +{ + const char *name; + + /* init is the optional initialiser for the module. */ + void (*init)(); + + /* + * probe checks to see if the module can handle dev. + * + * Return codes: + * EFI_SUCCESS = The module can handle the device. + * EFI_NOT_FOUND = The module can not handle the device. + * Other = The module encountered an error. + */ + EFI_STATUS (*probe)(dev_info_t* dev); + + /* + * load should select the best out of a set of devices that probe + * indicated were loadable and load it. + * + * Return codes: + * EFI_SUCCESS = The module can handle the device. + * EFI_NOT_FOUND = The module can not handle the device. + * Other = The module encountered an error. + */ + EFI_STATUS (*load)(const char *loader_path, dev_info_t **devinfo, + void **buf, size_t *bufsize); + + /* status outputs information about the probed devices. */ + void (*status)(); + +} boot_module_t; + +/* Standard boot modules. */ +#ifdef EFI_UFS_BOOT +extern const boot_module_t ufs_module; +#endif + +/* Functions available to modules. */ +extern void add_device(dev_info_t **devinfop, dev_info_t *devinfo); +extern void panic(const char *fmt, ...) __dead2; +extern int printf(const char *fmt, ...); +extern int vsnprintf(char *str, size_t sz, const char *fmt, va_list ap); + +extern EFI_SYSTEM_TABLE *systab; +extern EFI_BOOT_SERVICES *bs; + +#endif Copied and modified: stable/10/sys/boot/efi/boot1/ufs_module.c (from r294060, head/sys/boot/efi/boot1/ufs_module.c) ============================================================================== --- head/sys/boot/efi/boot1/ufs_module.c Fri Jan 15 01:22:36 2016 (r294060, copy source) +++ stable/10/sys/boot/efi/boot1/ufs_module.c Thu Jan 28 16:52:02 2016 (r294997) @@ -68,93 +68,23 @@ dskread(void *buf, u_int64_t lba, int nb #include "ufsread.c" -static ssize_t -fsstat(ufs_ino_t inode) +static struct dmadat __dmadat; + +static int +init_dev(dev_info_t* dev) { -#ifndef UFS2_ONLY - static struct ufs1_dinode dp1; -#endif -#ifndef UFS1_ONLY - static struct ufs2_dinode dp2; -#endif - static struct fs fs; - static ufs_ino_t inomap; - char *blkbuf; - void *indbuf; - size_t n, size; - static ufs2_daddr_t blkmap, indmap; - - blkbuf = dmadat->blkbuf; - indbuf = dmadat->indbuf; - if (!dsk_meta) { - inomap = 0; - for (n = 0; sblock_try[n] != -1; n++) { - if (dskread(dmadat->sbbuf, sblock_try[n] / DEV_BSIZE, - SBLOCKSIZE / DEV_BSIZE)) - return (-1); - memcpy(&fs, dmadat->sbbuf, sizeof(struct fs)); - if (( -#if defined(UFS1_ONLY) - fs.fs_magic == FS_UFS1_MAGIC -#elif defined(UFS2_ONLY) - (fs.fs_magic == FS_UFS2_MAGIC && - fs.fs_sblockloc == sblock_try[n]) -#else - fs.fs_magic == FS_UFS1_MAGIC || - (fs.fs_magic == FS_UFS2_MAGIC && - fs.fs_sblockloc == sblock_try[n]) -#endif - ) && - fs.fs_bsize <= MAXBSIZE && - fs.fs_bsize >= (int32_t)sizeof(struct fs)) - break; - } - if (sblock_try[n] == -1) { - return (-1); - } - dsk_meta++; - } else - memcpy(&fs, dmadat->sbbuf, sizeof(struct fs)); - if (!inode) - return (0); - if (inomap != inode) { - n = IPERVBLK(&fs); - if (dskread(blkbuf, INO_TO_VBA(&fs, n, inode), DBPERVBLK)) - return (-1); - n = INO_TO_VBO(n, inode); -#if defined(UFS1_ONLY) - memcpy(&dp1, (struct ufs1_dinode *)blkbuf + n, - sizeof(struct ufs1_dinode)); -#elif defined(UFS2_ONLY) - memcpy(&dp2, (struct ufs2_dinode *)blkbuf + n, - sizeof(struct ufs2_dinode)); -#else - if (fs.fs_magic == FS_UFS1_MAGIC) - memcpy(&dp1, (struct ufs1_dinode *)(void *)blkbuf + n, - sizeof(struct ufs1_dinode)); - else - memcpy(&dp2, (struct ufs2_dinode *)(void *)blkbuf + n, - sizeof(struct ufs2_dinode)); -#endif - inomap = inode; - fs_off = 0; - blkmap = indmap = 0; - } - size = DIP(di_size); - n = size - fs_off; - return (n); -} + devinfo = dev; + dmadat = &__dmadat; -static struct dmadat __dmadat; + return fsread(0, NULL, 0); +} static EFI_STATUS probe(dev_info_t* dev) { - devinfo = dev; - dmadat = &__dmadat; - if (fsread(0, NULL, 0) < 0) + if (init_dev(dev) < 0) return (EFI_UNSUPPORTED); add_device(&devices, dev); @@ -171,13 +101,15 @@ try_load(dev_info_t *dev, const char *lo ssize_t read; void *buf; - devinfo = dev; + if (init_dev(dev) < 0) + return (EFI_UNSUPPORTED); + if ((ino = lookup(loader_path)) == 0) return (EFI_NOT_FOUND); - size = fsstat(ino); - if (size <= 0) { - printf("Failed to fsstat %s ino: %d\n", loader_path, ino); + if (fsread_size(ino, NULL, 0, &size) < 0 || size <= 0) { + printf("Failed to read size of '%s' ino: %d\n", loader_path, + ino); return (EFI_INVALID_PARAMETER); } @@ -190,7 +122,7 @@ try_load(dev_info_t *dev, const char *lo read = fsread(ino, buf, size); if ((size_t)read != size) { - printf("Failed to read %s (%zd != %zu)\n", loader_path, read, + printf("Failed to read '%s' (%zd != %zu)\n", loader_path, read, size); (void)bs->FreePool(buf); return (EFI_INVALID_PARAMETER); Modified: stable/10/sys/boot/efi/include/efilib.h ============================================================================== --- stable/10/sys/boot/efi/include/efilib.h Thu Jan 28 16:51:56 2016 (r294996) +++ stable/10/sys/boot/efi/include/efilib.h Thu Jan 28 16:52:02 2016 (r294997) @@ -39,7 +39,6 @@ extern struct devsw efinet_dev; extern struct netif_driver efinetif; void *efi_get_table(EFI_GUID *tbl); -void efi_main(EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *system_table); int efi_register_handles(struct devsw *, EFI_HANDLE *, EFI_HANDLE *, int); EFI_HANDLE efi_find_handle(struct devsw *, int); Modified: stable/10/sys/boot/efi/loader/devicename.c ============================================================================== --- stable/10/sys/boot/efi/loader/devicename.c Thu Jan 28 16:51:56 2016 (r294996) +++ stable/10/sys/boot/efi/loader/devicename.c Thu Jan 28 16:52:02 2016 (r294997) @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -86,7 +87,7 @@ efi_parsedev(struct devdesc **dev, const struct devsw *dv; char *cp; const char *np; - int i, err; + int i; /* minimum length check */ if (strlen(devspec) < 2) @@ -101,24 +102,26 @@ efi_parsedev(struct devdesc **dev, const if (devsw[i] == NULL) return (ENOENT); - idev = malloc(sizeof(struct devdesc)); - if (idev == NULL) - return (ENOMEM); - - idev->d_dev = dv; - idev->d_type = dv->dv_type; - idev->d_unit = -1; - - err = 0; np = devspec + strlen(dv->dv_name); - if (*np != '\0' && *np != ':') { - idev->d_unit = strtol(np, &cp, 0); - if (cp == np) { - idev->d_unit = -1; - free(idev); - return (EUNIT); + + { + idev = malloc(sizeof(struct devdesc)); + if (idev == NULL) + return (ENOMEM); + + idev->d_dev = dv; + idev->d_type = dv->dv_type; + idev->d_unit = -1; + if (*np != '\0' && *np != ':') { + idev->d_unit = strtol(np, &cp, 0); + if (cp == np) { + idev->d_unit = -1; + free(idev); + return (EUNIT); + } } } + if (*cp != '\0' && *cp != ':') { free(idev); return (EINVAL); @@ -137,7 +140,7 @@ char * efi_fmtdev(void *vdev) { struct devdesc *dev = (struct devdesc *)vdev; - static char buf[32]; /* XXX device length constant? */ + static char buf[SPECNAMELEN + 1]; switch(dev->d_type) { case DEVT_NONE: Modified: stable/10/sys/boot/efi/loader/main.c ============================================================================== --- stable/10/sys/boot/efi/loader/main.c Thu Jan 28 16:51:56 2016 (r294996) +++ stable/10/sys/boot/efi/loader/main.c Thu Jan 28 16:52:02 2016 (r294997) @@ -28,6 +28,7 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include #include @@ -45,7 +46,6 @@ extern char bootprog_rev[]; extern char bootprog_date[]; extern char bootprog_maker[]; -struct devdesc currdev; /* our current device */ struct arch_switch archsw; /* MI/MD interface boundary */ EFI_GUID acpi = ACPI_TABLE_GUID; @@ -60,15 +60,36 @@ EFI_GUID hoblist = HOB_LIST_TABLE_GUID; EFI_GUID memtype = MEMORY_TYPE_INFORMATION_TABLE_GUID; EFI_GUID debugimg = DEBUG_IMAGE_INFO_TABLE_GUID; +/* + * Need this because EFI uses UTF-16 unicode string constants, but we + * use UTF-8. We can't use printf due to the possiblity of \0 and we + * don't support support wide characters either. + */ +static void +print_str16(const CHAR16 *str) +{ + int i; + + for (i = 0; str[i]; i++) + printf("%c", (char)str[i]); +} + EFI_STATUS main(int argc, CHAR16 *argv[]) { char var[128]; EFI_LOADED_IMAGE *img; EFI_GUID *guid; - int i, j, vargood; + int i, j, vargood, unit; + struct devsw *dev; UINTN k; + archsw.arch_autoload = efi_autoload; + archsw.arch_getdev = efi_getdev; + archsw.arch_copyin = efi_copyin; + archsw.arch_copyout = efi_copyout; + archsw.arch_readin = efi_readin; + /* * XXX Chicken-and-egg problem; we want to have console output * early, but some console attributes may depend on reading from @@ -115,6 +136,13 @@ main(int argc, CHAR16 *argv[]) /* Get our loaded image protocol interface structure. */ BS->HandleProtocol(IH, &imgid, (VOID**)&img); + printf("Command line arguments:"); + for (i = 0; i < argc; i++) { + printf(" "); + print_str16(argv[i]); + } + printf("\n"); + printf("Image base: 0x%lx\n", (u_long)img->ImageBase); printf("EFI version: %d.%02d\n", ST->Hdr.Revision >> 16, ST->Hdr.Revision & 0xffff); @@ -128,9 +156,6 @@ main(int argc, CHAR16 *argv[]) printf("%s, Revision %s\n", bootprog_name, bootprog_rev); printf("(%s, %s)\n", bootprog_maker, bootprog_date); - efi_handle_lookup(img->DeviceHandle, &currdev.d_dev, &currdev.d_unit); - currdev.d_type = currdev.d_dev->dv_type; - /* * Disable the watchdog timer. By default the boot manager sets * the timer to 5 minutes before invoking a boot option. If we @@ -142,18 +167,26 @@ main(int argc, CHAR16 *argv[]) */ BS->SetWatchdogTimer(0, 0, 0, NULL); - env_setenv("currdev", EV_VOLATILE, efi_fmtdev(&currdev), - efi_setcurrdev, env_nounset); - env_setenv("loaddev", EV_VOLATILE, efi_fmtdev(&currdev), env_noset, - env_nounset); + if (efi_handle_lookup(img->DeviceHandle, &dev, &unit) != 0) + return (EFI_NOT_FOUND); - setenv("LINES", "24", 1); /* optional */ + switch (dev->dv_type) { + default: { + struct devdesc currdev; + + currdev.d_dev = dev; + currdev.d_unit = unit; + currdev.d_opendata = NULL; + currdev.d_type = currdev.d_dev->dv_type; + env_setenv("currdev", EV_VOLATILE, efi_fmtdev(&currdev), + efi_setcurrdev, env_nounset); + env_setenv("loaddev", EV_VOLATILE, efi_fmtdev(&currdev), env_noset, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Jan 28 16:58:50 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F13B5A71BE4; Thu, 28 Jan 2016 16:58:50 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A5117181C; Thu, 28 Jan 2016 16:58:50 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SGwn0v041903; Thu, 28 Jan 2016 16:58:49 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SGwnLa041899; Thu, 28 Jan 2016 16:58:49 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601281658.u0SGwnLa041899@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Thu, 28 Jan 2016 16:58:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294998 - in head/sys: arm64/cavium dev/vnic X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 16:58:51 -0000 Author: zbb Date: Thu Jan 28 16:58:49 2016 New Revision: 294998 URL: https://svnweb.freebsd.org/changeset/base/294998 Log: Fix VNIC enumeration after r294993 and r294990 ofw_bus_get_node() must be tested against negative values since missing parent bus method will result in calling the default method which simply returns (-1): sys/dev/ofw/ofw_bus_if.m This was lost in the review process. Obtained from: Semihalf Sponsored by: Cavium Modified: head/sys/arm64/cavium/thunder_pcie_fdt.c head/sys/dev/vnic/thunder_bgx_fdt.c Modified: head/sys/arm64/cavium/thunder_pcie_fdt.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_fdt.c Thu Jan 28 16:52:02 2016 (r294997) +++ head/sys/arm64/cavium/thunder_pcie_fdt.c Thu Jan 28 16:58:49 2016 (r294998) @@ -276,7 +276,7 @@ thunder_pcie_ofw_bus_alloc_res(device_t int i; /* For PCIe devices that do not have FDT nodes, use PCIB method */ - if (ofw_bus_get_node(child) == 0) { + if ((int)ofw_bus_get_node(child) <= 0) { return (thunder_pcie_alloc_resource(bus, child, type, rid, start, end, count, flags)); } @@ -329,7 +329,7 @@ thunder_pcie_ofw_bus_rel_res(device_t bu { /* For PCIe devices that do not have FDT nodes, use PCIB method */ - if (ofw_bus_get_node(child) == 0) { + if ((int)ofw_bus_get_node(child) <= 0) { return (thunder_pcie_release_resource(bus, child, type, rid, res)); } Modified: head/sys/dev/vnic/thunder_bgx_fdt.c ============================================================================== --- head/sys/dev/vnic/thunder_bgx_fdt.c Thu Jan 28 16:52:02 2016 (r294997) +++ head/sys/dev/vnic/thunder_bgx_fdt.c Thu Jan 28 16:58:49 2016 (r294998) @@ -244,7 +244,7 @@ bgx_fdt_find_node(struct bgx *bgx) } node = ofw_bus_get_node(root_pcib); - if (node == 0) { + if ((int)node <= 0) { device_printf(bgx->dev, "No parent FDT node for BGX\n"); goto out; } From owner-svn-src-all@freebsd.org Thu Jan 28 17:24:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F67DA7094A; Thu, 28 Jan 2016 17:24:43 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0AA5D1B8B; Thu, 28 Jan 2016 17:24:42 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SHOgdC050291; Thu, 28 Jan 2016 17:24:42 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SHOfgn050280; Thu, 28 Jan 2016 17:24:41 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601281724.u0SHOfgn050280@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 28 Jan 2016 17:24:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294999 - in stable/10/sys/boot/efi: boot1 include libefi loader X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 17:24:43 -0000 Author: smh Date: Thu Jan 28 17:24:40 2016 New Revision: 294999 URL: https://svnweb.freebsd.org/changeset/base/294999 Log: MFC r294068, r294265 MFC r294068: Add EFI ZFS boot support MFC r294265: Fix broken DPRINTF and wire up EFI_DEBUG so -DEFI_DEBUG to make works. Relnotes: Yes Sponsored by: Multiplay Added: stable/10/sys/boot/efi/boot1/zfs_module.c - copied, changed from r294068, head/sys/boot/efi/boot1/zfs_module.c Modified: stable/10/sys/boot/efi/boot1/Makefile stable/10/sys/boot/efi/boot1/boot1.c stable/10/sys/boot/efi/boot1/boot_module.h stable/10/sys/boot/efi/include/efilib.h stable/10/sys/boot/efi/libefi/handles.c stable/10/sys/boot/efi/loader/Makefile stable/10/sys/boot/efi/loader/conf.c stable/10/sys/boot/efi/loader/devicename.c stable/10/sys/boot/efi/loader/main.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/boot/efi/boot1/Makefile ============================================================================== --- stable/10/sys/boot/efi/boot1/Makefile Thu Jan 28 16:58:49 2016 (r294998) +++ stable/10/sys/boot/efi/boot1/Makefile Thu Jan 28 17:24:40 2016 (r294999) @@ -10,8 +10,22 @@ PROG= boot1.sym INTERNALPROG= WARNS?= 6 +.if ${MK_ZFS} != "no" +# Disable warnings that are currently incompatible with the zfs boot code +CWARNFLAGS.zfs_module.c += -Wno-array-bounds +CWARNFLAGS.zfs_module.c += -Wno-cast-align +CWARNFLAGS.zfs_module.c += -Wno-cast-qual +CWARNFLAGS.zfs_module.c += -Wno-missing-prototypes +CWARNFLAGS.zfs_module.c += -Wno-sign-compare +CWARNFLAGS.zfs_module.c += -Wno-unused-parameter +CWARNFLAGS.zfs_module.c += -Wno-unused-function +.endif + # architecture-specific loader code SRCS= boot1.c reloc.c start.S ufs_module.c +.if ${MK_ZFS} != "no" +SRCS+= zfs_module.c +.endif CFLAGS+= -fPIC CFLAGS+= -I. @@ -20,6 +34,15 @@ CFLAGS+= -I${.CURDIR}/../include/${MACHI CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/include CFLAGS+= -I${.CURDIR}/../../.. CFLAGS+= -DEFI_UFS_BOOT +.ifdef(EFI_DEBUG) +CFLAGS+= -DEFI_DEBUG +.endif + +.if ${MK_ZFS} != "no" +CFLAGS+= -I${.CURDIR}/../../zfs/ +CFLAGS+= -I${.CURDIR}/../../../cddl/boot/zfs/ +CFLAGS+= -DEFI_ZFS_BOOT +.endif # Always add MI sources and REGULAR efi loader bits .PATH: ${.CURDIR}/../loader/arch/${MACHINE} Modified: stable/10/sys/boot/efi/boot1/boot1.c ============================================================================== --- stable/10/sys/boot/efi/boot1/boot1.c Thu Jan 28 16:58:49 2016 (r294998) +++ stable/10/sys/boot/efi/boot1/boot1.c Thu Jan 28 17:24:40 2016 (r294999) @@ -36,6 +36,9 @@ __FBSDID("$FreeBSD$"); static const boot_module_t *boot_modules[] = { +#ifdef EFI_ZFS_BOOT + &zfs_module, +#endif #ifdef EFI_UFS_BOOT &ufs_module #endif Modified: stable/10/sys/boot/efi/boot1/boot_module.h ============================================================================== --- stable/10/sys/boot/efi/boot1/boot_module.h Thu Jan 28 16:58:49 2016 (r294998) +++ stable/10/sys/boot/efi/boot1/boot_module.h Thu Jan 28 17:24:40 2016 (r294999) @@ -36,12 +36,9 @@ #include #ifdef EFI_DEBUG -#define DPRINTF(fmt, args...) \ - do { \ - printf(fmt, ##args) \ - } while (0) +#define DPRINTF(fmt, ...) printf(fmt, __VA_ARGS__) #else -#define DPRINTF(fmt, args...) {} +#define DPRINTF(fmt, ...) {} #endif /* EFI device info */ @@ -97,6 +94,9 @@ typedef struct boot_module_t #ifdef EFI_UFS_BOOT extern const boot_module_t ufs_module; #endif +#ifdef EFI_ZFS_BOOT +extern const boot_module_t zfs_module; +#endif /* Functions available to modules. */ extern void add_device(dev_info_t **devinfop, dev_info_t *devinfo); Copied and modified: stable/10/sys/boot/efi/boot1/zfs_module.c (from r294068, head/sys/boot/efi/boot1/zfs_module.c) ============================================================================== --- head/sys/boot/efi/boot1/zfs_module.c Fri Jan 15 02:33:47 2016 (r294068, copy source) +++ stable/10/sys/boot/efi/boot1/zfs_module.c Thu Jan 28 17:24:40 2016 (r294999) @@ -53,9 +53,9 @@ vdev_read(vdev_t *vdev, void *priv, off_ status = devinfo->dev->ReadBlocks(devinfo->dev, devinfo->dev->Media->MediaId, lba, bytes, buf); if (status != EFI_SUCCESS) { - DPRINTF("vdev_read: failed dev: %p, id: %u, lba: %lu, size: %d," + DPRINTF("vdev_read: failed dev: %p, id: %u, lba: %zu, size: %zu," " status: %lu\n", devinfo->dev, - devinfo->dev->Media->MediaId, lba, size, + devinfo->dev->Media->MediaId, lba, bytes, EFI_ERROR_CODE(status)); return (-1); } Modified: stable/10/sys/boot/efi/include/efilib.h ============================================================================== --- stable/10/sys/boot/efi/include/efilib.h Thu Jan 28 16:58:49 2016 (r294998) +++ stable/10/sys/boot/efi/include/efilib.h Thu Jan 28 17:24:40 2016 (r294999) @@ -42,7 +42,8 @@ void *efi_get_table(EFI_GUID *tbl); int efi_register_handles(struct devsw *, EFI_HANDLE *, EFI_HANDLE *, int); EFI_HANDLE efi_find_handle(struct devsw *, int); -int efi_handle_lookup(EFI_HANDLE, struct devsw **, int *); +int efi_handle_lookup(EFI_HANDLE, struct devsw **, int *, uint64_t *); +int efi_handle_update_dev(EFI_HANDLE, struct devsw *, int, uint64_t); int efi_status_to_errno(EFI_STATUS); time_t efi_time(EFI_TIME *); Modified: stable/10/sys/boot/efi/libefi/handles.c ============================================================================== --- stable/10/sys/boot/efi/libefi/handles.c Thu Jan 28 16:58:49 2016 (r294998) +++ stable/10/sys/boot/efi/libefi/handles.c Thu Jan 28 17:24:40 2016 (r294999) @@ -35,6 +35,7 @@ struct entry { EFI_HANDLE alias; struct devsw *dev; int unit; + uint64_t extra; }; struct entry *entry; @@ -79,7 +80,7 @@ efi_find_handle(struct devsw *dev, int u } int -efi_handle_lookup(EFI_HANDLE h, struct devsw **dev, int *unit) +efi_handle_lookup(EFI_HANDLE h, struct devsw **dev, int *unit, uint64_t *extra) { int idx; @@ -90,7 +91,28 @@ efi_handle_lookup(EFI_HANDLE h, struct d *dev = entry[idx].dev; if (unit != NULL) *unit = entry[idx].unit; + if (extra != NULL) + *extra = entry[idx].extra; return (0); } return (ENOENT); } + +int +efi_handle_update_dev(EFI_HANDLE h, struct devsw *dev, int unit, + uint64_t guid) +{ + int idx; + + for (idx = 0; idx < nentries; idx++) { + if (entry[idx].handle != h) + continue; + entry[idx].dev = dev; + entry[idx].unit = unit; + entry[idx].alias = NULL; + entry[idx].extra = guid; + return (0); + } + + return (ENOENT); +} Modified: stable/10/sys/boot/efi/loader/Makefile ============================================================================== --- stable/10/sys/boot/efi/loader/Makefile Thu Jan 28 16:58:49 2016 (r294998) +++ stable/10/sys/boot/efi/loader/Makefile Thu Jan 28 17:24:40 2016 (r294999) @@ -20,6 +20,16 @@ SRCS= autoload.c \ smbios.c \ vers.c +.if ${MK_ZFS} != "no" +SRCS+= zfs.c +.PATH: ${.CURDIR}/../../zfs + +# Disable warnings that are currently incompatible with the zfs boot code +CWARNFLAGS.zfs.c+= -Wno-sign-compare +CWARNFLAGS.zfs.c+= -Wno-array-bounds +CWARNFLAGS.zfs.c+= -Wno-missing-prototypes +.endif + .PATH: ${.CURDIR}/arch/${MACHINE} # For smbios.c .PATH: ${.CURDIR}/../../i386/libi386 @@ -33,6 +43,11 @@ CFLAGS+= -I${.CURDIR}/../include/${MACHI CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/include CFLAGS+= -I${.CURDIR}/../../.. CFLAGS+= -I${.CURDIR}/../../i386/libi386 +.if ${MK_ZFS} != "no" +CFLAGS+= -I${.CURDIR}/../../zfs +CFLAGS+= -I${.CURDIR}/../../../cddl/boot/zfs +CFLAGS+= -DEFI_ZFS_BOOT +.endif CFLAGS+= -DNO_PCI -DEFI .if ${MK_FORTH} != "no" Modified: stable/10/sys/boot/efi/loader/conf.c ============================================================================== --- stable/10/sys/boot/efi/loader/conf.c Thu Jan 28 16:58:49 2016 (r294998) +++ stable/10/sys/boot/efi/loader/conf.c Thu Jan 28 17:24:40 2016 (r294999) @@ -31,14 +31,23 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef EFI_ZFS_BOOT +#include +#endif struct devsw *devsw[] = { &efipart_dev, &efinet_dev, +#ifdef EFI_ZFS_BOOT + &zfs_dev, +#endif NULL }; struct fs_ops *file_system[] = { +#ifdef EFI_ZFS_BOOT + &zfs_fsops, +#endif &dosfs_fsops, &ufs_fsops, &cd9660_fsops, Modified: stable/10/sys/boot/efi/loader/devicename.c ============================================================================== --- stable/10/sys/boot/efi/loader/devicename.c Thu Jan 28 16:58:49 2016 (r294998) +++ stable/10/sys/boot/efi/loader/devicename.c Thu Jan 28 17:24:40 2016 (r294999) @@ -33,6 +33,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef EFI_ZFS_BOOT +#include +#endif #include #include @@ -104,6 +107,23 @@ efi_parsedev(struct devdesc **dev, const np = devspec + strlen(dv->dv_name); +#ifdef EFI_ZFS_BOOT + if (dv->dv_type == DEVT_ZFS) { + int err; + + idev = malloc(sizeof(struct zfs_devdesc)); + if (idev == NULL) + return (ENOMEM); + + err = zfs_parsedev((struct zfs_devdesc*)idev, np, path); + if (err != 0) { + free(idev); + return (err); + } + *dev = idev; + cp = strchr(np + 1, ':'); + } else +#endif { idev = malloc(sizeof(struct devdesc)); if (idev == NULL) @@ -143,6 +163,10 @@ efi_fmtdev(void *vdev) static char buf[SPECNAMELEN + 1]; switch(dev->d_type) { +#ifdef EFI_ZFS_BOOT + case DEVT_ZFS: + return (zfs_fmtdev(dev)); +#endif case DEVT_NONE: strcpy(buf, "(no device)"); break; Modified: stable/10/sys/boot/efi/loader/main.c ============================================================================== --- stable/10/sys/boot/efi/loader/main.c Thu Jan 28 16:58:49 2016 (r294998) +++ stable/10/sys/boot/efi/loader/main.c Thu Jan 28 17:24:40 2016 (r294999) @@ -39,6 +39,10 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef EFI_ZFS_BOOT +#include +#endif + #include "loader_efi.h" extern char bootprog_name[]; @@ -60,6 +64,10 @@ EFI_GUID hoblist = HOB_LIST_TABLE_GUID; EFI_GUID memtype = MEMORY_TYPE_INFORMATION_TABLE_GUID; EFI_GUID debugimg = DEBUG_IMAGE_INFO_TABLE_GUID; +#ifdef EFI_ZFS_BOOT +static void efi_zfs_probe(void); +#endif + /* * Need this because EFI uses UTF-16 unicode string constants, but we * use UTF-8. We can't use printf due to the possiblity of \0 and we @@ -82,6 +90,7 @@ main(int argc, CHAR16 *argv[]) EFI_GUID *guid; int i, j, vargood, unit; struct devsw *dev; + uint64_t pool_guid; UINTN k; archsw.arch_autoload = efi_autoload; @@ -89,6 +98,10 @@ main(int argc, CHAR16 *argv[]) archsw.arch_copyin = efi_copyin; archsw.arch_copyout = efi_copyout; archsw.arch_readin = efi_readin; +#ifdef EFI_ZFS_BOOT + /* Note this needs to be set before ZFS init. */ + archsw.arch_zfs_probe = efi_zfs_probe; +#endif /* * XXX Chicken-and-egg problem; we want to have console output @@ -167,10 +180,27 @@ main(int argc, CHAR16 *argv[]) */ BS->SetWatchdogTimer(0, 0, 0, NULL); - if (efi_handle_lookup(img->DeviceHandle, &dev, &unit) != 0) + if (efi_handle_lookup(img->DeviceHandle, &dev, &unit, &pool_guid) != 0) return (EFI_NOT_FOUND); switch (dev->dv_type) { +#ifdef EFI_ZFS_BOOT + case DEVT_ZFS: { + struct zfs_devdesc currdev; + + currdev.d_dev = dev; + currdev.d_unit = unit; + currdev.d_type = currdev.d_dev->dv_type; + currdev.d_opendata = NULL; + currdev.pool_guid = pool_guid; + currdev.root_guid = 0; + env_setenv("currdev", EV_VOLATILE, efi_fmtdev(&currdev), + efi_setcurrdev, env_nounset); + env_setenv("loaddev", EV_VOLATILE, efi_fmtdev(&currdev), env_noset, + env_nounset); + break; + } +#endif default: { struct devdesc currdev; @@ -452,3 +482,46 @@ command_nvram(int argc, char *argv[]) return (CMD_OK); } + +#ifdef EFI_ZFS_BOOT +COMMAND_SET(lszfs, "lszfs", "list child datasets of a zfs dataset", + command_lszfs); + +static int +command_lszfs(int argc, char *argv[]) +{ + int err; + + if (argc != 2) { + command_errmsg = "wrong number of arguments"; + return (CMD_ERROR); + } + + err = zfs_list(argv[1]); + if (err != 0) { + command_errmsg = strerror(err); + return (CMD_ERROR); + } + return (CMD_OK); +} +#endif + +#ifdef EFI_ZFS_BOOT +static void +efi_zfs_probe(void) +{ + EFI_HANDLE h; + u_int unit; + int i; + char dname[SPECNAMELEN + 1]; + uint64_t guid; + + unit = 0; + h = efi_find_handle(&efipart_dev, 0); + for (i = 0; h != NULL; h = efi_find_handle(&efipart_dev, ++i)) { + snprintf(dname, sizeof(dname), "%s%d:", efipart_dev.dv_name, i); + if (zfs_probe_dev(dname, &guid) == 0) + (void)efi_handle_update_dev(h, &zfs_dev, unit++, guid); + } +} +#endif From owner-svn-src-all@freebsd.org Thu Jan 28 18:25:56 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6CE85A700E4; Thu, 28 Jan 2016 18:25:56 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3E3AF1350; Thu, 28 Jan 2016 18:25:56 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SIPtxt067698; Thu, 28 Jan 2016 18:25:55 GMT (envelope-from jimharris@FreeBSD.org) Received: (from jimharris@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SIPtYH067697; Thu, 28 Jan 2016 18:25:55 GMT (envelope-from jimharris@FreeBSD.org) Message-Id: <201601281825.u0SIPtYH067697@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jimharris set sender to jimharris@FreeBSD.org using -f From: Jim Harris Date: Thu, 28 Jan 2016 18:25:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295000 - stable/10/share/man/man4 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 18:25:56 -0000 Author: jimharris Date: Thu Jan 28 18:25:55 2016 New Revision: 295000 URL: https://svnweb.freebsd.org/changeset/base/295000 Log: MFC r293678: Update ismt(4) man page to reflect inclusion in upcoming 10.3 release. Modified: stable/10/share/man/man4/ismt.4 Modified: stable/10/share/man/man4/ismt.4 ============================================================================== --- stable/10/share/man/man4/ismt.4 Thu Jan 28 17:24:40 2016 (r294999) +++ stable/10/share/man/man4/ismt.4 Thu Jan 28 18:25:55 2016 (r295000) @@ -33,7 +33,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 9, 2014 +.Dd January 11, 2016 .Dt ISMT 4 .Os .Sh NAME @@ -54,6 +54,6 @@ in the Intel Atom S1200 and C2000 CPUs. The .Nm driver first appeared in -.Fx 11.0 . +.Fx 10.3 . .Sh AUTHORS .An Jim Harris Aq jimharris@FreeBSD.org From owner-svn-src-all@freebsd.org Thu Jan 28 18:42:05 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4421FA706D8; Thu, 28 Jan 2016 18:42:05 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0019C1BDF; Thu, 28 Jan 2016 18:42:04 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SIg4Eg072816; Thu, 28 Jan 2016 18:42:04 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SIfx0l072768; Thu, 28 Jan 2016 18:41:59 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201601281841.u0SIfx0l072768@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 28 Jan 2016 18:41:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r295001 - in vendor-crypto/openssl/dist: . apps crypto crypto/aes crypto/aes/asm crypto/bio crypto/bn crypto/bn/asm crypto/camellia crypto/des crypto/dh crypto/dsa crypto/dso crypto/ec ... X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 18:42:05 -0000 Author: jkim Date: Thu Jan 28 18:41:59 2016 New Revision: 295001 URL: https://svnweb.freebsd.org/changeset/base/295001 Log: Import OpenSSL 1.0.2f. Added: vendor-crypto/openssl/dist/doc/ssl/SSL_CTX_set_tlsext_status_cb.pod vendor-crypto/openssl/dist/util/pod2mantest (contents, props changed) Modified: vendor-crypto/openssl/dist/ACKNOWLEDGMENTS vendor-crypto/openssl/dist/CHANGES vendor-crypto/openssl/dist/Configure vendor-crypto/openssl/dist/FREEBSD-upgrade vendor-crypto/openssl/dist/INSTALL vendor-crypto/openssl/dist/LICENSE vendor-crypto/openssl/dist/Makefile vendor-crypto/openssl/dist/Makefile.org vendor-crypto/openssl/dist/NEWS vendor-crypto/openssl/dist/README vendor-crypto/openssl/dist/apps/engine.c vendor-crypto/openssl/dist/apps/ocsp.c vendor-crypto/openssl/dist/apps/pkcs12.c vendor-crypto/openssl/dist/apps/pkeyutl.c vendor-crypto/openssl/dist/apps/s_client.c vendor-crypto/openssl/dist/apps/s_server.c vendor-crypto/openssl/dist/apps/speed.c vendor-crypto/openssl/dist/apps/x509.c vendor-crypto/openssl/dist/crypto/aes/aes.h vendor-crypto/openssl/dist/crypto/aes/aes_cbc.c vendor-crypto/openssl/dist/crypto/aes/aes_cfb.c vendor-crypto/openssl/dist/crypto/aes/aes_core.c vendor-crypto/openssl/dist/crypto/aes/aes_ctr.c vendor-crypto/openssl/dist/crypto/aes/aes_ecb.c vendor-crypto/openssl/dist/crypto/aes/aes_ige.c vendor-crypto/openssl/dist/crypto/aes/aes_locl.h vendor-crypto/openssl/dist/crypto/aes/aes_misc.c vendor-crypto/openssl/dist/crypto/aes/aes_ofb.c vendor-crypto/openssl/dist/crypto/aes/aes_x86core.c vendor-crypto/openssl/dist/crypto/aes/asm/aesni-mb-x86_64.pl vendor-crypto/openssl/dist/crypto/aes/asm/aesni-sha1-x86_64.pl vendor-crypto/openssl/dist/crypto/aes/asm/aesni-sha256-x86_64.pl vendor-crypto/openssl/dist/crypto/bio/bio.h vendor-crypto/openssl/dist/crypto/bio/bss_bio.c vendor-crypto/openssl/dist/crypto/bio/bss_conn.c vendor-crypto/openssl/dist/crypto/bio/bss_dgram.c vendor-crypto/openssl/dist/crypto/bn/asm/rsaz-x86_64.pl vendor-crypto/openssl/dist/crypto/bn/asm/x86_64-mont.pl vendor-crypto/openssl/dist/crypto/bn/asm/x86_64-mont5.pl vendor-crypto/openssl/dist/crypto/bn/bn_exp.c vendor-crypto/openssl/dist/crypto/bn/exptest.c vendor-crypto/openssl/dist/crypto/camellia/camellia.c vendor-crypto/openssl/dist/crypto/camellia/camellia.h vendor-crypto/openssl/dist/crypto/camellia/cmll_cbc.c vendor-crypto/openssl/dist/crypto/camellia/cmll_cfb.c vendor-crypto/openssl/dist/crypto/camellia/cmll_ctr.c vendor-crypto/openssl/dist/crypto/camellia/cmll_ecb.c vendor-crypto/openssl/dist/crypto/camellia/cmll_locl.h vendor-crypto/openssl/dist/crypto/camellia/cmll_misc.c vendor-crypto/openssl/dist/crypto/camellia/cmll_ofb.c vendor-crypto/openssl/dist/crypto/camellia/cmll_utl.c vendor-crypto/openssl/dist/crypto/des/des_old.c vendor-crypto/openssl/dist/crypto/des/des_old.h vendor-crypto/openssl/dist/crypto/des/des_old2.c vendor-crypto/openssl/dist/crypto/dh/dh.h vendor-crypto/openssl/dist/crypto/dh/dh_check.c vendor-crypto/openssl/dist/crypto/dh/dhtest.c vendor-crypto/openssl/dist/crypto/dsa/dsa_ossl.c vendor-crypto/openssl/dist/crypto/dso/dso.h vendor-crypto/openssl/dist/crypto/dso/dso_dl.c vendor-crypto/openssl/dist/crypto/dso/dso_dlfcn.c vendor-crypto/openssl/dist/crypto/dso/dso_lib.c vendor-crypto/openssl/dist/crypto/ec/asm/ecp_nistz256-x86_64.pl vendor-crypto/openssl/dist/crypto/ec/ec2_smpl.c vendor-crypto/openssl/dist/crypto/ec/ec_key.c vendor-crypto/openssl/dist/crypto/ec/ecp_nistz256_table.c vendor-crypto/openssl/dist/crypto/ec/ectest.c vendor-crypto/openssl/dist/crypto/engine/eng_all.c vendor-crypto/openssl/dist/crypto/evp/e_camellia.c vendor-crypto/openssl/dist/crypto/evp/e_old.c vendor-crypto/openssl/dist/crypto/evp/e_seed.c vendor-crypto/openssl/dist/crypto/mem_clr.c vendor-crypto/openssl/dist/crypto/modes/asm/aesni-gcm-x86_64.pl vendor-crypto/openssl/dist/crypto/modes/asm/ghash-x86_64.pl vendor-crypto/openssl/dist/crypto/o_dir.c vendor-crypto/openssl/dist/crypto/o_dir.h vendor-crypto/openssl/dist/crypto/o_dir_test.c vendor-crypto/openssl/dist/crypto/o_str.c vendor-crypto/openssl/dist/crypto/o_str.h vendor-crypto/openssl/dist/crypto/o_time.c vendor-crypto/openssl/dist/crypto/o_time.h vendor-crypto/openssl/dist/crypto/opensslv.h vendor-crypto/openssl/dist/crypto/rc4/rc4_utl.c vendor-crypto/openssl/dist/crypto/rsa/rsa_chk.c vendor-crypto/openssl/dist/crypto/rsa/rsa_sign.c vendor-crypto/openssl/dist/crypto/seed/seed_cbc.c vendor-crypto/openssl/dist/crypto/seed/seed_cfb.c vendor-crypto/openssl/dist/crypto/seed/seed_ecb.c vendor-crypto/openssl/dist/crypto/seed/seed_ofb.c vendor-crypto/openssl/dist/crypto/sha/asm/sha1-mb-x86_64.pl vendor-crypto/openssl/dist/crypto/sha/asm/sha1-x86_64.pl vendor-crypto/openssl/dist/crypto/sha/asm/sha256-mb-x86_64.pl vendor-crypto/openssl/dist/crypto/sha/asm/sha512-x86_64.pl vendor-crypto/openssl/dist/crypto/sha/sha1test.c vendor-crypto/openssl/dist/crypto/store/store.h vendor-crypto/openssl/dist/crypto/store/str_lib.c vendor-crypto/openssl/dist/crypto/store/str_locl.h vendor-crypto/openssl/dist/crypto/store/str_mem.c vendor-crypto/openssl/dist/crypto/store/str_meth.c vendor-crypto/openssl/dist/crypto/ts/ts_rsp_verify.c vendor-crypto/openssl/dist/crypto/ui/ui.h vendor-crypto/openssl/dist/crypto/ui/ui_compat.c vendor-crypto/openssl/dist/crypto/ui/ui_compat.h vendor-crypto/openssl/dist/crypto/ui/ui_lib.c vendor-crypto/openssl/dist/crypto/ui/ui_locl.h vendor-crypto/openssl/dist/crypto/ui/ui_openssl.c vendor-crypto/openssl/dist/crypto/ui/ui_util.c vendor-crypto/openssl/dist/crypto/x509/x509_vfy.c vendor-crypto/openssl/dist/crypto/x509/x509_vfy.h vendor-crypto/openssl/dist/crypto/x509/x509_vpm.c vendor-crypto/openssl/dist/crypto/x509v3/v3_pci.c vendor-crypto/openssl/dist/crypto/x509v3/v3_pcia.c vendor-crypto/openssl/dist/crypto/x509v3/v3_utl.c vendor-crypto/openssl/dist/crypto/x509v3/v3nametest.c vendor-crypto/openssl/dist/doc/apps/s_time.pod vendor-crypto/openssl/dist/doc/crypto/BIO_s_connect.pod vendor-crypto/openssl/dist/doc/ssl/SSL_CTX_set1_verify_cert_store.pod vendor-crypto/openssl/dist/doc/ssl/SSL_CTX_set_tmp_dh_callback.pod vendor-crypto/openssl/dist/engines/e_chil.c vendor-crypto/openssl/dist/ssl/d1_both.c vendor-crypto/openssl/dist/ssl/kssl.c vendor-crypto/openssl/dist/ssl/kssl.h vendor-crypto/openssl/dist/ssl/kssl_lcl.h vendor-crypto/openssl/dist/ssl/s2_srvr.c vendor-crypto/openssl/dist/ssl/s3_clnt.c vendor-crypto/openssl/dist/ssl/s3_lib.c vendor-crypto/openssl/dist/ssl/s3_srvr.c vendor-crypto/openssl/dist/ssl/ssl.h vendor-crypto/openssl/dist/ssl/ssl_err.c vendor-crypto/openssl/dist/ssl/ssl_lib.c vendor-crypto/openssl/dist/ssl/ssl_sess.c vendor-crypto/openssl/dist/ssl/t1_enc.c vendor-crypto/openssl/dist/ssl/t1_lib.c vendor-crypto/openssl/dist/util/domd vendor-crypto/openssl/dist/util/pl/VC-32.pl Modified: vendor-crypto/openssl/dist/ACKNOWLEDGMENTS ============================================================================== --- vendor-crypto/openssl/dist/ACKNOWLEDGMENTS Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/ACKNOWLEDGMENTS Thu Jan 28 18:41:59 2016 (r295001) @@ -1,30 +1,2 @@ -The OpenSSL project depends on volunteer efforts and financial support from -the end user community. That support comes in the form of donations and paid -sponsorships, software support contracts, paid consulting services -and commissioned software development. - -Since all these activities support the continued development and improvement -of OpenSSL we consider all these clients and customers as sponsors of the -OpenSSL project. - -We would like to identify and thank the following such sponsors for their past -or current significant support of the OpenSSL project: - -Major support: - - Qualys http://www.qualys.com/ - -Very significant support: - - OpenGear: http://www.opengear.com/ - -Significant support: - - PSW Group: http://www.psw.net/ - Acano Ltd. http://acano.com/ - -Please note that we ask permission to identify sponsors and that some sponsors -we consider eligible for inclusion here have requested to remain anonymous. - -Additional sponsorship or financial support is always welcome: for more -information please contact the OpenSSL Software Foundation. +Please https://www.openssl.org/community/thanks.html for the current +acknowledgements. Modified: vendor-crypto/openssl/dist/CHANGES ============================================================================== --- vendor-crypto/openssl/dist/CHANGES Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/CHANGES Thu Jan 28 18:41:59 2016 (r295001) @@ -2,6 +2,54 @@ OpenSSL CHANGES _______________ + Changes between 1.0.2e and 1.0.2f [28 Jan 2016] + + *) DH small subgroups + + Historically OpenSSL only ever generated DH parameters based on "safe" + primes. More recently (in version 1.0.2) support was provided for + generating X9.42 style parameter files such as those required for RFC 5114 + support. The primes used in such files may not be "safe". Where an + application is using DH configured with parameters based on primes that are + not "safe" then an attacker could use this fact to find a peer's private + DH exponent. This attack requires that the attacker complete multiple + handshakes in which the peer uses the same private DH exponent. For example + this could be used to discover a TLS server's private DH exponent if it's + reusing the private DH exponent or it's using a static DH ciphersuite. + + OpenSSL provides the option SSL_OP_SINGLE_DH_USE for ephemeral DH (DHE) in + TLS. It is not on by default. If the option is not set then the server + reuses the same private DH exponent for the life of the server process and + would be vulnerable to this attack. It is believed that many popular + applications do set this option and would therefore not be at risk. + + The fix for this issue adds an additional check where a "q" parameter is + available (as is the case in X9.42 based parameters). This detects the + only known attack, and is the only possible defense for static DH + ciphersuites. This could have some performance impact. + + Additionally the SSL_OP_SINGLE_DH_USE option has been switched on by + default and cannot be disabled. This could have some performance impact. + + This issue was reported to OpenSSL by Antonio Sanso (Adobe). + (CVE-2016-0701) + [Matt Caswell] + + *) SSLv2 doesn't block disabled ciphers + + A malicious client can negotiate SSLv2 ciphers that have been disabled on + the server and complete SSLv2 handshakes even if all SSLv2 ciphers have + been disabled, provided that the SSLv2 protocol was not also disabled via + SSL_OP_NO_SSLv2. + + This issue was reported to OpenSSL on 26th December 2015 by Nimrod Aviram + and Sebastian Schinzel. + (CVE-2015-3197) + [Viktor Dukhovni] + + *) Reject DH handshakes with parameters shorter than 1024 bits. + [Kurt Roeckx] + Changes between 1.0.2d and 1.0.2e [3 Dec 2015] *) BN_mod_exp may produce incorrect results on x86_64 Modified: vendor-crypto/openssl/dist/Configure ============================================================================== --- vendor-crypto/openssl/dist/Configure Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/Configure Thu Jan 28 18:41:59 2016 (r295001) @@ -124,6 +124,9 @@ my $clang_disabled_warnings = "-Wno-unus # -Wextended-offsetof my $clang_devteam_warn = "-Wno-unused-parameter -Wno-missing-field-initializers -Wno-language-extension-token -Wno-extended-offsetof -Qunused-arguments"; +# Warn that "make depend" should be run? +my $warn_make_depend = 0; + my $strict_warnings = 0; my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL"; @@ -1513,7 +1516,7 @@ if ($target =~ /\-icc$/) # Intel C compi # linker only when --prefix is not /usr. if ($target =~ /^BSD\-/) { - $shared_ldflag.=" -Wl,-rpath,\$(LIBRPATH)" if ($prefix !~ m|^/usr[/]*$|); + $shared_ldflag.=" -Wl,-rpath,\$\$(LIBRPATH)" if ($prefix !~ m|^/usr[/]*$|); } if ($sys_id ne "") @@ -2028,14 +2031,8 @@ EOF &dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s'); } if ($depflags ne $default_depflags && !$make_depend) { - print < (note that your message will be recorded in the request tracker publicly readable - via http://www.openssl.org/support/rt.html and will be forwarded to a - public mailing list). Include the output of "make report" in your message. - Please check out the request tracker. Maybe the bug was already - reported or has already been fixed. + at https://www.openssl.org/community/index.html#bugs and will be + forwarded to a public mailing list). Include the output of "make + report" in your message. Please check out the request tracker. Maybe + the bug was already reported or has already been fixed. [If you encounter assembler error messages, try the "no-asm" configuration option as an immediate fix.] Modified: vendor-crypto/openssl/dist/LICENSE ============================================================================== --- vendor-crypto/openssl/dist/LICENSE Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/LICENSE Thu Jan 28 18:41:59 2016 (r295001) @@ -12,7 +12,7 @@ --------------- /* ==================================================================== - * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1998-2016 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: vendor-crypto/openssl/dist/Makefile ============================================================================== --- vendor-crypto/openssl/dist/Makefile Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/Makefile Thu Jan 28 18:41:59 2016 (r295001) @@ -4,7 +4,7 @@ ## Makefile for OpenSSL ## -VERSION=1.0.2e +VERSION=1.0.2f MAJOR=1 MINOR=0.2 SHLIB_VERSION_NUMBER=1.0.0 @@ -182,8 +182,7 @@ SHARED_LDFLAGS= GENERAL= Makefile BASENAME= openssl NAME= $(BASENAME)-$(VERSION) -TARFILE= $(NAME).tar -WTARFILE= $(NAME)-win.tar +TARFILE= ../$(NAME).tar EXHEADER= e_os2.h HEADER= e_os.h @@ -501,38 +500,35 @@ TABLE: Configure # would occur. Therefore the list of files is temporarily stored into a file # and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal # tar does not support the --files-from option. -TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \ - --owner openssl:0 --group openssl:0 \ - --transform 's|^|openssl-$(VERSION)/|' \ +TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from $(TARFILE).list \ + --owner 0 --group 0 \ + --transform 's|^|$(NAME)/|' \ -cvf - -../$(TARFILE).list: +$(TARFILE).list: find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \ \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \ - \! -name '*test' \! -name '.#*' \! -name '*~' \ - | sort > ../$(TARFILE).list + \( \! -name '*test' -o -name bctest -o -name pod2mantest \) \ + \! -name '.#*' \! -name '*~' \! -type l \ + | sort > $(TARFILE).list -tar: ../$(TARFILE).list +tar: $(TARFILE).list find . -type d -print | xargs chmod 755 find . -type f -print | xargs chmod a+r find . -type f -perm -0100 -print | xargs chmod a+x - $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE).gz - -tar-snap: ../$(TARFILE).list - $(TAR_COMMAND) > ../$(TARFILE) - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE) + $(TAR_COMMAND) | gzip --best > $(TARFILE).gz + rm -f $(TARFILE).list + ls -l $(TARFILE).gz + +tar-snap: $(TARFILE).list + $(TAR_COMMAND) > $(TARFILE) + rm -f $(TARFILE).list + ls -l $(TARFILE) dist: $(PERL) Configure dist - @$(MAKE) dist_pem_h @$(MAKE) SDIRS='$(SDIRS)' clean - @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar - -dist_pem_h: - (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar install: all install_docs install_sw Modified: vendor-crypto/openssl/dist/Makefile.org ============================================================================== --- vendor-crypto/openssl/dist/Makefile.org Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/Makefile.org Thu Jan 28 18:41:59 2016 (r295001) @@ -180,8 +180,7 @@ SHARED_LDFLAGS= GENERAL= Makefile BASENAME= openssl NAME= $(BASENAME)-$(VERSION) -TARFILE= $(NAME).tar -WTARFILE= $(NAME)-win.tar +TARFILE= ../$(NAME).tar EXHEADER= e_os2.h HEADER= e_os.h @@ -499,38 +498,35 @@ TABLE: Configure # would occur. Therefore the list of files is temporarily stored into a file # and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal # tar does not support the --files-from option. -TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \ - --owner openssl:0 --group openssl:0 \ - --transform 's|^|openssl-$(VERSION)/|' \ +TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from $(TARFILE).list \ + --owner 0 --group 0 \ + --transform 's|^|$(NAME)/|' \ -cvf - -../$(TARFILE).list: +$(TARFILE).list: find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \ \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \ - \! -name '*test' \! -name '.#*' \! -name '*~' \ - | sort > ../$(TARFILE).list + \( \! -name '*test' -o -name bctest -o -name pod2mantest \) \ + \! -name '.#*' \! -name '*~' \! -type l \ + | sort > $(TARFILE).list -tar: ../$(TARFILE).list +tar: $(TARFILE).list find . -type d -print | xargs chmod 755 find . -type f -print | xargs chmod a+r find . -type f -perm -0100 -print | xargs chmod a+x - $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE).gz - -tar-snap: ../$(TARFILE).list - $(TAR_COMMAND) > ../$(TARFILE) - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE) + $(TAR_COMMAND) | gzip --best > $(TARFILE).gz + rm -f $(TARFILE).list + ls -l $(TARFILE).gz + +tar-snap: $(TARFILE).list + $(TAR_COMMAND) > $(TARFILE) + rm -f $(TARFILE).list + ls -l $(TARFILE) dist: $(PERL) Configure dist - @$(MAKE) dist_pem_h @$(MAKE) SDIRS='$(SDIRS)' clean - @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar - -dist_pem_h: - (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar install: all install_docs install_sw Modified: vendor-crypto/openssl/dist/NEWS ============================================================================== --- vendor-crypto/openssl/dist/NEWS Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/NEWS Thu Jan 28 18:41:59 2016 (r295001) @@ -5,6 +5,11 @@ This file gives a brief overview of the major changes between each OpenSSL release. For more details please read the CHANGES file. + Major changes between OpenSSL 1.0.2e and OpenSSL 1.0.2f [28 Jan 2016] + + o DH small subgroups (CVE-2016-0701) + o SSLv2 doesn't block disabled ciphers (CVE-2015-3197) + Major changes between OpenSSL 1.0.2d and OpenSSL 1.0.2e [3 Dec 2015] o BN_mod_exp may produce incorrect results on x86_64 (CVE-2015-3193) Modified: vendor-crypto/openssl/dist/README ============================================================================== --- vendor-crypto/openssl/dist/README Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/README Thu Jan 28 18:41:59 2016 (r295001) @@ -1,5 +1,5 @@ - OpenSSL 1.0.2e 3 Dec 2015 + OpenSSL 1.0.2f 28 Jan 2016 Copyright (c) 1998-2015 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson @@ -90,11 +90,12 @@ In order to avoid spam, this is a moderated mailing list, and it might take a day for the ticket to show up. (We also scan posts to make sure - that security disclosures aren't publically posted by mistake.) Mail to - this address is recorded in the public RT (request tracker) database (see - https://www.openssl.org/support/rt.html for details) and also forwarded - the public openssl-dev mailing list. Confidential mail may be sent to - openssl-security@openssl.org (PGP key available from the key servers). + that security disclosures aren't publically posted by mistake.) Mail + to this address is recorded in the public RT (request tracker) database + (see https://www.openssl.org/community/index.html#bugs for details) and + also forwarded the public openssl-dev mailing list. Confidential mail + may be sent to openssl-security@openssl.org (PGP key available from the + key servers). Please do NOT use this for general assistance or support queries. Just because something doesn't work the way you expect does not mean it Modified: vendor-crypto/openssl/dist/apps/engine.c ============================================================================== --- vendor-crypto/openssl/dist/apps/engine.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/apps/engine.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* apps/engine.c -*- mode: C; c-file-style: "eay" -*- */ +/* apps/engine.c */ /* * Written by Richard Levitte for the OpenSSL project * 2000. Modified: vendor-crypto/openssl/dist/apps/ocsp.c ============================================================================== --- vendor-crypto/openssl/dist/apps/ocsp.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/apps/ocsp.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1041,7 +1041,7 @@ static int make_ocsp_response(OCSP_RESPO bs = OCSP_BASICRESP_new(); thisupd = X509_gmtime_adj(NULL, 0); if (ndays != -1) - nextupd = X509_gmtime_adj(NULL, nmin * 60 + ndays * 3600 * 24); + nextupd = X509_time_adj_ex(NULL, ndays, nmin * 60, NULL); /* Examine each certificate id in the request */ for (i = 0; i < id_count; i++) { Modified: vendor-crypto/openssl/dist/apps/pkcs12.c ============================================================================== --- vendor-crypto/openssl/dist/apps/pkcs12.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/apps/pkcs12.c Thu Jan 28 18:41:59 2016 (r295001) @@ -79,7 +79,8 @@ const EVP_CIPHER *enc; # define CLCERTS 0x8 # define CACERTS 0x10 -int get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **chain); +static int get_cert_chain(X509 *cert, X509_STORE *store, + STACK_OF(X509) **chain); int dump_certs_keys_p12(BIO *out, PKCS12 *p12, char *pass, int passlen, int options, char *pempass); int dump_certs_pkeys_bags(BIO *out, STACK_OF(PKCS12_SAFEBAG) *bags, @@ -594,7 +595,7 @@ int MAIN(int argc, char **argv) vret = get_cert_chain(ucert, store, &chain2); X509_STORE_free(store); - if (!vret) { + if (vret == X509_V_OK) { /* Exclude verified certificate */ for (i = 1; i < sk_X509_num(chain2); i++) sk_X509_push(certs, sk_X509_value(chain2, i)); @@ -602,7 +603,7 @@ int MAIN(int argc, char **argv) X509_free(sk_X509_value(chain2, 0)); sk_X509_free(chain2); } else { - if (vret >= 0) + if (vret != X509_V_ERR_UNSPECIFIED) BIO_printf(bio_err, "Error %s getting chain.\n", X509_verify_cert_error_string(vret)); else @@ -906,36 +907,25 @@ int dump_certs_pkeys_bag(BIO *out, PKCS1 /* Given a single certificate return a verified chain or NULL if error */ -/* Hope this is OK .... */ - -int get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **chain) +static int get_cert_chain(X509 *cert, X509_STORE *store, + STACK_OF(X509) **chain) { X509_STORE_CTX store_ctx; - STACK_OF(X509) *chn; + STACK_OF(X509) *chn = NULL; int i = 0; - /* - * FIXME: Should really check the return status of X509_STORE_CTX_init - * for an error, but how that fits into the return value of this function - * is less obvious. - */ - X509_STORE_CTX_init(&store_ctx, store, cert, NULL); - if (X509_verify_cert(&store_ctx) <= 0) { - i = X509_STORE_CTX_get_error(&store_ctx); - if (i == 0) - /* - * avoid returning 0 if X509_verify_cert() did not set an - * appropriate error value in the context - */ - i = -1; - chn = NULL; - goto err; - } else + if (!X509_STORE_CTX_init(&store_ctx, store, cert, NULL)) { + *chain = NULL; + return X509_V_ERR_UNSPECIFIED; + } + + if (X509_verify_cert(&store_ctx) > 0) chn = X509_STORE_CTX_get1_chain(&store_ctx); - err: + else if ((i = X509_STORE_CTX_get_error(&store_ctx)) == 0) + i = X509_V_ERR_UNSPECIFIED; + X509_STORE_CTX_cleanup(&store_ctx); *chain = chn; - return i; } Modified: vendor-crypto/openssl/dist/apps/pkeyutl.c ============================================================================== --- vendor-crypto/openssl/dist/apps/pkeyutl.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/apps/pkeyutl.c Thu Jan 28 18:41:59 2016 (r295001) @@ -74,10 +74,11 @@ static void usage(void); static EVP_PKEY_CTX *init_ctx(int *pkeysize, char *keyfile, int keyform, int key_type, - char *passargin, int pkey_op, ENGINE *e); + char *passargin, int pkey_op, ENGINE *e, + int impl); static int setup_peer(BIO *err, EVP_PKEY_CTX *ctx, int peerform, - const char *file); + const char *file, ENGINE* e); static int do_keyop(EVP_PKEY_CTX *ctx, int pkey_op, unsigned char *out, size_t *poutlen, @@ -97,6 +98,7 @@ int MAIN(int argc, char **argv) EVP_PKEY_CTX *ctx = NULL; char *passargin = NULL; int keysize = -1; + int engine_impl = 0; unsigned char *buf_in = NULL, *buf_out = NULL, *sig = NULL; size_t buf_outlen; @@ -137,7 +139,7 @@ int MAIN(int argc, char **argv) else { ctx = init_ctx(&keysize, *(++argv), keyform, key_type, - passargin, pkey_op, e); + passargin, pkey_op, e, engine_impl); if (!ctx) { BIO_puts(bio_err, "Error initializing context\n"); ERR_print_errors(bio_err); @@ -147,7 +149,7 @@ int MAIN(int argc, char **argv) } else if (!strcmp(*argv, "-peerkey")) { if (--argc < 1) badarg = 1; - else if (!setup_peer(bio_err, ctx, peerform, *(++argv))) + else if (!setup_peer(bio_err, ctx, peerform, *(++argv), e)) badarg = 1; } else if (!strcmp(*argv, "-passin")) { if (--argc < 1) @@ -171,6 +173,8 @@ int MAIN(int argc, char **argv) badarg = 1; else e = setup_engine(bio_err, *(++argv), 0); + } else if (!strcmp(*argv, "-engine_impl")) { + engine_impl = 1; } #endif else if (!strcmp(*argv, "-pubin")) @@ -368,7 +372,8 @@ static void usage() BIO_printf(bio_err, "-hexdump hex dump output\n"); #ifndef OPENSSL_NO_ENGINE BIO_printf(bio_err, - "-engine e use engine e, possibly a hardware device.\n"); + "-engine e use engine e, maybe a hardware device, for loading keys.\n"); + BIO_printf(bio_err, "-engine_impl also use engine given by -engine for crypto operations\n"); #endif BIO_printf(bio_err, "-passin arg pass phrase source\n"); @@ -376,10 +381,12 @@ static void usage() static EVP_PKEY_CTX *init_ctx(int *pkeysize, char *keyfile, int keyform, int key_type, - char *passargin, int pkey_op, ENGINE *e) + char *passargin, int pkey_op, ENGINE *e, + int engine_impl) { EVP_PKEY *pkey = NULL; EVP_PKEY_CTX *ctx = NULL; + ENGINE *impl = NULL; char *passin = NULL; int rv = -1; X509 *x; @@ -418,9 +425,14 @@ static EVP_PKEY_CTX *init_ctx(int *pkeys if (!pkey) goto end; - - ctx = EVP_PKEY_CTX_new(pkey, e); - + +#ifndef OPENSSL_NO_ENGINE + if (engine_impl) + impl = e; +#endif + + ctx = EVP_PKEY_CTX_new(pkey, impl); + EVP_PKEY_free(pkey); if (!ctx) @@ -467,16 +479,20 @@ static EVP_PKEY_CTX *init_ctx(int *pkeys } static int setup_peer(BIO *err, EVP_PKEY_CTX *ctx, int peerform, - const char *file) + const char *file, ENGINE* e) { EVP_PKEY *peer = NULL; + ENGINE* engine = NULL; int ret; if (!ctx) { BIO_puts(err, "-peerkey command before -inkey\n"); return 0; } - peer = load_pubkey(bio_err, file, peerform, 0, NULL, NULL, "Peer Key"); + if (peerform == FORMAT_ENGINE) + engine = e; + + peer = load_pubkey(bio_err, file, peerform, 0, NULL, engine, "Peer Key"); if (!peer) { BIO_printf(bio_err, "Error reading peer key %s\n", file); Modified: vendor-crypto/openssl/dist/apps/s_client.c ============================================================================== --- vendor-crypto/openssl/dist/apps/s_client.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/apps/s_client.c Thu Jan 28 18:41:59 2016 (r295001) @@ -308,7 +308,7 @@ static void sc_usage(void) " -connect host:port - who to connect to (default is %s:%s)\n", SSL_HOST_NAME, PORT_STR); BIO_printf(bio_err, - " -verify_host host - check peer certificate matches \"host\"\n"); + " -verify_hostname host - check peer certificate matches \"host\"\n"); BIO_printf(bio_err, " -verify_email email - check peer certificate matches \"email\"\n"); BIO_printf(bio_err, Modified: vendor-crypto/openssl/dist/apps/s_server.c ============================================================================== --- vendor-crypto/openssl/dist/apps/s_server.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/apps/s_server.c Thu Jan 28 18:41:59 2016 (r295001) @@ -498,7 +498,7 @@ static void sv_usage(void) BIO_printf(bio_err, " -accept arg - port to accept on (default is %d)\n", PORT); BIO_printf(bio_err, - " -verify_host host - check peer certificate matches \"host\"\n"); + " -verify_hostname host - check peer certificate matches \"host\"\n"); BIO_printf(bio_err, " -verify_email email - check peer certificate matches \"email\"\n"); BIO_printf(bio_err, Modified: vendor-crypto/openssl/dist/apps/speed.c ============================================================================== --- vendor-crypto/openssl/dist/apps/speed.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/apps/speed.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* apps/speed.c -*- mode:C; c-file-style: "eay" -*- */ +/* apps/speed.c */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * Modified: vendor-crypto/openssl/dist/apps/x509.c ============================================================================== --- vendor-crypto/openssl/dist/apps/x509.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/apps/x509.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1226,12 +1226,7 @@ static int sign(X509 *x, EVP_PKEY *pkey, if (X509_gmtime_adj(X509_get_notBefore(x), 0) == NULL) goto err; - /* Lets just make it 12:00am GMT, Jan 1 1970 */ - /* memcpy(x->cert_info->validity->notBefore,"700101120000Z",13); */ - /* 28 days to be certified */ - - if (X509_gmtime_adj(X509_get_notAfter(x), (long)60 * 60 * 24 * days) == - NULL) + if (X509_time_adj_ex(X509_get_notAfter(x), days, 0, NULL) == NULL) goto err; if (!X509_set_pubkey(x, pkey)) Modified: vendor-crypto/openssl/dist/crypto/aes/aes.h ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes.h Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes.h Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes.h */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_cbc.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_cbc.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_cbc.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_cbc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_cbc.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_cfb.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_cfb.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_cfb.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_cfb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_cfb.c */ /* ==================================================================== * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_core.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_core.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_core.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_core.c */ /** * rijndael-alg-fst.c * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_ctr.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_ctr.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_ctr.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ctr.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ctr.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_ecb.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_ecb.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_ecb.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ecb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ecb.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_ige.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_ige.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_ige.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ige.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ige.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_locl.h ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_locl.h Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_locl.h Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes.h */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_misc.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_misc.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_misc.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_misc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_misc.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_ofb.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_ofb.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_ofb.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ofb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ofb.c */ /* ==================================================================== * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/aes/aes_x86core.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/aes_x86core.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/aes_x86core.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_core.c */ /** * rijndael-alg-fst.c * Modified: vendor-crypto/openssl/dist/crypto/aes/asm/aesni-mb-x86_64.pl ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/asm/aesni-mb-x86_64.pl Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/asm/aesni-mb-x86_64.pl Thu Jan 28 18:41:59 2016 (r295001) @@ -63,7 +63,7 @@ if (!$avx && $win64 && ($flavour =~ /mas $avx = ($1>=10) + ($1>=11); } -if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) { +if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9]\.[0-9]+)/) { $avx = ($2>=3.0) + ($2>3.0); } Modified: vendor-crypto/openssl/dist/crypto/aes/asm/aesni-sha1-x86_64.pl ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/asm/aesni-sha1-x86_64.pl Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/asm/aesni-sha1-x86_64.pl Thu Jan 28 18:41:59 2016 (r295001) @@ -94,7 +94,7 @@ $avx=1 if (!$avx && $win64 && ($flavour $avx=1 if (!$avx && $win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) && `ml64 2>&1` =~ /Version ([0-9]+)\./ && $1>=10); -$avx=1 if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/ && $2>=3.0); +$avx=1 if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9]\.[0-9]+)/ && $2>=3.0); $shaext=1; ### set to zero if compiling for 1.0.1 Modified: vendor-crypto/openssl/dist/crypto/aes/asm/aesni-sha256-x86_64.pl ============================================================================== --- vendor-crypto/openssl/dist/crypto/aes/asm/aesni-sha256-x86_64.pl Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/aes/asm/aesni-sha256-x86_64.pl Thu Jan 28 18:41:59 2016 (r295001) @@ -59,7 +59,7 @@ if (!$avx && $win64 && ($flavour =~ /mas $avx = ($1>=10) + ($1>=12); } -if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) { +if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9]\.[0-9]+)/) { $avx = ($2>=3.0) + ($2>3.0); } Modified: vendor-crypto/openssl/dist/crypto/bio/bio.h ============================================================================== --- vendor-crypto/openssl/dist/crypto/bio/bio.h Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/bio/bio.h Thu Jan 28 18:41:59 2016 (r295001) @@ -479,11 +479,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_hostname(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0) # define BIO_get_conn_port(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1) # define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2) -# define BIO_get_conn_int_port(b) BIO_int_ctrl(b,BIO_C_GET_CONNECT,3,0) +# define BIO_get_conn_int_port(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,0,NULL) # define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) -/* BIO_s_accept_socket() */ +/* BIO_s_accept() */ # define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) # define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0) /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ @@ -496,6 +496,7 @@ struct bio_dgram_sctp_prinfo { # define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) # define BIO_get_bind_mode(b,mode) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) +/* BIO_s_accept() and BIO_s_connect() */ # define BIO_do_connect(b) BIO_do_handshake(b) # define BIO_do_accept(b) BIO_do_handshake(b) # define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) @@ -515,12 +516,15 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_url(b,url) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,(char *)(url)) # define BIO_get_no_connect_return(b) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,NULL) +/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ # define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) # define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) +/* BIO_s_file() */ # define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) # define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) +/* BIO_s_fd() and BIO_s_file() */ # define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) # define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) Modified: vendor-crypto/openssl/dist/crypto/bio/bss_bio.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/bio/bss_bio.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/bio/bss_bio.c Thu Jan 28 18:41:59 2016 (r295001) @@ -1,4 +1,4 @@ -/* crypto/bio/bss_bio.c -*- Mode: C; c-file-style: "eay" -*- */ +/* crypto/bio/bss_bio.c */ /* ==================================================================== * Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist/crypto/bio/bss_conn.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/bio/bss_conn.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/bio/bss_conn.c Thu Jan 28 18:41:59 2016 (r295001) @@ -419,7 +419,7 @@ static long conn_ctrl(BIO *b, int cmd, l { BIO *dbio; int *ip; - const char **pptr; + const char **pptr = NULL; long ret = 1; BIO_CONNECT *data; @@ -442,19 +442,28 @@ static long conn_ctrl(BIO *b, int cmd, l case BIO_C_GET_CONNECT: if (ptr != NULL) { pptr = (const char **)ptr; - if (num == 0) { - *pptr = data->param_hostname; + } - } else if (num == 1) { - *pptr = data->param_port; - } else if (num == 2) { - *pptr = (char *)&(data->ip[0]); - } else if (num == 3) { - *((int *)ptr) = data->port; + if (b->init) { + if (pptr != NULL) { + ret = 1; + if (num == 0) { + *pptr = data->param_hostname; + } else if (num == 1) { + *pptr = data->param_port; + } else if (num == 2) { + *pptr = (char *)&(data->ip[0]); + } else { + ret = 0; + } + } + if (num == 3) { + ret = data->port; } - if ((!b->init) || (ptr == NULL)) + } else { + if (pptr != NULL) *pptr = "not initialized"; - ret = 1; + ret = 0; } break; case BIO_C_SET_CONNECT: Modified: vendor-crypto/openssl/dist/crypto/bio/bss_dgram.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/bio/bss_dgram.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/bio/bss_dgram.c Thu Jan 28 18:41:59 2016 (r295001) @@ -519,10 +519,8 @@ static long dgram_ctrl(BIO *b, int cmd, switch (cmd) { case BIO_CTRL_RESET: num = 0; - case BIO_C_FILE_SEEK: ret = 0; break; - case BIO_C_FILE_TELL: case BIO_CTRL_INFO: ret = 0; break; Modified: vendor-crypto/openssl/dist/crypto/bn/asm/rsaz-x86_64.pl ============================================================================== --- vendor-crypto/openssl/dist/crypto/bn/asm/rsaz-x86_64.pl Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/bn/asm/rsaz-x86_64.pl Thu Jan 28 18:41:59 2016 (r295001) @@ -113,7 +113,7 @@ if (!$addx && $win64 && ($flavour =~ /ma $addx = ($1>=12); } -if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) { +if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9])\.([0-9]+)/) { my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10 $addx = ($ver>=3.03); } Modified: vendor-crypto/openssl/dist/crypto/bn/asm/x86_64-mont.pl ============================================================================== --- vendor-crypto/openssl/dist/crypto/bn/asm/x86_64-mont.pl Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/bn/asm/x86_64-mont.pl Thu Jan 28 18:41:59 2016 (r295001) @@ -68,7 +68,7 @@ if (!$addx && $win64 && ($flavour =~ /ma $addx = ($1>=12); } -if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) { +if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9])\.([0-9]+)/) { my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10 $addx = ($ver>=3.03); } Modified: vendor-crypto/openssl/dist/crypto/bn/asm/x86_64-mont5.pl ============================================================================== --- vendor-crypto/openssl/dist/crypto/bn/asm/x86_64-mont5.pl Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/bn/asm/x86_64-mont5.pl Thu Jan 28 18:41:59 2016 (r295001) @@ -53,7 +53,7 @@ if (!$addx && $win64 && ($flavour =~ /ma $addx = ($1>=12); } -if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) { +if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9])\.([0-9]+)/) { my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10 $addx = ($ver>=3.03); } Modified: vendor-crypto/openssl/dist/crypto/bn/bn_exp.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/bn/bn_exp.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/bn/bn_exp.c Thu Jan 28 18:41:59 2016 (r295001) @@ -282,9 +282,14 @@ int BN_mod_exp_recp(BIGNUM *r, const BIG } bits = BN_num_bits(p); - if (bits == 0) { - ret = BN_one(r); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(r); + } else { + ret = BN_one(r); + } return ret; } @@ -418,7 +423,13 @@ int BN_mod_exp_mont(BIGNUM *rr, const BI } bits = BN_num_bits(p); if (bits == 0) { - ret = BN_one(rr); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(rr); + } else { + ret = BN_one(rr); + } return ret; } @@ -639,7 +650,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBU * precomputation memory layout to limit data-dependency to a minimum to * protect secret exponents (cf. the hyper-threading timing attacks pointed * out by Colin Percival, - * http://www.daemong-consideredperthreading-considered-harmful/) + * http://www.daemonology.net/hyperthreading-considered-harmful/) */ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, @@ -671,7 +682,13 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr bits = BN_num_bits(p); if (bits == 0) { - ret = BN_one(rr); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(rr); + } else { + ret = BN_one(rr); + } return ret; } @@ -1182,8 +1199,9 @@ int BN_mod_exp_mont_word(BIGNUM *rr, BN_ if (BN_is_one(m)) { ret = 1; BN_zero(rr); - } else + } else { ret = BN_one(rr); + } return ret; } if (a == 0) { @@ -1297,9 +1315,14 @@ int BN_mod_exp_simple(BIGNUM *r, const B } bits = BN_num_bits(p); - - if (bits == 0) { - ret = BN_one(r); + if (bits == 0) { + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(r); + } else { + ret = BN_one(r); + } return ret; } Modified: vendor-crypto/openssl/dist/crypto/bn/exptest.c ============================================================================== --- vendor-crypto/openssl/dist/crypto/bn/exptest.c Thu Jan 28 18:25:55 2016 (r295000) +++ vendor-crypto/openssl/dist/crypto/bn/exptest.c Thu Jan 28 18:41:59 2016 (r295001) @@ -73,14 +73,34 @@ static const char rnd_seed[] = "string to make the random number generator think it has entropy"; /* *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Jan 28 18:42:41 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 84C42A70787; Thu, 28 Jan 2016 18:42:41 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 382C41D82; Thu, 28 Jan 2016 18:42:41 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SIgeCE073492; Thu, 28 Jan 2016 18:42:40 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SIgeIs073491; Thu, 28 Jan 2016 18:42:40 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201601281842.u0SIgeIs073491@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 28 Jan 2016 18:42:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r295002 - vendor-crypto/openssl/1.0.2f X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 18:42:41 -0000 Author: jkim Date: Thu Jan 28 18:42:39 2016 New Revision: 295002 URL: https://svnweb.freebsd.org/changeset/base/295002 Log: Tag OpenSSL 1.0.2f. Added: vendor-crypto/openssl/1.0.2f/ - copied from r295001, vendor-crypto/openssl/dist/ From owner-svn-src-all@freebsd.org Thu Jan 28 18:44:17 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 90005A70847; Thu, 28 Jan 2016 18:44:17 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2CD711EDB; Thu, 28 Jan 2016 18:44:17 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SIiGkw073649; Thu, 28 Jan 2016 18:44:16 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SIiBpr073600; Thu, 28 Jan 2016 18:44:11 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201601281844.u0SIiBpr073600@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 28 Jan 2016 18:44:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r295003 - in vendor-crypto/openssl/dist-1.0.1: . apps crypto crypto/aes crypto/bio crypto/bn crypto/camellia crypto/des crypto/dsa crypto/dso crypto/ec crypto/engine crypto/evp crypto/r... X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 18:44:17 -0000 Author: jkim Date: Thu Jan 28 18:44:11 2016 New Revision: 295003 URL: https://svnweb.freebsd.org/changeset/base/295003 Log: Import OpenSSL 1.0.1r. Added: vendor-crypto/openssl/dist-1.0.1/doc/ssl/SSL_CTX_set_tlsext_status_cb.pod vendor-crypto/openssl/dist-1.0.1/util/pod2mantest (contents, props changed) Modified: vendor-crypto/openssl/dist-1.0.1/ACKNOWLEDGMENTS vendor-crypto/openssl/dist-1.0.1/CHANGES vendor-crypto/openssl/dist-1.0.1/Configure vendor-crypto/openssl/dist-1.0.1/FREEBSD-upgrade vendor-crypto/openssl/dist-1.0.1/INSTALL vendor-crypto/openssl/dist-1.0.1/LICENSE vendor-crypto/openssl/dist-1.0.1/Makefile vendor-crypto/openssl/dist-1.0.1/Makefile.org vendor-crypto/openssl/dist-1.0.1/NEWS vendor-crypto/openssl/dist-1.0.1/README vendor-crypto/openssl/dist-1.0.1/apps/engine.c vendor-crypto/openssl/dist-1.0.1/apps/ocsp.c vendor-crypto/openssl/dist-1.0.1/apps/pkcs12.c vendor-crypto/openssl/dist-1.0.1/apps/speed.c vendor-crypto/openssl/dist-1.0.1/apps/x509.c vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes.h vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_cbc.c vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_cfb.c vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_core.c vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ctr.c vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ecb.c vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ige.c vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_locl.h vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_misc.c vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ofb.c vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_x86core.c vendor-crypto/openssl/dist-1.0.1/crypto/bio/bio.h vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_bio.c vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_conn.c vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_dgram.c vendor-crypto/openssl/dist-1.0.1/crypto/bn/bn_exp.c vendor-crypto/openssl/dist-1.0.1/crypto/bn/exptest.c vendor-crypto/openssl/dist-1.0.1/crypto/camellia/camellia.c vendor-crypto/openssl/dist-1.0.1/crypto/camellia/camellia.h vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_cbc.c vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_cfb.c vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ctr.c vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ecb.c vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_locl.h vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_misc.c vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ofb.c vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_utl.c vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old.c vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old.h vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old2.c vendor-crypto/openssl/dist-1.0.1/crypto/dsa/dsa_ossl.c vendor-crypto/openssl/dist-1.0.1/crypto/dso/dso.h vendor-crypto/openssl/dist-1.0.1/crypto/dso/dso_dl.c vendor-crypto/openssl/dist-1.0.1/crypto/dso/dso_dlfcn.c vendor-crypto/openssl/dist-1.0.1/crypto/dso/dso_lib.c vendor-crypto/openssl/dist-1.0.1/crypto/ec/ectest.c vendor-crypto/openssl/dist-1.0.1/crypto/engine/eng_all.c vendor-crypto/openssl/dist-1.0.1/crypto/evp/e_camellia.c vendor-crypto/openssl/dist-1.0.1/crypto/evp/e_old.c vendor-crypto/openssl/dist-1.0.1/crypto/evp/e_seed.c vendor-crypto/openssl/dist-1.0.1/crypto/mem_clr.c vendor-crypto/openssl/dist-1.0.1/crypto/o_dir.c vendor-crypto/openssl/dist-1.0.1/crypto/o_dir.h vendor-crypto/openssl/dist-1.0.1/crypto/o_dir_test.c vendor-crypto/openssl/dist-1.0.1/crypto/o_str.c vendor-crypto/openssl/dist-1.0.1/crypto/o_str.h vendor-crypto/openssl/dist-1.0.1/crypto/o_time.c vendor-crypto/openssl/dist-1.0.1/crypto/o_time.h vendor-crypto/openssl/dist-1.0.1/crypto/opensslv.h vendor-crypto/openssl/dist-1.0.1/crypto/rc4/rc4_utl.c vendor-crypto/openssl/dist-1.0.1/crypto/rsa/rsa_chk.c vendor-crypto/openssl/dist-1.0.1/crypto/rsa/rsa_sign.c vendor-crypto/openssl/dist-1.0.1/crypto/seed/seed_cbc.c vendor-crypto/openssl/dist-1.0.1/crypto/seed/seed_cfb.c vendor-crypto/openssl/dist-1.0.1/crypto/seed/seed_ecb.c vendor-crypto/openssl/dist-1.0.1/crypto/seed/seed_ofb.c vendor-crypto/openssl/dist-1.0.1/crypto/sha/sha1test.c vendor-crypto/openssl/dist-1.0.1/crypto/store/store.h vendor-crypto/openssl/dist-1.0.1/crypto/store/str_lib.c vendor-crypto/openssl/dist-1.0.1/crypto/store/str_locl.h vendor-crypto/openssl/dist-1.0.1/crypto/store/str_mem.c vendor-crypto/openssl/dist-1.0.1/crypto/store/str_meth.c vendor-crypto/openssl/dist-1.0.1/crypto/ts/ts_rsp_verify.c vendor-crypto/openssl/dist-1.0.1/crypto/ui/ui.h vendor-crypto/openssl/dist-1.0.1/crypto/ui/ui_compat.c vendor-crypto/openssl/dist-1.0.1/crypto/ui/ui_compat.h vendor-crypto/openssl/dist-1.0.1/crypto/ui/ui_lib.c vendor-crypto/openssl/dist-1.0.1/crypto/ui/ui_locl.h vendor-crypto/openssl/dist-1.0.1/crypto/ui/ui_openssl.c vendor-crypto/openssl/dist-1.0.1/crypto/ui/ui_util.c vendor-crypto/openssl/dist-1.0.1/crypto/x509/x509_vfy.c vendor-crypto/openssl/dist-1.0.1/crypto/x509/x509_vfy.h vendor-crypto/openssl/dist-1.0.1/crypto/x509v3/v3_pci.c vendor-crypto/openssl/dist-1.0.1/crypto/x509v3/v3_pcia.c vendor-crypto/openssl/dist-1.0.1/doc/apps/s_time.pod vendor-crypto/openssl/dist-1.0.1/doc/crypto/BIO_s_connect.pod vendor-crypto/openssl/dist-1.0.1/doc/ssl/SSL_CTX_set_tmp_dh_callback.pod vendor-crypto/openssl/dist-1.0.1/engines/e_chil.c vendor-crypto/openssl/dist-1.0.1/ssl/d1_both.c vendor-crypto/openssl/dist-1.0.1/ssl/kssl.c vendor-crypto/openssl/dist-1.0.1/ssl/kssl.h vendor-crypto/openssl/dist-1.0.1/ssl/kssl_lcl.h vendor-crypto/openssl/dist-1.0.1/ssl/s2_srvr.c vendor-crypto/openssl/dist-1.0.1/ssl/s3_clnt.c vendor-crypto/openssl/dist-1.0.1/ssl/s3_lib.c vendor-crypto/openssl/dist-1.0.1/ssl/s3_srvr.c vendor-crypto/openssl/dist-1.0.1/ssl/ssl.h vendor-crypto/openssl/dist-1.0.1/ssl/ssl_sess.c vendor-crypto/openssl/dist-1.0.1/ssl/t1_enc.c vendor-crypto/openssl/dist-1.0.1/ssl/t1_lib.c vendor-crypto/openssl/dist-1.0.1/util/pl/VC-32.pl Modified: vendor-crypto/openssl/dist-1.0.1/ACKNOWLEDGMENTS ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/ACKNOWLEDGMENTS Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/ACKNOWLEDGMENTS Thu Jan 28 18:44:11 2016 (r295003) @@ -1,30 +1,2 @@ -The OpenSSL project depends on volunteer efforts and financial support from -the end user community. That support comes in the form of donations and paid -sponsorships, software support contracts, paid consulting services -and commissioned software development. - -Since all these activities support the continued development and improvement -of OpenSSL we consider all these clients and customers as sponsors of the -OpenSSL project. - -We would like to identify and thank the following such sponsors for their past -or current significant support of the OpenSSL project: - -Major support: - - Qualys http://www.qualys.com/ - -Very significant support: - - OpenGear: http://www.opengear.com/ - -Significant support: - - PSW Group: http://www.psw.net/ - Acano Ltd. http://acano.com/ - -Please note that we ask permission to identify sponsors and that some sponsors -we consider eligible for inclusion here have requested to remain anonymous. - -Additional sponsorship or financial support is always welcome: for more -information please contact the OpenSSL Software Foundation. +Please https://www.openssl.org/community/thanks.html for the current +acknowledgements. Modified: vendor-crypto/openssl/dist-1.0.1/CHANGES ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/CHANGES Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/CHANGES Thu Jan 28 18:44:11 2016 (r295003) @@ -2,6 +2,30 @@ OpenSSL CHANGES _______________ + Changes between 1.0.1q and 1.0.1r [28 Jan 2016] + + *) Protection for DH small subgroup attacks + + As a precautionary measure the SSL_OP_SINGLE_DH_USE option has been + switched on by default and cannot be disabled. This could have some + performance impact. + [Matt Caswell] + + *) SSLv2 doesn't block disabled ciphers + + A malicious client can negotiate SSLv2 ciphers that have been disabled on + the server and complete SSLv2 handshakes even if all SSLv2 ciphers have + been disabled, provided that the SSLv2 protocol was not also disabled via + SSL_OP_NO_SSLv2. + + This issue was reported to OpenSSL on 26th December 2015 by Nimrod Aviram + and Sebastian Schinzel. + (CVE-2015-3197) + [Viktor Dukhovni] + + *) Reject DH handshakes with parameters shorter than 1024 bits. + [Kurt Roeckx] + Changes between 1.0.1p and 1.0.1q [3 Dec 2015] *) Certificate verify crash with missing PSS parameter Modified: vendor-crypto/openssl/dist-1.0.1/Configure ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/Configure Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/Configure Thu Jan 28 18:44:11 2016 (r295003) @@ -105,6 +105,9 @@ my $usage="Usage: Configure [no- my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED"; +# Warn that "make depend" should be run? +my $warn_make_depend = 0; + my $clang_devteam_warn = "-Wno-unused-parameter -Wno-missing-field-initializers -Wno-language-extension-token -Wno-extended-offsetof -Qunused-arguments"; my $strict_warnings = 0; @@ -1446,7 +1449,7 @@ if ($target =~ /\-icc$/) # Intel C compi # linker only when --prefix is not /usr. if ($target =~ /^BSD\-/) { - $shared_ldflag.=" -Wl,-rpath,\$(LIBRPATH)" if ($prefix !~ m|^/usr[/]*$|); + $shared_ldflag.=" -Wl,-rpath,\$\$(LIBRPATH)" if ($prefix !~ m|^/usr[/]*$|); } if ($sys_id ne "") @@ -1953,14 +1956,8 @@ EOF &dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s'); } if ($depflags ne $default_depflags && !$make_depend) { - print < (note that your message will be recorded in the request tracker publicly readable - via http://www.openssl.org/support/rt.html and will be forwarded to a - public mailing list). Include the output of "make report" in your message. - Please check out the request tracker. Maybe the bug was already - reported or has already been fixed. + at https://www.openssl.org/community/index.html#bugs and will be + forwarded to a public mailing list). Include the output of "make + report" in your message. Please check out the request tracker. Maybe + the bug was already reported or has already been fixed. [If you encounter assembler error messages, try the "no-asm" configuration option as an immediate fix.] Modified: vendor-crypto/openssl/dist-1.0.1/LICENSE ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/LICENSE Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/LICENSE Thu Jan 28 18:44:11 2016 (r295003) @@ -12,7 +12,7 @@ --------------- /* ==================================================================== - * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1998-2016 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: vendor-crypto/openssl/dist-1.0.1/Makefile ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/Makefile Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/Makefile Thu Jan 28 18:44:11 2016 (r295003) @@ -4,7 +4,7 @@ ## Makefile for OpenSSL ## -VERSION=1.0.1q +VERSION=1.0.1r MAJOR=1 MINOR=0.1 SHLIB_VERSION_NUMBER=1.0.0 @@ -181,8 +181,7 @@ SHARED_LDFLAGS= GENERAL= Makefile BASENAME= openssl NAME= $(BASENAME)-$(VERSION) -TARFILE= $(NAME).tar -WTARFILE= $(NAME)-win.tar +TARFILE= ../$(NAME).tar EXHEADER= e_os2.h HEADER= e_os.h @@ -501,38 +500,35 @@ TABLE: Configure # would occur. Therefore the list of files is temporarily stored into a file # and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal # tar does not support the --files-from option. -TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \ - --owner openssl:0 --group openssl:0 \ - --transform 's|^|openssl-$(VERSION)/|' \ +TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from $(TARFILE).list \ + --owner 0 --group 0 \ + --transform 's|^|$(NAME)/|' \ -cvf - -../$(TARFILE).list: +$(TARFILE).list: find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \ \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \ - \! -name '*test' \! -name '.#*' \! -name '*~' \ - | sort > ../$(TARFILE).list + \( \! -name '*test' -o -name bctest -o -name pod2mantest \) \ + \! -name '.#*' \! -name '*~' \! -type l \ + | sort > $(TARFILE).list -tar: ../$(TARFILE).list +tar: $(TARFILE).list find . -type d -print | xargs chmod 755 find . -type f -print | xargs chmod a+r find . -type f -perm -0100 -print | xargs chmod a+x - $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE).gz - -tar-snap: ../$(TARFILE).list - $(TAR_COMMAND) > ../$(TARFILE) - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE) + $(TAR_COMMAND) | gzip --best > $(TARFILE).gz + rm -f $(TARFILE).list + ls -l $(TARFILE).gz + +tar-snap: $(TARFILE).list + $(TAR_COMMAND) > $(TARFILE) + rm -f $(TARFILE).list + ls -l $(TARFILE) dist: $(PERL) Configure dist - @$(MAKE) dist_pem_h @$(MAKE) SDIRS='$(SDIRS)' clean - @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar - -dist_pem_h: - (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar install: all install_docs install_sw Modified: vendor-crypto/openssl/dist-1.0.1/Makefile.org ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/Makefile.org Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/Makefile.org Thu Jan 28 18:44:11 2016 (r295003) @@ -179,8 +179,7 @@ SHARED_LDFLAGS= GENERAL= Makefile BASENAME= openssl NAME= $(BASENAME)-$(VERSION) -TARFILE= $(NAME).tar -WTARFILE= $(NAME)-win.tar +TARFILE= ../$(NAME).tar EXHEADER= e_os2.h HEADER= e_os.h @@ -499,38 +498,35 @@ TABLE: Configure # would occur. Therefore the list of files is temporarily stored into a file # and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal # tar does not support the --files-from option. -TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \ - --owner openssl:0 --group openssl:0 \ - --transform 's|^|openssl-$(VERSION)/|' \ +TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from $(TARFILE).list \ + --owner 0 --group 0 \ + --transform 's|^|$(NAME)/|' \ -cvf - -../$(TARFILE).list: +$(TARFILE).list: find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \ \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \ - \! -name '*test' \! -name '.#*' \! -name '*~' \ - | sort > ../$(TARFILE).list + \( \! -name '*test' -o -name bctest -o -name pod2mantest \) \ + \! -name '.#*' \! -name '*~' \! -type l \ + | sort > $(TARFILE).list -tar: ../$(TARFILE).list +tar: $(TARFILE).list find . -type d -print | xargs chmod 755 find . -type f -print | xargs chmod a+r find . -type f -perm -0100 -print | xargs chmod a+x - $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE).gz - -tar-snap: ../$(TARFILE).list - $(TAR_COMMAND) > ../$(TARFILE) - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE) + $(TAR_COMMAND) | gzip --best > $(TARFILE).gz + rm -f $(TARFILE).list + ls -l $(TARFILE).gz + +tar-snap: $(TARFILE).list + $(TAR_COMMAND) > $(TARFILE) + rm -f $(TARFILE).list + ls -l $(TARFILE) dist: $(PERL) Configure dist - @$(MAKE) dist_pem_h @$(MAKE) SDIRS='$(SDIRS)' clean - @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar - -dist_pem_h: - (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar install: all install_docs install_sw Modified: vendor-crypto/openssl/dist-1.0.1/NEWS ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/NEWS Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/NEWS Thu Jan 28 18:44:11 2016 (r295003) @@ -5,6 +5,11 @@ This file gives a brief overview of the major changes between each OpenSSL release. For more details please read the CHANGES file. + Major changes between OpenSSL 1.0.1q and OpenSSL 1.0.1r [28 Jan 2016] + + o Protection for DH small subgroup attacks + o SSLv2 doesn't block disabled ciphers (CVE-2015-3197) + Major changes between OpenSSL 1.0.1p and OpenSSL 1.0.1q [3 Dec 2015] o Certificate verify crash with missing PSS parameter (CVE-2015-3194) Modified: vendor-crypto/openssl/dist-1.0.1/README ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/README Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/README Thu Jan 28 18:44:11 2016 (r295003) @@ -1,5 +1,5 @@ - OpenSSL 1.0.1q 3 Dec 2015 + OpenSSL 1.0.1r 28 Jan 2016 Copyright (c) 1998-2015 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson @@ -90,11 +90,12 @@ In order to avoid spam, this is a moderated mailing list, and it might take a day for the ticket to show up. (We also scan posts to make sure - that security disclosures aren't publically posted by mistake.) Mail to - this address is recorded in the public RT (request tracker) database (see - https://www.openssl.org/support/rt.html for details) and also forwarded - the public openssl-dev mailing list. Confidential mail may be sent to - openssl-security@openssl.org (PGP key available from the key servers). + that security disclosures aren't publically posted by mistake.) Mail + to this address is recorded in the public RT (request tracker) database + (see https://www.openssl.org/community/index.html#bugs for details) and + also forwarded the public openssl-dev mailing list. Confidential mail + may be sent to openssl-security@openssl.org (PGP key available from the + key servers). Please do NOT use this for general assistance or support queries. Just because something doesn't work the way you expect does not mean it Modified: vendor-crypto/openssl/dist-1.0.1/apps/engine.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/apps/engine.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/apps/engine.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* apps/engine.c -*- mode: C; c-file-style: "eay" -*- */ +/* apps/engine.c */ /* * Written by Richard Levitte for the OpenSSL project * 2000. Modified: vendor-crypto/openssl/dist-1.0.1/apps/ocsp.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/apps/ocsp.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/apps/ocsp.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1003,7 +1003,7 @@ static int make_ocsp_response(OCSP_RESPO bs = OCSP_BASICRESP_new(); thisupd = X509_gmtime_adj(NULL, 0); if (ndays != -1) - nextupd = X509_gmtime_adj(NULL, nmin * 60 + ndays * 3600 * 24); + nextupd = X509_time_adj_ex(NULL, ndays, nmin * 60, NULL); /* Examine each certificate id in the request */ for (i = 0; i < id_count; i++) { Modified: vendor-crypto/openssl/dist-1.0.1/apps/pkcs12.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/apps/pkcs12.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/apps/pkcs12.c Thu Jan 28 18:44:11 2016 (r295003) @@ -79,7 +79,8 @@ const EVP_CIPHER *enc; # define CLCERTS 0x8 # define CACERTS 0x10 -int get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **chain); +static int get_cert_chain(X509 *cert, X509_STORE *store, + STACK_OF(X509) **chain); int dump_certs_keys_p12(BIO *out, PKCS12 *p12, char *pass, int passlen, int options, char *pempass); int dump_certs_pkeys_bags(BIO *out, STACK_OF(PKCS12_SAFEBAG) *bags, @@ -594,7 +595,7 @@ int MAIN(int argc, char **argv) vret = get_cert_chain(ucert, store, &chain2); X509_STORE_free(store); - if (!vret) { + if (vret == X509_V_OK) { /* Exclude verified certificate */ for (i = 1; i < sk_X509_num(chain2); i++) sk_X509_push(certs, sk_X509_value(chain2, i)); @@ -602,7 +603,7 @@ int MAIN(int argc, char **argv) X509_free(sk_X509_value(chain2, 0)); sk_X509_free(chain2); } else { - if (vret >= 0) + if (vret != X509_V_ERR_UNSPECIFIED) BIO_printf(bio_err, "Error %s getting chain.\n", X509_verify_cert_error_string(vret)); else @@ -906,36 +907,25 @@ int dump_certs_pkeys_bag(BIO *out, PKCS1 /* Given a single certificate return a verified chain or NULL if error */ -/* Hope this is OK .... */ - -int get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **chain) +static int get_cert_chain(X509 *cert, X509_STORE *store, + STACK_OF(X509) **chain) { X509_STORE_CTX store_ctx; - STACK_OF(X509) *chn; + STACK_OF(X509) *chn = NULL; int i = 0; - /* - * FIXME: Should really check the return status of X509_STORE_CTX_init - * for an error, but how that fits into the return value of this function - * is less obvious. - */ - X509_STORE_CTX_init(&store_ctx, store, cert, NULL); - if (X509_verify_cert(&store_ctx) <= 0) { - i = X509_STORE_CTX_get_error(&store_ctx); - if (i == 0) - /* - * avoid returning 0 if X509_verify_cert() did not set an - * appropriate error value in the context - */ - i = -1; - chn = NULL; - goto err; - } else + if (!X509_STORE_CTX_init(&store_ctx, store, cert, NULL)) { + *chain = NULL; + return X509_V_ERR_UNSPECIFIED; + } + + if (X509_verify_cert(&store_ctx) > 0) chn = X509_STORE_CTX_get1_chain(&store_ctx); - err: + else if ((i = X509_STORE_CTX_get_error(&store_ctx)) == 0) + i = X509_V_ERR_UNSPECIFIED; + X509_STORE_CTX_cleanup(&store_ctx); *chain = chn; - return i; } Modified: vendor-crypto/openssl/dist-1.0.1/apps/speed.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/apps/speed.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/apps/speed.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* apps/speed.c -*- mode:C; c-file-style: "eay" -*- */ +/* apps/speed.c */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/apps/x509.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/apps/x509.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/apps/x509.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1170,12 +1170,7 @@ static int sign(X509 *x, EVP_PKEY *pkey, if (X509_gmtime_adj(X509_get_notBefore(x), 0) == NULL) goto err; - /* Lets just make it 12:00am GMT, Jan 1 1970 */ - /* memcpy(x->cert_info->validity->notBefore,"700101120000Z",13); */ - /* 28 days to be certified */ - - if (X509_gmtime_adj(X509_get_notAfter(x), (long)60 * 60 * 24 * days) == - NULL) + if (X509_time_adj_ex(X509_get_notAfter(x), days, 0, NULL) == NULL) goto err; if (!X509_set_pubkey(x, pkey)) Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes.h ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes.h Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes.h Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes.h */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_cbc.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_cbc.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_cbc.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_cbc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_cbc.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_cfb.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_cfb.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_cfb.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_cfb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_cfb.c */ /* ==================================================================== * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_core.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_core.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_core.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_core.c */ /** * rijndael-alg-fst.c * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ctr.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ctr.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ctr.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ctr.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ctr.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ecb.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ecb.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ecb.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ecb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ecb.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ige.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ige.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ige.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ige.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ige.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_locl.h ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_locl.h Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_locl.h Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes.h */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_misc.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_misc.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_misc.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_misc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_misc.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ofb.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ofb.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_ofb.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ofb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ofb.c */ /* ==================================================================== * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_x86core.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_x86core.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/aes/aes_x86core.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_core.c */ /** * rijndael-alg-fst.c * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/bio/bio.h ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/bio/bio.h Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/bio/bio.h Thu Jan 28 18:44:11 2016 (r295003) @@ -478,11 +478,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_hostname(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0) # define BIO_get_conn_port(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1) # define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2) -# define BIO_get_conn_int_port(b) BIO_int_ctrl(b,BIO_C_GET_CONNECT,3,0) +# define BIO_get_conn_int_port(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,0,NULL) # define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) -/* BIO_s_accept_socket() */ +/* BIO_s_accept() */ # define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) # define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0) /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ @@ -495,6 +495,7 @@ struct bio_dgram_sctp_prinfo { # define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) # define BIO_get_bind_mode(b,mode) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) +/* BIO_s_accept() and BIO_s_connect() */ # define BIO_do_connect(b) BIO_do_handshake(b) # define BIO_do_accept(b) BIO_do_handshake(b) # define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) @@ -514,12 +515,15 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_url(b,url) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,(char *)(url)) # define BIO_get_no_connect_return(b) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,NULL) +/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ # define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) # define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) +/* BIO_s_file() */ # define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) # define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) +/* BIO_s_fd() and BIO_s_file() */ # define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) # define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) Modified: vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_bio.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_bio.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_bio.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/bio/bss_bio.c -*- Mode: C; c-file-style: "eay" -*- */ +/* crypto/bio/bss_bio.c */ /* ==================================================================== * Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_conn.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_conn.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_conn.c Thu Jan 28 18:44:11 2016 (r295003) @@ -419,7 +419,7 @@ static long conn_ctrl(BIO *b, int cmd, l { BIO *dbio; int *ip; - const char **pptr; + const char **pptr = NULL; long ret = 1; BIO_CONNECT *data; @@ -442,19 +442,28 @@ static long conn_ctrl(BIO *b, int cmd, l case BIO_C_GET_CONNECT: if (ptr != NULL) { pptr = (const char **)ptr; - if (num == 0) { - *pptr = data->param_hostname; + } - } else if (num == 1) { - *pptr = data->param_port; - } else if (num == 2) { - *pptr = (char *)&(data->ip[0]); - } else if (num == 3) { - *((int *)ptr) = data->port; + if (b->init) { + if (pptr != NULL) { + ret = 1; + if (num == 0) { + *pptr = data->param_hostname; + } else if (num == 1) { + *pptr = data->param_port; + } else if (num == 2) { + *pptr = (char *)&(data->ip[0]); + } else { + ret = 0; + } + } + if (num == 3) { + ret = data->port; } - if ((!b->init) || (ptr == NULL)) + } else { + if (pptr != NULL) *pptr = "not initialized"; - ret = 1; + ret = 0; } break; case BIO_C_SET_CONNECT: Modified: vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_dgram.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_dgram.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/bio/bss_dgram.c Thu Jan 28 18:44:11 2016 (r295003) @@ -515,10 +515,8 @@ static long dgram_ctrl(BIO *b, int cmd, switch (cmd) { case BIO_CTRL_RESET: num = 0; - case BIO_C_FILE_SEEK: ret = 0; break; - case BIO_C_FILE_TELL: case BIO_CTRL_INFO: ret = 0; break; Modified: vendor-crypto/openssl/dist-1.0.1/crypto/bn/bn_exp.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/bn/bn_exp.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/bn/bn_exp.c Thu Jan 28 18:44:11 2016 (r295003) @@ -271,9 +271,14 @@ int BN_mod_exp_recp(BIGNUM *r, const BIG } bits = BN_num_bits(p); - if (bits == 0) { - ret = BN_one(r); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(r); + } else { + ret = BN_one(r); + } return ret; } @@ -407,7 +412,13 @@ int BN_mod_exp_mont(BIGNUM *rr, const BI } bits = BN_num_bits(p); if (bits == 0) { - ret = BN_one(rr); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(rr); + } else { + ret = BN_one(rr); + } return ret; } @@ -579,7 +590,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBU * precomputation memory layout to limit data-dependency to a minimum to * protect secret exponents (cf. the hyper-threading timing attacks pointed * out by Colin Percival, - * http://www.daemong-consideredperthreading-considered-harmful/) + * http://www.daemonology.net/hyperthreading-considered-harmful/) */ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, @@ -608,7 +619,13 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr bits = BN_num_bits(p); if (bits == 0) { - ret = BN_one(rr); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(rr); + } else { + ret = BN_one(rr); + } return ret; } @@ -908,8 +925,9 @@ int BN_mod_exp_mont_word(BIGNUM *rr, BN_ if (BN_is_one(m)) { ret = 1; BN_zero(rr); - } else + } else { ret = BN_one(rr); + } return ret; } if (a == 0) { @@ -1023,9 +1041,14 @@ int BN_mod_exp_simple(BIGNUM *r, const B } bits = BN_num_bits(p); - - if (bits == 0) { - ret = BN_one(r); + if (bits == 0) { + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(r); + } else { + ret = BN_one(r); + } return ret; } Modified: vendor-crypto/openssl/dist-1.0.1/crypto/bn/exptest.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/bn/exptest.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/bn/exptest.c Thu Jan 28 18:44:11 2016 (r295003) @@ -73,14 +73,34 @@ static const char rnd_seed[] = "string to make the random number generator think it has entropy"; /* + * Test that r == 0 in test_exp_mod_zero(). Returns one on success, + * returns zero and prints debug output otherwise. + */ +static int a_is_zero_mod_one(const char *method, const BIGNUM *r, + const BIGNUM *a) { + if (!BN_is_zero(r)) { + fprintf(stderr, "%s failed:\n", method); + fprintf(stderr, "a ** 0 mod 1 = r (should be 0)\n"); + fprintf(stderr, "a = "); + BN_print_fp(stderr, a); + fprintf(stderr, "\nr = "); + BN_print_fp(stderr, r); + fprintf(stderr, "\n"); + return 0; + } + return 1; +} + +/* * test_exp_mod_zero tests that x**0 mod 1 == 0. It returns zero on success. */ static int test_exp_mod_zero() { BIGNUM a, p, m; BIGNUM r; + BN_ULONG one_word = 1; BN_CTX *ctx = BN_CTX_new(); - int ret = 1; + int ret = 1, failed = 0; BN_init(&m); BN_one(&m); @@ -92,21 +112,65 @@ static int test_exp_mod_zero() BN_zero(&p); BN_init(&r); - BN_mod_exp(&r, &a, &p, &m, ctx); - BN_CTX_free(ctx); - if (BN_is_zero(&r)) - ret = 0; - else { - printf("1**0 mod 1 = "); - BN_print_fp(stdout, &r); - printf(", should be 0\n"); + if (!BN_rand(&a, 1024, 0, 0)) + goto err; + + if (!BN_mod_exp(&r, &a, &p, &m, ctx)) + goto err; + + if (!a_is_zero_mod_one("BN_mod_exp", &r, &a)) + failed = 1; + + if (!BN_mod_exp_recp(&r, &a, &p, &m, ctx)) + goto err; + + if (!a_is_zero_mod_one("BN_mod_exp_recp", &r, &a)) + failed = 1; + + if (!BN_mod_exp_simple(&r, &a, &p, &m, ctx)) + goto err; + + if (!a_is_zero_mod_one("BN_mod_exp_simple", &r, &a)) + failed = 1; + + if (!BN_mod_exp_mont(&r, &a, &p, &m, ctx, NULL)) + goto err; + + if (!a_is_zero_mod_one("BN_mod_exp_mont", &r, &a)) + failed = 1; + + if (!BN_mod_exp_mont_consttime(&r, &a, &p, &m, ctx, NULL)) { + goto err; + } + + if (!a_is_zero_mod_one("BN_mod_exp_mont_consttime", &r, &a)) + failed = 1; + + /* + * A different codepath exists for single word multiplication + * in non-constant-time only. + */ + if (!BN_mod_exp_mont_word(&r, one_word, &p, &m, ctx, NULL)) + goto err; + + if (!BN_is_zero(&r)) { + fprintf(stderr, "BN_mod_exp_mont_word failed:\n"); + fprintf(stderr, "1 ** 0 mod 1 = r (should be 0)\n"); + fprintf(stderr, "r = "); + BN_print_fp(stderr, &r); + fprintf(stderr, "\n"); + return 0; } + ret = failed; + + err: BN_free(&r); BN_free(&a); BN_free(&p); BN_free(&m); + BN_CTX_free(ctx); return ret; } Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/camellia.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/camellia.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/camellia.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia.c */ /* ==================================================================== * Copyright 2006 NTT (Nippon Telegraph and Telephone Corporation) . * ALL RIGHTS RESERVED. @@ -67,7 +67,7 @@ /* * Algorithm Specification - * http://info.isl.llia/specicrypt/eng/camellia/specifications.html + * http://info.isl.ntt.co.jp/crypt/eng/camellia/specifications.html */ /* Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/camellia.h ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/camellia.h Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/camellia.h Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia.h */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_cbc.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_cbc.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_cbc.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_cbc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_cbc.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_cfb.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_cfb.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_cfb.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_cfb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_cfb.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ctr.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ctr.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ctr.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_ctr.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_ctr.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ecb.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ecb.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ecb.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_ecb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_ecb.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_locl.h ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_locl.h Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_locl.h Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_locl.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_locl.h */ /* ==================================================================== * Copyright 2006 NTT (Nippon Telegraph and Telephone Corporation) . * ALL RIGHTS RESERVED. Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_misc.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_misc.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_misc.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_misc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_misc.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ofb.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ofb.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_ofb.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_ofb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_ofb.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_utl.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_utl.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/camellia/cmll_utl.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/camellia/cmll_utl.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/cmll_utl.c */ /* ==================================================================== * Copyright (c) 2011 The OpenSSL Project. All rights reserved. * Modified: vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/des/des_old.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/des/des_old.c */ /*- * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING Modified: vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old.h ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old.h Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old.h Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/des/des_old.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/des/des_old.h */ /*- * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING Modified: vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old2.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old2.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/des/des_old2.c Thu Jan 28 18:44:11 2016 (r295003) @@ -1,4 +1,4 @@ -/* crypto/des/des_old.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/des/des_old.c */ /* * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING The Modified: vendor-crypto/openssl/dist-1.0.1/crypto/dsa/dsa_ossl.c ============================================================================== --- vendor-crypto/openssl/dist-1.0.1/crypto/dsa/dsa_ossl.c Thu Jan 28 18:42:39 2016 (r295002) +++ vendor-crypto/openssl/dist-1.0.1/crypto/dsa/dsa_ossl.c Thu Jan 28 18:44:11 2016 (r295003) @@ -187,9 +187,6 @@ static DSA_SIG *dsa_do_sign(const unsign if (!BN_mod_mul(s, s, kinv, dsa->q, ctx)) goto err; - ret = DSA_SIG_new(); - if (ret == NULL) - goto err; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Jan 28 18:45:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2234A708D0; Thu, 28 Jan 2016 18:45:10 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A536D1147; Thu, 28 Jan 2016 18:45:10 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SIj95n073781; Thu, 28 Jan 2016 18:45:09 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SIj9dt073780; Thu, 28 Jan 2016 18:45:09 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201601281845.u0SIj9dt073780@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 28 Jan 2016 18:45:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r295005 - vendor-crypto/openssl/1.0.1r X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 18:45:11 -0000 Author: jkim Date: Thu Jan 28 18:45:09 2016 New Revision: 295005 URL: https://svnweb.freebsd.org/changeset/base/295005 Log: Tag OpenSSL 1.0.1r. Added: vendor-crypto/openssl/1.0.1r/ - copied from r295004, vendor-crypto/openssl/dist-1.0.1/ From owner-svn-src-all@freebsd.org Thu Jan 28 18:57:48 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C6BFAA70D9F; Thu, 28 Jan 2016 18:57:48 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9686318F2; Thu, 28 Jan 2016 18:57:48 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SIvlvm076794; Thu, 28 Jan 2016 18:57:47 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SIvlnk076793; Thu, 28 Jan 2016 18:57:47 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601281857.u0SIvlnk076793@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 28 Jan 2016 18:57:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295006 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 18:57:48 -0000 Author: bdrewery Date: Thu Jan 28 18:57:47 2016 New Revision: 295006 URL: https://svnweb.freebsd.org/changeset/base/295006 Log: Fix -include .depend hack from r294370 for headers not in .PATH. This hack will be removed in a few weeks. It is here to fix incremental builds of SSH between r291941 and r294370. Reported by: jmallett MFC after: 1 day Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.dep.mk Modified: head/share/mk/bsd.dep.mk ============================================================================== --- head/share/mk/bsd.dep.mk Thu Jan 28 18:45:09 2016 (r295005) +++ head/share/mk/bsd.dep.mk Thu Jan 28 18:57:47 2016 (r295006) @@ -206,12 +206,13 @@ depend: beforedepend ${DEPENDFILE} after _CFLAGS_INCLUDES= ${CFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g} _CXXFLAGS_INCLUDES= ${CXXFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g} # XXX: Temporary hack to workaround .depend files not tracking -include -.if !empty(_CFLAGS_INCLUDES) -${OBJS} ${POBJS} ${SOBJS}: ${_CFLAGS_INCLUDES:M*.h} -.endif -.if !empty(_CXXFLAGS_INCLUDES) -${OBJS} ${POBJS} ${SOBJS}: ${_CXXFLAGS_INCLUDES:M*.h} +_hdrincludes=${_CFLAGS_INCLUDES:M*.h} ${_CXXFLAGS_INCLUDES:M*.h} +.for _hdr in ${_hdrincludes:O:u} +.if exists(${_hdr}) +${OBJS} ${POBJS} ${SOBJS}: ${_hdr} .endif +.endfor +.undef _hdrincludes # Different types of sources are compiled with slightly different flags. # Split up the sources, and filter out headers and non-applicable flags. From owner-svn-src-all@freebsd.org Thu Jan 28 19:03:14 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1114EA71014; Thu, 28 Jan 2016 19:03:14 +0000 (UTC) (envelope-from kraduk@gmail.com) Received: from mail-wm0-x22d.google.com (mail-wm0-x22d.google.com [IPv6:2a00:1450:400c:c09::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 84CF31D21; Thu, 28 Jan 2016 19:03:13 +0000 (UTC) (envelope-from kraduk@gmail.com) Received: by mail-wm0-x22d.google.com with SMTP id l66so38453093wml.0; Thu, 28 Jan 2016 11:03:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=3xDt1j8CTwZRzTUnMUJoqWds7M76zNqKBIJKMB8rQpY=; b=m9wU9zT8NrBEFE4/59zIBLoTXMEQPD5eFen0nE6wtjLQi93L9wyvVRamAVviwfVNIo yhTpmAQsWLnQM5048+oVS1lKQQF65FCl/Fl/0W/CZMOczkxZplS4jUyBqXiNrjUfa24P 7Lssg5tHfO7wRIbsd7tqTdCI/pp28auQVS677Ytji2iCvHH3N7CzX0VxulmPwsZSA6g+ h9wgOyz757Q/0vH2whR/hJou+T7/WhqAP+ryDutnccBMx+I0fl90sKOdObuqwlXGAdmQ ZaDkiBTQLioVZftfzL1ZMwW+W8jKi7Cbpcz2/NNbguP0I4kaLQeD+b7D3gXvHnzMuva4 WqLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=3xDt1j8CTwZRzTUnMUJoqWds7M76zNqKBIJKMB8rQpY=; b=Hqe/lwSNHDQ46yRE7v6oXi0BFBD8rvKBJb4GAKsZbXG94oU1efOyA1U7nUH1KQM6HZ 3Qi7sOvrGFqWDFP+7NuE0BNIh8NZKppXzvWpVrgzfPAgU59STbL3iR3+PaNNe86b6cBD Ms+o7SyPurnJxmx1pWmBLnD8s01ukWqfH9jX0QQUfcC5lZQq+KJkuyqM+GyM1Klmm2zs U8oCJQ8pvG8KBnnrnNPxaXzAUYPM7ttOzrUC0L0S3ncyYAZ8VQuNh3H82LtV57hopFC/ ZM++jE6hraCJTZOQcstG/R/bx3dZOvGyMwM+2KSpMy4ryd9m4I5ywPtHpu1Pn6LV2Wd9 mjtQ== X-Gm-Message-State: AG10YOR2R6Mts9p0/4wRGExvxq+yk8ns3RUoPxXo8+BMP5KCcsAKDHSJnn3XdQlZcAGlBsMYFjtDtNtkHIzQmA== MIME-Version: 1.0 X-Received: by 10.28.179.84 with SMTP id c81mr4863707wmf.30.1454007791966; Thu, 28 Jan 2016 11:03:11 -0800 (PST) Received: by 10.28.55.132 with HTTP; Thu, 28 Jan 2016 11:03:11 -0800 (PST) In-Reply-To: <201601281724.u0SHOfgn050280@repo.freebsd.org> References: <201601281724.u0SHOfgn050280@repo.freebsd.org> Date: Thu, 28 Jan 2016 19:03:11 +0000 Message-ID: Subject: Re: svn commit: r294999 - in stable/10/sys/boot/efi: boot1 include libefi loader From: krad To: Steven Hartland Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 19:03:14 -0000 Just built 10-stable and upgraded my intel NUC 2820 and it boots fine on the rootonzfs pool. This is on the old v32 firmware. I will test on the newer firmware later tonight. On 28 January 2016 at 17:24, Steven Hartland wrote: > Author: smh > Date: Thu Jan 28 17:24:40 2016 > New Revision: 294999 > URL: https://svnweb.freebsd.org/changeset/base/294999 > > Log: > MFC r294068, r294265 > > MFC r294068: > Add EFI ZFS boot support > > MFC r294265: > Fix broken DPRINTF and wire up EFI_DEBUG so -DEFI_DEBUG to make works. > > Relnotes: Yes > Sponsored by: Multiplay > > Added: > stable/10/sys/boot/efi/boot1/zfs_module.c > - copied, changed from r294068, head/sys/boot/efi/boot1/zfs_module.c > Modified: > stable/10/sys/boot/efi/boot1/Makefile > stable/10/sys/boot/efi/boot1/boot1.c > stable/10/sys/boot/efi/boot1/boot_module.h > stable/10/sys/boot/efi/include/efilib.h > stable/10/sys/boot/efi/libefi/handles.c > stable/10/sys/boot/efi/loader/Makefile > stable/10/sys/boot/efi/loader/conf.c > stable/10/sys/boot/efi/loader/devicename.c > stable/10/sys/boot/efi/loader/main.c > Directory Properties: > stable/10/ (props changed) > > Modified: stable/10/sys/boot/efi/boot1/Makefile > > ============================================================================== > --- stable/10/sys/boot/efi/boot1/Makefile Thu Jan 28 16:58:49 2016 > (r294998) > +++ stable/10/sys/boot/efi/boot1/Makefile Thu Jan 28 17:24:40 2016 > (r294999) > @@ -10,8 +10,22 @@ PROG= boot1.sym > INTERNALPROG= > WARNS?= 6 > > +.if ${MK_ZFS} != "no" > +# Disable warnings that are currently incompatible with the zfs boot code > +CWARNFLAGS.zfs_module.c += -Wno-array-bounds > +CWARNFLAGS.zfs_module.c += -Wno-cast-align > +CWARNFLAGS.zfs_module.c += -Wno-cast-qual > +CWARNFLAGS.zfs_module.c += -Wno-missing-prototypes > +CWARNFLAGS.zfs_module.c += -Wno-sign-compare > +CWARNFLAGS.zfs_module.c += -Wno-unused-parameter > +CWARNFLAGS.zfs_module.c += -Wno-unused-function > +.endif > + > # architecture-specific loader code > SRCS= boot1.c reloc.c start.S ufs_module.c > +.if ${MK_ZFS} != "no" > +SRCS+= zfs_module.c > +.endif > > CFLAGS+= -fPIC > CFLAGS+= -I. > @@ -20,6 +34,15 @@ CFLAGS+= -I${.CURDIR}/../include/${MACHI > CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/include > CFLAGS+= -I${.CURDIR}/../../.. > CFLAGS+= -DEFI_UFS_BOOT > +.ifdef(EFI_DEBUG) > +CFLAGS+= -DEFI_DEBUG > +.endif > + > +.if ${MK_ZFS} != "no" > +CFLAGS+= -I${.CURDIR}/../../zfs/ > +CFLAGS+= -I${.CURDIR}/../../../cddl/boot/zfs/ > +CFLAGS+= -DEFI_ZFS_BOOT > +.endif > > # Always add MI sources and REGULAR efi loader bits > .PATH: ${.CURDIR}/../loader/arch/${MACHINE} > > Modified: stable/10/sys/boot/efi/boot1/boot1.c > > ============================================================================== > --- stable/10/sys/boot/efi/boot1/boot1.c Thu Jan 28 16:58:49 2016 > (r294998) > +++ stable/10/sys/boot/efi/boot1/boot1.c Thu Jan 28 17:24:40 2016 > (r294999) > @@ -36,6 +36,9 @@ __FBSDID("$FreeBSD$"); > > static const boot_module_t *boot_modules[] = > { > +#ifdef EFI_ZFS_BOOT > + &zfs_module, > +#endif > #ifdef EFI_UFS_BOOT > &ufs_module > #endif > > Modified: stable/10/sys/boot/efi/boot1/boot_module.h > > ============================================================================== > --- stable/10/sys/boot/efi/boot1/boot_module.h Thu Jan 28 16:58:49 2016 > (r294998) > +++ stable/10/sys/boot/efi/boot1/boot_module.h Thu Jan 28 17:24:40 2016 > (r294999) > @@ -36,12 +36,9 @@ > #include > > #ifdef EFI_DEBUG > -#define DPRINTF(fmt, args...) \ > - do { \ > - printf(fmt, ##args) \ > - } while (0) > +#define DPRINTF(fmt, ...) printf(fmt, __VA_ARGS__) > #else > -#define DPRINTF(fmt, args...) {} > +#define DPRINTF(fmt, ...) {} > #endif > > /* EFI device info */ > @@ -97,6 +94,9 @@ typedef struct boot_module_t > #ifdef EFI_UFS_BOOT > extern const boot_module_t ufs_module; > #endif > +#ifdef EFI_ZFS_BOOT > +extern const boot_module_t zfs_module; > +#endif > > /* Functions available to modules. */ > extern void add_device(dev_info_t **devinfop, dev_info_t *devinfo); > > Copied and modified: stable/10/sys/boot/efi/boot1/zfs_module.c (from > r294068, head/sys/boot/efi/boot1/zfs_module.c) > > ============================================================================== > --- head/sys/boot/efi/boot1/zfs_module.c Fri Jan 15 02:33:47 2016 > (r294068, copy source) > +++ stable/10/sys/boot/efi/boot1/zfs_module.c Thu Jan 28 17:24:40 2016 > (r294999) > @@ -53,9 +53,9 @@ vdev_read(vdev_t *vdev, void *priv, off_ > status = devinfo->dev->ReadBlocks(devinfo->dev, > devinfo->dev->Media->MediaId, lba, bytes, buf); > if (status != EFI_SUCCESS) { > - DPRINTF("vdev_read: failed dev: %p, id: %u, lba: %lu, > size: %d," > + DPRINTF("vdev_read: failed dev: %p, id: %u, lba: %zu, > size: %zu," > " status: %lu\n", devinfo->dev, > - devinfo->dev->Media->MediaId, lba, size, > + devinfo->dev->Media->MediaId, lba, bytes, > EFI_ERROR_CODE(status)); > return (-1); > } > > Modified: stable/10/sys/boot/efi/include/efilib.h > > ============================================================================== > --- stable/10/sys/boot/efi/include/efilib.h Thu Jan 28 16:58:49 2016 > (r294998) > +++ stable/10/sys/boot/efi/include/efilib.h Thu Jan 28 17:24:40 2016 > (r294999) > @@ -42,7 +42,8 @@ void *efi_get_table(EFI_GUID *tbl); > > int efi_register_handles(struct devsw *, EFI_HANDLE *, EFI_HANDLE *, int); > EFI_HANDLE efi_find_handle(struct devsw *, int); > -int efi_handle_lookup(EFI_HANDLE, struct devsw **, int *); > +int efi_handle_lookup(EFI_HANDLE, struct devsw **, int *, uint64_t *); > +int efi_handle_update_dev(EFI_HANDLE, struct devsw *, int, uint64_t); > > int efi_status_to_errno(EFI_STATUS); > time_t efi_time(EFI_TIME *); > > Modified: stable/10/sys/boot/efi/libefi/handles.c > > ============================================================================== > --- stable/10/sys/boot/efi/libefi/handles.c Thu Jan 28 16:58:49 2016 > (r294998) > +++ stable/10/sys/boot/efi/libefi/handles.c Thu Jan 28 17:24:40 2016 > (r294999) > @@ -35,6 +35,7 @@ struct entry { > EFI_HANDLE alias; > struct devsw *dev; > int unit; > + uint64_t extra; > }; > > struct entry *entry; > @@ -79,7 +80,7 @@ efi_find_handle(struct devsw *dev, int u > } > > int > -efi_handle_lookup(EFI_HANDLE h, struct devsw **dev, int *unit) > +efi_handle_lookup(EFI_HANDLE h, struct devsw **dev, int *unit, uint64_t > *extra) > { > int idx; > > @@ -90,7 +91,28 @@ efi_handle_lookup(EFI_HANDLE h, struct d > *dev = entry[idx].dev; > if (unit != NULL) > *unit = entry[idx].unit; > + if (extra != NULL) > + *extra = entry[idx].extra; > return (0); > } > return (ENOENT); > } > + > +int > +efi_handle_update_dev(EFI_HANDLE h, struct devsw *dev, int unit, > + uint64_t guid) > +{ > + int idx; > + > + for (idx = 0; idx < nentries; idx++) { > + if (entry[idx].handle != h) > + continue; > + entry[idx].dev = dev; > + entry[idx].unit = unit; > + entry[idx].alias = NULL; > + entry[idx].extra = guid; > + return (0); > + } > + > + return (ENOENT); > +} > > Modified: stable/10/sys/boot/efi/loader/Makefile > > ============================================================================== > --- stable/10/sys/boot/efi/loader/Makefile Thu Jan 28 16:58:49 2016 > (r294998) > +++ stable/10/sys/boot/efi/loader/Makefile Thu Jan 28 17:24:40 2016 > (r294999) > @@ -20,6 +20,16 @@ SRCS= autoload.c \ > smbios.c \ > vers.c > > +.if ${MK_ZFS} != "no" > +SRCS+= zfs.c > +.PATH: ${.CURDIR}/../../zfs > + > +# Disable warnings that are currently incompatible with the zfs boot code > +CWARNFLAGS.zfs.c+= -Wno-sign-compare > +CWARNFLAGS.zfs.c+= -Wno-array-bounds > +CWARNFLAGS.zfs.c+= -Wno-missing-prototypes > +.endif > + > .PATH: ${.CURDIR}/arch/${MACHINE} > # For smbios.c > .PATH: ${.CURDIR}/../../i386/libi386 > @@ -33,6 +43,11 @@ CFLAGS+= -I${.CURDIR}/../include/${MACHI > CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/include > CFLAGS+= -I${.CURDIR}/../../.. > CFLAGS+= -I${.CURDIR}/../../i386/libi386 > +.if ${MK_ZFS} != "no" > +CFLAGS+= -I${.CURDIR}/../../zfs > +CFLAGS+= -I${.CURDIR}/../../../cddl/boot/zfs > +CFLAGS+= -DEFI_ZFS_BOOT > +.endif > CFLAGS+= -DNO_PCI -DEFI > > .if ${MK_FORTH} != "no" > > Modified: stable/10/sys/boot/efi/loader/conf.c > > ============================================================================== > --- stable/10/sys/boot/efi/loader/conf.c Thu Jan 28 16:58:49 2016 > (r294998) > +++ stable/10/sys/boot/efi/loader/conf.c Thu Jan 28 17:24:40 2016 > (r294999) > @@ -31,14 +31,23 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > +#ifdef EFI_ZFS_BOOT > +#include > +#endif > > struct devsw *devsw[] = { > &efipart_dev, > &efinet_dev, > +#ifdef EFI_ZFS_BOOT > + &zfs_dev, > +#endif > NULL > }; > > struct fs_ops *file_system[] = { > +#ifdef EFI_ZFS_BOOT > + &zfs_fsops, > +#endif > &dosfs_fsops, > &ufs_fsops, > &cd9660_fsops, > > Modified: stable/10/sys/boot/efi/loader/devicename.c > > ============================================================================== > --- stable/10/sys/boot/efi/loader/devicename.c Thu Jan 28 16:58:49 2016 > (r294998) > +++ stable/10/sys/boot/efi/loader/devicename.c Thu Jan 28 17:24:40 2016 > (r294999) > @@ -33,6 +33,9 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > +#ifdef EFI_ZFS_BOOT > +#include > +#endif > > #include > #include > @@ -104,6 +107,23 @@ efi_parsedev(struct devdesc **dev, const > > np = devspec + strlen(dv->dv_name); > > +#ifdef EFI_ZFS_BOOT > + if (dv->dv_type == DEVT_ZFS) { > + int err; > + > + idev = malloc(sizeof(struct zfs_devdesc)); > + if (idev == NULL) > + return (ENOMEM); > + > + err = zfs_parsedev((struct zfs_devdesc*)idev, np, path); > + if (err != 0) { > + free(idev); > + return (err); > + } > + *dev = idev; > + cp = strchr(np + 1, ':'); > + } else > +#endif > { > idev = malloc(sizeof(struct devdesc)); > if (idev == NULL) > @@ -143,6 +163,10 @@ efi_fmtdev(void *vdev) > static char buf[SPECNAMELEN + 1]; > > switch(dev->d_type) { > +#ifdef EFI_ZFS_BOOT > + case DEVT_ZFS: > + return (zfs_fmtdev(dev)); > +#endif > case DEVT_NONE: > strcpy(buf, "(no device)"); > break; > > Modified: stable/10/sys/boot/efi/loader/main.c > > ============================================================================== > --- stable/10/sys/boot/efi/loader/main.c Thu Jan 28 16:58:49 2016 > (r294998) > +++ stable/10/sys/boot/efi/loader/main.c Thu Jan 28 17:24:40 2016 > (r294999) > @@ -39,6 +39,10 @@ __FBSDID("$FreeBSD$"); > #include > #include > > +#ifdef EFI_ZFS_BOOT > +#include > +#endif > + > #include "loader_efi.h" > > extern char bootprog_name[]; > @@ -60,6 +64,10 @@ EFI_GUID hoblist = HOB_LIST_TABLE_GUID; > EFI_GUID memtype = MEMORY_TYPE_INFORMATION_TABLE_GUID; > EFI_GUID debugimg = DEBUG_IMAGE_INFO_TABLE_GUID; > > +#ifdef EFI_ZFS_BOOT > +static void efi_zfs_probe(void); > +#endif > + > /* > * Need this because EFI uses UTF-16 unicode string constants, but we > * use UTF-8. We can't use printf due to the possiblity of \0 and we > @@ -82,6 +90,7 @@ main(int argc, CHAR16 *argv[]) > EFI_GUID *guid; > int i, j, vargood, unit; > struct devsw *dev; > + uint64_t pool_guid; > UINTN k; > > archsw.arch_autoload = efi_autoload; > @@ -89,6 +98,10 @@ main(int argc, CHAR16 *argv[]) > archsw.arch_copyin = efi_copyin; > archsw.arch_copyout = efi_copyout; > archsw.arch_readin = efi_readin; > +#ifdef EFI_ZFS_BOOT > + /* Note this needs to be set before ZFS init. */ > + archsw.arch_zfs_probe = efi_zfs_probe; > +#endif > > /* > * XXX Chicken-and-egg problem; we want to have console output > @@ -167,10 +180,27 @@ main(int argc, CHAR16 *argv[]) > */ > BS->SetWatchdogTimer(0, 0, 0, NULL); > > - if (efi_handle_lookup(img->DeviceHandle, &dev, &unit) != 0) > + if (efi_handle_lookup(img->DeviceHandle, &dev, &unit, &pool_guid) > != 0) > return (EFI_NOT_FOUND); > > switch (dev->dv_type) { > +#ifdef EFI_ZFS_BOOT > + case DEVT_ZFS: { > + struct zfs_devdesc currdev; > + > + currdev.d_dev = dev; > + currdev.d_unit = unit; > + currdev.d_type = currdev.d_dev->dv_type; > + currdev.d_opendata = NULL; > + currdev.pool_guid = pool_guid; > + currdev.root_guid = 0; > + env_setenv("currdev", EV_VOLATILE, efi_fmtdev(&currdev), > + efi_setcurrdev, env_nounset); > + env_setenv("loaddev", EV_VOLATILE, efi_fmtdev(&currdev), > env_noset, > + env_nounset); > + break; > + } > +#endif > default: { > struct devdesc currdev; > > @@ -452,3 +482,46 @@ command_nvram(int argc, char *argv[]) > > return (CMD_OK); > } > + > +#ifdef EFI_ZFS_BOOT > +COMMAND_SET(lszfs, "lszfs", "list child datasets of a zfs dataset", > + command_lszfs); > + > +static int > +command_lszfs(int argc, char *argv[]) > +{ > + int err; > + > + if (argc != 2) { > + command_errmsg = "wrong number of arguments"; > + return (CMD_ERROR); > + } > + > + err = zfs_list(argv[1]); > + if (err != 0) { > + command_errmsg = strerror(err); > + return (CMD_ERROR); > + } > + return (CMD_OK); > +} > +#endif > + > +#ifdef EFI_ZFS_BOOT > +static void > +efi_zfs_probe(void) > +{ > + EFI_HANDLE h; > + u_int unit; > + int i; > + char dname[SPECNAMELEN + 1]; > + uint64_t guid; > + > + unit = 0; > + h = efi_find_handle(&efipart_dev, 0); > + for (i = 0; h != NULL; h = efi_find_handle(&efipart_dev, ++i)) { > + snprintf(dname, sizeof(dname), "%s%d:", > efipart_dev.dv_name, i); > + if (zfs_probe_dev(dname, &guid) == 0) > + (void)efi_handle_update_dev(h, &zfs_dev, unit++, > guid); > + } > +} > +#endif > _______________________________________________ > svn-src-stable-10@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10 > To unsubscribe, send any mail to " > svn-src-stable-10-unsubscribe@freebsd.org" > From owner-svn-src-all@freebsd.org Thu Jan 28 19:18:34 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA190A713E7; Thu, 28 Jan 2016 19:18:34 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 878EA1248; Thu, 28 Jan 2016 19:18:34 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SJIXUP082725; Thu, 28 Jan 2016 19:18:33 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SJIXon082724; Thu, 28 Jan 2016 19:18:33 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201601281918.u0SJIXon082724@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Thu, 28 Jan 2016 19:18:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r295007 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 19:18:34 -0000 Author: trasz Date: Thu Jan 28 19:18:33 2016 New Revision: 295007 URL: https://svnweb.freebsd.org/changeset/base/295007 Log: Take over mentorship of jceel@. He moved on from work on embedded systems to storage, which is my area. Big thanks to cognet@ and wkoszek@ for their involvement. Approved by: core@ Modified: svnadmin/conf/mentors Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Thu Jan 28 18:57:47 2016 (r295006) +++ svnadmin/conf/mentors Thu Jan 28 19:18:33 2016 (r295007) @@ -19,7 +19,7 @@ carl jimharris cherry gibbs eri gnn Co-mentor: thompsa erj gnn Co-mentor: jfv -jceel wkoszek Co-mentor: cognet +jceel trasz jkh rwatson jonathan rwatson jwd rmacklem From owner-svn-src-all@freebsd.org Thu Jan 28 19:21:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 77FE3A71499; Thu, 28 Jan 2016 19:21:02 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A3ED15A5; Thu, 28 Jan 2016 19:21:02 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SJL1AN083481; Thu, 28 Jan 2016 19:21:01 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SJL1G5083479; Thu, 28 Jan 2016 19:21:01 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201601281921.u0SJL1G5083479@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Thu, 28 Jan 2016 19:21:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295008 - in stable/10/sys/dev: ixgbe netmap X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 19:21:02 -0000 Author: sbruno Date: Thu Jan 28 19:21:01 2016 New Revision: 295008 URL: https://svnweb.freebsd.org/changeset/base/295008 Log: Fixed up version of r294061 that was reverted due to breakage of features (netmap) and architectures(i386). r283883 -- update to 3.1.0 r283893 -- update SRIOV API changes related to future possible MFC of SRIOV work r285590 -- Fix ixgbe(4) SRIOV VF initialization bugs r285591 -- Remove version check for FLOWID r285592 -- Update netmap support for ixgbe SRIOV VFs. r286238 -- Fixup MTU zeroing if INET/INET6 are undefined. Submitted by: kevin bowling Differential Revision: https://reviews.freebsd.org/D4273 Modified: stable/10/sys/dev/ixgbe/if_ix.c stable/10/sys/dev/ixgbe/if_ixv.c stable/10/sys/dev/ixgbe/ix_txrx.c stable/10/sys/dev/ixgbe/ixgbe.h stable/10/sys/dev/ixgbe/ixgbe_mbx.h stable/10/sys/dev/ixgbe/ixgbe_vf.c stable/10/sys/dev/netmap/ixgbe_netmap.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/ixgbe/if_ix.c ============================================================================== --- stable/10/sys/dev/ixgbe/if_ix.c Thu Jan 28 19:18:33 2016 (r295007) +++ stable/10/sys/dev/ixgbe/if_ix.c Thu Jan 28 19:21:01 2016 (r295008) @@ -40,6 +40,11 @@ #include "ixgbe.h" +#ifdef RSS +#include +#include +#endif + /********************************************************************* * Set this to one to display debug statistics *********************************************************************/ @@ -48,7 +53,7 @@ int ixgbe_display_debug_stat /********************************************************************* * Driver version *********************************************************************/ -char ixgbe_driver_version[] = "2.8.3"; +char ixgbe_driver_version[] = "3.1.0"; /********************************************************************* * PCI Device ID Table @@ -132,6 +137,7 @@ static int ixgbe_setup_msix(struct adapt static void ixgbe_free_pci_resources(struct adapter *); static void ixgbe_local_timer(void *); static int ixgbe_setup_interface(device_t, struct adapter *); +static void ixgbe_config_gpie(struct adapter *); static void ixgbe_config_dmac(struct adapter *); static void ixgbe_config_delay_values(struct adapter *); static void ixgbe_config_link(struct adapter *); @@ -200,6 +206,18 @@ static void ixgbe_handle_phy(void *, int static void ixgbe_reinit_fdir(void *, int); #endif +#ifdef PCI_IOV +static void ixgbe_ping_all_vfs(struct adapter *); +static void ixgbe_handle_mbx(void *, int); +static int ixgbe_init_iov(device_t, u16, const nvlist_t *); +static void ixgbe_uninit_iov(device_t); +static int ixgbe_add_vf(device_t, u16, const nvlist_t *); +static void ixgbe_initialize_iov(struct adapter *); +static void ixgbe_recalculate_max_frame(struct adapter *); +static void ixgbe_init_vf(struct adapter *, struct ixgbe_vf *); +#endif /* PCI_IOV */ + + /********************************************************************* * FreeBSD Device Interface Entry Points *********************************************************************/ @@ -212,6 +230,11 @@ static device_method_t ix_methods[] = { DEVMETHOD(device_shutdown, ixgbe_shutdown), DEVMETHOD(device_suspend, ixgbe_suspend), DEVMETHOD(device_resume, ixgbe_resume), +#ifdef PCI_IOV + DEVMETHOD(pci_iov_init, ixgbe_init_iov), + DEVMETHOD(pci_iov_uninit, ixgbe_uninit_iov), + DEVMETHOD(pci_iov_add_vf, ixgbe_add_vf), +#endif /* PCI_IOV */ DEVMETHOD_END }; @@ -224,6 +247,9 @@ DRIVER_MODULE(ix, pci, ix_driver, ix_dev MODULE_DEPEND(ix, pci, 1, 1, 1); MODULE_DEPEND(ix, ether, 1, 1, 1); +#ifdef DEV_NETMAP +MODULE_DEPEND(ix, netmap, 1, 1, 1); +#endif /* DEV_NETMAP */ /* ** TUNEABLE PARAMETERS: @@ -291,8 +317,7 @@ SYSCTL_INT(_hw_ix, OID_AUTO, enable_msix static int ixgbe_num_queues = 0; TUNABLE_INT("hw.ix.num_queues", &ixgbe_num_queues); SYSCTL_INT(_hw_ix, OID_AUTO, num_queues, CTLFLAG_RDTUN, &ixgbe_num_queues, 0, - "Number of queues to configure up to a maximum of 8; " - "0 indicates autoconfigure"); + "Number of queues to configure, 0 indicates autoconfigure"); /* ** Number of TX descriptors per ring, @@ -344,6 +369,8 @@ static int fdir_pballoc = 1; #include #endif /* DEV_NETMAP */ +static MALLOC_DEFINE(M_IXGBE, "ix", "ix driver allocations"); + /********************************************************************* * Device identification routine * @@ -484,7 +511,7 @@ ixgbe_attach(device_t dev) } /* Allocate multicast array memory. */ - adapter->mta = malloc(sizeof(u8) * IXGBE_ETH_LENGTH_OF_ADDRESS * + adapter->mta = malloc(sizeof(*adapter->mta) * MAX_NUM_MULTICAST_ADDRESSES, M_DEVBUF, M_NOWAIT); if (adapter->mta == NULL) { device_printf(dev, "Can not allocate multicast setup array\n"); @@ -566,9 +593,32 @@ ixgbe_attach(device_t dev) /* Check PCIE slot type/speed/width */ ixgbe_get_slot_info(hw); + /* Set an initial default flow control value */ adapter->fc = ixgbe_fc_full; +#ifdef PCI_IOV + if ((hw->mac.type != ixgbe_mac_82598EB) && (adapter->msix > 1)) { + nvlist_t *pf_schema, *vf_schema; + + hw->mbx.ops.init_params(hw); + pf_schema = pci_iov_schema_alloc_node(); + vf_schema = pci_iov_schema_alloc_node(); + pci_iov_schema_add_unicast_mac(vf_schema, "mac-addr", 0, NULL); + pci_iov_schema_add_bool(vf_schema, "mac-anti-spoof", + IOV_SCHEMA_HASDEFAULT, TRUE); + pci_iov_schema_add_bool(vf_schema, "allow-set-mac", + IOV_SCHEMA_HASDEFAULT, FALSE); + pci_iov_schema_add_bool(vf_schema, "allow-promisc", + IOV_SCHEMA_HASDEFAULT, FALSE); + error = pci_iov_attach(dev, pf_schema, vf_schema); + if (error != 0) { + device_printf(dev, + "Error %d setting up SR-IOV\n", error); + } + } +#endif /* PCI_IOV */ + /* Check for certain supported features */ ixgbe_check_wol_support(adapter); ixgbe_check_eee_support(adapter); @@ -625,6 +675,13 @@ ixgbe_detach(device_t dev) return (EBUSY); } +#ifdef PCI_IOV + if (pci_iov_detach(dev) != 0) { + device_printf(dev, "SR-IOV in use; detach first.\n"); + return (EBUSY); + } +#endif /* PCI_IOV */ + /* Stop the adapter */ IXGBE_CORE_LOCK(adapter); ixgbe_setup_low_power_mode(adapter); @@ -645,6 +702,9 @@ ixgbe_detach(device_t dev) taskqueue_drain(adapter->tq, &adapter->link_task); taskqueue_drain(adapter->tq, &adapter->mod_task); taskqueue_drain(adapter->tq, &adapter->msf_task); +#ifdef PCI_IOV + taskqueue_drain(adapter->tq, &adapter->mbx_task); +#endif taskqueue_drain(adapter->tq, &adapter->phy_task); #ifdef IXGBE_FDIR taskqueue_drain(adapter->tq, &adapter->fdir_task); @@ -821,6 +881,9 @@ ixgbe_ioctl(struct ifnet * ifp, u_long c adapter->max_frame_size = ifp->if_mtu + IXGBE_MTU_HDR; ixgbe_init_locked(adapter); +#ifdef PCI_IOV + ixgbe_recalculate_max_frame(adapter); +#endif IXGBE_CORE_UNLOCK(adapter); } break; @@ -936,22 +999,36 @@ ixgbe_init_locked(struct adapter *adapte struct ifnet *ifp = adapter->ifp; device_t dev = adapter->dev; struct ixgbe_hw *hw = &adapter->hw; - u32 k, txdctl, mhadd, gpie; + struct tx_ring *txr; + struct rx_ring *rxr; + u32 txdctl, mhadd; u32 rxdctl, rxctrl; +#ifdef PCI_IOV + enum ixgbe_iov_mode mode; +#endif mtx_assert(&adapter->core_mtx, MA_OWNED); INIT_DEBUGOUT("ixgbe_init_locked: begin"); + hw->adapter_stopped = FALSE; ixgbe_stop_adapter(hw); callout_stop(&adapter->timer); +#ifdef PCI_IOV + mode = ixgbe_get_iov_mode(adapter); + adapter->pool = ixgbe_max_vfs(mode); + /* Queue indices may change with IOV mode */ + for (int i = 0; i < adapter->num_queues; i++) { + adapter->rx_rings[i].me = ixgbe_pf_que_index(mode, i); + adapter->tx_rings[i].me = ixgbe_pf_que_index(mode, i); + } +#endif /* reprogram the RAR[0] in case user changed it. */ - ixgbe_set_rar(hw, 0, adapter->hw.mac.addr, 0, IXGBE_RAH_AV); + ixgbe_set_rar(hw, 0, hw->mac.addr, adapter->pool, IXGBE_RAH_AV); /* Get the latest mac address, User can use a LAA */ - bcopy(IF_LLADDR(adapter->ifp), hw->mac.addr, - IXGBE_ETH_LENGTH_OF_ADDRESS); - ixgbe_set_rar(hw, 0, hw->mac.addr, 0, 1); + bcopy(IF_LLADDR(ifp), hw->mac.addr, IXGBE_ETH_LENGTH_OF_ADDRESS); + ixgbe_set_rar(hw, 0, hw->mac.addr, adapter->pool, 1); hw->addr_ctrl.rar_used_count = 1; /* Set the various hardware offload abilities */ @@ -974,6 +1051,9 @@ ixgbe_init_locked(struct adapter *adapte } ixgbe_init_hw(hw); +#ifdef PCI_IOV + ixgbe_initialize_iov(adapter); +#endif ixgbe_initialize_transmit_units(adapter); /* Setup Multicast table */ @@ -983,14 +1063,10 @@ ixgbe_init_locked(struct adapter *adapte ** Determine the correct mbuf pool ** for doing jumbo frames */ - if (adapter->max_frame_size <= 2048) + if (adapter->max_frame_size <= MCLBYTES) adapter->rx_mbuf_sz = MCLBYTES; - else if (adapter->max_frame_size <= 4096) - adapter->rx_mbuf_sz = MJUMPAGESIZE; - else if (adapter->max_frame_size <= 9216) - adapter->rx_mbuf_sz = MJUM9BYTES; else - adapter->rx_mbuf_sz = MJUM16BYTES; + adapter->rx_mbuf_sz = MJUMPAGESIZE; /* Prepare receive descriptors and buffers */ if (ixgbe_setup_receive_structures(adapter)) { @@ -1002,31 +1078,8 @@ ixgbe_init_locked(struct adapter *adapte /* Configure RX settings */ ixgbe_initialize_receive_units(adapter); - gpie = IXGBE_READ_REG(&adapter->hw, IXGBE_GPIE); - - /* Enable Fan Failure Interrupt */ - gpie |= IXGBE_SDP1_GPIEN_BY_MAC(hw); - - /* Add for Module detection */ - if (hw->mac.type == ixgbe_mac_82599EB) - gpie |= IXGBE_SDP2_GPIEN; - - /* - * Thermal Failure Detection (X540) - * Link Detection (X552) - */ - if (hw->mac.type == ixgbe_mac_X540 || - hw->device_id == IXGBE_DEV_ID_X550EM_X_SFP || - hw->device_id == IXGBE_DEV_ID_X550EM_X_10G_T) - gpie |= IXGBE_SDP0_GPIEN_X540; - - if (adapter->msix > 1) { - /* Enable Enhanced MSIX mode */ - gpie |= IXGBE_GPIE_MSIX_MODE; - gpie |= IXGBE_GPIE_EIAME | IXGBE_GPIE_PBA_SUPPORT | - IXGBE_GPIE_OCD; - } - IXGBE_WRITE_REG(hw, IXGBE_GPIE, gpie); + /* Enable SDP & MSIX interrupts based on adapter */ + ixgbe_config_gpie(adapter); /* Set MTU size */ if (ifp->if_mtu > ETHERMTU) { @@ -1039,7 +1092,8 @@ ixgbe_init_locked(struct adapter *adapte /* Now enable all the queues */ for (int i = 0; i < adapter->num_queues; i++) { - txdctl = IXGBE_READ_REG(hw, IXGBE_TXDCTL(i)); + txr = &adapter->tx_rings[i]; + txdctl = IXGBE_READ_REG(hw, IXGBE_TXDCTL(txr->me)); txdctl |= IXGBE_TXDCTL_ENABLE; /* Set WTHRESH to 8, burst writeback */ txdctl |= (8 << 16); @@ -1051,11 +1105,12 @@ ixgbe_init_locked(struct adapter *adapte * Prefetching enables tx line rate even with 1 queue. */ txdctl |= (32 << 0) | (1 << 8); - IXGBE_WRITE_REG(hw, IXGBE_TXDCTL(i), txdctl); + IXGBE_WRITE_REG(hw, IXGBE_TXDCTL(txr->me), txdctl); } - for (int i = 0; i < adapter->num_queues; i++) { - rxdctl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(i)); + for (int i = 0, j = 0; i < adapter->num_queues; i++) { + rxr = &adapter->rx_rings[i]; + rxdctl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(rxr->me)); if (hw->mac.type == ixgbe_mac_82598EB) { /* ** PTHRESH = 21 @@ -1066,9 +1121,9 @@ ixgbe_init_locked(struct adapter *adapte rxdctl |= 0x080420; } rxdctl |= IXGBE_RXDCTL_ENABLE; - IXGBE_WRITE_REG(hw, IXGBE_RXDCTL(i), rxdctl); - for (k = 0; k < 10; k++) { - if (IXGBE_READ_REG(hw, IXGBE_RXDCTL(i)) & + IXGBE_WRITE_REG(hw, IXGBE_RXDCTL(rxr->me), rxdctl); + for (; j < 10; j++) { + if (IXGBE_READ_REG(hw, IXGBE_RXDCTL(rxr->me)) & IXGBE_RXDCTL_ENABLE) break; else @@ -1097,10 +1152,10 @@ ixgbe_init_locked(struct adapter *adapte struct netmap_kring *kring = &na->rx_rings[i]; int t = na->num_rx_desc - 1 - nm_kr_rxspace(kring); - IXGBE_WRITE_REG(hw, IXGBE_RDT(i), t); + IXGBE_WRITE_REG(hw, IXGBE_RDT(rxr->me), t); } else #endif /* DEV_NETMAP */ - IXGBE_WRITE_REG(hw, IXGBE_RDT(i), adapter->num_rx_desc - 1); + IXGBE_WRITE_REG(hw, IXGBE_RDT(rxr->me), adapter->num_rx_desc - 1); } /* Enable Receive engine */ @@ -1139,9 +1194,9 @@ ixgbe_init_locked(struct adapter *adapte #endif /* - ** Check on any SFP devices that - ** need to be kick-started - */ + * Check on any SFP devices that + * need to be kick-started + */ if (hw->phy.type == ixgbe_phy_none) { int err = hw->phy.ops.identify(hw); if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) { @@ -1155,8 +1210,7 @@ ixgbe_init_locked(struct adapter *adapte IXGBE_WRITE_REG(hw, IXGBE_EITR(adapter->vector), IXGBE_LINK_ITR); /* Configure Energy Efficient Ethernet for supported devices */ - if (adapter->eee_support) - ixgbe_setup_eee(hw, adapter->eee_enabled); + ixgbe_setup_eee(hw, adapter->eee_enabled); /* Config/Enable Link */ ixgbe_config_link(adapter); @@ -1176,6 +1230,15 @@ ixgbe_init_locked(struct adapter *adapte /* And now turn on interrupts */ ixgbe_enable_intr(adapter); +#ifdef PCI_IOV + /* Enable the use of the MBX by the VF's */ + { + u32 reg = IXGBE_READ_REG(hw, IXGBE_CTRL_EXT); + reg |= IXGBE_CTRL_EXT_PFRSTD; + IXGBE_WRITE_REG(hw, IXGBE_CTRL_EXT, reg); + } +#endif + /* Now inform the stack we're ready */ ifp->if_drv_flags |= IFF_DRV_RUNNING; @@ -1194,6 +1257,51 @@ ixgbe_init(void *arg) } static void +ixgbe_config_gpie(struct adapter *adapter) +{ + struct ixgbe_hw *hw = &adapter->hw; + u32 gpie; + + gpie = IXGBE_READ_REG(hw, IXGBE_GPIE); + + /* Fan Failure Interrupt */ + if (hw->device_id == IXGBE_DEV_ID_82598AT) + gpie |= IXGBE_SDP1_GPIEN; + + /* + * Module detection (SDP2) + * Media ready (SDP1) + */ + if (hw->mac.type == ixgbe_mac_82599EB) { + gpie |= IXGBE_SDP2_GPIEN; + if (hw->device_id != IXGBE_DEV_ID_82599_QSFP_SF_QP) + gpie |= IXGBE_SDP1_GPIEN; + } + + /* + * Thermal Failure Detection (X540) + * Link Detection (X557) + */ + if (hw->mac.type == ixgbe_mac_X540 || + hw->device_id == IXGBE_DEV_ID_X550EM_X_SFP || + hw->device_id == IXGBE_DEV_ID_X550EM_X_10G_T) + gpie |= IXGBE_SDP0_GPIEN_X540; + + if (adapter->msix > 1) { + /* Enable Enhanced MSIX mode */ + gpie |= IXGBE_GPIE_MSIX_MODE; + gpie |= IXGBE_GPIE_EIAME | IXGBE_GPIE_PBA_SUPPORT | + IXGBE_GPIE_OCD; + } + + IXGBE_WRITE_REG(hw, IXGBE_GPIE, gpie); + return; +} + +/* + * Requires adapter->max_frame_size to be set. + */ +static void ixgbe_config_delay_values(struct adapter *adapter) { struct ixgbe_hw *hw = &adapter->hw; @@ -1287,10 +1395,9 @@ ixgbe_handle_que(void *context, int pend struct adapter *adapter = que->adapter; struct tx_ring *txr = que->txr; struct ifnet *ifp = adapter->ifp; - bool more; if (ifp->if_drv_flags & IFF_DRV_RUNNING) { - more = ixgbe_rxeof(que); + ixgbe_rxeof(que); IXGBE_TX_LOCK(txr); ixgbe_txeof(txr); #ifndef IXGBE_LEGACY_TX @@ -1352,8 +1459,8 @@ ixgbe_legacy_irq(void *arg) IXGBE_TX_UNLOCK(txr); /* Check for fan failure */ - if ((hw->phy.media_type == ixgbe_media_type_copper) && - (reg_eicr & IXGBE_EICR_GPI_SDP1_BY_MAC(hw))) { + if ((hw->device_id == IXGBE_DEV_ID_82598AT) && + (reg_eicr & IXGBE_EICR_GPI_SDP1)) { device_printf(adapter->dev, "\nCRITICAL: FAN FAILURE!! " "REPLACE IMMEDIATELY!!\n"); IXGBE_WRITE_REG(hw, IXGBE_EIMS, IXGBE_EICR_GPI_SDP1_BY_MAC(hw)); @@ -1392,6 +1499,7 @@ ixgbe_msix_que(void *arg) bool more; u32 newitr = 0; + /* Protect against spurious interrupts */ if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) return; @@ -1515,6 +1623,10 @@ ixgbe_msix_link(void *arg) device_printf(adapter->dev, "System shutdown required!\n"); IXGBE_WRITE_REG(hw, IXGBE_EICR, IXGBE_EICR_TS); } +#ifdef PCI_IOV + if (reg_eicr & IXGBE_EICR_MAILBOX) + taskqueue_enqueue(adapter->tq, &adapter->mbx_task); +#endif } /* Pluggable optics-related interrupt */ @@ -1580,7 +1692,7 @@ ixgbe_media_status(struct ifnet * ifp, s } ifmr->ifm_status |= IFM_ACTIVE; - layer = ixgbe_get_supported_physical_layer(hw); + layer = adapter->phy_layer; if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_T || layer & IXGBE_PHYSICAL_LAYER_1000BASE_T || @@ -1813,18 +1925,17 @@ ixgbe_set_promisc(struct adapter *adapte static void ixgbe_set_multi(struct adapter *adapter) { - u32 fctrl; - u8 *mta; - u8 *update_ptr; - struct ifmultiaddr *ifma; - int mcnt = 0; - struct ifnet *ifp = adapter->ifp; + u32 fctrl; + u8 *update_ptr; + struct ifmultiaddr *ifma; + struct ixgbe_mc_addr *mta; + int mcnt = 0; + struct ifnet *ifp = adapter->ifp; IOCTL_DEBUGOUT("ixgbe_set_multi: begin"); mta = adapter->mta; - bzero(mta, sizeof(u8) * IXGBE_ETH_LENGTH_OF_ADDRESS * - MAX_NUM_MULTICAST_ADDRESSES); + bzero(mta, sizeof(*mta) * MAX_NUM_MULTICAST_ADDRESSES); #if __FreeBSD_version < 800000 IF_ADDR_LOCK(ifp); @@ -1837,8 +1948,8 @@ ixgbe_set_multi(struct adapter *adapter) if (mcnt == MAX_NUM_MULTICAST_ADDRESSES) break; bcopy(LLADDR((struct sockaddr_dl *) ifma->ifma_addr), - &mta[mcnt * IXGBE_ETH_LENGTH_OF_ADDRESS], - IXGBE_ETH_LENGTH_OF_ADDRESS); + mta[mcnt].addr, IXGBE_ETH_LENGTH_OF_ADDRESS); + mta[mcnt].vmdq = adapter->pool; mcnt++; } #if __FreeBSD_version < 800000 @@ -1861,7 +1972,7 @@ ixgbe_set_multi(struct adapter *adapter) IXGBE_WRITE_REG(&adapter->hw, IXGBE_FCTRL, fctrl); if (mcnt < MAX_NUM_MULTICAST_ADDRESSES) { - update_ptr = mta; + update_ptr = (u8 *)mta; ixgbe_update_mc_addr_list(&adapter->hw, update_ptr, mcnt, ixgbe_mc_array_itr, TRUE); } @@ -1877,13 +1988,13 @@ ixgbe_set_multi(struct adapter *adapter) static u8 * ixgbe_mc_array_itr(struct ixgbe_hw *hw, u8 **update_ptr, u32 *vmdq) { - u8 *addr = *update_ptr; - u8 *newptr; - *vmdq = 0; - - newptr = addr + IXGBE_ETH_LENGTH_OF_ADDRESS; - *update_ptr = newptr; - return addr; + struct ixgbe_mc_addr *mta; + + mta = (struct ixgbe_mc_addr *)*update_ptr; + *vmdq = mta->vmdq; + + *update_ptr = (u8*)(mta + 1);; + return (mta->addr); } @@ -1965,6 +2076,7 @@ watchdog: ixgbe_init_locked(adapter); } + /* ** Note: this routine updates the OS on the link state ** the real check of the hardware only happens with @@ -1988,6 +2100,9 @@ ixgbe_update_link_status(struct adapter /* Update DMA coalescing config */ ixgbe_config_dmac(adapter); if_link_state_change(ifp, LINK_STATE_UP); +#ifdef PCI_IOV + ixgbe_ping_all_vfs(adapter); +#endif } } else { /* Link down */ if (adapter->link_active == TRUE) { @@ -1995,6 +2110,9 @@ ixgbe_update_link_status(struct adapter device_printf(dev,"Link is Down\n"); if_link_state_change(ifp, LINK_STATE_DOWN); adapter->link_active = FALSE; +#ifdef PCI_IOV + ixgbe_ping_all_vfs(adapter); +#endif } } @@ -2094,7 +2212,7 @@ ixgbe_setup_optics(struct adapter *adapt struct ixgbe_hw *hw = &adapter->hw; int layer; - layer = ixgbe_get_supported_physical_layer(hw); + layer = adapter->phy_layer = ixgbe_get_supported_physical_layer(hw); if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_T) { adapter->optics = IFM_10G_T; @@ -2223,6 +2341,31 @@ ixgbe_allocate_msix(struct adapter *adap struct tx_ring *txr = adapter->tx_rings; int error, rid, vector = 0; int cpu_id = 0; +#ifdef RSS + cpuset_t cpu_mask; +#endif + +#ifdef RSS + /* + * If we're doing RSS, the number of queues needs to + * match the number of RSS buckets that are configured. + * + * + If there's more queues than RSS buckets, we'll end + * up with queues that get no traffic. + * + * + If there's more RSS buckets than queues, we'll end + * up having multiple RSS buckets map to the same queue, + * so there'll be some contention. + */ + if (adapter->num_queues != rss_getnumbuckets()) { + device_printf(dev, + "%s: number of queues (%d) != number of RSS buckets (%d)" + "; performance will be impacted.\n", + __func__, + adapter->num_queues, + rss_getnumbuckets()); + } +#endif for (int i = 0; i < adapter->num_queues; i++, vector++, que++, txr++) { rid = vector + 1; @@ -2247,6 +2390,14 @@ ixgbe_allocate_msix(struct adapter *adap #endif que->msix = vector; adapter->active_queues |= (u64)(1 << que->msix); +#ifdef RSS + /* + * The queue ID is used as the RSS layer bucket ID. + * We look up the queue ID -> RSS CPU ID and select + * that. + */ + cpu_id = rss_getcpu(i % rss_getnumbuckets()); +#else /* * Bind the msix vector, and thus the * rings to the corresponding cpu. @@ -2256,9 +2407,21 @@ ixgbe_allocate_msix(struct adapter *adap */ if (adapter->num_queues > 1) cpu_id = i; - +#endif if (adapter->num_queues > 1) bus_bind_intr(dev, que->res, cpu_id); +#ifdef IXGBE_DEBUG +#ifdef RSS + device_printf(dev, + "Bound RSS bucket %d to CPU %d\n", + i, cpu_id); +#else + device_printf(dev, + "Bound queue %d to cpu %d\n", + i, cpu_id); +#endif +#endif /* IXGBE_DEBUG */ + #ifndef IXGBE_LEGACY_TX TASK_INIT(&txr->txq_task, 0, ixgbe_deferred_mq_start, txr); @@ -2266,8 +2429,17 @@ ixgbe_allocate_msix(struct adapter *adap TASK_INIT(&que->que_task, 0, ixgbe_handle_que, que); que->tq = taskqueue_create_fast("ixgbe_que", M_NOWAIT, taskqueue_thread_enqueue, &que->tq); +#ifdef RSS + CPU_SETOF(cpu_id, &cpu_mask); + taskqueue_start_threads_cpuset(&que->tq, 1, PI_NET, + &cpu_mask, + "%s (bucket %d)", + device_get_nameunit(adapter->dev), + cpu_id); +#else taskqueue_start_threads(&que->tq, 1, PI_NET, "%s que", device_get_nameunit(adapter->dev)); +#endif } /* and Link */ @@ -2296,6 +2468,9 @@ ixgbe_allocate_msix(struct adapter *adap TASK_INIT(&adapter->link_task, 0, ixgbe_handle_link, adapter); TASK_INIT(&adapter->mod_task, 0, ixgbe_handle_mod, adapter); TASK_INIT(&adapter->msf_task, 0, ixgbe_handle_msf, adapter); +#ifdef PCI_IOV + TASK_INIT(&adapter->mbx_task, 0, ixgbe_handle_mbx, adapter); +#endif TASK_INIT(&adapter->phy_task, 0, ixgbe_handle_phy, adapter); #ifdef IXGBE_FDIR TASK_INIT(&adapter->fdir_task, 0, ixgbe_reinit_fdir, adapter); @@ -2343,11 +2518,14 @@ ixgbe_setup_msix(struct adapter *adapter /* Figure out a reasonable auto config value */ queues = (mp_ncpus > (msgs-1)) ? (msgs-1) : mp_ncpus; +#ifdef RSS + /* If we're doing RSS, clamp at the number of RSS buckets */ + if (queues > rss_getnumbuckets()) + queues = rss_getnumbuckets(); +#endif + if (ixgbe_num_queues != 0) queues = ixgbe_num_queues; - /* Set max queues to 8 when autoconfiguring */ - else if ((ixgbe_num_queues == 0) && (queues > 8)) - queues = 8; /* reflect correct sysctl value */ ixgbe_num_queues = queues; @@ -2516,10 +2694,15 @@ ixgbe_setup_interface(device_t dev, stru ifp->if_softc = adapter; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = ixgbe_ioctl; +#if __FreeBSD_version >= 1100036 + if_setgetcounterfn(ifp, ixgbe_get_counter); +#endif +#if __FreeBSD_version >= 1100045 /* TSO parameters */ ifp->if_hw_tsomax = 65518; ifp->if_hw_tsomaxsegcount = IXGBE_82599_SCATTER; ifp->if_hw_tsomaxsegsize = 2048; +#endif #ifndef IXGBE_LEGACY_TX ifp->if_transmit = ixgbe_mq_start; ifp->if_qflush = ixgbe_qflush; @@ -2581,7 +2764,7 @@ ixgbe_add_media_types(struct adapter *ad device_t dev = adapter->dev; int layer; - layer = ixgbe_get_supported_physical_layer(hw); + layer = adapter->phy_layer = ixgbe_get_supported_physical_layer(hw); /* Media types with matching FreeBSD media defines */ if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_T) @@ -2692,40 +2875,41 @@ ixgbe_initialize_transmit_units(struct a for (int i = 0; i < adapter->num_queues; i++, txr++) { u64 tdba = txr->txdma.dma_paddr; u32 txctrl = 0; + int j = txr->me; - IXGBE_WRITE_REG(hw, IXGBE_TDBAL(i), + IXGBE_WRITE_REG(hw, IXGBE_TDBAL(j), (tdba & 0x00000000ffffffffULL)); - IXGBE_WRITE_REG(hw, IXGBE_TDBAH(i), (tdba >> 32)); - IXGBE_WRITE_REG(hw, IXGBE_TDLEN(i), + IXGBE_WRITE_REG(hw, IXGBE_TDBAH(j), (tdba >> 32)); + IXGBE_WRITE_REG(hw, IXGBE_TDLEN(j), adapter->num_tx_desc * sizeof(union ixgbe_adv_tx_desc)); /* Setup the HW Tx Head and Tail descriptor pointers */ - IXGBE_WRITE_REG(hw, IXGBE_TDH(i), 0); - IXGBE_WRITE_REG(hw, IXGBE_TDT(i), 0); + IXGBE_WRITE_REG(hw, IXGBE_TDH(j), 0); + IXGBE_WRITE_REG(hw, IXGBE_TDT(j), 0); /* Cache the tail address */ - txr->tail = IXGBE_TDT(txr->me); + txr->tail = IXGBE_TDT(j); /* Disable Head Writeback */ switch (hw->mac.type) { case ixgbe_mac_82598EB: - txctrl = IXGBE_READ_REG(hw, IXGBE_DCA_TXCTRL(i)); + txctrl = IXGBE_READ_REG(hw, IXGBE_DCA_TXCTRL(j)); break; case ixgbe_mac_82599EB: case ixgbe_mac_X540: default: - txctrl = IXGBE_READ_REG(hw, IXGBE_DCA_TXCTRL_82599(i)); + txctrl = IXGBE_READ_REG(hw, IXGBE_DCA_TXCTRL_82599(j)); break; } txctrl &= ~IXGBE_DCA_TXCTRL_DESC_WRO_EN; switch (hw->mac.type) { case ixgbe_mac_82598EB: - IXGBE_WRITE_REG(hw, IXGBE_DCA_TXCTRL(i), txctrl); + IXGBE_WRITE_REG(hw, IXGBE_DCA_TXCTRL(j), txctrl); break; case ixgbe_mac_82599EB: case ixgbe_mac_X540: default: - IXGBE_WRITE_REG(hw, IXGBE_DCA_TXCTRL_82599(i), txctrl); + IXGBE_WRITE_REG(hw, IXGBE_DCA_TXCTRL_82599(j), txctrl); break; } @@ -2733,6 +2917,9 @@ ixgbe_initialize_transmit_units(struct a if (hw->mac.type != ixgbe_mac_82598EB) { u32 dmatxctl, rttdcs; +#ifdef PCI_IOV + enum ixgbe_iov_mode mode = ixgbe_get_iov_mode(adapter); +#endif dmatxctl = IXGBE_READ_REG(hw, IXGBE_DMATXCTL); dmatxctl |= IXGBE_DMATXCTL_TE; IXGBE_WRITE_REG(hw, IXGBE_DMATXCTL, dmatxctl); @@ -2740,7 +2927,11 @@ ixgbe_initialize_transmit_units(struct a rttdcs = IXGBE_READ_REG(hw, IXGBE_RTTDCS); rttdcs |= IXGBE_RTTDCS_ARBDIS; IXGBE_WRITE_REG(hw, IXGBE_RTTDCS, rttdcs); +#ifdef PCI_IOV + IXGBE_WRITE_REG(hw, IXGBE_MTQC, ixgbe_get_mtqc(mode)); +#else IXGBE_WRITE_REG(hw, IXGBE_MTQC, IXGBE_MTQC_64Q_1PB); +#endif rttdcs &= ~IXGBE_RTTDCS_ARBDIS; IXGBE_WRITE_REG(hw, IXGBE_RTTDCS, rttdcs); } @@ -2752,17 +2943,22 @@ static void ixgbe_initialise_rss_mapping(struct adapter *adapter) { struct ixgbe_hw *hw = &adapter->hw; - uint32_t reta; - int i, j, queue_id, table_size; - int index_mult; - uint32_t rss_key[10]; - uint32_t mrqc; - - /* Setup RSS */ - reta = 0; + u32 reta = 0, mrqc, rss_key[10]; + int queue_id, table_size, index_mult; +#ifdef RSS + u32 rss_hash_config; +#endif +#ifdef PCI_IOV + enum ixgbe_iov_mode mode; +#endif +#ifdef RSS + /* Fetch the configured RSS key */ + rss_getkey((uint8_t *) &rss_key); +#else /* set up random bits */ arc4rand(&rss_key, sizeof(rss_key), 0); +#endif /* Set multiplier for RETA setup and table size based on MAC */ index_mult = 0x1; @@ -2780,9 +2976,19 @@ ixgbe_initialise_rss_mapping(struct adap } /* Set up the redirection table */ - for (i = 0, j = 0; i < table_size; i++, j++) { + for (int i = 0, j = 0; i < table_size; i++, j++) { if (j == adapter->num_queues) j = 0; +#ifdef RSS + /* + * Fetch the RSS bucket id for the given indirection entry. + * Cap it at the number of configured buckets (which is + * num_queues.) + */ + queue_id = rss_get_indirection_to_bucket(i); + queue_id = queue_id % adapter->num_queues; +#else queue_id = (j * index_mult); +#endif /* * The low 8 bits are for hash value (n+0); * The next 8 bits are for hash value (n+1), etc. @@ -2803,6 +3009,32 @@ ixgbe_initialise_rss_mapping(struct adap IXGBE_WRITE_REG(hw, IXGBE_RSSRK(i), rss_key[i]); /* Perform hash on these packet types */ +#ifdef RSS + mrqc = IXGBE_MRQC_RSSEN; + rss_hash_config = rss_gethashconfig(); + if (rss_hash_config & RSS_HASHTYPE_RSS_IPV4) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV4; + if (rss_hash_config & RSS_HASHTYPE_RSS_TCP_IPV4) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV4_TCP; + if (rss_hash_config & RSS_HASHTYPE_RSS_IPV6) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6; + if (rss_hash_config & RSS_HASHTYPE_RSS_TCP_IPV6) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_TCP; + if (rss_hash_config & RSS_HASHTYPE_RSS_IPV6_EX) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX; + if (rss_hash_config & RSS_HASHTYPE_RSS_TCP_IPV6_EX) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX_TCP; + if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV4) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV4_UDP; + if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV4_EX) + device_printf(adapter->dev, + "%s: RSS_HASHTYPE_RSS_UDP_IPV4_EX defined, " + "but not supported\n", __func__); + if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV6) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_UDP; + if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV6_EX) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP; +#else /* * Disable UDP - IP fragments aren't currently being handled * and so we end up with a mix of 2-tuple and 4-tuple @@ -2811,18 +3043,16 @@ ixgbe_initialise_rss_mapping(struct adap mrqc = IXGBE_MRQC_RSSEN | IXGBE_MRQC_RSS_FIELD_IPV4 | IXGBE_MRQC_RSS_FIELD_IPV4_TCP -#if 0 - | IXGBE_MRQC_RSS_FIELD_IPV4_UDP -#endif | IXGBE_MRQC_RSS_FIELD_IPV6_EX_TCP | IXGBE_MRQC_RSS_FIELD_IPV6_EX | IXGBE_MRQC_RSS_FIELD_IPV6 | IXGBE_MRQC_RSS_FIELD_IPV6_TCP -#if 0 - | IXGBE_MRQC_RSS_FIELD_IPV6_UDP - | IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP -#endif ; +#endif /* RSS */ +#ifdef PCI_IOV + mode = ixgbe_get_iov_mode(adapter); + mrqc |= ixgbe_get_mrqc(mode); +#endif IXGBE_WRITE_REG(hw, IXGBE_MRQC, mrqc); } @@ -2881,16 +3111,17 @@ ixgbe_initialize_receive_units(struct ad for (int i = 0; i < adapter->num_queues; i++, rxr++) { u64 rdba = rxr->rxdma.dma_paddr; + int j = rxr->me; /* Setup the Base and Length of the Rx Descriptor Ring */ - IXGBE_WRITE_REG(hw, IXGBE_RDBAL(i), + IXGBE_WRITE_REG(hw, IXGBE_RDBAL(j), (rdba & 0x00000000ffffffffULL)); - IXGBE_WRITE_REG(hw, IXGBE_RDBAH(i), (rdba >> 32)); - IXGBE_WRITE_REG(hw, IXGBE_RDLEN(i), + IXGBE_WRITE_REG(hw, IXGBE_RDBAH(j), (rdba >> 32)); + IXGBE_WRITE_REG(hw, IXGBE_RDLEN(j), adapter->num_rx_desc * sizeof(union ixgbe_adv_rx_desc)); /* Set up the SRRCTL register */ - srrctl = IXGBE_READ_REG(hw, IXGBE_SRRCTL(i)); + srrctl = IXGBE_READ_REG(hw, IXGBE_SRRCTL(j)); srrctl &= ~IXGBE_SRRCTL_BSIZEHDR_MASK; srrctl &= ~IXGBE_SRRCTL_BSIZEPKT_MASK; srrctl |= bufsz; @@ -3026,9 +3257,9 @@ ixgbe_setup_vlan_hw_support(struct adapt rxr = &adapter->rx_rings[i]; /* On 82599 the VLAN enable is per/queue in RXDCTL */ if (hw->mac.type != ixgbe_mac_82598EB) { - ctrl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(i)); + ctrl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(rxr->me)); ctrl |= IXGBE_RXDCTL_VME; - IXGBE_WRITE_REG(hw, IXGBE_RXDCTL(i), ctrl); + IXGBE_WRITE_REG(hw, IXGBE_RXDCTL(rxr->me), ctrl); } rxr->vtag_strip = TRUE; } @@ -3078,6 +3309,9 @@ ixgbe_enable_intr(struct adapter *adapte #ifdef IXGBE_FDIR mask |= IXGBE_EIMS_FLOW_DIR; #endif +#ifdef PCI_IOV + mask |= IXGBE_EIMS_MAILBOX; +#endif break; case ixgbe_mac_X540: /* Detect if Thermal Sensor is enabled */ @@ -3101,6 +3335,9 @@ ixgbe_enable_intr(struct adapter *adapte #ifdef IXGBE_FDIR mask |= IXGBE_EIMS_FLOW_DIR; #endif +#ifdef PCI_IOV + mask |= IXGBE_EIMS_MAILBOX; +#endif /* falls through */ default: break; @@ -3114,6 +3351,9 @@ ixgbe_enable_intr(struct adapter *adapte /* Don't autoclear Link */ mask &= ~IXGBE_EIMS_OTHER; mask &= ~IXGBE_EIMS_LSC; +#ifdef PCI_IOV + mask &= ~IXGBE_EIMS_MAILBOX; +#endif IXGBE_WRITE_REG(hw, IXGBE_EIAC, mask); } @@ -3312,8 +3552,8 @@ ixgbe_set_ivar(struct adapter *adapter, static void ixgbe_configure_ivars(struct adapter *adapter) { - struct ix_queue *que = adapter->queues; - u32 newitr; + struct ix_queue *que = adapter->queues; + u32 newitr; if (ixgbe_max_interrupt_rate > 0) newitr = (4000000 / ixgbe_max_interrupt_rate) & 0x0FF8; @@ -3327,10 +3567,12 @@ ixgbe_configure_ivars(struct adapter *ad } for (int i = 0; i < adapter->num_queues; i++, que++) { + struct rx_ring *rxr = &adapter->rx_rings[i]; + struct tx_ring *txr = &adapter->tx_rings[i]; /* First the RX queue entry */ - ixgbe_set_ivar(adapter, i, que->msix, 0); + ixgbe_set_ivar(adapter, rxr->me, que->msix, 0); /* ... and the TX */ - ixgbe_set_ivar(adapter, i, que->msix, 1); + ixgbe_set_ivar(adapter, txr->me, que->msix, 1); /* Set an Initial EITR value */ IXGBE_WRITE_REG(&adapter->hw, IXGBE_EITR(que->msix), newitr); @@ -3344,7 +3586,8 @@ ixgbe_configure_ivars(struct adapter *ad ** ixgbe_sfp_probe - called in the local timer to ** determine if a port had optics inserted. */ -static bool ixgbe_sfp_probe(struct adapter *adapter) +static bool +ixgbe_sfp_probe(struct adapter *adapter) { struct ixgbe_hw *hw = &adapter->hw; device_t dev = adapter->dev; @@ -3404,6 +3647,7 @@ ixgbe_handle_mod(void *context, int pend "Unsupported SFP+ module type was detected.\n"); return; } + err = hw->mac.ops.setup_sfp(hw); if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) { device_printf(dev, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Jan 28 19:34:24 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2EE58A71A85; Thu, 28 Jan 2016 19:34:24 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from mail.strugglingcoder.info (strugglingcoder.info [65.19.130.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.strugglingcoder.info", Issuer "mail.strugglingcoder.info" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 20A101E0D; Thu, 28 Jan 2016 19:34:23 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from localhost (unknown [10.1.1.3]) (Authenticated sender: hiren@strugglingcoder.info) by mail.strugglingcoder.info (Postfix) with ESMTPA id 924A6BCC7; Thu, 28 Jan 2016 11:34:16 -0800 (PST) Date: Thu, 28 Jan 2016 11:34:16 -0800 From: Hiren Panchasara To: Gleb Smirnoff Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r294840 - head/sys/netinet Message-ID: <20160128193416.GG33155@strugglingcoder.info> References: <201601261633.u0QGXcdh083557@repo.freebsd.org> <20160126225332.GU6885@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="5L6AZ1aJH5mDrqCQ" Content-Disposition: inline In-Reply-To: <20160126225332.GU6885@FreeBSD.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 19:34:24 -0000 --5L6AZ1aJH5mDrqCQ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Somehow I totally missed this email. On 01/26/16 at 02:53P, Gleb Smirnoff wrote: > Hiren, >=20 > On Tue, Jan 26, 2016 at 04:33:38PM +0000, Hiren Panchasara wrote: > H> Author: hiren > H> Date: Tue Jan 26 16:33:38 2016 > H> New Revision: 294840 > H> URL: https://svnweb.freebsd.org/changeset/base/294840 > H>=20 > H> Log: > H> Persist timers TCPTV_PERSMIN and TCPTV_PERSMAX are hardcoded with 5 = seconds and > H> 60 seconds, respectively. Turn them into sysctls that can be tuned l= ive. The > H> default values of 5 seconds and 60 seconds have been retained. > H> =20 > H> Submitted by: Jason Wolfe (j at nitrology dot com) > H> Reviewed by: gnn, rrs, hiren, bz > H> MFC after: 1 week > H> Sponsored by: Limelight Networks > H> Differential Revision: https://reviews.freebsd.org/D5024 >=20 > A theoretical question: could it be useful to make them socket options > like the TCP_KEEP* timeouts? Hum, unsure. I do not have a use-case for that currently. Cheers, Hiren --5L6AZ1aJH5mDrqCQ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAABCgBmBQJWqm01XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRBNEUyMEZBMUQ4Nzg4RjNGMTdFNjZGMDI4 QjkyNTBFMTU2M0VERkU1AAoJEIuSUOFWPt/l8/oIAIn06TbeEmqnvUL0PSNRP0ge 0yX9AtrEyvJJ/c5i2Sux2U09ojPcGxJrhtd3XsfeSK4npgNrEV/87IeYO+V4s4Gd hjfGh+0BkTgOaVH4APAF3oQIsbKM4ziLDpBi+dayCqVsnVRQQ2AHQ1qxOJaSPoKl ehOjcq0zMI+uP+CIEVyBcmG0YrbUYLWG8Rlypk8QLq6PCq+ui2r6jOqwQ09PnRVO LwNyrk7qq2Yaktsrkp/W48R8Xq/I2CHfMblEz15/AaRJmuigv0GIWylq3qEgWzue jbkKelqza43ddduVS6DyOeFRWYkb3xFe6dAnmYKluvfTsqfSr4k7i/NgJNYV2aE= =jJHi -----END PGP SIGNATURE----- --5L6AZ1aJH5mDrqCQ-- From owner-svn-src-all@freebsd.org Thu Jan 28 20:15:28 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3FB86A3CA8D; Thu, 28 Jan 2016 20:15:28 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D06CD145A; Thu, 28 Jan 2016 20:15:27 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SKFQ36001907; Thu, 28 Jan 2016 20:15:26 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SKFMeF001864; Thu, 28 Jan 2016 20:15:22 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201601282015.u0SKFMeF001864@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 28 Jan 2016 20:15:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295009 - in head: crypto/openssl crypto/openssl/apps crypto/openssl/crypto crypto/openssl/crypto/aes crypto/openssl/crypto/aes/asm crypto/openssl/crypto/bio crypto/openssl/crypto/bn cr... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 20:15:28 -0000 Author: jkim Date: Thu Jan 28 20:15:22 2016 New Revision: 295009 URL: https://svnweb.freebsd.org/changeset/base/295009 Log: Merge OpenSSL 1.0.2f. Relnotes: yes Added: head/crypto/openssl/doc/ssl/SSL_CTX_set_tlsext_status_cb.pod - copied unchanged from r295001, vendor-crypto/openssl/dist/doc/ssl/SSL_CTX_set_tlsext_status_cb.pod head/crypto/openssl/util/pod2mantest - copied unchanged from r295001, vendor-crypto/openssl/dist/util/pod2mantest head/secure/lib/libssl/man/SSL_CTX_set_tlsext_status_cb.3 (contents, props changed) Modified: head/crypto/openssl/ACKNOWLEDGMENTS head/crypto/openssl/CHANGES head/crypto/openssl/Configure head/crypto/openssl/INSTALL head/crypto/openssl/LICENSE head/crypto/openssl/Makefile head/crypto/openssl/Makefile.org head/crypto/openssl/NEWS head/crypto/openssl/README head/crypto/openssl/apps/engine.c head/crypto/openssl/apps/ocsp.c head/crypto/openssl/apps/pkcs12.c head/crypto/openssl/apps/pkeyutl.c head/crypto/openssl/apps/s_client.c head/crypto/openssl/apps/s_server.c head/crypto/openssl/apps/speed.c head/crypto/openssl/apps/x509.c head/crypto/openssl/crypto/aes/aes.h head/crypto/openssl/crypto/aes/aes_cbc.c head/crypto/openssl/crypto/aes/aes_cfb.c head/crypto/openssl/crypto/aes/aes_core.c head/crypto/openssl/crypto/aes/aes_ctr.c head/crypto/openssl/crypto/aes/aes_ecb.c head/crypto/openssl/crypto/aes/aes_ige.c head/crypto/openssl/crypto/aes/aes_locl.h head/crypto/openssl/crypto/aes/aes_misc.c head/crypto/openssl/crypto/aes/aes_ofb.c head/crypto/openssl/crypto/aes/aes_x86core.c head/crypto/openssl/crypto/aes/asm/aesni-mb-x86_64.pl head/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl head/crypto/openssl/crypto/aes/asm/aesni-sha256-x86_64.pl head/crypto/openssl/crypto/bio/bio.h head/crypto/openssl/crypto/bio/bss_bio.c head/crypto/openssl/crypto/bio/bss_conn.c head/crypto/openssl/crypto/bio/bss_dgram.c head/crypto/openssl/crypto/bn/asm/rsaz-x86_64.pl head/crypto/openssl/crypto/bn/asm/x86_64-mont.pl head/crypto/openssl/crypto/bn/asm/x86_64-mont5.pl head/crypto/openssl/crypto/bn/bn_exp.c head/crypto/openssl/crypto/bn/exptest.c head/crypto/openssl/crypto/camellia/camellia.c head/crypto/openssl/crypto/camellia/camellia.h head/crypto/openssl/crypto/camellia/cmll_cbc.c head/crypto/openssl/crypto/camellia/cmll_cfb.c head/crypto/openssl/crypto/camellia/cmll_ctr.c head/crypto/openssl/crypto/camellia/cmll_ecb.c head/crypto/openssl/crypto/camellia/cmll_locl.h head/crypto/openssl/crypto/camellia/cmll_misc.c head/crypto/openssl/crypto/camellia/cmll_ofb.c head/crypto/openssl/crypto/camellia/cmll_utl.c head/crypto/openssl/crypto/des/des_old.c head/crypto/openssl/crypto/des/des_old.h head/crypto/openssl/crypto/des/des_old2.c head/crypto/openssl/crypto/dh/dh.h head/crypto/openssl/crypto/dh/dh_check.c head/crypto/openssl/crypto/dh/dhtest.c head/crypto/openssl/crypto/dsa/dsa_ossl.c head/crypto/openssl/crypto/dso/dso.h head/crypto/openssl/crypto/dso/dso_dl.c head/crypto/openssl/crypto/dso/dso_dlfcn.c head/crypto/openssl/crypto/dso/dso_lib.c head/crypto/openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl head/crypto/openssl/crypto/ec/ec2_smpl.c head/crypto/openssl/crypto/ec/ec_key.c head/crypto/openssl/crypto/ec/ecp_nistz256_table.c head/crypto/openssl/crypto/ec/ectest.c head/crypto/openssl/crypto/engine/eng_all.c head/crypto/openssl/crypto/evp/e_camellia.c head/crypto/openssl/crypto/evp/e_old.c head/crypto/openssl/crypto/evp/e_seed.c head/crypto/openssl/crypto/mem_clr.c head/crypto/openssl/crypto/modes/asm/aesni-gcm-x86_64.pl head/crypto/openssl/crypto/modes/asm/ghash-x86_64.pl head/crypto/openssl/crypto/o_dir.c head/crypto/openssl/crypto/o_dir.h head/crypto/openssl/crypto/o_dir_test.c head/crypto/openssl/crypto/o_str.c head/crypto/openssl/crypto/o_str.h head/crypto/openssl/crypto/o_time.c head/crypto/openssl/crypto/o_time.h head/crypto/openssl/crypto/opensslv.h head/crypto/openssl/crypto/rc4/rc4_utl.c head/crypto/openssl/crypto/rsa/rsa_chk.c head/crypto/openssl/crypto/rsa/rsa_sign.c head/crypto/openssl/crypto/seed/seed_cbc.c head/crypto/openssl/crypto/seed/seed_cfb.c head/crypto/openssl/crypto/seed/seed_ecb.c head/crypto/openssl/crypto/seed/seed_ofb.c head/crypto/openssl/crypto/sha/asm/sha1-mb-x86_64.pl head/crypto/openssl/crypto/sha/asm/sha1-x86_64.pl head/crypto/openssl/crypto/sha/asm/sha256-mb-x86_64.pl head/crypto/openssl/crypto/sha/asm/sha512-x86_64.pl head/crypto/openssl/crypto/sha/sha1test.c head/crypto/openssl/crypto/store/store.h head/crypto/openssl/crypto/store/str_lib.c head/crypto/openssl/crypto/store/str_locl.h head/crypto/openssl/crypto/store/str_mem.c head/crypto/openssl/crypto/store/str_meth.c head/crypto/openssl/crypto/ts/ts_rsp_verify.c head/crypto/openssl/crypto/ui/ui.h head/crypto/openssl/crypto/ui/ui_compat.c head/crypto/openssl/crypto/ui/ui_compat.h head/crypto/openssl/crypto/ui/ui_lib.c head/crypto/openssl/crypto/ui/ui_locl.h head/crypto/openssl/crypto/ui/ui_openssl.c head/crypto/openssl/crypto/ui/ui_util.c head/crypto/openssl/crypto/x509/x509_vfy.c head/crypto/openssl/crypto/x509/x509_vfy.h head/crypto/openssl/crypto/x509/x509_vpm.c head/crypto/openssl/crypto/x509v3/v3_pci.c head/crypto/openssl/crypto/x509v3/v3_pcia.c head/crypto/openssl/crypto/x509v3/v3_utl.c head/crypto/openssl/crypto/x509v3/v3nametest.c head/crypto/openssl/doc/apps/s_time.pod head/crypto/openssl/doc/crypto/BIO_s_connect.pod head/crypto/openssl/doc/ssl/SSL_CTX_set1_verify_cert_store.pod head/crypto/openssl/doc/ssl/SSL_CTX_set_tmp_dh_callback.pod head/crypto/openssl/engines/e_chil.c head/crypto/openssl/ssl/d1_both.c head/crypto/openssl/ssl/kssl.c head/crypto/openssl/ssl/kssl.h head/crypto/openssl/ssl/kssl_lcl.h head/crypto/openssl/ssl/s2_srvr.c head/crypto/openssl/ssl/s3_clnt.c head/crypto/openssl/ssl/s3_lib.c head/crypto/openssl/ssl/s3_srvr.c head/crypto/openssl/ssl/ssl.h head/crypto/openssl/ssl/ssl_err.c head/crypto/openssl/ssl/ssl_lib.c head/crypto/openssl/ssl/ssl_sess.c head/crypto/openssl/ssl/t1_enc.c head/crypto/openssl/ssl/t1_lib.c head/crypto/openssl/util/domd head/crypto/openssl/util/pl/VC-32.pl head/secure/lib/libcrypto/Makefile.inc head/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 head/secure/lib/libcrypto/man/ASN1_STRING_length.3 head/secure/lib/libcrypto/man/ASN1_STRING_new.3 head/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 head/secure/lib/libcrypto/man/ASN1_TIME_set.3 head/secure/lib/libcrypto/man/ASN1_generate_nconf.3 head/secure/lib/libcrypto/man/BIO_ctrl.3 head/secure/lib/libcrypto/man/BIO_f_base64.3 head/secure/lib/libcrypto/man/BIO_f_buffer.3 head/secure/lib/libcrypto/man/BIO_f_cipher.3 head/secure/lib/libcrypto/man/BIO_f_md.3 head/secure/lib/libcrypto/man/BIO_f_null.3 head/secure/lib/libcrypto/man/BIO_f_ssl.3 head/secure/lib/libcrypto/man/BIO_find_type.3 head/secure/lib/libcrypto/man/BIO_new.3 head/secure/lib/libcrypto/man/BIO_new_CMS.3 head/secure/lib/libcrypto/man/BIO_push.3 head/secure/lib/libcrypto/man/BIO_read.3 head/secure/lib/libcrypto/man/BIO_s_accept.3 head/secure/lib/libcrypto/man/BIO_s_bio.3 head/secure/lib/libcrypto/man/BIO_s_connect.3 head/secure/lib/libcrypto/man/BIO_s_fd.3 head/secure/lib/libcrypto/man/BIO_s_file.3 head/secure/lib/libcrypto/man/BIO_s_mem.3 head/secure/lib/libcrypto/man/BIO_s_null.3 head/secure/lib/libcrypto/man/BIO_s_socket.3 head/secure/lib/libcrypto/man/BIO_set_callback.3 head/secure/lib/libcrypto/man/BIO_should_retry.3 head/secure/lib/libcrypto/man/BN_BLINDING_new.3 head/secure/lib/libcrypto/man/BN_CTX_new.3 head/secure/lib/libcrypto/man/BN_CTX_start.3 head/secure/lib/libcrypto/man/BN_add.3 head/secure/lib/libcrypto/man/BN_add_word.3 head/secure/lib/libcrypto/man/BN_bn2bin.3 head/secure/lib/libcrypto/man/BN_cmp.3 head/secure/lib/libcrypto/man/BN_copy.3 head/secure/lib/libcrypto/man/BN_generate_prime.3 head/secure/lib/libcrypto/man/BN_mod_inverse.3 head/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 head/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 head/secure/lib/libcrypto/man/BN_new.3 head/secure/lib/libcrypto/man/BN_num_bytes.3 head/secure/lib/libcrypto/man/BN_rand.3 head/secure/lib/libcrypto/man/BN_set_bit.3 head/secure/lib/libcrypto/man/BN_swap.3 head/secure/lib/libcrypto/man/BN_zero.3 head/secure/lib/libcrypto/man/CMS_add0_cert.3 head/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3 head/secure/lib/libcrypto/man/CMS_add1_signer.3 head/secure/lib/libcrypto/man/CMS_compress.3 head/secure/lib/libcrypto/man/CMS_decrypt.3 head/secure/lib/libcrypto/man/CMS_encrypt.3 head/secure/lib/libcrypto/man/CMS_final.3 head/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3 head/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3 head/secure/lib/libcrypto/man/CMS_get0_type.3 head/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3 head/secure/lib/libcrypto/man/CMS_sign.3 head/secure/lib/libcrypto/man/CMS_sign_receipt.3 head/secure/lib/libcrypto/man/CMS_uncompress.3 head/secure/lib/libcrypto/man/CMS_verify.3 head/secure/lib/libcrypto/man/CMS_verify_receipt.3 head/secure/lib/libcrypto/man/CONF_modules_free.3 head/secure/lib/libcrypto/man/CONF_modules_load_file.3 head/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3 head/secure/lib/libcrypto/man/DH_generate_key.3 head/secure/lib/libcrypto/man/DH_generate_parameters.3 head/secure/lib/libcrypto/man/DH_get_ex_new_index.3 head/secure/lib/libcrypto/man/DH_new.3 head/secure/lib/libcrypto/man/DH_set_method.3 head/secure/lib/libcrypto/man/DH_size.3 head/secure/lib/libcrypto/man/DSA_SIG_new.3 head/secure/lib/libcrypto/man/DSA_do_sign.3 head/secure/lib/libcrypto/man/DSA_dup_DH.3 head/secure/lib/libcrypto/man/DSA_generate_key.3 head/secure/lib/libcrypto/man/DSA_generate_parameters.3 head/secure/lib/libcrypto/man/DSA_get_ex_new_index.3 head/secure/lib/libcrypto/man/DSA_new.3 head/secure/lib/libcrypto/man/DSA_set_method.3 head/secure/lib/libcrypto/man/DSA_sign.3 head/secure/lib/libcrypto/man/DSA_size.3 head/secure/lib/libcrypto/man/EC_GFp_simple_method.3 head/secure/lib/libcrypto/man/EC_GROUP_copy.3 head/secure/lib/libcrypto/man/EC_GROUP_new.3 head/secure/lib/libcrypto/man/EC_KEY_new.3 head/secure/lib/libcrypto/man/EC_POINT_add.3 head/secure/lib/libcrypto/man/EC_POINT_new.3 head/secure/lib/libcrypto/man/ERR_GET_LIB.3 head/secure/lib/libcrypto/man/ERR_clear_error.3 head/secure/lib/libcrypto/man/ERR_error_string.3 head/secure/lib/libcrypto/man/ERR_get_error.3 head/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 head/secure/lib/libcrypto/man/ERR_load_strings.3 head/secure/lib/libcrypto/man/ERR_print_errors.3 head/secure/lib/libcrypto/man/ERR_put_error.3 head/secure/lib/libcrypto/man/ERR_remove_state.3 head/secure/lib/libcrypto/man/ERR_set_mark.3 head/secure/lib/libcrypto/man/EVP_BytesToKey.3 head/secure/lib/libcrypto/man/EVP_DigestInit.3 head/secure/lib/libcrypto/man/EVP_DigestSignInit.3 head/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3 head/secure/lib/libcrypto/man/EVP_EncryptInit.3 head/secure/lib/libcrypto/man/EVP_OpenInit.3 head/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3 head/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3 head/secure/lib/libcrypto/man/EVP_PKEY_cmp.3 head/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3 head/secure/lib/libcrypto/man/EVP_PKEY_derive.3 head/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3 head/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest.3 head/secure/lib/libcrypto/man/EVP_PKEY_keygen.3 head/secure/lib/libcrypto/man/EVP_PKEY_new.3 head/secure/lib/libcrypto/man/EVP_PKEY_print_private.3 head/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 head/secure/lib/libcrypto/man/EVP_PKEY_sign.3 head/secure/lib/libcrypto/man/EVP_PKEY_verify.3 head/secure/lib/libcrypto/man/EVP_PKEY_verify_recover.3 head/secure/lib/libcrypto/man/EVP_SealInit.3 head/secure/lib/libcrypto/man/EVP_SignInit.3 head/secure/lib/libcrypto/man/EVP_VerifyInit.3 head/secure/lib/libcrypto/man/OBJ_nid2obj.3 head/secure/lib/libcrypto/man/OPENSSL_Applink.3 head/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 head/secure/lib/libcrypto/man/OPENSSL_config.3 head/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 head/secure/lib/libcrypto/man/OPENSSL_instrument_bus.3 head/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 head/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 head/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3 head/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3 head/secure/lib/libcrypto/man/PKCS12_create.3 head/secure/lib/libcrypto/man/PKCS12_parse.3 head/secure/lib/libcrypto/man/PKCS7_decrypt.3 head/secure/lib/libcrypto/man/PKCS7_encrypt.3 head/secure/lib/libcrypto/man/PKCS7_sign.3 head/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3 head/secure/lib/libcrypto/man/PKCS7_verify.3 head/secure/lib/libcrypto/man/RAND_add.3 head/secure/lib/libcrypto/man/RAND_bytes.3 head/secure/lib/libcrypto/man/RAND_cleanup.3 head/secure/lib/libcrypto/man/RAND_egd.3 head/secure/lib/libcrypto/man/RAND_load_file.3 head/secure/lib/libcrypto/man/RAND_set_rand_method.3 head/secure/lib/libcrypto/man/RSA_blinding_on.3 head/secure/lib/libcrypto/man/RSA_check_key.3 head/secure/lib/libcrypto/man/RSA_generate_key.3 head/secure/lib/libcrypto/man/RSA_get_ex_new_index.3 head/secure/lib/libcrypto/man/RSA_new.3 head/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 head/secure/lib/libcrypto/man/RSA_print.3 head/secure/lib/libcrypto/man/RSA_private_encrypt.3 head/secure/lib/libcrypto/man/RSA_public_encrypt.3 head/secure/lib/libcrypto/man/RSA_set_method.3 head/secure/lib/libcrypto/man/RSA_sign.3 head/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 head/secure/lib/libcrypto/man/RSA_size.3 head/secure/lib/libcrypto/man/SMIME_read_CMS.3 head/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 head/secure/lib/libcrypto/man/SMIME_write_CMS.3 head/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 head/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 head/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 head/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 head/secure/lib/libcrypto/man/X509_NAME_print_ex.3 head/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3 head/secure/lib/libcrypto/man/X509_STORE_CTX_get_ex_new_index.3 head/secure/lib/libcrypto/man/X509_STORE_CTX_new.3 head/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3 head/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3 head/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3 head/secure/lib/libcrypto/man/X509_check_host.3 head/secure/lib/libcrypto/man/X509_new.3 head/secure/lib/libcrypto/man/X509_verify_cert.3 head/secure/lib/libcrypto/man/bio.3 head/secure/lib/libcrypto/man/blowfish.3 head/secure/lib/libcrypto/man/bn.3 head/secure/lib/libcrypto/man/bn_internal.3 head/secure/lib/libcrypto/man/buffer.3 head/secure/lib/libcrypto/man/crypto.3 head/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3 head/secure/lib/libcrypto/man/d2i_CMS_ContentInfo.3 head/secure/lib/libcrypto/man/d2i_DHparams.3 head/secure/lib/libcrypto/man/d2i_DSAPublicKey.3 head/secure/lib/libcrypto/man/d2i_ECPKParameters.3 head/secure/lib/libcrypto/man/d2i_ECPrivateKey.3 head/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3 head/secure/lib/libcrypto/man/d2i_RSAPublicKey.3 head/secure/lib/libcrypto/man/d2i_X509.3 head/secure/lib/libcrypto/man/d2i_X509_ALGOR.3 head/secure/lib/libcrypto/man/d2i_X509_CRL.3 head/secure/lib/libcrypto/man/d2i_X509_NAME.3 head/secure/lib/libcrypto/man/d2i_X509_REQ.3 head/secure/lib/libcrypto/man/d2i_X509_SIG.3 head/secure/lib/libcrypto/man/des.3 head/secure/lib/libcrypto/man/dh.3 head/secure/lib/libcrypto/man/dsa.3 head/secure/lib/libcrypto/man/ec.3 head/secure/lib/libcrypto/man/ecdsa.3 head/secure/lib/libcrypto/man/engine.3 head/secure/lib/libcrypto/man/err.3 head/secure/lib/libcrypto/man/evp.3 head/secure/lib/libcrypto/man/hmac.3 head/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3 head/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3 head/secure/lib/libcrypto/man/lh_stats.3 head/secure/lib/libcrypto/man/lhash.3 head/secure/lib/libcrypto/man/md5.3 head/secure/lib/libcrypto/man/mdc2.3 head/secure/lib/libcrypto/man/pem.3 head/secure/lib/libcrypto/man/rand.3 head/secure/lib/libcrypto/man/rc4.3 head/secure/lib/libcrypto/man/ripemd.3 head/secure/lib/libcrypto/man/rsa.3 head/secure/lib/libcrypto/man/sha.3 head/secure/lib/libcrypto/man/threads.3 head/secure/lib/libcrypto/man/ui.3 head/secure/lib/libcrypto/man/ui_compat.3 head/secure/lib/libcrypto/man/x509.3 head/secure/lib/libssl/Makefile.man head/secure/lib/libssl/man/SSL_CIPHER_get_name.3 head/secure/lib/libssl/man/SSL_COMP_add_compression_method.3 head/secure/lib/libssl/man/SSL_CONF_CTX_new.3 head/secure/lib/libssl/man/SSL_CONF_CTX_set1_prefix.3 head/secure/lib/libssl/man/SSL_CONF_CTX_set_flags.3 head/secure/lib/libssl/man/SSL_CONF_CTX_set_ssl_ctx.3 head/secure/lib/libssl/man/SSL_CONF_cmd.3 head/secure/lib/libssl/man/SSL_CONF_cmd_argv.3 head/secure/lib/libssl/man/SSL_CTX_add1_chain_cert.3 head/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3 head/secure/lib/libssl/man/SSL_CTX_add_session.3 head/secure/lib/libssl/man/SSL_CTX_ctrl.3 head/secure/lib/libssl/man/SSL_CTX_flush_sessions.3 head/secure/lib/libssl/man/SSL_CTX_free.3 head/secure/lib/libssl/man/SSL_CTX_get0_param.3 head/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3 head/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3 head/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3 head/secure/lib/libssl/man/SSL_CTX_new.3 head/secure/lib/libssl/man/SSL_CTX_sess_number.3 head/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3 head/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3 head/secure/lib/libssl/man/SSL_CTX_sessions.3 head/secure/lib/libssl/man/SSL_CTX_set1_curves.3 head/secure/lib/libssl/man/SSL_CTX_set1_verify_cert_store.3 head/secure/lib/libssl/man/SSL_CTX_set_cert_cb.3 head/secure/lib/libssl/man/SSL_CTX_set_cert_store.3 head/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3 head/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3 head/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3 head/secure/lib/libssl/man/SSL_CTX_set_custom_cli_ext.3 head/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3 head/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3 head/secure/lib/libssl/man/SSL_CTX_set_info_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3 head/secure/lib/libssl/man/SSL_CTX_set_mode.3 head/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_options.3 head/secure/lib/libssl/man/SSL_CTX_set_psk_client_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3 head/secure/lib/libssl/man/SSL_CTX_set_read_ahead.3 head/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3 head/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3 head/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3 head/secure/lib/libssl/man/SSL_CTX_set_timeout.3 head/secure/lib/libssl/man/SSL_CTX_set_tlsext_ticket_key_cb.3 head/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_verify.3 head/secure/lib/libssl/man/SSL_CTX_use_certificate.3 head/secure/lib/libssl/man/SSL_CTX_use_psk_identity_hint.3 head/secure/lib/libssl/man/SSL_CTX_use_serverinfo.3 head/secure/lib/libssl/man/SSL_SESSION_free.3 head/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3 head/secure/lib/libssl/man/SSL_SESSION_get_time.3 head/secure/lib/libssl/man/SSL_accept.3 head/secure/lib/libssl/man/SSL_alert_type_string.3 head/secure/lib/libssl/man/SSL_check_chain.3 head/secure/lib/libssl/man/SSL_clear.3 head/secure/lib/libssl/man/SSL_connect.3 head/secure/lib/libssl/man/SSL_do_handshake.3 head/secure/lib/libssl/man/SSL_free.3 head/secure/lib/libssl/man/SSL_get_SSL_CTX.3 head/secure/lib/libssl/man/SSL_get_ciphers.3 head/secure/lib/libssl/man/SSL_get_client_CA_list.3 head/secure/lib/libssl/man/SSL_get_current_cipher.3 head/secure/lib/libssl/man/SSL_get_default_timeout.3 head/secure/lib/libssl/man/SSL_get_error.3 head/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3 head/secure/lib/libssl/man/SSL_get_ex_new_index.3 head/secure/lib/libssl/man/SSL_get_fd.3 head/secure/lib/libssl/man/SSL_get_peer_cert_chain.3 head/secure/lib/libssl/man/SSL_get_peer_certificate.3 head/secure/lib/libssl/man/SSL_get_psk_identity.3 head/secure/lib/libssl/man/SSL_get_rbio.3 head/secure/lib/libssl/man/SSL_get_session.3 head/secure/lib/libssl/man/SSL_get_verify_result.3 head/secure/lib/libssl/man/SSL_get_version.3 head/secure/lib/libssl/man/SSL_library_init.3 head/secure/lib/libssl/man/SSL_load_client_CA_file.3 head/secure/lib/libssl/man/SSL_new.3 head/secure/lib/libssl/man/SSL_pending.3 head/secure/lib/libssl/man/SSL_read.3 head/secure/lib/libssl/man/SSL_rstate_string.3 head/secure/lib/libssl/man/SSL_session_reused.3 head/secure/lib/libssl/man/SSL_set_bio.3 head/secure/lib/libssl/man/SSL_set_connect_state.3 head/secure/lib/libssl/man/SSL_set_fd.3 head/secure/lib/libssl/man/SSL_set_session.3 head/secure/lib/libssl/man/SSL_set_shutdown.3 head/secure/lib/libssl/man/SSL_set_verify_result.3 head/secure/lib/libssl/man/SSL_shutdown.3 head/secure/lib/libssl/man/SSL_state_string.3 head/secure/lib/libssl/man/SSL_want.3 head/secure/lib/libssl/man/SSL_write.3 head/secure/lib/libssl/man/d2i_SSL_SESSION.3 head/secure/lib/libssl/man/ssl.3 head/secure/usr.bin/openssl/man/CA.pl.1 head/secure/usr.bin/openssl/man/asn1parse.1 head/secure/usr.bin/openssl/man/c_rehash.1 head/secure/usr.bin/openssl/man/ca.1 head/secure/usr.bin/openssl/man/ciphers.1 head/secure/usr.bin/openssl/man/cms.1 head/secure/usr.bin/openssl/man/crl.1 head/secure/usr.bin/openssl/man/crl2pkcs7.1 head/secure/usr.bin/openssl/man/dgst.1 head/secure/usr.bin/openssl/man/dhparam.1 head/secure/usr.bin/openssl/man/dsa.1 head/secure/usr.bin/openssl/man/dsaparam.1 head/secure/usr.bin/openssl/man/ec.1 head/secure/usr.bin/openssl/man/ecparam.1 head/secure/usr.bin/openssl/man/enc.1 head/secure/usr.bin/openssl/man/errstr.1 head/secure/usr.bin/openssl/man/gendsa.1 head/secure/usr.bin/openssl/man/genpkey.1 head/secure/usr.bin/openssl/man/genrsa.1 head/secure/usr.bin/openssl/man/nseq.1 head/secure/usr.bin/openssl/man/ocsp.1 head/secure/usr.bin/openssl/man/openssl.1 head/secure/usr.bin/openssl/man/passwd.1 head/secure/usr.bin/openssl/man/pkcs12.1 head/secure/usr.bin/openssl/man/pkcs7.1 head/secure/usr.bin/openssl/man/pkcs8.1 head/secure/usr.bin/openssl/man/pkey.1 head/secure/usr.bin/openssl/man/pkeyparam.1 head/secure/usr.bin/openssl/man/pkeyutl.1 head/secure/usr.bin/openssl/man/rand.1 head/secure/usr.bin/openssl/man/req.1 head/secure/usr.bin/openssl/man/rsa.1 head/secure/usr.bin/openssl/man/rsautl.1 head/secure/usr.bin/openssl/man/s_client.1 head/secure/usr.bin/openssl/man/s_server.1 head/secure/usr.bin/openssl/man/s_time.1 head/secure/usr.bin/openssl/man/sess_id.1 head/secure/usr.bin/openssl/man/smime.1 head/secure/usr.bin/openssl/man/speed.1 head/secure/usr.bin/openssl/man/spkac.1 head/secure/usr.bin/openssl/man/ts.1 head/secure/usr.bin/openssl/man/tsget.1 head/secure/usr.bin/openssl/man/verify.1 head/secure/usr.bin/openssl/man/version.1 head/secure/usr.bin/openssl/man/x509.1 head/secure/usr.bin/openssl/man/x509v3_config.1 Directory Properties: head/crypto/openssl/ (props changed) Modified: head/crypto/openssl/ACKNOWLEDGMENTS ============================================================================== --- head/crypto/openssl/ACKNOWLEDGMENTS Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/ACKNOWLEDGMENTS Thu Jan 28 20:15:22 2016 (r295009) @@ -1,30 +1,2 @@ -The OpenSSL project depends on volunteer efforts and financial support from -the end user community. That support comes in the form of donations and paid -sponsorships, software support contracts, paid consulting services -and commissioned software development. - -Since all these activities support the continued development and improvement -of OpenSSL we consider all these clients and customers as sponsors of the -OpenSSL project. - -We would like to identify and thank the following such sponsors for their past -or current significant support of the OpenSSL project: - -Major support: - - Qualys http://www.qualys.com/ - -Very significant support: - - OpenGear: http://www.opengear.com/ - -Significant support: - - PSW Group: http://www.psw.net/ - Acano Ltd. http://acano.com/ - -Please note that we ask permission to identify sponsors and that some sponsors -we consider eligible for inclusion here have requested to remain anonymous. - -Additional sponsorship or financial support is always welcome: for more -information please contact the OpenSSL Software Foundation. +Please https://www.openssl.org/community/thanks.html for the current +acknowledgements. Modified: head/crypto/openssl/CHANGES ============================================================================== --- head/crypto/openssl/CHANGES Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/CHANGES Thu Jan 28 20:15:22 2016 (r295009) @@ -2,6 +2,54 @@ OpenSSL CHANGES _______________ + Changes between 1.0.2e and 1.0.2f [28 Jan 2016] + + *) DH small subgroups + + Historically OpenSSL only ever generated DH parameters based on "safe" + primes. More recently (in version 1.0.2) support was provided for + generating X9.42 style parameter files such as those required for RFC 5114 + support. The primes used in such files may not be "safe". Where an + application is using DH configured with parameters based on primes that are + not "safe" then an attacker could use this fact to find a peer's private + DH exponent. This attack requires that the attacker complete multiple + handshakes in which the peer uses the same private DH exponent. For example + this could be used to discover a TLS server's private DH exponent if it's + reusing the private DH exponent or it's using a static DH ciphersuite. + + OpenSSL provides the option SSL_OP_SINGLE_DH_USE for ephemeral DH (DHE) in + TLS. It is not on by default. If the option is not set then the server + reuses the same private DH exponent for the life of the server process and + would be vulnerable to this attack. It is believed that many popular + applications do set this option and would therefore not be at risk. + + The fix for this issue adds an additional check where a "q" parameter is + available (as is the case in X9.42 based parameters). This detects the + only known attack, and is the only possible defense for static DH + ciphersuites. This could have some performance impact. + + Additionally the SSL_OP_SINGLE_DH_USE option has been switched on by + default and cannot be disabled. This could have some performance impact. + + This issue was reported to OpenSSL by Antonio Sanso (Adobe). + (CVE-2016-0701) + [Matt Caswell] + + *) SSLv2 doesn't block disabled ciphers + + A malicious client can negotiate SSLv2 ciphers that have been disabled on + the server and complete SSLv2 handshakes even if all SSLv2 ciphers have + been disabled, provided that the SSLv2 protocol was not also disabled via + SSL_OP_NO_SSLv2. + + This issue was reported to OpenSSL on 26th December 2015 by Nimrod Aviram + and Sebastian Schinzel. + (CVE-2015-3197) + [Viktor Dukhovni] + + *) Reject DH handshakes with parameters shorter than 1024 bits. + [Kurt Roeckx] + Changes between 1.0.2d and 1.0.2e [3 Dec 2015] *) BN_mod_exp may produce incorrect results on x86_64 Modified: head/crypto/openssl/Configure ============================================================================== --- head/crypto/openssl/Configure Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/Configure Thu Jan 28 20:15:22 2016 (r295009) @@ -124,6 +124,9 @@ my $clang_disabled_warnings = "-Wno-unus # -Wextended-offsetof my $clang_devteam_warn = "-Wno-unused-parameter -Wno-missing-field-initializers -Wno-language-extension-token -Wno-extended-offsetof -Qunused-arguments"; +# Warn that "make depend" should be run? +my $warn_make_depend = 0; + my $strict_warnings = 0; my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL"; @@ -1513,7 +1516,7 @@ if ($target =~ /\-icc$/) # Intel C compi # linker only when --prefix is not /usr. if ($target =~ /^BSD\-/) { - $shared_ldflag.=" -Wl,-rpath,\$(LIBRPATH)" if ($prefix !~ m|^/usr[/]*$|); + $shared_ldflag.=" -Wl,-rpath,\$\$(LIBRPATH)" if ($prefix !~ m|^/usr[/]*$|); } if ($sys_id ne "") @@ -2028,14 +2031,8 @@ EOF &dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s'); } if ($depflags ne $default_depflags && !$make_depend) { - print < (note that your message will be recorded in the request tracker publicly readable - via http://www.openssl.org/support/rt.html and will be forwarded to a - public mailing list). Include the output of "make report" in your message. - Please check out the request tracker. Maybe the bug was already - reported or has already been fixed. + at https://www.openssl.org/community/index.html#bugs and will be + forwarded to a public mailing list). Include the output of "make + report" in your message. Please check out the request tracker. Maybe + the bug was already reported or has already been fixed. [If you encounter assembler error messages, try the "no-asm" configuration option as an immediate fix.] Modified: head/crypto/openssl/LICENSE ============================================================================== --- head/crypto/openssl/LICENSE Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/LICENSE Thu Jan 28 20:15:22 2016 (r295009) @@ -12,7 +12,7 @@ --------------- /* ==================================================================== - * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1998-2016 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/crypto/openssl/Makefile ============================================================================== --- head/crypto/openssl/Makefile Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/Makefile Thu Jan 28 20:15:22 2016 (r295009) @@ -4,7 +4,7 @@ ## Makefile for OpenSSL ## -VERSION=1.0.2e +VERSION=1.0.2f MAJOR=1 MINOR=0.2 SHLIB_VERSION_NUMBER=1.0.0 @@ -182,8 +182,7 @@ SHARED_LDFLAGS= GENERAL= Makefile BASENAME= openssl NAME= $(BASENAME)-$(VERSION) -TARFILE= $(NAME).tar -WTARFILE= $(NAME)-win.tar +TARFILE= ../$(NAME).tar EXHEADER= e_os2.h HEADER= e_os.h @@ -501,38 +500,35 @@ TABLE: Configure # would occur. Therefore the list of files is temporarily stored into a file # and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal # tar does not support the --files-from option. -TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \ - --owner openssl:0 --group openssl:0 \ - --transform 's|^|openssl-$(VERSION)/|' \ +TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from $(TARFILE).list \ + --owner 0 --group 0 \ + --transform 's|^|$(NAME)/|' \ -cvf - -../$(TARFILE).list: +$(TARFILE).list: find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \ \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \ - \! -name '*test' \! -name '.#*' \! -name '*~' \ - | sort > ../$(TARFILE).list + \( \! -name '*test' -o -name bctest -o -name pod2mantest \) \ + \! -name '.#*' \! -name '*~' \! -type l \ + | sort > $(TARFILE).list -tar: ../$(TARFILE).list +tar: $(TARFILE).list find . -type d -print | xargs chmod 755 find . -type f -print | xargs chmod a+r find . -type f -perm -0100 -print | xargs chmod a+x - $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE).gz - -tar-snap: ../$(TARFILE).list - $(TAR_COMMAND) > ../$(TARFILE) - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE) + $(TAR_COMMAND) | gzip --best > $(TARFILE).gz + rm -f $(TARFILE).list + ls -l $(TARFILE).gz + +tar-snap: $(TARFILE).list + $(TAR_COMMAND) > $(TARFILE) + rm -f $(TARFILE).list + ls -l $(TARFILE) dist: $(PERL) Configure dist - @$(MAKE) dist_pem_h @$(MAKE) SDIRS='$(SDIRS)' clean - @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar - -dist_pem_h: - (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar install: all install_docs install_sw Modified: head/crypto/openssl/Makefile.org ============================================================================== --- head/crypto/openssl/Makefile.org Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/Makefile.org Thu Jan 28 20:15:22 2016 (r295009) @@ -180,8 +180,7 @@ SHARED_LDFLAGS= GENERAL= Makefile BASENAME= openssl NAME= $(BASENAME)-$(VERSION) -TARFILE= $(NAME).tar -WTARFILE= $(NAME)-win.tar +TARFILE= ../$(NAME).tar EXHEADER= e_os2.h HEADER= e_os.h @@ -499,38 +498,35 @@ TABLE: Configure # would occur. Therefore the list of files is temporarily stored into a file # and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal # tar does not support the --files-from option. -TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \ - --owner openssl:0 --group openssl:0 \ - --transform 's|^|openssl-$(VERSION)/|' \ +TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from $(TARFILE).list \ + --owner 0 --group 0 \ + --transform 's|^|$(NAME)/|' \ -cvf - -../$(TARFILE).list: +$(TARFILE).list: find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \ \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \ - \! -name '*test' \! -name '.#*' \! -name '*~' \ - | sort > ../$(TARFILE).list + \( \! -name '*test' -o -name bctest -o -name pod2mantest \) \ + \! -name '.#*' \! -name '*~' \! -type l \ + | sort > $(TARFILE).list -tar: ../$(TARFILE).list +tar: $(TARFILE).list find . -type d -print | xargs chmod 755 find . -type f -print | xargs chmod a+r find . -type f -perm -0100 -print | xargs chmod a+x - $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE).gz - -tar-snap: ../$(TARFILE).list - $(TAR_COMMAND) > ../$(TARFILE) - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE) + $(TAR_COMMAND) | gzip --best > $(TARFILE).gz + rm -f $(TARFILE).list + ls -l $(TARFILE).gz + +tar-snap: $(TARFILE).list + $(TAR_COMMAND) > $(TARFILE) + rm -f $(TARFILE).list + ls -l $(TARFILE) dist: $(PERL) Configure dist - @$(MAKE) dist_pem_h @$(MAKE) SDIRS='$(SDIRS)' clean - @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar - -dist_pem_h: - (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar install: all install_docs install_sw Modified: head/crypto/openssl/NEWS ============================================================================== --- head/crypto/openssl/NEWS Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/NEWS Thu Jan 28 20:15:22 2016 (r295009) @@ -5,6 +5,11 @@ This file gives a brief overview of the major changes between each OpenSSL release. For more details please read the CHANGES file. + Major changes between OpenSSL 1.0.2e and OpenSSL 1.0.2f [28 Jan 2016] + + o DH small subgroups (CVE-2016-0701) + o SSLv2 doesn't block disabled ciphers (CVE-2015-3197) + Major changes between OpenSSL 1.0.2d and OpenSSL 1.0.2e [3 Dec 2015] o BN_mod_exp may produce incorrect results on x86_64 (CVE-2015-3193) Modified: head/crypto/openssl/README ============================================================================== --- head/crypto/openssl/README Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/README Thu Jan 28 20:15:22 2016 (r295009) @@ -1,5 +1,5 @@ - OpenSSL 1.0.2e 3 Dec 2015 + OpenSSL 1.0.2f 28 Jan 2016 Copyright (c) 1998-2015 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson @@ -90,11 +90,12 @@ In order to avoid spam, this is a moderated mailing list, and it might take a day for the ticket to show up. (We also scan posts to make sure - that security disclosures aren't publically posted by mistake.) Mail to - this address is recorded in the public RT (request tracker) database (see - https://www.openssl.org/support/rt.html for details) and also forwarded - the public openssl-dev mailing list. Confidential mail may be sent to - openssl-security@openssl.org (PGP key available from the key servers). + that security disclosures aren't publically posted by mistake.) Mail + to this address is recorded in the public RT (request tracker) database + (see https://www.openssl.org/community/index.html#bugs for details) and + also forwarded the public openssl-dev mailing list. Confidential mail + may be sent to openssl-security@openssl.org (PGP key available from the + key servers). Please do NOT use this for general assistance or support queries. Just because something doesn't work the way you expect does not mean it Modified: head/crypto/openssl/apps/engine.c ============================================================================== --- head/crypto/openssl/apps/engine.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/apps/engine.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* apps/engine.c -*- mode: C; c-file-style: "eay" -*- */ +/* apps/engine.c */ /* * Written by Richard Levitte for the OpenSSL project * 2000. Modified: head/crypto/openssl/apps/ocsp.c ============================================================================== --- head/crypto/openssl/apps/ocsp.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/apps/ocsp.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1041,7 +1041,7 @@ static int make_ocsp_response(OCSP_RESPO bs = OCSP_BASICRESP_new(); thisupd = X509_gmtime_adj(NULL, 0); if (ndays != -1) - nextupd = X509_gmtime_adj(NULL, nmin * 60 + ndays * 3600 * 24); + nextupd = X509_time_adj_ex(NULL, ndays, nmin * 60, NULL); /* Examine each certificate id in the request */ for (i = 0; i < id_count; i++) { Modified: head/crypto/openssl/apps/pkcs12.c ============================================================================== --- head/crypto/openssl/apps/pkcs12.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/apps/pkcs12.c Thu Jan 28 20:15:22 2016 (r295009) @@ -79,7 +79,8 @@ const EVP_CIPHER *enc; # define CLCERTS 0x8 # define CACERTS 0x10 -int get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **chain); +static int get_cert_chain(X509 *cert, X509_STORE *store, + STACK_OF(X509) **chain); int dump_certs_keys_p12(BIO *out, PKCS12 *p12, char *pass, int passlen, int options, char *pempass); int dump_certs_pkeys_bags(BIO *out, STACK_OF(PKCS12_SAFEBAG) *bags, @@ -594,7 +595,7 @@ int MAIN(int argc, char **argv) vret = get_cert_chain(ucert, store, &chain2); X509_STORE_free(store); - if (!vret) { + if (vret == X509_V_OK) { /* Exclude verified certificate */ for (i = 1; i < sk_X509_num(chain2); i++) sk_X509_push(certs, sk_X509_value(chain2, i)); @@ -602,7 +603,7 @@ int MAIN(int argc, char **argv) X509_free(sk_X509_value(chain2, 0)); sk_X509_free(chain2); } else { - if (vret >= 0) + if (vret != X509_V_ERR_UNSPECIFIED) BIO_printf(bio_err, "Error %s getting chain.\n", X509_verify_cert_error_string(vret)); else @@ -906,36 +907,25 @@ int dump_certs_pkeys_bag(BIO *out, PKCS1 /* Given a single certificate return a verified chain or NULL if error */ -/* Hope this is OK .... */ - -int get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **chain) +static int get_cert_chain(X509 *cert, X509_STORE *store, + STACK_OF(X509) **chain) { X509_STORE_CTX store_ctx; - STACK_OF(X509) *chn; + STACK_OF(X509) *chn = NULL; int i = 0; - /* - * FIXME: Should really check the return status of X509_STORE_CTX_init - * for an error, but how that fits into the return value of this function - * is less obvious. - */ - X509_STORE_CTX_init(&store_ctx, store, cert, NULL); - if (X509_verify_cert(&store_ctx) <= 0) { - i = X509_STORE_CTX_get_error(&store_ctx); - if (i == 0) - /* - * avoid returning 0 if X509_verify_cert() did not set an - * appropriate error value in the context - */ - i = -1; - chn = NULL; - goto err; - } else + if (!X509_STORE_CTX_init(&store_ctx, store, cert, NULL)) { + *chain = NULL; + return X509_V_ERR_UNSPECIFIED; + } + + if (X509_verify_cert(&store_ctx) > 0) chn = X509_STORE_CTX_get1_chain(&store_ctx); - err: + else if ((i = X509_STORE_CTX_get_error(&store_ctx)) == 0) + i = X509_V_ERR_UNSPECIFIED; + X509_STORE_CTX_cleanup(&store_ctx); *chain = chn; - return i; } Modified: head/crypto/openssl/apps/pkeyutl.c ============================================================================== --- head/crypto/openssl/apps/pkeyutl.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/apps/pkeyutl.c Thu Jan 28 20:15:22 2016 (r295009) @@ -74,10 +74,11 @@ static void usage(void); static EVP_PKEY_CTX *init_ctx(int *pkeysize, char *keyfile, int keyform, int key_type, - char *passargin, int pkey_op, ENGINE *e); + char *passargin, int pkey_op, ENGINE *e, + int impl); static int setup_peer(BIO *err, EVP_PKEY_CTX *ctx, int peerform, - const char *file); + const char *file, ENGINE* e); static int do_keyop(EVP_PKEY_CTX *ctx, int pkey_op, unsigned char *out, size_t *poutlen, @@ -97,6 +98,7 @@ int MAIN(int argc, char **argv) EVP_PKEY_CTX *ctx = NULL; char *passargin = NULL; int keysize = -1; + int engine_impl = 0; unsigned char *buf_in = NULL, *buf_out = NULL, *sig = NULL; size_t buf_outlen; @@ -137,7 +139,7 @@ int MAIN(int argc, char **argv) else { ctx = init_ctx(&keysize, *(++argv), keyform, key_type, - passargin, pkey_op, e); + passargin, pkey_op, e, engine_impl); if (!ctx) { BIO_puts(bio_err, "Error initializing context\n"); ERR_print_errors(bio_err); @@ -147,7 +149,7 @@ int MAIN(int argc, char **argv) } else if (!strcmp(*argv, "-peerkey")) { if (--argc < 1) badarg = 1; - else if (!setup_peer(bio_err, ctx, peerform, *(++argv))) + else if (!setup_peer(bio_err, ctx, peerform, *(++argv), e)) badarg = 1; } else if (!strcmp(*argv, "-passin")) { if (--argc < 1) @@ -171,6 +173,8 @@ int MAIN(int argc, char **argv) badarg = 1; else e = setup_engine(bio_err, *(++argv), 0); + } else if (!strcmp(*argv, "-engine_impl")) { + engine_impl = 1; } #endif else if (!strcmp(*argv, "-pubin")) @@ -368,7 +372,8 @@ static void usage() BIO_printf(bio_err, "-hexdump hex dump output\n"); #ifndef OPENSSL_NO_ENGINE BIO_printf(bio_err, - "-engine e use engine e, possibly a hardware device.\n"); + "-engine e use engine e, maybe a hardware device, for loading keys.\n"); + BIO_printf(bio_err, "-engine_impl also use engine given by -engine for crypto operations\n"); #endif BIO_printf(bio_err, "-passin arg pass phrase source\n"); @@ -376,10 +381,12 @@ static void usage() static EVP_PKEY_CTX *init_ctx(int *pkeysize, char *keyfile, int keyform, int key_type, - char *passargin, int pkey_op, ENGINE *e) + char *passargin, int pkey_op, ENGINE *e, + int engine_impl) { EVP_PKEY *pkey = NULL; EVP_PKEY_CTX *ctx = NULL; + ENGINE *impl = NULL; char *passin = NULL; int rv = -1; X509 *x; @@ -418,9 +425,14 @@ static EVP_PKEY_CTX *init_ctx(int *pkeys if (!pkey) goto end; - - ctx = EVP_PKEY_CTX_new(pkey, e); - + +#ifndef OPENSSL_NO_ENGINE + if (engine_impl) + impl = e; +#endif + + ctx = EVP_PKEY_CTX_new(pkey, impl); + EVP_PKEY_free(pkey); if (!ctx) @@ -467,16 +479,20 @@ static EVP_PKEY_CTX *init_ctx(int *pkeys } static int setup_peer(BIO *err, EVP_PKEY_CTX *ctx, int peerform, - const char *file) + const char *file, ENGINE* e) { EVP_PKEY *peer = NULL; + ENGINE* engine = NULL; int ret; if (!ctx) { BIO_puts(err, "-peerkey command before -inkey\n"); return 0; } - peer = load_pubkey(bio_err, file, peerform, 0, NULL, NULL, "Peer Key"); + if (peerform == FORMAT_ENGINE) + engine = e; + + peer = load_pubkey(bio_err, file, peerform, 0, NULL, engine, "Peer Key"); if (!peer) { BIO_printf(bio_err, "Error reading peer key %s\n", file); Modified: head/crypto/openssl/apps/s_client.c ============================================================================== --- head/crypto/openssl/apps/s_client.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/apps/s_client.c Thu Jan 28 20:15:22 2016 (r295009) @@ -308,7 +308,7 @@ static void sc_usage(void) " -connect host:port - who to connect to (default is %s:%s)\n", SSL_HOST_NAME, PORT_STR); BIO_printf(bio_err, - " -verify_host host - check peer certificate matches \"host\"\n"); + " -verify_hostname host - check peer certificate matches \"host\"\n"); BIO_printf(bio_err, " -verify_email email - check peer certificate matches \"email\"\n"); BIO_printf(bio_err, Modified: head/crypto/openssl/apps/s_server.c ============================================================================== --- head/crypto/openssl/apps/s_server.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/apps/s_server.c Thu Jan 28 20:15:22 2016 (r295009) @@ -498,7 +498,7 @@ static void sv_usage(void) BIO_printf(bio_err, " -accept arg - port to accept on (default is %d)\n", PORT); BIO_printf(bio_err, - " -verify_host host - check peer certificate matches \"host\"\n"); + " -verify_hostname host - check peer certificate matches \"host\"\n"); BIO_printf(bio_err, " -verify_email email - check peer certificate matches \"email\"\n"); BIO_printf(bio_err, Modified: head/crypto/openssl/apps/speed.c ============================================================================== --- head/crypto/openssl/apps/speed.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/apps/speed.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* apps/speed.c -*- mode:C; c-file-style: "eay" -*- */ +/* apps/speed.c */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * Modified: head/crypto/openssl/apps/x509.c ============================================================================== --- head/crypto/openssl/apps/x509.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/apps/x509.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1226,12 +1226,7 @@ static int sign(X509 *x, EVP_PKEY *pkey, if (X509_gmtime_adj(X509_get_notBefore(x), 0) == NULL) goto err; - /* Lets just make it 12:00am GMT, Jan 1 1970 */ - /* memcpy(x->cert_info->validity->notBefore,"700101120000Z",13); */ - /* 28 days to be certified */ - - if (X509_gmtime_adj(X509_get_notAfter(x), (long)60 * 60 * 24 * days) == - NULL) + if (X509_time_adj_ex(X509_get_notAfter(x), days, 0, NULL) == NULL) goto err; if (!X509_set_pubkey(x, pkey)) Modified: head/crypto/openssl/crypto/aes/aes.h ============================================================================== --- head/crypto/openssl/crypto/aes/aes.h Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes.h Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes.h */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/aes/aes_cbc.c ============================================================================== --- head/crypto/openssl/crypto/aes/aes_cbc.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_cbc.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_cbc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_cbc.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/aes/aes_cfb.c ============================================================================== --- head/crypto/openssl/crypto/aes/aes_cfb.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_cfb.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_cfb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_cfb.c */ /* ==================================================================== * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/aes/aes_core.c ============================================================================== --- head/crypto/openssl/crypto/aes/aes_core.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_core.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_core.c */ /** * rijndael-alg-fst.c * Modified: head/crypto/openssl/crypto/aes/aes_ctr.c ============================================================================== --- head/crypto/openssl/crypto/aes/aes_ctr.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_ctr.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ctr.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ctr.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/aes/aes_ecb.c ============================================================================== --- head/crypto/openssl/crypto/aes/aes_ecb.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_ecb.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ecb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ecb.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/aes/aes_ige.c ============================================================================== --- head/crypto/openssl/crypto/aes/aes_ige.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_ige.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ige.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ige.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/aes/aes_locl.h ============================================================================== --- head/crypto/openssl/crypto/aes/aes_locl.h Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_locl.h Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes.h */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/aes/aes_misc.c ============================================================================== --- head/crypto/openssl/crypto/aes/aes_misc.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_misc.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_misc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_misc.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/aes/aes_ofb.c ============================================================================== --- head/crypto/openssl/crypto/aes/aes_ofb.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_ofb.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ofb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ofb.c */ /* ==================================================================== * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/aes/aes_x86core.c ============================================================================== --- head/crypto/openssl/crypto/aes/aes_x86core.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/aes_x86core.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_core.c */ /** * rijndael-alg-fst.c * Modified: head/crypto/openssl/crypto/aes/asm/aesni-mb-x86_64.pl ============================================================================== --- head/crypto/openssl/crypto/aes/asm/aesni-mb-x86_64.pl Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/asm/aesni-mb-x86_64.pl Thu Jan 28 20:15:22 2016 (r295009) @@ -63,7 +63,7 @@ if (!$avx && $win64 && ($flavour =~ /mas $avx = ($1>=10) + ($1>=11); } -if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) { +if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9]\.[0-9]+)/) { $avx = ($2>=3.0) + ($2>3.0); } Modified: head/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl ============================================================================== --- head/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl Thu Jan 28 20:15:22 2016 (r295009) @@ -94,7 +94,7 @@ $avx=1 if (!$avx && $win64 && ($flavour $avx=1 if (!$avx && $win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) && `ml64 2>&1` =~ /Version ([0-9]+)\./ && $1>=10); -$avx=1 if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/ && $2>=3.0); +$avx=1 if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9]\.[0-9]+)/ && $2>=3.0); $shaext=1; ### set to zero if compiling for 1.0.1 Modified: head/crypto/openssl/crypto/aes/asm/aesni-sha256-x86_64.pl ============================================================================== --- head/crypto/openssl/crypto/aes/asm/aesni-sha256-x86_64.pl Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/aes/asm/aesni-sha256-x86_64.pl Thu Jan 28 20:15:22 2016 (r295009) @@ -59,7 +59,7 @@ if (!$avx && $win64 && ($flavour =~ /mas $avx = ($1>=10) + ($1>=12); } -if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) { +if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9]\.[0-9]+)/) { $avx = ($2>=3.0) + ($2>3.0); } Modified: head/crypto/openssl/crypto/bio/bio.h ============================================================================== --- head/crypto/openssl/crypto/bio/bio.h Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/bio/bio.h Thu Jan 28 20:15:22 2016 (r295009) @@ -479,11 +479,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_hostname(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0) # define BIO_get_conn_port(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1) # define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2) -# define BIO_get_conn_int_port(b) BIO_int_ctrl(b,BIO_C_GET_CONNECT,3,0) +# define BIO_get_conn_int_port(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,0,NULL) # define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) -/* BIO_s_accept_socket() */ +/* BIO_s_accept() */ # define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) # define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0) /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ @@ -496,6 +496,7 @@ struct bio_dgram_sctp_prinfo { # define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) # define BIO_get_bind_mode(b,mode) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) +/* BIO_s_accept() and BIO_s_connect() */ # define BIO_do_connect(b) BIO_do_handshake(b) # define BIO_do_accept(b) BIO_do_handshake(b) # define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) @@ -515,12 +516,15 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_url(b,url) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,(char *)(url)) # define BIO_get_no_connect_return(b) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,NULL) +/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ # define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) # define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) +/* BIO_s_file() */ # define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) # define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) +/* BIO_s_fd() and BIO_s_file() */ # define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) # define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) Modified: head/crypto/openssl/crypto/bio/bss_bio.c ============================================================================== --- head/crypto/openssl/crypto/bio/bss_bio.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/bio/bss_bio.c Thu Jan 28 20:15:22 2016 (r295009) @@ -1,4 +1,4 @@ -/* crypto/bio/bss_bio.c -*- Mode: C; c-file-style: "eay" -*- */ +/* crypto/bio/bss_bio.c */ /* ==================================================================== * Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. * Modified: head/crypto/openssl/crypto/bio/bss_conn.c ============================================================================== --- head/crypto/openssl/crypto/bio/bss_conn.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/bio/bss_conn.c Thu Jan 28 20:15:22 2016 (r295009) @@ -419,7 +419,7 @@ static long conn_ctrl(BIO *b, int cmd, l { BIO *dbio; int *ip; - const char **pptr; + const char **pptr = NULL; long ret = 1; BIO_CONNECT *data; @@ -442,19 +442,28 @@ static long conn_ctrl(BIO *b, int cmd, l case BIO_C_GET_CONNECT: if (ptr != NULL) { pptr = (const char **)ptr; - if (num == 0) { - *pptr = data->param_hostname; + } - } else if (num == 1) { - *pptr = data->param_port; - } else if (num == 2) { - *pptr = (char *)&(data->ip[0]); - } else if (num == 3) { - *((int *)ptr) = data->port; + if (b->init) { + if (pptr != NULL) { + ret = 1; + if (num == 0) { + *pptr = data->param_hostname; + } else if (num == 1) { + *pptr = data->param_port; + } else if (num == 2) { + *pptr = (char *)&(data->ip[0]); + } else { + ret = 0; + } + } + if (num == 3) { + ret = data->port; } - if ((!b->init) || (ptr == NULL)) + } else { + if (pptr != NULL) *pptr = "not initialized"; - ret = 1; + ret = 0; } break; case BIO_C_SET_CONNECT: Modified: head/crypto/openssl/crypto/bio/bss_dgram.c ============================================================================== --- head/crypto/openssl/crypto/bio/bss_dgram.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/bio/bss_dgram.c Thu Jan 28 20:15:22 2016 (r295009) @@ -519,10 +519,8 @@ static long dgram_ctrl(BIO *b, int cmd, switch (cmd) { case BIO_CTRL_RESET: num = 0; - case BIO_C_FILE_SEEK: ret = 0; break; - case BIO_C_FILE_TELL: case BIO_CTRL_INFO: ret = 0; break; Modified: head/crypto/openssl/crypto/bn/asm/rsaz-x86_64.pl ============================================================================== --- head/crypto/openssl/crypto/bn/asm/rsaz-x86_64.pl Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/bn/asm/rsaz-x86_64.pl Thu Jan 28 20:15:22 2016 (r295009) @@ -113,7 +113,7 @@ if (!$addx && $win64 && ($flavour =~ /ma $addx = ($1>=12); } -if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) { +if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9])\.([0-9]+)/) { my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10 $addx = ($ver>=3.03); } Modified: head/crypto/openssl/crypto/bn/asm/x86_64-mont.pl ============================================================================== --- head/crypto/openssl/crypto/bn/asm/x86_64-mont.pl Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/bn/asm/x86_64-mont.pl Thu Jan 28 20:15:22 2016 (r295009) @@ -68,7 +68,7 @@ if (!$addx && $win64 && ($flavour =~ /ma $addx = ($1>=12); } -if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) { +if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9])\.([0-9]+)/) { my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10 $addx = ($ver>=3.03); } Modified: head/crypto/openssl/crypto/bn/asm/x86_64-mont5.pl ============================================================================== --- head/crypto/openssl/crypto/bn/asm/x86_64-mont5.pl Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/bn/asm/x86_64-mont5.pl Thu Jan 28 20:15:22 2016 (r295009) @@ -53,7 +53,7 @@ if (!$addx && $win64 && ($flavour =~ /ma $addx = ($1>=12); } -if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) { +if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9])\.([0-9]+)/) { my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10 $addx = ($ver>=3.03); } Modified: head/crypto/openssl/crypto/bn/bn_exp.c ============================================================================== --- head/crypto/openssl/crypto/bn/bn_exp.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/bn/bn_exp.c Thu Jan 28 20:15:22 2016 (r295009) @@ -282,9 +282,14 @@ int BN_mod_exp_recp(BIGNUM *r, const BIG } bits = BN_num_bits(p); - if (bits == 0) { - ret = BN_one(r); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(r); + } else { + ret = BN_one(r); + } return ret; } @@ -418,7 +423,13 @@ int BN_mod_exp_mont(BIGNUM *rr, const BI } bits = BN_num_bits(p); if (bits == 0) { - ret = BN_one(rr); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(rr); + } else { + ret = BN_one(rr); + } return ret; } @@ -639,7 +650,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBU * precomputation memory layout to limit data-dependency to a minimum to * protect secret exponents (cf. the hyper-threading timing attacks pointed * out by Colin Percival, - * http://www.daemong-consideredperthreading-considered-harmful/) + * http://www.daemonology.net/hyperthreading-considered-harmful/) */ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, @@ -671,7 +682,13 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr bits = BN_num_bits(p); if (bits == 0) { - ret = BN_one(rr); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(rr); + } else { + ret = BN_one(rr); + } return ret; } @@ -1182,8 +1199,9 @@ int BN_mod_exp_mont_word(BIGNUM *rr, BN_ if (BN_is_one(m)) { ret = 1; BN_zero(rr); - } else + } else { ret = BN_one(rr); + } return ret; } if (a == 0) { @@ -1297,9 +1315,14 @@ int BN_mod_exp_simple(BIGNUM *r, const B } bits = BN_num_bits(p); - - if (bits == 0) { - ret = BN_one(r); + if (bits == 0) { + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(r); + } else { + ret = BN_one(r); + } return ret; } Modified: head/crypto/openssl/crypto/bn/exptest.c ============================================================================== --- head/crypto/openssl/crypto/bn/exptest.c Thu Jan 28 19:21:01 2016 (r295008) +++ head/crypto/openssl/crypto/bn/exptest.c Thu Jan 28 20:15:22 2016 (r295009) @@ -73,14 +73,34 @@ static const char rnd_seed[] = "string to make the random number generator think it has entropy"; /* + * Test that r == 0 in test_exp_mod_zero(). Returns one on success, + * returns zero and prints debug output otherwise. + */ +static int a_is_zero_mod_one(const char *method, const BIGNUM *r, + const BIGNUM *a) { + if (!BN_is_zero(r)) { + fprintf(stderr, "%s failed:\n", method); + fprintf(stderr, "a ** 0 mod 1 = r (should be 0)\n"); + fprintf(stderr, "a = "); + BN_print_fp(stderr, a); + fprintf(stderr, "\nr = "); + BN_print_fp(stderr, r); + fprintf(stderr, "\n"); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Jan 28 20:20:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 456C5A3CBB6; Thu, 28 Jan 2016 20:20:06 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0C60A177E; Thu, 28 Jan 2016 20:20:05 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SKK4ms002146; Thu, 28 Jan 2016 20:20:04 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SKK4u9002145; Thu, 28 Jan 2016 20:20:04 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601282020.u0SKK4u9002145@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 28 Jan 2016 20:20:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r295010 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 20:20:06 -0000 Author: andrew Date: Thu Jan 28 20:20:04 2016 New Revision: 295010 URL: https://svnweb.freebsd.org/changeset/base/295010 Log: Raise my limit to import device-tree files Modified: svnadmin/conf/sizelimit.conf Modified: svnadmin/conf/sizelimit.conf ============================================================================== --- svnadmin/conf/sizelimit.conf Thu Jan 28 20:15:22 2016 (r295009) +++ svnadmin/conf/sizelimit.conf Thu Jan 28 20:20:04 2016 (r295010) @@ -15,6 +15,7 @@ # First field is username, second field is the raised limit required. achim +andrew bapt brooks davidcs From owner-svn-src-all@freebsd.org Thu Jan 28 20:21:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 51520A3CC24; Thu, 28 Jan 2016 20:21:21 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6A45319B2; Thu, 28 Jan 2016 20:21:20 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SKLJ2c004697; Thu, 28 Jan 2016 20:21:19 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SKLHno004672; Thu, 28 Jan 2016 20:21:17 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601282021.u0SKLHno004672@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 28 Jan 2016 20:21:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r295011 - in vendor/device-tree/dist: Bindings Bindings/arc Bindings/arm Bindings/arm/altera Bindings/arm/apm Bindings/arm/bcm Bindings/arm/calxeda Bindings/arm/cpu-enable-method Bindin... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 20:21:21 -0000 Author: andrew Date: Thu Jan 28 20:21:15 2016 New Revision: 295011 URL: https://svnweb.freebsd.org/changeset/base/295011 Log: Import updated device-tree files from: git://xenbits.xen.org/people/ianc/device-tree-rebasing.git @afaecb70e7ebb983c86d5eb45ff952e9af79c462 Added: vendor/device-tree/dist/Bindings/arc/archs-pct.txt (contents, props changed) vendor/device-tree/dist/Bindings/arc/axs101.txt (contents, props changed) vendor/device-tree/dist/Bindings/arc/axs103.txt (contents, props changed) vendor/device-tree/dist/Bindings/arc/pct.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/al,alpine.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/altera.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-controller.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/apm/ vendor/device-tree/dist/Bindings/arm/apm/scu.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/arm,scpi.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/armada-39x.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/armv7m_systick.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351-cpu-method.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm21664.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm2835.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm4708.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm63138.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,brcmstb.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,cygnus.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,nsp-cpu-method.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/brcm,nsp.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/ns2.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/bcm/raspberrypi,bcm2835-firmware.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/compulab-boards.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/cpu-enable-method/al,alpine-smp vendor/device-tree/dist/Bindings/arm/freescale/ vendor/device-tree/dist/Bindings/arm/freescale/fsl,vf610-mscm-cpucfg.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/freescale/fsl,vf610-mscm-ir.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/l2c2x0.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,apmixedsys.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,imgsys.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,infracfg.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,mmsys.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,pericfg.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,topckgen.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,vdecsys.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,vencltsys.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,vencsys.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/msm/qcom,idle-state.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/mvebu-cpu-config.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/omap/ctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/omap/l4.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/samsung/samsung-boards.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/scu.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/secure.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/sp810.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/technologic.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/tegra/nvidia,nvec.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/tegra/nvidia,tegra30-actmon.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/uniphier/ vendor/device-tree/dist/Bindings/arm/uniphier/cache-uniphier.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/ux500/boards.txt (contents, props changed) vendor/device-tree/dist/Bindings/arm/zte.txt (contents, props changed) vendor/device-tree/dist/Bindings/ata/ahci-ceva.txt (contents, props changed) vendor/device-tree/dist/Bindings/ata/ahci-fsl-qoriq.txt (contents, props changed) vendor/device-tree/dist/Bindings/ata/brcm,sata-brcmstb.txt (contents, props changed) vendor/device-tree/dist/Bindings/board/ vendor/device-tree/dist/Bindings/board/fsl-board.txt (contents, props changed) vendor/device-tree/dist/Bindings/bus/brcm,bus-axi.txt (contents, props changed) vendor/device-tree/dist/Bindings/bus/renesas,bsc.txt (contents, props changed) vendor/device-tree/dist/Bindings/bus/simple-pm-bus.txt (contents, props changed) vendor/device-tree/dist/Bindings/bus/sunxi-rsb.txt (contents, props changed) vendor/device-tree/dist/Bindings/bus/uniphier-system-bus.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/amlogic,meson8b-clkc.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/arm-syscon-icst.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/brcm,bcm2835-aux-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/brcm,bcm2835-cprman.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/brcm,iproc-clocks.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/brcm,kona-ccu.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/cs2000-cp.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/csr,atlas7-car.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/dove-divider-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/exynos5433-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/fujitsu,mb86s70-crg11.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/gpio-mux-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/hi6220-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/imx6ul-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/imx7d-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/ingenic,cgu.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/lpc1850-ccu.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/lpc1850-cgu.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/marvell,berlin.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/marvell,pxa1928.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/mt8173-cpu-dvfs.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/nvidia,tegra124-dfll.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/nvidia,tegra210-car.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/nxp,lpc3220-clk.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/nxp,lpc3220-usb-clk.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/pistachio-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/pwm-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/qca,ath79-pll.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/renesas,cpg-mssr.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/renesas,h8300-div-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/renesas,h8s2678-pll-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/renesas,r8a7778-cpg-clocks.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/rockchip,rk3036-cru.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/rockchip,rk3228-cru.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/rockchip,rk3368-cru.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/samsung,s2mps11.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/silabs,si514.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/st,stm32-rcc.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/tango4-clock.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/ti,cdce925.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/ux500.txt (contents, props changed) vendor/device-tree/dist/Bindings/clock/zx296702-clk.txt (contents, props changed) vendor/device-tree/dist/Bindings/common-properties.txt (contents, props changed) vendor/device-tree/dist/Bindings/cpufreq/cpufreq-st.txt (contents, props changed) vendor/device-tree/dist/Bindings/cpufreq/tegra124-cpufreq.txt (contents, props changed) vendor/device-tree/dist/Bindings/cris/ vendor/device-tree/dist/Bindings/cris/axis.txt (contents, props changed) vendor/device-tree/dist/Bindings/cris/boards.txt (contents, props changed) vendor/device-tree/dist/Bindings/crypto/img-hash.txt (contents, props changed) vendor/device-tree/dist/Bindings/crypto/marvell-cesa.txt (contents, props changed) vendor/device-tree/dist/Bindings/crypto/rockchip-crypto.txt (contents, props changed) vendor/device-tree/dist/Bindings/crypto/sun4i-ss.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ vendor/device-tree/dist/Bindings/display/arm,pl11x.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/armada/ vendor/device-tree/dist/Bindings/display/armada/marvell,dove-lcd.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/atmel/ vendor/device-tree/dist/Bindings/display/atmel,lcdc.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/atmel/hlcdc-dc.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/brcm,bcm-vc4.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/bridge/ vendor/device-tree/dist/Bindings/display/bridge/adi,adv7123.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/bridge/adi,adv7511.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/bridge/dw_hdmi.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/bridge/ps8622.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/bridge/ptn3460.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/bridge/tda998x.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/bridge/thine,thc63lvdm83d.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/cirrus,clps711x-fb.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/connector/ vendor/device-tree/dist/Bindings/display/connector/analog-tv-connector.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/connector/dvi-connector.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/connector/hdmi-connector.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/connector/vga-connector.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/etnaviv/ vendor/device-tree/dist/Bindings/display/etnaviv/etnaviv-drm.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/ vendor/device-tree/dist/Bindings/display/exynos/exynos-mic.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/exynos5433-decon.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/exynos7-decon.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/exynos_dp.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/exynos_dsim.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/exynos_hdmi.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/exynos_hdmiddc.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/exynos_hdmiphy.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/exynos_mixer.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/exynos/samsung-fimd.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/fsl,dcu.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/imx/ vendor/device-tree/dist/Bindings/display/imx/fsl,imx-fb.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/imx/fsl-imx-drm.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/imx/hdmi.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/imx/ldb.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/marvell,pxa2xx-lcdc.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/mipi-dsi-bus.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/msm/ vendor/device-tree/dist/Bindings/display/msm/dsi.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/msm/edp.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/msm/gpu.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/msm/hdmi.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/msm/mdp.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/mxsfb.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/ vendor/device-tree/dist/Bindings/display/panel/ampire,am800480r3tmqwa1h.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/auo,b080uan01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/auo,b101aw03.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/auo,b101ean01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/auo,b101xtn01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/auo,b116xw03.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/auo,b133htn01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/auo,b133xtn01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/avic,tm070ddh03.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/boe,tv080wum-nl0.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/chunghwa,claa101wa01a.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/chunghwa,claa101wb03.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/display-timing.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/edt,et057090dhu.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/edt,et070080dh6.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/edt,etm0700g0dh6.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/foxlink,fl500wvr00-a0t.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/giantplus,gpg482739qs5.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/hannstar,hsd070pww1.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/hannstar,hsd100pxn1.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/hit,tx23d38vm0caa.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/innolux,at043tn24.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/innolux,g121i1-l01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/innolux,g121x1-l03.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/innolux,n116bge.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/innolux,n156bge-l21.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/innolux,zj070na-01p.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/kyo,tcg121xglp.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/lg,lb070wv8.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/lg,ld070wx3-sl01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/lg,lg4573.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/lg,lh500wx1-sd03.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/lg,lp129qe.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/lgphilips,lb035q02.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/nec,nl4827hc19-05b.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/okaya,rs800480t-7x0gp.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/ortustech,com43h4m85ulc.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/panasonic,vvx10f004b00.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/panasonic,vvx10f034n00.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/panel-dpi.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/panel-dsi-cm.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/qiaodian,qd43003c0-40.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/samsung,ld9040.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/samsung,ltn101nt05.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/samsung,ltn140at29-301.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/samsung,s6e8aa0.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/sharp,lq101r1sx01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/sharp,ls037v7dw01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/sharp,ls043t1le01.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/shelly,sca07010-bfn-lnn.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/simple-panel.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/sony,acx565akm.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/startek,startek-kd050c.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/toppoly,td028ttec1.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/panel/tpo,td043mtea1.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/renesas,du.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/rockchip/ vendor/device-tree/dist/Bindings/display/rockchip/dw_hdmi-rockchip.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/rockchip/dw_mipi_dsi_rockchip.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/rockchip/rockchip-drm.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/rockchip/rockchip-vop.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/simple-framebuffer-sunxi.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/simple-framebuffer.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/sm501fb.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ssd1289fb.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ssd1307fb.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/st,stih4xx.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/tegra/ vendor/device-tree/dist/Bindings/display/tegra/nvidia,tegra114-mipi.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/tegra/nvidia,tegra20-host1x.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ti/ vendor/device-tree/dist/Bindings/display/ti/ti,dra7-dss.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ti/ti,omap-dss.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ti/ti,omap2-dss.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ti/ti,omap3-dss.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ti/ti,omap4-dss.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ti/ti,omap5-dss.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ti/ti,opa362.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ti/ti,tfp410.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/ti/ti,tpd12s015.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/tilcdc/ vendor/device-tree/dist/Bindings/display/tilcdc/panel.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/tilcdc/tfp410.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/tilcdc/tilcdc.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/via,vt8500-fb.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/wm,prizm-ge-rops.txt (contents, props changed) vendor/device-tree/dist/Bindings/display/wm,wm8505-fb.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/adi,axi-dmac.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/apm-xgene-dma.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/arm-pl08x.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/brcm,bcm2835-dma.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/jz4780-dma.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/lpc1850-dmamux.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/renesas,usb-dmac.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/stm32-dma.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/sun4i-dma.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/ti-dma-crossbar.txt (contents, props changed) vendor/device-tree/dist/Bindings/dma/zxdma.txt (contents, props changed) vendor/device-tree/dist/Bindings/edac/ vendor/device-tree/dist/Bindings/edac/apm-xgene-edac.txt (contents, props changed) vendor/device-tree/dist/Bindings/eeprom/ vendor/device-tree/dist/Bindings/eeprom/at25.txt (contents, props changed) vendor/device-tree/dist/Bindings/eeprom/eeprom.txt (contents, props changed) vendor/device-tree/dist/Bindings/extcon/extcon-arizona.txt (contents, props changed) vendor/device-tree/dist/Bindings/extcon/extcon-max3355.txt (contents, props changed) vendor/device-tree/dist/Bindings/extcon/extcon-usb-gpio.txt (contents, props changed) vendor/device-tree/dist/Bindings/fpga/xilinx-zynq-fpga-mgr.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/brcm,brcmstb-gpio.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/brcm,kona-gpio.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/gpio-altera.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/gpio-ath79.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/gpio-atlas7.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/gpio-etraxfs.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/gpio-mpc8xxx.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/gpio-tps65086.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/gpio-xlp.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/netxbig-gpio-ext.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/nxp,lpc1850-gpio.txt (contents, props changed) vendor/device-tree/dist/Bindings/gpio/zx296702-gpio.txt (contents, props changed) vendor/device-tree/dist/Bindings/h8300/ vendor/device-tree/dist/Bindings/h8300/cpu.txt (contents, props changed) vendor/device-tree/dist/Bindings/hwlock/ vendor/device-tree/dist/Bindings/hwlock/hwlock.txt (contents, props changed) vendor/device-tree/dist/Bindings/hwlock/omap-hwspinlock.txt (contents, props changed) vendor/device-tree/dist/Bindings/hwlock/qcom-hwspinlock.txt (contents, props changed) vendor/device-tree/dist/Bindings/hwlock/sirf,hwspinlock.txt (contents, props changed) vendor/device-tree/dist/Bindings/hwmon/ina2xx.txt (contents, props changed) vendor/device-tree/dist/Bindings/hwmon/lm70.txt (contents, props changed) vendor/device-tree/dist/Bindings/hwmon/max6697.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/brcm,kona-i2c.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-brcmstb.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-digicolor.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-emev2.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-jz4780.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-lpc2k.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-mt6577.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-mux-reg.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-uniphier-f.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-uniphier.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-xgene-slimpro.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c-xlp9xx.txt (contents, props changed) vendor/device-tree/dist/Bindings/i2c/i2c.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/accel/lis302.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/accel/mma8452.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/adc/berlin2_adc.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/adc/da9150-gpadc.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/adc/hi8435.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/adc/imx7d-adc.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/adc/mcp320x.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/adc/mcp3422.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/adc/palmas-gpadc.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/adc/ti-adc128s052.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/adc/ti-ads8688.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/dac/ti,dac7512.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/health/ vendor/device-tree/dist/Bindings/iio/health/max30100.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/imu/ vendor/device-tree/dist/Bindings/iio/imu/inv_mpu6050.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/light/apds9960.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/light/us5182d.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/magnetometer/bmc150_magn.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/magnetometer/mmc35240.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/pressure/ vendor/device-tree/dist/Bindings/iio/pressure/bmp085.txt (contents, props changed) vendor/device-tree/dist/Bindings/iio/temperature/ vendor/device-tree/dist/Bindings/iio/temperature/mlx90614.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/brcm,bcm-keypad.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/cypress,cyapa.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/da9062-onkey.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/hid-over-i2c.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/qcom,pm8941-pwrkey.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/snvs-pwrkey.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/ti,drv2665.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/touchscreen/brcm,iproc-touchscreen.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/touchscreen/chipone_icn8318.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/touchscreen/colibri-vf50-ts.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/touchscreen/focaltech-ft6236.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/touchscreen/goodix.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/touchscreen/imx6ul_tsc.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/touchscreen/sx8654.txt (contents, props changed) vendor/device-tree/dist/Bindings/input/touchscreen/ts4800-ts.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/allwinner,sunxi-nmi.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/arm,gic-v3.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/arm,gic.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/arm,versatile-fpga-irq.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/arm,vic.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/axis,crisv32-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm2836-l1-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm3380-l2-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/cdns,xtensa-mx.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/cdns,xtensa-pic.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/hisilicon,mbigen-v2.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/img,meta-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/img,pdc-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/ingenic,intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/intel,ce4100-ioapic.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/mediatek,sysirq.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/microchip,pic32-evic.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/mrvl,intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/msi.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/nvidia,tegra-ictlr.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/nxp,lpc3220-mic.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/open-pic.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/qca,ath79-cpu-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/qca,ath79-misc-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/renesas,h8300h-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/renesas,h8s-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/samsung,exynos4210-combiner.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/snps,arc700-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/snps,archs-idu-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/snps,archs-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/st,spear3xx-shirq.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/st,sti-irq-syscfg.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/technologic,ts4800.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/ti,c64x+megamod-pic.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/ti,cp-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/ti,omap2-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/interrupt-controller/ti,omap4-wugen-mpu vendor/device-tree/dist/Bindings/interrupt-controller/via,vt8500-intc.txt (contents, props changed) vendor/device-tree/dist/Bindings/iommu/arm,smmu-v3.txt (contents, props changed) vendor/device-tree/dist/Bindings/ipmi.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/backlight/ vendor/device-tree/dist/Bindings/leds/backlight/88pm860x.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/backlight/gpio-backlight.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/backlight/lp855x.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/backlight/max8925-backlight.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/backlight/pm8941-wled.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/backlight/pwm-backlight.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/backlight/sky81452-backlight.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/backlight/tps65217-backlight.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/leds-aat1290.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/leds-bcm6328.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/leds-bcm6358.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/leds-ktd2692.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/leds-netxbig.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/leds-powernv.txt (contents, props changed) vendor/device-tree/dist/Bindings/leds/leds-tlc591xx.txt (contents, props changed) vendor/device-tree/dist/Bindings/mailbox/arm-mhu.txt (contents, props changed) vendor/device-tree/dist/Bindings/mailbox/brcm,bcm2835-mbox.txt (contents, props changed) vendor/device-tree/dist/Bindings/mailbox/sti-mailbox.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/i2c/adp1653.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/i2c/mt9v032.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/i2c/ov2640.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/i2c/ov2659.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/i2c/tc358743.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/renesas,jpu.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/st,stih4xx.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/stih407-c8sectpfe.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/ti,omap3isp.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/xilinx/ vendor/device-tree/dist/Bindings/media/xilinx/video.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/xilinx/xlnx,v-tc.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/xilinx/xlnx,v-tpg.txt (contents, props changed) vendor/device-tree/dist/Bindings/media/xilinx/xlnx,video.txt (contents, props changed) vendor/device-tree/dist/Bindings/memory-controllers/arm,pl172.txt (contents, props changed) vendor/device-tree/dist/Bindings/memory-controllers/ath79-ddr-controller.txt (contents, props changed) vendor/device-tree/dist/Bindings/memory-controllers/calxeda-ddr-ctrlr.txt (contents, props changed) vendor/device-tree/dist/Bindings/memory-controllers/ingenic,jz4780-nemc.txt (contents, props changed) vendor/device-tree/dist/Bindings/memory-controllers/renesas,h8300-bsc.txt (contents, props changed) vendor/device-tree/dist/Bindings/memory-controllers/tegra-emc.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/atmel-flexcom.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/axp20x.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/brcm,bcm59056.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/da9062.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/da9150.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/max77802.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/mfd.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/mt6397.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/qcom,tcsr.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/samsung,sec-core.txt (contents, props changed) vendor/device-tree/dist/Bindings/mfd/sky81452.txt (contents, props changed) vendor/device-tree/dist/Bindings/mips/ath79-soc.txt (contents, props changed) vendor/device-tree/dist/Bindings/mips/brcm/brcm,bmips.txt (contents, props changed) vendor/device-tree/dist/Bindings/mips/brcm/soc.txt (contents, props changed) vendor/device-tree/dist/Bindings/mips/img/ vendor/device-tree/dist/Bindings/mips/img/pistachio.txt (contents, props changed) vendor/device-tree/dist/Bindings/mips/img/xilfpga.txt (contents, props changed) vendor/device-tree/dist/Bindings/mips/pic32/ vendor/device-tree/dist/Bindings/mips/pic32/microchip,pic32mzda.txt (contents, props changed) vendor/device-tree/dist/Bindings/misc/brcm,kona-smc.txt (contents, props changed) vendor/device-tree/dist/Bindings/mmc/brcm,kona-sdhci.txt (contents, props changed) vendor/device-tree/dist/Bindings/mmc/brcm,sdhci-iproc.txt (contents, props changed) vendor/device-tree/dist/Bindings/mmc/mmc-card.txt (contents, props changed) vendor/device-tree/dist/Bindings/mmc/mtk-sd.txt (contents, props changed) vendor/device-tree/dist/Bindings/mmc/sdhci-atmel.txt (contents, props changed) vendor/device-tree/dist/Bindings/mtd/brcm,brcmnand.txt (contents, props changed) vendor/device-tree/dist/Bindings/mtd/ingenic,jz4780-nand.txt (contents, props changed) vendor/device-tree/dist/Bindings/mtd/jedec,spi-nor.txt (contents, props changed) vendor/device-tree/dist/Bindings/mtd/mtk-quadspi.txt (contents, props changed) vendor/device-tree/dist/Bindings/mtd/nxp-spifi.txt (contents, props changed) vendor/device-tree/dist/Bindings/mtd/vf610-nfc.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/brcm,bcm7445-switch-v4.0.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/brcm,bcmgenet.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/brcm,iproc-mdio.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/brcm,systemport.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/brcm,unimac-mdio.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/can/sun4i_can.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/ezchip_enet.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/hisilicon-hns-dsaf.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/hisilicon-hns-mdio.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/hisilicon-hns-nic.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/ieee802154/adf7242.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/ieee802154/mrf24j40.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/ipq806x-dwmac.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/maxim,ds26522.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/mediatek,mt7620-gsw.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/nfc/nfcmrvl.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/nfc/nxp-nci.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/nfc/s3fwrn5.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/nfc/st-nci-i2c.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/nfc/st-nci-spi.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/nfc/st95hf.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/nxp,lpc1850-dwmac.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/ralink,rt2880-net.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/ralink,rt3050-esw.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/renesas,ravb.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/smsc-lan87xx.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/snps,dwc-qos-ethernet.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/ti,dp83867.txt (contents, props changed) vendor/device-tree/dist/Bindings/net/wireless/ti,wlcore.txt (contents, props changed) vendor/device-tree/dist/Bindings/nvmem/ vendor/device-tree/dist/Bindings/nvmem/allwinner,sunxi-sid.txt (contents, props changed) vendor/device-tree/dist/Bindings/nvmem/imx-ocotp.txt (contents, props changed) vendor/device-tree/dist/Bindings/nvmem/mxs-ocotp.txt (contents, props changed) vendor/device-tree/dist/Bindings/nvmem/nvmem.txt (contents, props changed) vendor/device-tree/dist/Bindings/nvmem/qfprom.txt (contents, props changed) vendor/device-tree/dist/Bindings/nvmem/rockchip-efuse.txt (contents, props changed) vendor/device-tree/dist/Bindings/nvmem/vf610-ocotp.txt (contents, props changed) vendor/device-tree/dist/Bindings/opp/ vendor/device-tree/dist/Bindings/opp/opp.txt (contents, props changed) vendor/device-tree/dist/Bindings/pci/altera-pcie-msi.txt (contents, props changed) vendor/device-tree/dist/Bindings/pci/altera-pcie.txt (contents, props changed) vendor/device-tree/dist/Bindings/pci/arm,juno-r1-pcie.txt (contents, props changed) vendor/device-tree/dist/Bindings/pci/brcm,iproc-pcie.txt (contents, props changed) vendor/device-tree/dist/Bindings/pci/hisilicon-pcie.txt (contents, props changed) vendor/device-tree/dist/Bindings/pci/pci-msi.txt (contents, props changed) vendor/device-tree/dist/Bindings/pci/plda,xpressrich3-axi.txt (contents, props changed) vendor/device-tree/dist/Bindings/pci/qcom,pcie.txt (contents, props changed) vendor/device-tree/dist/Bindings/pci/xgene-pci-msi.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/brcm,brcmstb-sata-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/brcm,cygnus-pcie-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/brcm,kona-usb2-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/calxeda-combophy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/dm816x-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/keystone-usb-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/mxs-usb-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/nvidia,tegra20-usb-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/phy-ath79-usb.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/phy-hi6220-usb.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/phy-lpc18xx-usb-otg.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/phy-mt65xx-usb.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/pistachio-usb-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/pxa1928-usb-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/qcom,usb-8x16-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/rcar-gen3-phy-usb2.txt (contents, props changed) vendor/device-tree/dist/Bindings/phy/sun9i-usb-phy.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/atmel,at91-pio4-pinctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/berlin,pinctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/brcm,cygnus-pinmux.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/brcm,iproc-gpio.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/brcm,nsp-gpio.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/cnxt,cx92755-pinctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/fsl,imx6ul-pinctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/fsl,imx7d-pinctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/img,pistachio-pinctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/lantiq,pinctrl-falcon.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/lantiq,pinctrl-xway.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-39x-pinctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/nvidia,tegra210-pinmux.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/nxp,lpc1850-scu.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/pinctrl-atlas7.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/pinctrl-mt65xx.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/qcom,msm8660-pinctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/pinctrl/qcom,msm8996-pinctrl.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/bq24257.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/bq25890.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/da9150-charger.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/da9150-fg.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/fsl,imx-gpc.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/pd-samsung.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/qcom,coincell-charger.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/reset/syscon-poweroff.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/rt9455_charger.txt (contents, props changed) vendor/device-tree/dist/Bindings/power/wakeup-source.txt (contents, props changed) vendor/device-tree/dist/Bindings/power_supply/axp20x_usb_power.txt (contents, props changed) vendor/device-tree/dist/Bindings/power_supply/qcom_smbb.txt (contents, props changed) vendor/device-tree/dist/Bindings/power_supply/tps65217_charger.txt (contents, props changed) vendor/device-tree/dist/Bindings/powerpc/fsl/mpc512x_lpbfifo.txt (contents, props changed) vendor/device-tree/dist/Bindings/powerpc/fsl/scfg.txt (contents, props changed) vendor/device-tree/dist/Bindings/pwm/brcm,bcm7038-pwm.txt (contents, props changed) vendor/device-tree/dist/Bindings/pwm/brcm,kona-pwm.txt (contents, props changed) vendor/device-tree/dist/Bindings/pwm/lpc1850-sct-pwm.txt (contents, props changed) vendor/device-tree/dist/Bindings/pwm/pwm-berlin.txt (contents, props changed) vendor/device-tree/dist/Bindings/pwm/pwm-mtk-disp.txt (contents, props changed) vendor/device-tree/dist/Bindings/pwm/pwm-omap-dmtimer.txt (contents, props changed) vendor/device-tree/dist/Bindings/pwm/renesas,pwm-rcar.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/arizona-regulator.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/lm363x-regulator.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/max77686.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/mt6311-regulator.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/pv88060.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/pv88090.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/qcom,smd-rpm-regulator.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/qcom,spmi-regulator.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/samsung,s2mpa01.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/samsung,s2mps11.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/samsung,s5m8767.txt (contents, props changed) vendor/device-tree/dist/Bindings/regulator/tps65023.txt (contents, props changed) vendor/device-tree/dist/Bindings/remoteproc/ vendor/device-tree/dist/Bindings/remoteproc/wkup_m3_rproc.txt (contents, props changed) vendor/device-tree/dist/Bindings/reset/ath79-reset.txt (contents, props changed) vendor/device-tree/dist/Bindings/reset/berlin,reset.txt (contents, props changed) vendor/device-tree/dist/Bindings/reset/brcm,bcm21664-resetmgr.txt (contents, props changed) vendor/device-tree/dist/Bindings/reset/brcm,bcm63138-pmb.txt (contents, props changed) vendor/device-tree/dist/Bindings/reset/hisilicon,hi6220-reset.txt (contents, props changed) vendor/device-tree/dist/Bindings/reset/nxp,lpc1850-rgu.txt (contents, props changed) vendor/device-tree/dist/Bindings/reset/zynq-reset.txt (contents, props changed) vendor/device-tree/dist/Bindings/rng/atmel-trng.txt (contents, props changed) vendor/device-tree/dist/Bindings/rng/brcm,iproc-rng200.txt (contents, props changed) vendor/device-tree/dist/Bindings/rng/omap_rng.txt (contents, props changed) vendor/device-tree/dist/Bindings/rng/samsung,exynos-rng4.txt (contents, props changed) vendor/device-tree/dist/Bindings/rng/st,rng.txt (contents, props changed) vendor/device-tree/dist/Bindings/rng/st,stm32-rng.txt (contents, props changed) vendor/device-tree/dist/Bindings/rng/timeriomem_rng.txt (contents, props changed) vendor/device-tree/dist/Bindings/rtc/abracon,abx80x.txt (contents, props changed) vendor/device-tree/dist/Bindings/rtc/dallas,ds1390.txt (contents, props changed) vendor/device-tree/dist/Bindings/rtc/digicolor-rtc.txt (contents, props changed) vendor/device-tree/dist/Bindings/rtc/nxp,lpc1788-rtc.txt (contents, props changed) vendor/device-tree/dist/Bindings/rtc/pcf8563.txt (contents, props changed) vendor/device-tree/dist/Bindings/rtc/rtc-mxc.txt (contents, props changed) vendor/device-tree/dist/Bindings/rtc/rtc-st-lpc.txt (contents, props changed) vendor/device-tree/dist/Bindings/rtc/ti,bq32k.txt (contents, props changed) vendor/device-tree/dist/Bindings/rtc/xlnx-rtc.txt (contents, props changed) vendor/device-tree/dist/Bindings/scsi/ vendor/device-tree/dist/Bindings/scsi/hisilicon-sas.txt (contents, props changed) vendor/device-tree/dist/Bindings/security/tpm/st33zp24-spi.txt (contents, props changed) vendor/device-tree/dist/Bindings/serial/8250.txt (contents, props changed) vendor/device-tree/dist/Bindings/serial/arm_sbsa_uart.txt (contents, props changed) vendor/device-tree/dist/Bindings/serial/axis,etraxfs-uart.txt (contents, props changed) vendor/device-tree/dist/Bindings/serial/brcm,bcm6345-uart.txt (contents, props changed) vendor/device-tree/dist/Bindings/serial/ingenic,uart.txt (contents, props changed) vendor/device-tree/dist/Bindings/serial/nxp,lpc1850-uart.txt (contents, props changed) vendor/device-tree/dist/Bindings/serial/uniphier-uart.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/bcm/ vendor/device-tree/dist/Bindings/soc/bcm/raspberrypi,bcm2835-power.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/dove/ vendor/device-tree/dist/Bindings/soc/dove/pmu.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/mediatek/ vendor/device-tree/dist/Bindings/soc/mediatek/pwrap.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/mediatek/scpsys.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/qcom/qcom,smd-rpm.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/qcom/qcom,smd.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/qcom/qcom,smem.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/qcom/qcom,smp2p.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/qcom/qcom,smsm.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/rockchip/ vendor/device-tree/dist/Bindings/soc/rockchip/power_domain.txt (contents, props changed) vendor/device-tree/dist/Bindings/soc/ti/wkup_m3_ipc.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/ak4554.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/ak4613.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/atmel-classd.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/atmel-pdmic.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/brcm,bcm2835-i2s.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/bt-sco.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/cs4349.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/da7213.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/da7218.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/da7219.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/gtm601.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/ics43432.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/img,i2s-in.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/img,i2s-out.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/img,parallel-out.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/img,pistachio-internal-dac.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/img,spdif-in.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/img,spdif-out.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/inno-rk3036.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/max98925.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/mt8173-max98090.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/mt8173-rt5650-rt5676.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/mtk-afe-pcm.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/nau8825.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/pcm179x.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/qcom,apq8016-sbc.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/qcom,lpass-cpu.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/renesas,rsrc-card.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/rockchip-max98090.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/rockchip-rt5645.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/rockchip-spdif.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/rt5616.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/rt5645.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/rt5651.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/rt5659.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/st,sti-asoc-card.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/storm.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/sun4i-codec.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/tas571x.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/ti,pcm3168a.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/wlf,wm8974.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/zte,zx-i2s.txt (contents, props changed) vendor/device-tree/dist/Bindings/sound/zte,zx-spdif.txt (contents, props changed) vendor/device-tree/dist/Bindings/spi/brcm,bcm2835-aux-spi.txt (contents, props changed) vendor/device-tree/dist/Bindings/spi/spi-ath79.txt (contents, props changed) vendor/device-tree/dist/Bindings/spi/spi-mt65xx.txt (contents, props changed) vendor/device-tree/dist/Bindings/spi/spi-xlp.txt (contents, props changed) vendor/device-tree/dist/Bindings/spi/spi-zynqmp-qspi.txt (contents, props changed) vendor/device-tree/dist/Bindings/sram/ vendor/device-tree/dist/Bindings/sram/rockchip-pmu-sram.txt (contents, props changed) vendor/device-tree/dist/Bindings/sram/rockchip-smp-sram.txt (contents, props changed) vendor/device-tree/dist/Bindings/sram/samsung-sram.txt (contents, props changed) vendor/device-tree/dist/Bindings/sram/sram.txt (contents, props changed) vendor/device-tree/dist/Bindings/sram/sunxi-sram.txt (contents, props changed) vendor/device-tree/dist/Bindings/staging/ion/ vendor/device-tree/dist/Bindings/staging/ion/hi6220-ion.txt (contents, props changed) vendor/device-tree/dist/Bindings/thermal/hisilicon-thermal.txt (contents, props changed) vendor/device-tree/dist/Bindings/thermal/qcom-spmi-temp-alarm.txt (contents, props changed) vendor/device-tree/dist/Bindings/thermal/qoriq-thermal.txt (contents, props changed) vendor/device-tree/dist/Bindings/timer/brcm,kona-timer.txt (contents, props changed) vendor/device-tree/dist/Bindings/timer/img,pistachio-gptimer.txt (contents, props changed) vendor/device-tree/dist/Bindings/timer/nxp,lpc3220-timer.txt (contents, props changed) vendor/device-tree/dist/Bindings/timer/renesas,16bit-timer.txt (contents, props changed) vendor/device-tree/dist/Bindings/timer/renesas,8bit-timer.txt (contents, props changed) vendor/device-tree/dist/Bindings/timer/renesas,tpu.txt (contents, props changed) vendor/device-tree/dist/Bindings/timer/st,stih407-lpc vendor/device-tree/dist/Bindings/timer/st,stm32-timer.txt (contents, props changed) vendor/device-tree/dist/Bindings/ufs/ufs-qcom.txt (contents, props changed) vendor/device-tree/dist/Bindings/usb/allwinner,sun4i-a10-musb.txt (contents, props changed) vendor/device-tree/dist/Bindings/usb/brcm,bcm3384-usb.txt (contents, props changed) vendor/device-tree/dist/Bindings/usb/dwc3-xilinx.txt (contents, props changed) vendor/device-tree/dist/Bindings/usb/mt8173-xhci.txt (contents, props changed) vendor/device-tree/dist/Bindings/usb/octeon-usb.txt (contents, props changed) vendor/device-tree/dist/Bindings/usb/renesas_usb3.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/alphascale-asm9260.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/atmel-sama5d4-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/brcm,bcm7038-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/brcm,kona-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/digicolor-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/lpc18xx-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/meson-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/mt7621-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/sigma,smp8642-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/sp805-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/st_lpc_wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/ts4800-wdt.txt (contents, props changed) vendor/device-tree/dist/Bindings/watchdog/ziirave-wdt.txt (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/bcm-cygnus.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/bcm-ns2.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/bcm-nsp.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/bcm2835-aux.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/bcm2835.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/exynos5433.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/hi6220-clock.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/imx6ul-clock.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/imx7d-clock.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/jz4740-cgu.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/jz4780-cgu.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/lpc18xx-ccu.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/lpc18xx-cgu.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/lpc32xx-clock.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/marvell,pxa1928.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/meson8b-clkc.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/mt8135-clk.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/mt8173-clk.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/pistachio-clk.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-msm8916.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-msm8996.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/qcom,mmcc-msm8996.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/r8a73a4-clock.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/r8a7778-clock.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/r8a7793-clock.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/r8a7795-cpg-mssr.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/renesas-cpg-mssr.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/rk3036-cru.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/rk3228-cru.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/rk3368-cru.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/samsung,s2mps11.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/sun4i-a10-pll2.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/tegra210-car.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/clock/zx296702-clock.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/dma/axi-dmac.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/gpio/meson8b-gpio.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/i2c/ vendor/device-tree/dist/include/dt-bindings/i2c/i2c.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/input/linux-event-codes.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/interrupt-controller/irq-st.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/leds/ vendor/device-tree/dist/include/dt-bindings/leds/common.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/leds/leds-netxbig.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/leds/leds-ns2.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/media/ vendor/device-tree/dist/include/dt-bindings/media/c8sectpfe.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/media/omap3-isp.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/media/xilinx-vip.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/memory/tegra210-mc.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/mfd/arizona.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/mfd/atmel-flexcom.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/mfd/st-lpc.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/net/ vendor/device-tree/dist/include/dt-bindings/net/ti-dp83867.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/phy/phy-pistachio-usb.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/pinctrl/bcm2835.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/pinctrl/dm814x.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/pinctrl/mt6397-pinfunc.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/pinctrl/mt65xx.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/power/ vendor/device-tree/dist/include/dt-bindings/power/mt8173-power.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/power/raspberrypi-power.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/power/rk3288-power.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/reset/altr,rst-mgr-a10.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/reset/hisi,hi6220-resets.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/reset/mt8135-resets.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/reset/mt8173-resets.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/reset/qcom,gcc-msm8916.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/reset/stih407-resets.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/reset/stih415-resets.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/reset/stih416-resets.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/reset/tegra124-car.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/sound/apq8016-lpass.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/sound/audio-jack-events.h (contents, props changed) vendor/device-tree/dist/include/dt-bindings/sound/tas2552.h (contents, props changed) vendor/device-tree/dist/scripts/flatten-symlinks.sh (contents, props changed) vendor/device-tree/dist/scripts/merge-new-release.sh (contents, props changed) vendor/device-tree/dist/src/arm/alpine-db.dts (contents, props changed) vendor/device-tree/dist/src/arm/alpine.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/am335x-baltos-ir5221.dts (contents, props changed) vendor/device-tree/dist/src/arm/am335x-bonegreen.dts (contents, props changed) vendor/device-tree/dist/src/arm/am335x-chiliboard.dts (contents, props changed) vendor/device-tree/dist/src/arm/am335x-chilisom.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/am335x-cm-t335.dts (contents, props changed) vendor/device-tree/dist/src/arm/am335x-phycore-som.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/am335x-sbc-t335.dts (contents, props changed) vendor/device-tree/dist/src/arm/am335x-shc.dts (contents, props changed) vendor/device-tree/dist/src/arm/am335x-sl50.dts (contents, props changed) vendor/device-tree/dist/src/arm/am335x-wega-rdk.dts (contents, props changed) vendor/device-tree/dist/src/arm/am335x-wega.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/am437x-cm-t43.dts (contents, props changed) vendor/device-tree/dist/src/arm/am437x-sbc-t43.dts (contents, props changed) vendor/device-tree/dist/src/arm/am57xx-cl-som-am57x.dts (contents, props changed) vendor/device-tree/dist/src/arm/am57xx-sbc-am57x.dts (contents, props changed) vendor/device-tree/dist/src/arm/arm-realview-pb11mp.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-370-dlink-dns327l.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-370-seagate-nas-2bay.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-370-seagate-nas-4bay.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-370-seagate-nas-xbay.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/armada-370-seagate-personal-cloud-2bay.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-370-seagate-personal-cloud.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-370-seagate-personal-cloud.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/armada-385-linksys-caiman.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-385-linksys-cobra.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-385-linksys.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/armada-388-clearfog.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-38x-solidrun-microsom.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/armada-390.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/armada-398-db.dts (contents, props changed) vendor/device-tree/dist/src/arm/armada-398.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/armada-39x.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/armada-xp-linksys-mamba.dts (contents, props changed) vendor/device-tree/dist/src/arm/at91-ariettag25.dts (contents, props changed) vendor/device-tree/dist/src/arm/at91-kizbox.dts (contents, props changed) vendor/device-tree/dist/src/arm/at91-kizbox2.dts (contents, props changed) vendor/device-tree/dist/src/arm/at91-kizboxmini.dts (contents, props changed) vendor/device-tree/dist/src/arm/at91-sama5d2_xplained.dts (contents, props changed) vendor/device-tree/dist/src/arm/at91-sama5d4_ma5d4.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/at91-sama5d4_ma5d4evk.dts (contents, props changed) vendor/device-tree/dist/src/arm/at91-sama5d4_xplained.dts (contents, props changed) vendor/device-tree/dist/src/arm/at91-vinco.dts (contents, props changed) vendor/device-tree/dist/src/arm/at91sam9x5dm.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/axp152.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/axp22x.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/bcm-nsp.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/bcm2835-rpi-a-plus.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm2835-rpi-b-rev2.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm2836-rpi-2-b.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm2836.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/bcm283x.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/bcm4708-asus-rt-ac56u.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm4708-asus-rt-ac68u.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm4708-smartrg-sr400ac.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm4709-asus-rt-ac87u.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm4709-buffalo-wxr-1900dhp.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm4709-netgear-r7000.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm4709-netgear-r8000.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm5301x-nand-cs0-bch8.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/bcm94708.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm94709.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm953012k.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm958305k.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm958625k.dts (contents, props changed) vendor/device-tree/dist/src/arm/bcm9hmidc.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/compulab-sb-som.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/cros-ec-sbs.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/dm8148-evm.dts (contents, props changed) vendor/device-tree/dist/src/arm/dm8148-t410.dts (contents, props changed) vendor/device-tree/dist/src/arm/dm814x-clocks.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/dm814x.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/dove-cm-a510.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/dove-sbc-a510.dts (contents, props changed) vendor/device-tree/dist/src/arm/dra62x-clocks.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/dra62x-j5eco-evm.dts (contents, props changed) vendor/device-tree/dist/src/arm/dra62x.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos4-cpu-thermal.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos4412-tmu-sensor-conf.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos5250-snow-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos5250-snow-rev5.dts (contents, props changed) vendor/device-tree/dist/src/arm/exynos5420-trip-points.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos5422-cpu-thermal.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos5422-cpus.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos5422-odroidxu3-audio.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos5422-odroidxu3-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos5422-odroidxu3-lite.dts (contents, props changed) vendor/device-tree/dist/src/arm/exynos5422-odroidxu4.dts (contents, props changed) vendor/device-tree/dist/src/arm/exynos5440-tmu-sensor-conf.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/exynos5440-trip-points.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/imx51-ts4800.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6dl-apf6dev.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6dl-aristainetos2_4.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6dl-aristainetos2_7.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6dl-gw551x.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6dl-nit6xlite.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6q-apf6dev.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6q-gw551x.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6q-nitrogen6_max.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6q-novena.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6qdl-apf6.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/imx6qdl-apf6dev.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/imx6qdl-aristainetos2.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/imx6qdl-gw551x.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/imx6qdl-nit6xlite.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/imx6qdl-nitrogen6_max.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/imx6sl-warp.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6sx-sdb-reva.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6sx-sdb.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/imx6ul-14x14-evk.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx6ul-pinfunc.h (contents, props changed) vendor/device-tree/dist/src/arm/imx6ul.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/imx7d-cl-som-imx7.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx7d-pinfunc.h (contents, props changed) vendor/device-tree/dist/src/arm/imx7d-sbc-imx7.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx7d-sdb.dts (contents, props changed) vendor/device-tree/dist/src/arm/imx7d.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/k2e-netcp.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/k2hk-netcp.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/k2l-netcp.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/kirkwood-lswvl.dts (contents, props changed) vendor/device-tree/dist/src/arm/kirkwood-lswxl.dts (contents, props changed) vendor/device-tree/dist/src/arm/kirkwood-nas2big.dts (contents, props changed) vendor/device-tree/dist/src/arm/kirkwood-nsa325.dts (contents, props changed) vendor/device-tree/dist/src/arm/kirkwood-pogoplug-series-4.dts (contents, props changed) vendor/device-tree/dist/src/arm/logicpd-torpedo-37xx-devkit.dts (contents, props changed) vendor/device-tree/dist/src/arm/logicpd-torpedo-som.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/lpc18xx.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/lpc4337-ciaa.dts (contents, props changed) vendor/device-tree/dist/src/arm/lpc4350-hitex-eval.dts (contents, props changed) vendor/device-tree/dist/src/arm/lpc4350.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/lpc4357-ea4357-devkit.dts (contents, props changed) vendor/device-tree/dist/src/arm/lpc4357.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/meson8-minix-neo-x8.dts (contents, props changed) vendor/device-tree/dist/src/arm/meson8b-mxq.dts (contents, props changed) vendor/device-tree/dist/src/arm/meson8b-odroidc1.dts (contents, props changed) vendor/device-tree/dist/src/arm/meson8b.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/mt2701-evb.dts (contents, props changed) vendor/device-tree/dist/src/arm/mt2701.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/mt6580-evbp1.dts (contents, props changed) vendor/device-tree/dist/src/arm/mt6580.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/mt8135-pinfunc.h (contents, props changed) vendor/device-tree/dist/src/arm/omap3-devkit8000-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/omap3-devkit8000-lcd-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/omap3-devkit8000-lcd43.dts (contents, props changed) vendor/device-tree/dist/src/arm/omap3-devkit8000-lcd70.dts (contents, props changed) vendor/device-tree/dist/src/arm/omap3-overo-palo35-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/omap3-overo-palo35.dts (contents, props changed) vendor/device-tree/dist/src/arm/omap3-overo-storm-palo35.dts (contents, props changed) vendor/device-tree/dist/src/arm/omap3-overo-storm-tobiduo.dts (contents, props changed) vendor/device-tree/dist/src/arm/omap3-overo-tobiduo-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/omap3-overo-tobiduo.dts (contents, props changed) vendor/device-tree/dist/src/arm/omap3-pandora-1ghz.dts (contents, props changed) vendor/device-tree/dist/src/arm/omap3-pandora-600mhz.dts (contents, props changed) vendor/device-tree/dist/src/arm/omap3-pandora-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/omap5-board-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/omap5-igep0050.dts (contents, props changed) vendor/device-tree/dist/src/arm/orion5x-linkstation-lswtgl.dts (contents, props changed) vendor/device-tree/dist/src/arm/orion5x-lswsgl.dts (contents, props changed) vendor/device-tree/dist/src/arm/qcom-apq8064-sony-xperia-yuga.dts (contents, props changed) vendor/device-tree/dist/src/arm/qcom-pm8841.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/qcom-pm8941.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/qcom-pma8084.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/r8a7791-porter.dts (contents, props changed) vendor/device-tree/dist/src/arm/r8a7793-gose.dts (contents, props changed) vendor/device-tree/dist/src/arm/r8a7793.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/r8a7794-silk.dts (contents, props changed) vendor/device-tree/dist/src/arm/r8a77xx-aa121td01-panel.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/rk3036-evb.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3036-kylin.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3036.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/rk3228-evb.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3228.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-popmetal.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-r89.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-rock2-som.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-rock2-square.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron-brain.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron-chromebook.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron-jaq.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron-jerry.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron-mickey.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron-minnie.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron-pinky.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron-sdmmc.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron-speedy.dts (contents, props changed) vendor/device-tree/dist/src/arm/rk3288-veyron.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sama5d2-pinfunc.h (contents, props changed) vendor/device-tree/dist/src/arm/sama5d2.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/socfpga_arria10_socdk.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/socfpga_arria10_socdk_sdmmc.dts (contents, props changed) vendor/device-tree/dist/src/arm/socfpga_cyclone5_de0_sockit.dts (contents, props changed) vendor/device-tree/dist/src/arm/socfpga_cyclone5_mcv.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/socfpga_cyclone5_mcvevk.dts (contents, props changed) vendor/device-tree/dist/src/arm/stm32429i-eval.dts (contents, props changed) vendor/device-tree/dist/src/arm/stm32f429-disco.dts (contents, props changed) vendor/device-tree/dist/src/arm/stm32f429.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sun4i-a10-gemei-g9.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun4i-a10-inet1.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun4i-a10-inet9f-rev03.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun4i-a10-itead-iteaduino-plus.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun4i-a10-jesurun-q5.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun4i-a10-pcduino2.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun4i-a10-pov-protab2-ips9.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-a10s-auxtek-t003.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-a10s-auxtek-t004.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-a10s-wobo-i5.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-a13-empire-electronix-d709.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-a13-inet-98v-rev2.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-a13-q8-tablet.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-a13-utoo-p66.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-q8-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-r8-chip.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun5i-r8.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sun5i.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sun6i-a31-i7.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun6i-a31-mele-a1000g-quad.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun6i-a31s-primo81.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun6i-a31s-sina31s-core.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sun6i-a31s-sina31s.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun6i-a31s-sinovoip-bpi-m2.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun6i-a31s-yones-toptech-bs1078-v2.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun7i-a20-icnova-swac.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun7i-a20-mk808c.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun7i-a20-olimex-som-evb.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun7i-a20-orangepi-mini.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun7i-a20-orangepi.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun7i-a20-pcduino3-nano.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun7i-a20-wexler-tab7200.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun7i-a20-wits-pro-a20-dkt.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a23-a33.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a23-evb.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a23-gt90h-v4.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a23-q8-tablet.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a33-et-q8-v1.6.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a33-ga10h-v1.1.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a33-ippo-q8h-v1.2.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a33-q8-tablet.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a33-sinlinx-sina33.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-a33.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-h3-orangepi-plus.dts (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-h3.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sun8i-q8-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/sun9i-a80-cubieboard4.dts (contents, props changed) vendor/device-tree/dist/src/arm/sunxi-q8-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/tango4-common.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/tango4-smp8758.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/tango4-vantage-1172.dts (contents, props changed) vendor/device-tree/dist/src/arm/tegra124-jetson-tk1-emc.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/tegra124-nyan-big-emc.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/tegra124-nyan-blaze-emc.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/tegra124-nyan-blaze.dts (contents, props changed) vendor/device-tree/dist/src/arm/tegra124-nyan.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-common32.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-ld4-ref.dts (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-ld4.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-ld6b-ref.dts (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-ld6b.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-pro4-ref.dts (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-pro4.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-pro5.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-sld3-ref.dts (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-sld3.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-sld8-ref.dts (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ph1-sld8.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-pinctrl.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-proxstream2-gentil.dts (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-proxstream2-vodka.dts (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-proxstream2.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-ref-daughter.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/uniphier-support-card.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/vf610m4-colibri.dts (contents, props changed) vendor/device-tree/dist/src/arm/vf610m4-cosmic.dts (contents, props changed) vendor/device-tree/dist/src/arm/vf610m4.dtsi (contents, props changed) vendor/device-tree/dist/src/arm/zx296702-ad1.dts (contents, props changed) vendor/device-tree/dist/src/arm/zx296702.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/altera/ vendor/device-tree/dist/src/arm64/altera/socfpga_stratix10.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/altera/socfpga_stratix10_socdk.dts (contents, props changed) vendor/device-tree/dist/src/arm64/apm/apm-merlin.dts (contents, props changed) vendor/device-tree/dist/src/arm64/apm/apm-shadowcat.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/arm/juno-base.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/arm/juno-r1.dts (contents, props changed) vendor/device-tree/dist/src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts (contents, props changed) vendor/device-tree/dist/src/arm64/arm/vexpress-v2m-rs1.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/broadcom/ vendor/device-tree/dist/src/arm64/broadcom/ns2-svk.dts (contents, props changed) vendor/device-tree/dist/src/arm64/broadcom/ns2.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/freescale/fsl-ls1043a-rdb.dts (contents, props changed) vendor/device-tree/dist/src/arm64/freescale/fsl-ls1043a.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/freescale/fsl-ls2080a-qds.dts (contents, props changed) vendor/device-tree/dist/src/arm64/freescale/fsl-ls2080a-rdb.dts (contents, props changed) vendor/device-tree/dist/src/arm64/freescale/fsl-ls2080a-simu.dts (contents, props changed) vendor/device-tree/dist/src/arm64/freescale/fsl-ls2080a.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/hisilicon/ vendor/device-tree/dist/src/arm64/hisilicon/hi6220-hikey.dts (contents, props changed) vendor/device-tree/dist/src/arm64/hisilicon/hi6220.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/hisilicon/hip05-d02.dts (contents, props changed) vendor/device-tree/dist/src/arm64/hisilicon/hip05.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/hisilicon/hip05_hns.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/marvell/ vendor/device-tree/dist/src/arm64/marvell/berlin4ct-dmp.dts (contents, props changed) vendor/device-tree/dist/src/arm64/marvell/berlin4ct-stb.dts (contents, props changed) vendor/device-tree/dist/src/arm64/marvell/berlin4ct.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/mediatek/mt6795-evb.dts (contents, props changed) vendor/device-tree/dist/src/arm64/mediatek/mt6795.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/mediatek/mt8173-pinfunc.h (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/ vendor/device-tree/dist/src/arm64/nvidia/tegra132-norrin.dts (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/tegra132.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/tegra210-p2180.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/tegra210-p2371-0000.dts (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/tegra210-p2371-2180.dts (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/tegra210-p2530.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/tegra210-p2571.dts (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/tegra210-p2595.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/tegra210-p2597.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/nvidia/tegra210.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/qcom/ vendor/device-tree/dist/src/arm64/qcom/apq8016-sbc-pmic-pins.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/qcom/apq8016-sbc-soc-pins.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/qcom/apq8016-sbc.dts (contents, props changed) vendor/device-tree/dist/src/arm64/qcom/apq8016-sbc.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/qcom/msm8916-mtp.dts (contents, props changed) vendor/device-tree/dist/src/arm64/qcom/msm8916-mtp.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/qcom/msm8916-pins.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/qcom/msm8916.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/qcom/pm8916.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/renesas/ vendor/device-tree/dist/src/arm64/renesas/r8a7795-salvator-x.dts (contents, props changed) vendor/device-tree/dist/src/arm64/renesas/r8a7795.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/rockchip/ vendor/device-tree/dist/src/arm64/rockchip/rk3368-evb-act8846.dts (contents, props changed) vendor/device-tree/dist/src/arm64/rockchip/rk3368-evb.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/rockchip/rk3368-r88.dts (contents, props changed) vendor/device-tree/dist/src/arm64/rockchip/rk3368-thermal.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/rockchip/rk3368.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/socionext/ vendor/device-tree/dist/src/arm64/socionext/uniphier-ph1-ld10-ref.dts (contents, props changed) vendor/device-tree/dist/src/arm64/socionext/uniphier-ph1-ld10.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/socionext/uniphier-pinctrl.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/socionext/uniphier-support-card.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/sprd/ vendor/device-tree/dist/src/arm64/sprd/sc9836-openphone.dts (contents, props changed) vendor/device-tree/dist/src/arm64/sprd/sc9836.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/sprd/sharkl64.dtsi (contents, props changed) vendor/device-tree/dist/src/arm64/xilinx/ vendor/device-tree/dist/src/arm64/xilinx/zynqmp-ep108.dts (contents, props changed) vendor/device-tree/dist/src/arm64/xilinx/zynqmp.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/ vendor/device-tree/dist/src/mips/brcm/ vendor/device-tree/dist/src/mips/brcm/bcm3384_viper.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm3384_zephyr.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm6328.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm6368.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm7125.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm7346.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm7358.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm7360.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm7362.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm7420.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm7425.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm7435.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm93384wvg.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm93384wvg_viper.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm96368mvwg.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm97125cbmb.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm97346dbsmb.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm97358svmb.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm97360svmb.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm97362svmb.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm97420c.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm97425svmb.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm97435svmb.dts (contents, props changed) vendor/device-tree/dist/src/mips/brcm/bcm9ejtagprb.dts (contents, props changed) vendor/device-tree/dist/src/mips/cavium-octeon/ vendor/device-tree/dist/src/mips/cavium-octeon/octeon_3xxx.dts (contents, props changed) vendor/device-tree/dist/src/mips/cavium-octeon/octeon_68xx.dts (contents, props changed) vendor/device-tree/dist/src/mips/ingenic/ vendor/device-tree/dist/src/mips/ingenic/ci20.dts (contents, props changed) vendor/device-tree/dist/src/mips/ingenic/jz4740.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/ingenic/jz4780.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/ingenic/qi_lb60.dts (contents, props changed) vendor/device-tree/dist/src/mips/lantiq/ vendor/device-tree/dist/src/mips/lantiq/danube.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/lantiq/easy50712.dts (contents, props changed) vendor/device-tree/dist/src/mips/mti/ vendor/device-tree/dist/src/mips/mti/malta.dts (contents, props changed) vendor/device-tree/dist/src/mips/mti/sead3.dts (contents, props changed) vendor/device-tree/dist/src/mips/netlogic/ vendor/device-tree/dist/src/mips/netlogic/xlp_evp.dts (contents, props changed) vendor/device-tree/dist/src/mips/netlogic/xlp_fvp.dts (contents, props changed) vendor/device-tree/dist/src/mips/netlogic/xlp_gvp.dts (contents, props changed) vendor/device-tree/dist/src/mips/netlogic/xlp_rvp.dts (contents, props changed) vendor/device-tree/dist/src/mips/netlogic/xlp_svp.dts (contents, props changed) vendor/device-tree/dist/src/mips/pic32/ vendor/device-tree/dist/src/mips/pic32/pic32mzda-clk.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/pic32/pic32mzda.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/pic32/pic32mzda_sk.dts (contents, props changed) vendor/device-tree/dist/src/mips/qca/ vendor/device-tree/dist/src/mips/qca/ar9132.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/qca/ar9132_tl_wr1043nd_v1.dts (contents, props changed) vendor/device-tree/dist/src/mips/ralink/ vendor/device-tree/dist/src/mips/ralink/mt7620a.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/ralink/mt7620a_eval.dts (contents, props changed) vendor/device-tree/dist/src/mips/ralink/rt2880.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/ralink/rt2880_eval.dts (contents, props changed) vendor/device-tree/dist/src/mips/ralink/rt3050.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/ralink/rt3052_eval.dts (contents, props changed) vendor/device-tree/dist/src/mips/ralink/rt3883.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/ralink/rt3883_eval.dts (contents, props changed) vendor/device-tree/dist/src/mips/xilfpga/ vendor/device-tree/dist/src/mips/xilfpga/microAptiv.dtsi (contents, props changed) vendor/device-tree/dist/src/mips/xilfpga/nexys4ddr.dts (contents, props changed) Deleted: vendor/device-tree/dist/Bindings/arc/interrupts.txt vendor/device-tree/dist/Bindings/arc/pmu.txt vendor/device-tree/dist/Bindings/arm/altera/socfpga-reset.txt vendor/device-tree/dist/Bindings/arm/armada-370-xp-mpic.txt vendor/device-tree/dist/Bindings/arm/atmel-adc.txt vendor/device-tree/dist/Bindings/arm/atmel-aic.txt vendor/device-tree/dist/Bindings/arm/bcm/bcm11351.txt vendor/device-tree/dist/Bindings/arm/bcm/bcm21664.txt vendor/device-tree/dist/Bindings/arm/bcm/bcm63138.txt vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351-cpu-method vendor/device-tree/dist/Bindings/arm/bcm/cygnus.txt vendor/device-tree/dist/Bindings/arm/bcm/kona-resetmgr.txt vendor/device-tree/dist/Bindings/arm/bcm/kona-timer.txt vendor/device-tree/dist/Bindings/arm/bcm/kona-wdt.txt vendor/device-tree/dist/Bindings/arm/bcm2835.txt vendor/device-tree/dist/Bindings/arm/bcm4708.txt vendor/device-tree/dist/Bindings/arm/brcm-brcmstb.txt vendor/device-tree/dist/Bindings/arm/calxeda/combophy.txt vendor/device-tree/dist/Bindings/arm/calxeda/mem-ctrlr.txt vendor/device-tree/dist/Bindings/arm/davinci/ vendor/device-tree/dist/Bindings/arm/exynos/ vendor/device-tree/dist/Bindings/arm/geniatech.txt vendor/device-tree/dist/Bindings/arm/gic-v3.txt vendor/device-tree/dist/Bindings/arm/gic.txt vendor/device-tree/dist/Bindings/arm/l2cc.txt vendor/device-tree/dist/Bindings/arm/lpc32xx-mic.txt vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,sysirq.txt vendor/device-tree/dist/Bindings/arm/mrvl/intc.txt vendor/device-tree/dist/Bindings/arm/omap/intc.txt vendor/device-tree/dist/Bindings/arm/rockchip/pmu-sram.txt vendor/device-tree/dist/Bindings/arm/rockchip/smp-sram.txt vendor/device-tree/dist/Bindings/arm/samsung-boards.txt vendor/device-tree/dist/Bindings/arm/samsung/interrupt-combiner.txt vendor/device-tree/dist/Bindings/arm/spear/ vendor/device-tree/dist/Bindings/arm/versatile-fpga-irq.txt vendor/device-tree/dist/Bindings/arm/vic.txt vendor/device-tree/dist/Bindings/arm/vt8500/via,vt8500-intc.txt vendor/device-tree/dist/Bindings/ata/exynos-sata-phy.txt vendor/device-tree/dist/Bindings/bus/bcma.txt vendor/device-tree/dist/Bindings/c6x/interrupt.txt vendor/device-tree/dist/Bindings/clock/bcm-cygnus-clock.txt vendor/device-tree/dist/Bindings/clock/bcm-kona-clock.txt vendor/device-tree/dist/Bindings/clock/corenet-clock.txt vendor/device-tree/dist/Bindings/cpufreq/cpufreq-cpu0.txt vendor/device-tree/dist/Bindings/dma/bcm2835-dma.txt vendor/device-tree/dist/Bindings/dma/rcar-audmapp.txt vendor/device-tree/dist/Bindings/drm/ vendor/device-tree/dist/Bindings/eeprom.txt vendor/device-tree/dist/Bindings/fb/ vendor/device-tree/dist/Bindings/gpio/gpio-bcm-kona.txt vendor/device-tree/dist/Bindings/gpio/gpio-msm.txt vendor/device-tree/dist/Bindings/gpio/gpio_keys.txt vendor/device-tree/dist/Bindings/gpu/nvidia,tegra20-host1x.txt vendor/device-tree/dist/Bindings/gpu/st,stih4xx.txt vendor/device-tree/dist/Bindings/hid/ vendor/device-tree/dist/Bindings/hwrng/ vendor/device-tree/dist/Bindings/i2c/i2c-bcm-kona.txt vendor/device-tree/dist/Bindings/i2c/ina209.txt vendor/device-tree/dist/Bindings/i2c/ina2xx.txt vendor/device-tree/dist/Bindings/i2c/max6697.txt vendor/device-tree/dist/Bindings/i2c/ti,bq32k.txt vendor/device-tree/dist/Bindings/input/cap1106.txt vendor/device-tree/dist/Bindings/interrupt-controller/allwinner,sun67i-sc-nmi.txt vendor/device-tree/dist/Bindings/metag/meta-intc.txt vendor/device-tree/dist/Bindings/metag/pdc-intc.txt vendor/device-tree/dist/Bindings/mfd/bcm590xx.txt vendor/device-tree/dist/Bindings/mfd/qcom,pm8xxx.txt vendor/device-tree/dist/Bindings/mfd/s2mpa01.txt vendor/device-tree/dist/Bindings/mfd/s2mps11.txt vendor/device-tree/dist/Bindings/mipi/ vendor/device-tree/dist/Bindings/mips/brcm/bcm3384-intc.txt vendor/device-tree/dist/Bindings/mips/brcm/bmips.txt vendor/device-tree/dist/Bindings/mips/brcm/cm-dsl.txt vendor/device-tree/dist/Bindings/mips/brcm/usb.txt vendor/device-tree/dist/Bindings/misc/allwinner,sunxi-sid.txt vendor/device-tree/dist/Bindings/misc/at25.txt vendor/device-tree/dist/Bindings/misc/bmp085.txt vendor/device-tree/dist/Bindings/misc/lis302.txt vendor/device-tree/dist/Bindings/misc/smc.txt vendor/device-tree/dist/Bindings/misc/sram.txt vendor/device-tree/dist/Bindings/misc/ti,dac7512.txt vendor/device-tree/dist/Bindings/mmc/kona-sdhci.txt vendor/device-tree/dist/Bindings/mtd/m25p80.txt vendor/device-tree/dist/Bindings/net/amd-xgbe-phy.txt vendor/device-tree/dist/Bindings/net/broadcom-bcmgenet.txt vendor/device-tree/dist/Bindings/net/broadcom-mdio-unimac.txt vendor/device-tree/dist/Bindings/net/broadcom-sf2.txt vendor/device-tree/dist/Bindings/net/broadcom-systemport.txt vendor/device-tree/dist/Bindings/net/cdns-emac.txt vendor/device-tree/dist/Bindings/net/micrel-ksz9021.txt vendor/device-tree/dist/Bindings/net/nfc/st21nfcb.txt vendor/device-tree/dist/Bindings/nvec/ vendor/device-tree/dist/Bindings/open-pic.txt vendor/device-tree/dist/Bindings/panel/ vendor/device-tree/dist/Bindings/phy/bcm-phy.txt vendor/device-tree/dist/Bindings/pinctrl/brcm,capri-pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/lantiq,falcon-pinumx.txt vendor/device-tree/dist/Bindings/pinctrl/lantiq,xway-pinumx.txt vendor/device-tree/dist/Bindings/power/opp.txt vendor/device-tree/dist/Bindings/powerpc/fsl/board.txt vendor/device-tree/dist/Bindings/powerpc/fsl/ifc.txt vendor/device-tree/dist/Bindings/pwm/bcm-kona-pwm.txt vendor/device-tree/dist/Bindings/regulator/s5m8767-regulator.txt vendor/device-tree/dist/Bindings/serial/bcm63xx-uart.txt vendor/device-tree/dist/Bindings/serial/of-serial.txt vendor/device-tree/dist/Bindings/serial/via,vt8500-uart.txt vendor/device-tree/dist/Bindings/sound/ak4554.c vendor/device-tree/dist/Bindings/sound/bcm2835-i2s.txt vendor/device-tree/dist/Bindings/sound/pcm1792a.txt vendor/device-tree/dist/Bindings/staging/imx-drm/ vendor/device-tree/dist/Bindings/staging/xillybus.txt vendor/device-tree/dist/Bindings/timer/efm32,timer.txt vendor/device-tree/dist/Bindings/usb/ci-hdrc-imx.txt vendor/device-tree/dist/Bindings/usb/ci-hdrc-qcom.txt vendor/device-tree/dist/Bindings/usb/ci-hdrc-zevio.txt vendor/device-tree/dist/Bindings/usb/keystone-phy.txt vendor/device-tree/dist/Bindings/usb/mxs-phy.txt vendor/device-tree/dist/Bindings/usb/nvidia,tegra20-usb-phy.txt vendor/device-tree/dist/Bindings/usb/platform-uhci.txt vendor/device-tree/dist/Bindings/usb/samsung-usbphy.txt vendor/device-tree/dist/Bindings/usb/usb-phy.txt vendor/device-tree/dist/Bindings/usb/via,vt8500-ehci.txt vendor/device-tree/dist/Bindings/usb/vt8500-ehci.txt vendor/device-tree/dist/Bindings/video/ vendor/device-tree/dist/Bindings/watchdog/meson6-wdt.txt vendor/device-tree/dist/Bindings/x86/interrupt.txt vendor/device-tree/dist/include/dt-bindings/clk/at91.h vendor/device-tree/dist/include/dt-bindings/clk/exynos-audss-clk.h vendor/device-tree/dist/include/dt-bindings/phy/phy-miphy365x.h vendor/device-tree/dist/include/dt-bindings/reset-controller/ vendor/device-tree/dist/src/arm/dove-cm-a510.dts vendor/device-tree/dist/src/arm/imx53-evk.dts vendor/device-tree/dist/src/arm/kizbox.dts vendor/device-tree/dist/src/arm/omap34xx-hs.dtsi vendor/device-tree/dist/src/arm/omap36xx-hs.dtsi vendor/device-tree/dist/src/arm/r8a73a4-ape6evm-reference.dts vendor/device-tree/dist/src/arm/r8a7778-bockw-reference.dts vendor/device-tree/dist/src/arm/r8a7791-henninger.dts vendor/device-tree/dist/src/arm/sh7372-mackerel.dts vendor/device-tree/dist/src/arm/sh7372.dtsi vendor/device-tree/dist/src/arm/sh73a0-kzm9g-reference.dts vendor/device-tree/dist/src/arm/socfpga_arria10_socdk.dts vendor/device-tree/dist/src/arm/tps65217.dtsi vendor/device-tree/dist/src/arm64/freescale/fsl-ls2085a-simu.dts vendor/device-tree/dist/src/arm64/freescale/fsl-ls2085a.dtsi vendor/device-tree/dist/src/arm64/skeleton.dtsi vendor/device-tree/dist/testcase-data/ Modified: vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-edac.txt vendor/device-tree/dist/Bindings/arm/amlogic.txt vendor/device-tree/dist/Bindings/arm/arch_timer.txt vendor/device-tree/dist/Bindings/arm/arm-boards vendor/device-tree/dist/Bindings/arm/atmel-at91.txt vendor/device-tree/dist/Bindings/arm/cci.txt vendor/device-tree/dist/Bindings/arm/coherency-fabric.txt vendor/device-tree/dist/Bindings/arm/coresight.txt vendor/device-tree/dist/Bindings/arm/cpus.txt vendor/device-tree/dist/Bindings/arm/fsl.txt vendor/device-tree/dist/Bindings/arm/hisilicon/hisilicon.txt vendor/device-tree/dist/Bindings/arm/idle-states.txt vendor/device-tree/dist/Bindings/arm/keystone/keystone.txt vendor/device-tree/dist/Bindings/arm/marvell,berlin.txt vendor/device-tree/dist/Bindings/arm/marvell,kirkwood.txt vendor/device-tree/dist/Bindings/arm/mediatek.txt vendor/device-tree/dist/Bindings/arm/msm/qcom,saw2.txt vendor/device-tree/dist/Bindings/arm/msm/timer.txt vendor/device-tree/dist/Bindings/arm/omap/crossbar.txt vendor/device-tree/dist/Bindings/arm/omap/l3-noc.txt vendor/device-tree/dist/Bindings/arm/omap/omap.txt vendor/device-tree/dist/Bindings/arm/omap/prcm.txt vendor/device-tree/dist/Bindings/arm/pmu.txt vendor/device-tree/dist/Bindings/arm/psci.txt vendor/device-tree/dist/Bindings/arm/rockchip.txt vendor/device-tree/dist/Bindings/arm/samsung/exynos-adc.txt vendor/device-tree/dist/Bindings/arm/samsung/pmu.txt vendor/device-tree/dist/Bindings/arm/shmobile.txt vendor/device-tree/dist/Bindings/arm/sti.txt vendor/device-tree/dist/Bindings/arm/sunxi.txt vendor/device-tree/dist/Bindings/arm/tegra/nvidia,tegra20-ahb.txt vendor/device-tree/dist/Bindings/arm/twd.txt vendor/device-tree/dist/Bindings/ata/ahci-st.txt vendor/device-tree/dist/Bindings/ata/sata_rcar.txt vendor/device-tree/dist/Bindings/bus/omap-ocp2scp.txt vendor/device-tree/dist/Bindings/chosen.txt vendor/device-tree/dist/Bindings/clock/at91-clock.txt vendor/device-tree/dist/Bindings/clock/clock-bindings.txt vendor/device-tree/dist/Bindings/clock/emev2-clock.txt vendor/device-tree/dist/Bindings/clock/exynos3250-clock.txt vendor/device-tree/dist/Bindings/clock/keystone-pll.txt vendor/device-tree/dist/Bindings/clock/mvebu-core-clock.txt vendor/device-tree/dist/Bindings/clock/mvebu-gated-clock.txt vendor/device-tree/dist/Bindings/clock/nvidia,tegra124-car.txt vendor/device-tree/dist/Bindings/clock/qcom,gcc.txt vendor/device-tree/dist/Bindings/clock/qcom,mmcc.txt vendor/device-tree/dist/Bindings/clock/qoriq-clock.txt vendor/device-tree/dist/Bindings/clock/renesas,cpg-div6-clocks.txt vendor/device-tree/dist/Bindings/clock/renesas,cpg-mstp-clocks.txt vendor/device-tree/dist/Bindings/clock/renesas,r8a7779-cpg-clocks.txt vendor/device-tree/dist/Bindings/clock/renesas,rcar-gen2-cpg-clocks.txt vendor/device-tree/dist/Bindings/clock/renesas,rz-cpg-clocks.txt vendor/device-tree/dist/Bindings/clock/silabs,si5351.txt vendor/device-tree/dist/Bindings/clock/st/st,clkgen-pll.txt vendor/device-tree/dist/Bindings/clock/sunxi.txt vendor/device-tree/dist/Bindings/cpufreq/arm_big_little_dt.txt vendor/device-tree/dist/Bindings/cpufreq/cpufreq-dt.txt vendor/device-tree/dist/Bindings/crypto/fsl-sec2.txt vendor/device-tree/dist/Bindings/crypto/fsl-sec4.txt vendor/device-tree/dist/Bindings/crypto/mv_cesa.txt vendor/device-tree/dist/Bindings/devfreq/event/exynos-ppmu.txt vendor/device-tree/dist/Bindings/dma/dma.txt vendor/device-tree/dist/Bindings/dma/fsl-mxs-dma.txt vendor/device-tree/dist/Bindings/dma/mv-xor.txt vendor/device-tree/dist/Bindings/dma/qcom_bam_dma.txt vendor/device-tree/dist/Bindings/dma/renesas,rcar-dmac.txt vendor/device-tree/dist/Bindings/dma/sirfsoc-dma.txt vendor/device-tree/dist/Bindings/dma/sun6i-dma.txt vendor/device-tree/dist/Bindings/dma/ti-edma.txt vendor/device-tree/dist/Bindings/extcon/extcon-palmas.txt vendor/device-tree/dist/Bindings/fpga/altera-socfpga-fpga-mgr.txt vendor/device-tree/dist/Bindings/fuse/nvidia,tegra20-fuse.txt vendor/device-tree/dist/Bindings/gpio/gpio-fan.txt vendor/device-tree/dist/Bindings/gpio/gpio-pca953x.txt vendor/device-tree/dist/Bindings/gpio/gpio-sx150x.txt vendor/device-tree/dist/Bindings/gpio/gpio-zynq.txt vendor/device-tree/dist/Bindings/gpio/gpio.txt vendor/device-tree/dist/Bindings/gpio/mrvl-gpio.txt vendor/device-tree/dist/Bindings/gpio/renesas,gpio-rcar.txt vendor/device-tree/dist/Bindings/gpio/snps-dwapb-gpio.txt vendor/device-tree/dist/Bindings/hwmon/ltc2978.txt vendor/device-tree/dist/Bindings/hwmon/ntc_thermistor.txt vendor/device-tree/dist/Bindings/hwmon/pwm-fan.txt vendor/device-tree/dist/Bindings/i2c/i2c-at91.txt vendor/device-tree/dist/Bindings/i2c/i2c-cadence.txt vendor/device-tree/dist/Bindings/i2c/i2c-davinci.txt vendor/device-tree/dist/Bindings/i2c/i2c-imx.txt vendor/device-tree/dist/Bindings/i2c/i2c-rcar.txt vendor/device-tree/dist/Bindings/i2c/i2c-sh_mobile.txt vendor/device-tree/dist/Bindings/i2c/trivial-devices.txt vendor/device-tree/dist/Bindings/iio/accel/bma180.txt vendor/device-tree/dist/Bindings/iio/adc/vf610-adc.txt vendor/device-tree/dist/Bindings/iio/st-sensors.txt vendor/device-tree/dist/Bindings/input/ads7846.txt vendor/device-tree/dist/Bindings/input/cap11xx.txt vendor/device-tree/dist/Bindings/input/elants_i2c.txt vendor/device-tree/dist/Bindings/input/gpio-keys-polled.txt vendor/device-tree/dist/Bindings/input/gpio-keys.txt vendor/device-tree/dist/Bindings/input/gpio-matrix-keypad.txt vendor/device-tree/dist/Bindings/input/nvidia,tegra20-kbc.txt vendor/device-tree/dist/Bindings/input/qcom,pm8xxx-keypad.txt vendor/device-tree/dist/Bindings/input/rotary-encoder.txt vendor/device-tree/dist/Bindings/input/samsung-keypad.txt vendor/device-tree/dist/Bindings/input/sun4i-lradc-keys.txt vendor/device-tree/dist/Bindings/input/touchscreen/edt-ft5x06.txt vendor/device-tree/dist/Bindings/input/touchscreen/pixcir_i2c_ts.txt vendor/device-tree/dist/Bindings/input/touchscreen/sun4i.txt vendor/device-tree/dist/Bindings/input/touchscreen/ti-tsc-adc.txt vendor/device-tree/dist/Bindings/input/touchscreen/touchscreen.txt vendor/device-tree/dist/Bindings/input/touchscreen/tsc2005.txt vendor/device-tree/dist/Bindings/input/touchscreen/zforce_ts.txt vendor/device-tree/dist/Bindings/interrupt-controller/atmel,aic.txt vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt vendor/device-tree/dist/Bindings/interrupt-controller/mips-gic.txt vendor/device-tree/dist/Bindings/interrupt-controller/renesas,intc-irqpin.txt vendor/device-tree/dist/Bindings/interrupt-controller/renesas,irqc.txt vendor/device-tree/dist/Bindings/iommu/arm,smmu.txt vendor/device-tree/dist/Bindings/iommu/renesas,ipmmu-vmsa.txt vendor/device-tree/dist/Bindings/iommu/samsung,sysmmu.txt vendor/device-tree/dist/Bindings/iommu/ti,omap-iommu.txt vendor/device-tree/dist/Bindings/leds/common.txt vendor/device-tree/dist/Bindings/leds/leds-gpio.txt vendor/device-tree/dist/Bindings/leds/leds-ns2.txt vendor/device-tree/dist/Bindings/mailbox/mailbox.txt vendor/device-tree/dist/Bindings/mailbox/omap-mailbox.txt vendor/device-tree/dist/Bindings/media/exynos-jpeg-codec.txt vendor/device-tree/dist/Bindings/media/exynos5-gsc.txt vendor/device-tree/dist/Bindings/media/i2c/adv7604.txt vendor/device-tree/dist/Bindings/media/video-interfaces.txt vendor/device-tree/dist/Bindings/memory-controllers/fsl/ifc.txt vendor/device-tree/dist/Bindings/memory-controllers/nvidia,tegra-mc.txt vendor/device-tree/dist/Bindings/memory-controllers/renesas-memory-controllers.txt vendor/device-tree/dist/Bindings/memory-controllers/synopsys.txt vendor/device-tree/dist/Bindings/memory-controllers/ti/emif.txt vendor/device-tree/dist/Bindings/mfd/arizona.txt vendor/device-tree/dist/Bindings/mfd/atmel-hlcdc.txt vendor/device-tree/dist/Bindings/mfd/cros-ec.txt vendor/device-tree/dist/Bindings/mfd/da9063.txt vendor/device-tree/dist/Bindings/mfd/max77686.txt vendor/device-tree/dist/Bindings/mfd/max77693.txt vendor/device-tree/dist/Bindings/mfd/palmas.txt vendor/device-tree/dist/Bindings/mfd/qcom,spmi-pmic.txt vendor/device-tree/dist/Bindings/mfd/qcom-rpm.txt vendor/device-tree/dist/Bindings/mfd/rk808.txt vendor/device-tree/dist/Bindings/mfd/syscon.txt vendor/device-tree/dist/Bindings/mfd/tc3589x.txt vendor/device-tree/dist/Bindings/misc/nvidia,tegra20-apbmisc.txt vendor/device-tree/dist/Bindings/mmc/arasan,sdhci.txt vendor/device-tree/dist/Bindings/mmc/exynos-dw-mshc.txt vendor/device-tree/dist/Bindings/mmc/fsl-esdhc.txt vendor/device-tree/dist/Bindings/mmc/fsl-imx-esdhc.txt vendor/device-tree/dist/Bindings/mmc/k3-dw-mshc.txt vendor/device-tree/dist/Bindings/mmc/mmc-pwrseq-simple.txt vendor/device-tree/dist/Bindings/mmc/mmc.txt vendor/device-tree/dist/Bindings/mmc/renesas,mmcif.txt vendor/device-tree/dist/Bindings/mmc/rockchip-dw-mshc.txt vendor/device-tree/dist/Bindings/mmc/sdhci-st.txt vendor/device-tree/dist/Bindings/mmc/synopsys-dw-mshc.txt vendor/device-tree/dist/Bindings/mmc/ti-omap-hsmmc.txt vendor/device-tree/dist/Bindings/mtd/fsl-quadspi.txt vendor/device-tree/dist/Bindings/mtd/fsmc-nand.txt vendor/device-tree/dist/Bindings/mtd/partition.txt vendor/device-tree/dist/Bindings/mtd/pxa3xx-nand.txt vendor/device-tree/dist/Bindings/mtd/sunxi-nand.txt vendor/device-tree/dist/Bindings/net/amd-xgbe.txt vendor/device-tree/dist/Bindings/net/apm-xgene-enet.txt vendor/device-tree/dist/Bindings/net/cpsw.txt vendor/device-tree/dist/Bindings/net/dsa/dsa.txt vendor/device-tree/dist/Bindings/net/ethernet.txt vendor/device-tree/dist/Bindings/net/fixed-link.txt vendor/device-tree/dist/Bindings/net/fsl-tsec-phy.txt vendor/device-tree/dist/Bindings/net/hisilicon-hip04-net.txt vendor/device-tree/dist/Bindings/net/ieee802154/at86rf230.txt vendor/device-tree/dist/Bindings/net/ieee802154/cc2520.txt vendor/device-tree/dist/Bindings/net/keystone-netcp.txt vendor/device-tree/dist/Bindings/net/macb.txt vendor/device-tree/dist/Bindings/net/marvell-armada-370-neta.txt vendor/device-tree/dist/Bindings/net/micrel-ksz90x1.txt vendor/device-tree/dist/Bindings/net/nfc/trf7970a.txt vendor/device-tree/dist/Bindings/net/phy.txt vendor/device-tree/dist/Bindings/net/rockchip-dwmac.txt vendor/device-tree/dist/Bindings/net/socfpga-dwmac.txt vendor/device-tree/dist/Bindings/net/stmmac.txt vendor/device-tree/dist/Bindings/pci/designware-pcie.txt vendor/device-tree/dist/Bindings/pci/host-generic-pci.txt vendor/device-tree/dist/Bindings/pci/layerscape-pci.txt vendor/device-tree/dist/Bindings/pci/pci-rcar-gen2.txt vendor/device-tree/dist/Bindings/pci/pci.txt vendor/device-tree/dist/Bindings/pci/rcar-pci.txt vendor/device-tree/dist/Bindings/pci/ti-pci.txt vendor/device-tree/dist/Bindings/pci/xilinx-pcie.txt vendor/device-tree/dist/Bindings/phy/phy-miphy365x.txt vendor/device-tree/dist/Bindings/phy/rcar-gen2-phy.txt vendor/device-tree/dist/Bindings/phy/rockchip-usb-phy.txt vendor/device-tree/dist/Bindings/phy/samsung-phy.txt vendor/device-tree/dist/Bindings/phy/sun4i-usb-phy.txt vendor/device-tree/dist/Bindings/phy/ti-phy.txt vendor/device-tree/dist/Bindings/pinctrl/allwinner,sunxi-pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-370-pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-375-pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-38x-pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-xp-pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/meson,pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/pinctrl-bindings.txt vendor/device-tree/dist/Bindings/pinctrl/qcom,pmic-gpio.txt vendor/device-tree/dist/Bindings/pinctrl/qcom,pmic-mpp.txt vendor/device-tree/dist/Bindings/pinctrl/renesas,pfc-pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/rockchip,pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/samsung-pinctrl.txt vendor/device-tree/dist/Bindings/pinctrl/ste,nomadik.txt vendor/device-tree/dist/Bindings/pinctrl/xlnx,zynq-pinctrl.txt vendor/device-tree/dist/Bindings/power/power_domain.txt vendor/device-tree/dist/Bindings/power/renesas,sysc-rmobile.txt vendor/device-tree/dist/Bindings/power/rockchip-io-domain.txt vendor/device-tree/dist/Bindings/power/twl-charger.txt vendor/device-tree/dist/Bindings/power_supply/max17042_battery.txt vendor/device-tree/dist/Bindings/powerpc/fsl/fman.txt vendor/device-tree/dist/Bindings/powerpc/fsl/guts.txt vendor/device-tree/dist/Bindings/powerpc/fsl/mpc5121-psc.txt vendor/device-tree/dist/Bindings/pwm/imx-pwm.txt vendor/device-tree/dist/Bindings/pwm/lpc32xx-pwm.txt vendor/device-tree/dist/Bindings/pwm/pwm-sun4i.txt vendor/device-tree/dist/Bindings/regulator/act8865-regulator.txt vendor/device-tree/dist/Bindings/regulator/anatop-regulator.txt vendor/device-tree/dist/Bindings/regulator/da9210.txt vendor/device-tree/dist/Bindings/regulator/da9211.txt vendor/device-tree/dist/Bindings/regulator/max77802.txt vendor/device-tree/dist/Bindings/regulator/max8973-regulator.txt vendor/device-tree/dist/Bindings/regulator/pbias-regulator.txt vendor/device-tree/dist/Bindings/regulator/pwm-regulator.txt vendor/device-tree/dist/Bindings/regulator/regulator.txt vendor/device-tree/dist/Bindings/regulator/tps65217.txt vendor/device-tree/dist/Bindings/reset/socfpga-reset.txt vendor/device-tree/dist/Bindings/reset/st,sti-picophyreset.txt vendor/device-tree/dist/Bindings/reset/st,sti-powerdown.txt vendor/device-tree/dist/Bindings/reset/st,sti-softreset.txt vendor/device-tree/dist/Bindings/rtc/atmel,at91rm9200-rtc.txt vendor/device-tree/dist/Bindings/rtc/haoyu,hym8563.txt vendor/device-tree/dist/Bindings/rtc/isil,isl12057.txt vendor/device-tree/dist/Bindings/rtc/rtc-omap.txt vendor/device-tree/dist/Bindings/rtc/rtc-opal.txt vendor/device-tree/dist/Bindings/rtc/s3c-rtc.txt vendor/device-tree/dist/Bindings/rtc/stmp3xxx-rtc.txt vendor/device-tree/dist/Bindings/serial/atmel-usart.txt vendor/device-tree/dist/Bindings/serial/mrvl,pxa-ssp.txt vendor/device-tree/dist/Bindings/serial/mtk-uart.txt vendor/device-tree/dist/Bindings/serial/nxp,sc16is7xx.txt vendor/device-tree/dist/Bindings/serial/omap_serial.txt vendor/device-tree/dist/Bindings/serial/pl011.txt vendor/device-tree/dist/Bindings/serial/qcom,msm-uartdm.txt vendor/device-tree/dist/Bindings/serial/renesas,sci-serial.txt vendor/device-tree/dist/Bindings/serial/sirf-uart.txt vendor/device-tree/dist/Bindings/serial/snps-dw-apb-uart.txt vendor/device-tree/dist/Bindings/soc/fsl/qman-portals.txt vendor/device-tree/dist/Bindings/soc/qcom/qcom,gsbi.txt vendor/device-tree/dist/Bindings/soc/ti/keystone-navigator-qmss.txt vendor/device-tree/dist/Bindings/sound/adi,adau1701.txt vendor/device-tree/dist/Bindings/sound/ak4642.txt vendor/device-tree/dist/Bindings/sound/fsl,asrc.txt vendor/device-tree/dist/Bindings/sound/fsl,esai.txt vendor/device-tree/dist/Bindings/sound/fsl,spdif.txt vendor/device-tree/dist/Bindings/sound/fsl-asoc-card.txt vendor/device-tree/dist/Bindings/sound/ingenic,jz4740-i2s.txt vendor/device-tree/dist/Bindings/sound/max98090.txt vendor/device-tree/dist/Bindings/sound/max98357a.txt vendor/device-tree/dist/Bindings/sound/nvidia,tegra-audio-max98090.txt vendor/device-tree/dist/Bindings/sound/nvidia,tegra30-hda.txt vendor/device-tree/dist/Bindings/sound/omap-twl4030.txt vendor/device-tree/dist/Bindings/sound/renesas,rsnd.txt vendor/device-tree/dist/Bindings/sound/rockchip-i2s.txt vendor/device-tree/dist/Bindings/sound/rt5640.txt vendor/device-tree/dist/Bindings/sound/rt5677.txt vendor/device-tree/dist/Bindings/sound/simple-card.txt vendor/device-tree/dist/Bindings/sound/tas2552.txt vendor/device-tree/dist/Bindings/sound/tdm-slot.txt vendor/device-tree/dist/Bindings/sound/wm8741.txt vendor/device-tree/dist/Bindings/sound/wm8804.txt vendor/device-tree/dist/Bindings/sound/wm8994.txt vendor/device-tree/dist/Bindings/spi/fsl-imx-cspi.txt vendor/device-tree/dist/Bindings/spi/qcom,spi-qup.txt vendor/device-tree/dist/Bindings/spi/sh-msiof.txt vendor/device-tree/dist/Bindings/spi/snps,dw-apb-ssi.txt vendor/device-tree/dist/Bindings/spi/spi-davinci.txt vendor/device-tree/dist/Bindings/spi/spi-fsl-dspi.txt vendor/device-tree/dist/Bindings/spi/spi-img-spfi.txt vendor/device-tree/dist/Bindings/spi/spi-orion.txt vendor/device-tree/dist/Bindings/spi/spi-rockchip.txt vendor/device-tree/dist/Bindings/spi/spi-sirf.txt vendor/device-tree/dist/Bindings/spi/spi_atmel.txt vendor/device-tree/dist/Bindings/spi/spi_pl022.txt vendor/device-tree/dist/Bindings/spi/ti_qspi.txt vendor/device-tree/dist/Bindings/spmi/qcom,spmi-pmic-arb.txt vendor/device-tree/dist/Bindings/staging/iio/adc/mxs-lradc.txt vendor/device-tree/dist/Bindings/submitting-patches.txt vendor/device-tree/dist/Bindings/thermal/rcar-thermal.txt vendor/device-tree/dist/Bindings/thermal/rockchip-thermal.txt vendor/device-tree/dist/Bindings/thermal/thermal.txt vendor/device-tree/dist/Bindings/thermal/ti_soc_thermal.txt vendor/device-tree/dist/Bindings/timer/cadence,ttc-timer.txt vendor/device-tree/dist/Bindings/timer/mediatek,mtk-timer.txt vendor/device-tree/dist/Bindings/ufs/ufshcd-pltfrm.txt vendor/device-tree/dist/Bindings/unittest.txt vendor/device-tree/dist/Bindings/usb/atmel-usb.txt vendor/device-tree/dist/Bindings/usb/ci-hdrc-usb2.txt vendor/device-tree/dist/Bindings/usb/dwc2.txt vendor/device-tree/dist/Bindings/usb/dwc3-st.txt vendor/device-tree/dist/Bindings/usb/dwc3.txt vendor/device-tree/dist/Bindings/usb/generic.txt vendor/device-tree/dist/Bindings/usb/msm-hsusb.txt vendor/device-tree/dist/Bindings/usb/renesas_usbhs.txt vendor/device-tree/dist/Bindings/usb/twlxxxx-usb.txt vendor/device-tree/dist/Bindings/usb/usb-ehci.txt vendor/device-tree/dist/Bindings/usb/usb-xhci.txt vendor/device-tree/dist/Bindings/usb/usb3503.txt vendor/device-tree/dist/Bindings/usb/usbmisc-imx.txt vendor/device-tree/dist/Bindings/vendor-prefixes.txt vendor/device-tree/dist/Bindings/w1/omap-hdq.txt vendor/device-tree/dist/Bindings/watchdog/atmel-wdt.txt vendor/device-tree/dist/Bindings/watchdog/mtk-wdt.txt vendor/device-tree/dist/Bindings/watchdog/omap-wdt.txt vendor/device-tree/dist/include/dt-bindings/clock/at91.h vendor/device-tree/dist/include/dt-bindings/clock/berlin2q.h vendor/device-tree/dist/include/dt-bindings/clock/exynos3250.h vendor/device-tree/dist/include/dt-bindings/clock/exynos4.h vendor/device-tree/dist/include/dt-bindings/clock/exynos5250.h vendor/device-tree/dist/include/dt-bindings/clock/exynos5420.h vendor/device-tree/dist/include/dt-bindings/clock/exynos7-clk.h vendor/device-tree/dist/include/dt-bindings/clock/imx6qdl-clock.h vendor/device-tree/dist/include/dt-bindings/clock/imx6sl-clock.h vendor/device-tree/dist/include/dt-bindings/clock/imx6sx-clock.h vendor/device-tree/dist/include/dt-bindings/clock/marvell,mmp2.h vendor/device-tree/dist/include/dt-bindings/clock/marvell,pxa168.h vendor/device-tree/dist/include/dt-bindings/clock/marvell,pxa910.h vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-apq8084.h vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-ipq806x.h vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-msm8974.h vendor/device-tree/dist/include/dt-bindings/clock/qcom,mmcc-apq8084.h vendor/device-tree/dist/include/dt-bindings/clock/qcom,mmcc-msm8974.h vendor/device-tree/dist/include/dt-bindings/clock/r8a7790-clock.h vendor/device-tree/dist/include/dt-bindings/clock/r8a7791-clock.h vendor/device-tree/dist/include/dt-bindings/clock/r8a7794-clock.h vendor/device-tree/dist/include/dt-bindings/clock/rk3066a-cru.h vendor/device-tree/dist/include/dt-bindings/clock/rk3188-cru-common.h vendor/device-tree/dist/include/dt-bindings/clock/rk3188-cru.h vendor/device-tree/dist/include/dt-bindings/clock/rk3288-cru.h vendor/device-tree/dist/include/dt-bindings/clock/sh73a0-clock.h vendor/device-tree/dist/include/dt-bindings/clock/tegra124-car-common.h vendor/device-tree/dist/include/dt-bindings/clock/vf610-clock.h vendor/device-tree/dist/include/dt-bindings/gpio/gpio.h vendor/device-tree/dist/include/dt-bindings/input/input.h vendor/device-tree/dist/include/dt-bindings/mfd/palmas.h vendor/device-tree/dist/include/dt-bindings/mfd/qcom-rpm.h vendor/device-tree/dist/include/dt-bindings/pinctrl/am33xx.h vendor/device-tree/dist/include/dt-bindings/pinctrl/am43xx.h vendor/device-tree/dist/include/dt-bindings/pinctrl/dra.h vendor/device-tree/dist/include/dt-bindings/pinctrl/omap.h vendor/device-tree/dist/include/dt-bindings/pinctrl/qcom,pmic-gpio.h vendor/device-tree/dist/include/dt-bindings/pinctrl/qcom,pmic-mpp.h vendor/device-tree/dist/include/dt-bindings/reset/qcom,gcc-ipq806x.h vendor/device-tree/dist/scripts/cronjob vendor/device-tree/dist/scripts/filter.sh vendor/device-tree/dist/scripts/index-filter.sh vendor/device-tree/dist/src/arm/am335x-base0033.dts vendor/device-tree/dist/src/arm/am335x-bone-common.dtsi vendor/device-tree/dist/src/arm/am335x-bone.dts vendor/device-tree/dist/src/arm/am335x-boneblack.dts vendor/device-tree/dist/src/arm/am335x-evm.dts vendor/device-tree/dist/src/arm/am335x-evmsk.dts vendor/device-tree/dist/src/arm/am335x-igep0033.dtsi vendor/device-tree/dist/src/arm/am335x-lxm.dts vendor/device-tree/dist/src/arm/am335x-nano.dts vendor/device-tree/dist/src/arm/am335x-pepper.dts vendor/device-tree/dist/src/arm/am33xx-clocks.dtsi vendor/device-tree/dist/src/arm/am33xx.dtsi vendor/device-tree/dist/src/arm/am3517-craneboard.dts vendor/device-tree/dist/src/arm/am3517.dtsi vendor/device-tree/dist/src/arm/am35xx-clocks.dtsi vendor/device-tree/dist/src/arm/am4372.dtsi vendor/device-tree/dist/src/arm/am437x-gp-evm.dts vendor/device-tree/dist/src/arm/am437x-idk-evm.dts vendor/device-tree/dist/src/arm/am437x-sk-evm.dts vendor/device-tree/dist/src/arm/am43x-epos-evm.dts vendor/device-tree/dist/src/arm/am43xx-clocks.dtsi vendor/device-tree/dist/src/arm/am57xx-beagle-x15.dts vendor/device-tree/dist/src/arm/animeo_ip.dts vendor/device-tree/dist/src/arm/arm-realview-pb1176.dts vendor/device-tree/dist/src/arm/armada-370-db.dts vendor/device-tree/dist/src/arm/armada-370-mirabox.dts vendor/device-tree/dist/src/arm/armada-370-netgear-rn102.dts vendor/device-tree/dist/src/arm/armada-370-netgear-rn104.dts vendor/device-tree/dist/src/arm/armada-370-rd.dts vendor/device-tree/dist/src/arm/armada-370-synology-ds213j.dts vendor/device-tree/dist/src/arm/armada-370-xp.dtsi vendor/device-tree/dist/src/arm/armada-370.dtsi vendor/device-tree/dist/src/arm/armada-375-db.dts vendor/device-tree/dist/src/arm/armada-375.dtsi vendor/device-tree/dist/src/arm/armada-385-db-ap.dts vendor/device-tree/dist/src/arm/armada-388-db.dts vendor/device-tree/dist/src/arm/armada-388-gp.dts vendor/device-tree/dist/src/arm/armada-388-rd.dts vendor/device-tree/dist/src/arm/armada-38x.dtsi vendor/device-tree/dist/src/arm/armada-xp-axpwifiap.dts vendor/device-tree/dist/src/arm/armada-xp-db.dts vendor/device-tree/dist/src/arm/armada-xp-gp.dts vendor/device-tree/dist/src/arm/armada-xp-lenovo-ix4-300d.dts vendor/device-tree/dist/src/arm/armada-xp-matrix.dts vendor/device-tree/dist/src/arm/armada-xp-mv78260.dtsi vendor/device-tree/dist/src/arm/armada-xp-mv78460.dtsi vendor/device-tree/dist/src/arm/armada-xp-netgear-rn2120.dts vendor/device-tree/dist/src/arm/armada-xp-openblocks-ax3-4.dts vendor/device-tree/dist/src/arm/armada-xp-synology-ds414.dts vendor/device-tree/dist/src/arm/armada-xp.dtsi vendor/device-tree/dist/src/arm/armv7-m.dtsi vendor/device-tree/dist/src/arm/at91-foxg20.dts vendor/device-tree/dist/src/arm/at91-qil_a9260.dts vendor/device-tree/dist/src/arm/at91-sama5d3_xplained.dts vendor/device-tree/dist/src/arm/at91-sama5d4ek.dts vendor/device-tree/dist/src/arm/at91rm9200.dtsi vendor/device-tree/dist/src/arm/at91rm9200ek.dts vendor/device-tree/dist/src/arm/at91sam9260.dtsi vendor/device-tree/dist/src/arm/at91sam9261.dtsi vendor/device-tree/dist/src/arm/at91sam9261ek.dts vendor/device-tree/dist/src/arm/at91sam9263.dtsi vendor/device-tree/dist/src/arm/at91sam9263ek.dts vendor/device-tree/dist/src/arm/at91sam9g15.dtsi vendor/device-tree/dist/src/arm/at91sam9g15ek.dts vendor/device-tree/dist/src/arm/at91sam9g20ek_common.dtsi vendor/device-tree/dist/src/arm/at91sam9g25.dtsi vendor/device-tree/dist/src/arm/at91sam9g25ek.dts vendor/device-tree/dist/src/arm/at91sam9g35.dtsi vendor/device-tree/dist/src/arm/at91sam9g35ek.dts vendor/device-tree/dist/src/arm/at91sam9g45.dtsi vendor/device-tree/dist/src/arm/at91sam9m10g45ek.dts vendor/device-tree/dist/src/arm/at91sam9n12.dtsi vendor/device-tree/dist/src/arm/at91sam9n12ek.dts vendor/device-tree/dist/src/arm/at91sam9rl.dtsi vendor/device-tree/dist/src/arm/at91sam9rlek.dts vendor/device-tree/dist/src/arm/at91sam9x35.dtsi vendor/device-tree/dist/src/arm/at91sam9x35ek.dts vendor/device-tree/dist/src/arm/at91sam9x5.dtsi vendor/device-tree/dist/src/arm/at91sam9x5_isi.dtsi vendor/device-tree/dist/src/arm/at91sam9x5_lcd.dtsi vendor/device-tree/dist/src/arm/at91sam9x5_macb0.dtsi vendor/device-tree/dist/src/arm/at91sam9x5_macb1.dtsi vendor/device-tree/dist/src/arm/at91sam9x5cm.dtsi vendor/device-tree/dist/src/arm/at91sam9x5ek.dtsi vendor/device-tree/dist/src/arm/atlas7-evb.dts vendor/device-tree/dist/src/arm/atlas7.dtsi vendor/device-tree/dist/src/arm/axp209.dtsi vendor/device-tree/dist/src/arm/bcm-cygnus-clock.dtsi vendor/device-tree/dist/src/arm/bcm-cygnus.dtsi vendor/device-tree/dist/src/arm/bcm11351.dtsi vendor/device-tree/dist/src/arm/bcm21664.dtsi vendor/device-tree/dist/src/arm/bcm2835-rpi-b-plus.dts vendor/device-tree/dist/src/arm/bcm2835-rpi-b.dts vendor/device-tree/dist/src/arm/bcm2835-rpi.dtsi vendor/device-tree/dist/src/arm/bcm2835.dtsi vendor/device-tree/dist/src/arm/bcm4708-buffalo-wzr-1750dhp.dts vendor/device-tree/dist/src/arm/bcm4708-luxul-xwc-1000.dts vendor/device-tree/dist/src/arm/bcm4708-netgear-r6250.dts vendor/device-tree/dist/src/arm/bcm4708-netgear-r6300-v2.dts vendor/device-tree/dist/src/arm/bcm4708.dtsi vendor/device-tree/dist/src/arm/bcm47081-asus-rt-n18u.dts vendor/device-tree/dist/src/arm/bcm47081-buffalo-wzr-600dhp2.dts vendor/device-tree/dist/src/arm/bcm47081-buffalo-wzr-900dhp.dts vendor/device-tree/dist/src/arm/bcm5301x.dtsi vendor/device-tree/dist/src/arm/bcm63138.dtsi vendor/device-tree/dist/src/arm/bcm7445-bcm97445svmb.dts vendor/device-tree/dist/src/arm/bcm7445.dtsi vendor/device-tree/dist/src/arm/bcm911360_entphn.dts vendor/device-tree/dist/src/arm/bcm911360k.dts vendor/device-tree/dist/src/arm/bcm958300k.dts vendor/device-tree/dist/src/arm/bcm963138dvt.dts vendor/device-tree/dist/src/arm/berlin2-sony-nsz-gs7.dts vendor/device-tree/dist/src/arm/berlin2.dtsi vendor/device-tree/dist/src/arm/berlin2cd-google-chromecast.dts vendor/device-tree/dist/src/arm/berlin2cd.dtsi vendor/device-tree/dist/src/arm/berlin2q-marvell-dmp.dts vendor/device-tree/dist/src/arm/berlin2q.dtsi vendor/device-tree/dist/src/arm/cros-ec-keyboard.dtsi vendor/device-tree/dist/src/arm/cx92755.dtsi vendor/device-tree/dist/src/arm/cx92755_equinox.dts vendor/device-tree/dist/src/arm/da850-enbw-cmc.dts vendor/device-tree/dist/src/arm/da850-evm.dts vendor/device-tree/dist/src/arm/da850.dtsi vendor/device-tree/dist/src/arm/dm8168-evm.dts vendor/device-tree/dist/src/arm/dm816x.dtsi vendor/device-tree/dist/src/arm/dove-cubox.dts vendor/device-tree/dist/src/arm/dove.dtsi vendor/device-tree/dist/src/arm/dra7-evm.dts vendor/device-tree/dist/src/arm/dra7.dtsi vendor/device-tree/dist/src/arm/dra72-evm.dts vendor/device-tree/dist/src/arm/dra72x.dtsi vendor/device-tree/dist/src/arm/dra74x.dtsi vendor/device-tree/dist/src/arm/dra7xx-clocks.dtsi vendor/device-tree/dist/src/arm/ea3250.dts vendor/device-tree/dist/src/arm/efm32gg-dk3750.dts vendor/device-tree/dist/src/arm/efm32gg.dtsi vendor/device-tree/dist/src/arm/emev2-kzm9d.dts vendor/device-tree/dist/src/arm/emev2.dtsi vendor/device-tree/dist/src/arm/exynos3250-monk.dts vendor/device-tree/dist/src/arm/exynos3250-rinato.dts vendor/device-tree/dist/src/arm/exynos3250.dtsi vendor/device-tree/dist/src/arm/exynos4.dtsi vendor/device-tree/dist/src/arm/exynos4210-origen.dts vendor/device-tree/dist/src/arm/exynos4210-smdkv310.dts vendor/device-tree/dist/src/arm/exynos4210-trats.dts vendor/device-tree/dist/src/arm/exynos4210-universal_c210.dts vendor/device-tree/dist/src/arm/exynos4210.dtsi vendor/device-tree/dist/src/arm/exynos4212.dtsi vendor/device-tree/dist/src/arm/exynos4412-odroid-common.dtsi vendor/device-tree/dist/src/arm/exynos4412-odroidu3.dts vendor/device-tree/dist/src/arm/exynos4412-odroidx.dts vendor/device-tree/dist/src/arm/exynos4412-origen.dts vendor/device-tree/dist/src/arm/exynos4412-smdk4412.dts vendor/device-tree/dist/src/arm/exynos4412-tiny4412.dts vendor/device-tree/dist/src/arm/exynos4412-trats2.dts vendor/device-tree/dist/src/arm/exynos4412.dtsi vendor/device-tree/dist/src/arm/exynos4415.dtsi vendor/device-tree/dist/src/arm/exynos4x12-pinctrl.dtsi vendor/device-tree/dist/src/arm/exynos4x12.dtsi vendor/device-tree/dist/src/arm/exynos5.dtsi vendor/device-tree/dist/src/arm/exynos5250-arndale.dts vendor/device-tree/dist/src/arm/exynos5250-pinctrl.dtsi vendor/device-tree/dist/src/arm/exynos5250-smdk5250.dts vendor/device-tree/dist/src/arm/exynos5250-snow.dts vendor/device-tree/dist/src/arm/exynos5250-spring.dts vendor/device-tree/dist/src/arm/exynos5250.dtsi vendor/device-tree/dist/src/arm/exynos5260-xyref5260.dts vendor/device-tree/dist/src/arm/exynos5410-smdk5410.dts vendor/device-tree/dist/src/arm/exynos5410.dtsi vendor/device-tree/dist/src/arm/exynos5420-arndale-octa.dts vendor/device-tree/dist/src/arm/exynos5420-peach-pit.dts vendor/device-tree/dist/src/arm/exynos5420-pinctrl.dtsi vendor/device-tree/dist/src/arm/exynos5420-smdk5420.dts vendor/device-tree/dist/src/arm/exynos5420.dtsi vendor/device-tree/dist/src/arm/exynos5422-odroidxu3.dts vendor/device-tree/dist/src/arm/exynos5440-sd5v1.dts vendor/device-tree/dist/src/arm/exynos5440-ssdk5440.dts vendor/device-tree/dist/src/arm/exynos5440.dtsi vendor/device-tree/dist/src/arm/exynos5800-peach-pi.dts vendor/device-tree/dist/src/arm/hi3620-hi4511.dts vendor/device-tree/dist/src/arm/hip04.dtsi vendor/device-tree/dist/src/arm/hisi-x5hd2-dkb.dts vendor/device-tree/dist/src/arm/imx23-olinuxino.dts vendor/device-tree/dist/src/arm/imx23.dtsi vendor/device-tree/dist/src/arm/imx25-pdk.dts vendor/device-tree/dist/src/arm/imx25-pinfunc.h vendor/device-tree/dist/src/arm/imx25.dtsi vendor/device-tree/dist/src/arm/imx27.dtsi vendor/device-tree/dist/src/arm/imx28-apf28.dts vendor/device-tree/dist/src/arm/imx28-apf28dev.dts vendor/device-tree/dist/src/arm/imx28-cfa10036.dts vendor/device-tree/dist/src/arm/imx28-cfa10057.dts vendor/device-tree/dist/src/arm/imx28-evk.dts vendor/device-tree/dist/src/arm/imx28-m28evk.dts vendor/device-tree/dist/src/arm/imx28-tx28.dts vendor/device-tree/dist/src/arm/imx28.dtsi vendor/device-tree/dist/src/arm/imx31.dtsi vendor/device-tree/dist/src/arm/imx35.dtsi vendor/device-tree/dist/src/arm/imx50-evk.dts vendor/device-tree/dist/src/arm/imx50.dtsi vendor/device-tree/dist/src/arm/imx51-apf51dev.dts vendor/device-tree/dist/src/arm/imx51.dtsi vendor/device-tree/dist/src/arm/imx53-ard.dts vendor/device-tree/dist/src/arm/imx53-m53evk.dts vendor/device-tree/dist/src/arm/imx53-qsb-common.dtsi vendor/device-tree/dist/src/arm/imx53-qsrb.dts vendor/device-tree/dist/src/arm/imx53-smd.dts vendor/device-tree/dist/src/arm/imx53-tqma53.dtsi vendor/device-tree/dist/src/arm/imx53-tx53-x03x.dts vendor/device-tree/dist/src/arm/imx53-tx53.dtsi vendor/device-tree/dist/src/arm/imx53-voipac-bsb.dts vendor/device-tree/dist/src/arm/imx53.dtsi vendor/device-tree/dist/src/arm/imx6dl-aristainetos_4.dts vendor/device-tree/dist/src/arm/imx6dl-aristainetos_7.dts vendor/device-tree/dist/src/arm/imx6dl-cubox-i.dts vendor/device-tree/dist/src/arm/imx6dl-hummingboard.dts vendor/device-tree/dist/src/arm/imx6dl-nitrogen6x.dts vendor/device-tree/dist/src/arm/imx6dl-rex-basic.dts vendor/device-tree/dist/src/arm/imx6dl-riotboard.dts vendor/device-tree/dist/src/arm/imx6dl-sabrelite.dts vendor/device-tree/dist/src/arm/imx6dl.dtsi vendor/device-tree/dist/src/arm/imx6q-arm2.dts vendor/device-tree/dist/src/arm/imx6q-cubox-i.dts vendor/device-tree/dist/src/arm/imx6q-dmo-edmqmx6.dts vendor/device-tree/dist/src/arm/imx6q-gk802.dts vendor/device-tree/dist/src/arm/imx6q-gw5400-a.dts vendor/device-tree/dist/src/arm/imx6q-hummingboard.dts vendor/device-tree/dist/src/arm/imx6q-nitrogen6x.dts vendor/device-tree/dist/src/arm/imx6q-rex-pro.dts vendor/device-tree/dist/src/arm/imx6q-sabrelite.dts vendor/device-tree/dist/src/arm/imx6q-tbs2910.dts vendor/device-tree/dist/src/arm/imx6q.dtsi vendor/device-tree/dist/src/arm/imx6qdl-aristainetos.dtsi vendor/device-tree/dist/src/arm/imx6qdl-cubox-i.dtsi vendor/device-tree/dist/src/arm/imx6qdl-dfi-fs700-m60.dtsi vendor/device-tree/dist/src/arm/imx6qdl-gw51xx.dtsi vendor/device-tree/dist/src/arm/imx6qdl-gw52xx.dtsi vendor/device-tree/dist/src/arm/imx6qdl-gw53xx.dtsi vendor/device-tree/dist/src/arm/imx6qdl-gw54xx.dtsi vendor/device-tree/dist/src/arm/imx6qdl-gw552x.dtsi vendor/device-tree/dist/src/arm/imx6qdl-hummingboard.dtsi vendor/device-tree/dist/src/arm/imx6qdl-microsom-ar8035.dtsi vendor/device-tree/dist/src/arm/imx6qdl-microsom.dtsi vendor/device-tree/dist/src/arm/imx6qdl-nitrogen6x.dtsi vendor/device-tree/dist/src/arm/imx6qdl-phytec-pfla02.dtsi vendor/device-tree/dist/src/arm/imx6qdl-rex.dtsi vendor/device-tree/dist/src/arm/imx6qdl-sabreauto.dtsi vendor/device-tree/dist/src/arm/imx6qdl-sabrelite.dtsi vendor/device-tree/dist/src/arm/imx6qdl-sabresd.dtsi vendor/device-tree/dist/src/arm/imx6qdl-tx6.dtsi vendor/device-tree/dist/src/arm/imx6qdl-wandboard.dtsi vendor/device-tree/dist/src/arm/imx6qdl.dtsi vendor/device-tree/dist/src/arm/imx6sl-evk.dts vendor/device-tree/dist/src/arm/imx6sl.dtsi vendor/device-tree/dist/src/arm/imx6sx-sabreauto.dts vendor/device-tree/dist/src/arm/imx6sx-sdb.dts vendor/device-tree/dist/src/arm/imx6sx.dtsi vendor/device-tree/dist/src/arm/integrator.dtsi vendor/device-tree/dist/src/arm/k2e-clocks.dtsi vendor/device-tree/dist/src/arm/k2e-evm.dts vendor/device-tree/dist/src/arm/k2e.dtsi vendor/device-tree/dist/src/arm/k2hk-clocks.dtsi vendor/device-tree/dist/src/arm/k2hk-evm.dts vendor/device-tree/dist/src/arm/k2hk.dtsi vendor/device-tree/dist/src/arm/k2l-clocks.dtsi vendor/device-tree/dist/src/arm/k2l-evm.dts vendor/device-tree/dist/src/arm/k2l.dtsi vendor/device-tree/dist/src/arm/keystone.dtsi vendor/device-tree/dist/src/arm/kirkwood-b3.dts vendor/device-tree/dist/src/arm/kirkwood-cloudbox.dts vendor/device-tree/dist/src/arm/kirkwood-d2net.dts vendor/device-tree/dist/src/arm/kirkwood-dir665.dts vendor/device-tree/dist/src/arm/kirkwood-dreamplug.dts vendor/device-tree/dist/src/arm/kirkwood-is2.dts vendor/device-tree/dist/src/arm/kirkwood-lsxl.dtsi vendor/device-tree/dist/src/arm/kirkwood-mv88f6281gtw-ge.dts vendor/device-tree/dist/src/arm/kirkwood-net2big.dts vendor/device-tree/dist/src/arm/kirkwood-net5big.dts vendor/device-tree/dist/src/arm/kirkwood-netxbig.dtsi vendor/device-tree/dist/src/arm/kirkwood-ns2-common.dtsi vendor/device-tree/dist/src/arm/kirkwood-ns2.dts vendor/device-tree/dist/src/arm/kirkwood-ns2max.dts vendor/device-tree/dist/src/arm/kirkwood-ns2mini.dts vendor/device-tree/dist/src/arm/kirkwood-rd88f6192.dts vendor/device-tree/dist/src/arm/kirkwood-synology.dtsi vendor/device-tree/dist/src/arm/kirkwood-t5325.dts vendor/device-tree/dist/src/arm/kirkwood-ts219.dtsi vendor/device-tree/dist/src/arm/kirkwood.dtsi vendor/device-tree/dist/src/arm/lpc32xx.dtsi vendor/device-tree/dist/src/arm/ls1021a-qds.dts vendor/device-tree/dist/src/arm/ls1021a-twr.dts vendor/device-tree/dist/src/arm/ls1021a.dtsi vendor/device-tree/dist/src/arm/meson.dtsi vendor/device-tree/dist/src/arm/meson6-atv1200.dts vendor/device-tree/dist/src/arm/meson8.dtsi vendor/device-tree/dist/src/arm/mt6589.dtsi vendor/device-tree/dist/src/arm/mt8127.dtsi vendor/device-tree/dist/src/arm/mt8135-evbp1.dts vendor/device-tree/dist/src/arm/mt8135.dtsi vendor/device-tree/dist/src/arm/nspire-classic.dtsi vendor/device-tree/dist/src/arm/nspire-cx.dts vendor/device-tree/dist/src/arm/nspire.dtsi vendor/device-tree/dist/src/arm/omap2.dtsi vendor/device-tree/dist/src/arm/omap2420-n8x0-common.dtsi vendor/device-tree/dist/src/arm/omap2420.dtsi vendor/device-tree/dist/src/arm/omap2430-clocks.dtsi vendor/device-tree/dist/src/arm/omap2430.dtsi vendor/device-tree/dist/src/arm/omap24xx-clocks.dtsi vendor/device-tree/dist/src/arm/omap3-beagle-xm.dts vendor/device-tree/dist/src/arm/omap3-beagle.dts vendor/device-tree/dist/src/arm/omap3-cm-t3517.dts vendor/device-tree/dist/src/arm/omap3-cm-t3730.dts vendor/device-tree/dist/src/arm/omap3-cm-t3x.dtsi vendor/device-tree/dist/src/arm/omap3-cm-t3x30.dtsi vendor/device-tree/dist/src/arm/omap3-devkit8000.dts vendor/device-tree/dist/src/arm/omap3-evm-37xx.dts vendor/device-tree/dist/src/arm/omap3-evm-common.dtsi vendor/device-tree/dist/src/arm/omap3-gta04.dtsi vendor/device-tree/dist/src/arm/omap3-gta04a5.dts vendor/device-tree/dist/src/arm/omap3-igep.dtsi vendor/device-tree/dist/src/arm/omap3-igep0020-common.dtsi vendor/device-tree/dist/src/arm/omap3-igep0020-rev-f.dts vendor/device-tree/dist/src/arm/omap3-igep0020.dts vendor/device-tree/dist/src/arm/omap3-igep0030-common.dtsi vendor/device-tree/dist/src/arm/omap3-igep0030-rev-g.dts vendor/device-tree/dist/src/arm/omap3-igep0030.dts vendor/device-tree/dist/src/arm/omap3-ldp.dts vendor/device-tree/dist/src/arm/omap3-lilly-a83x.dtsi vendor/device-tree/dist/src/arm/omap3-lilly-dbb056.dts vendor/device-tree/dist/src/arm/omap3-n9.dts vendor/device-tree/dist/src/arm/omap3-n900.dts vendor/device-tree/dist/src/arm/omap3-n950-n9.dtsi vendor/device-tree/dist/src/arm/omap3-n950.dts vendor/device-tree/dist/src/arm/omap3-overo-alto35-common.dtsi vendor/device-tree/dist/src/arm/omap3-overo-base.dtsi vendor/device-tree/dist/src/arm/omap3-overo-chestnut43-common.dtsi vendor/device-tree/dist/src/arm/omap3-overo-common-lcd35.dtsi vendor/device-tree/dist/src/arm/omap3-overo-common-lcd43.dtsi vendor/device-tree/dist/src/arm/omap3-overo-gallop43-common.dtsi vendor/device-tree/dist/src/arm/omap3-overo-palo43-common.dtsi vendor/device-tree/dist/src/arm/omap3-overo.dtsi vendor/device-tree/dist/src/arm/omap3-panel-sharp-ls037v7dw01.dtsi vendor/device-tree/dist/src/arm/omap3-tao3530.dtsi vendor/device-tree/dist/src/arm/omap3-zoom3.dts vendor/device-tree/dist/src/arm/omap3.dtsi vendor/device-tree/dist/src/arm/omap34xx.dtsi vendor/device-tree/dist/src/arm/omap36xx.dtsi vendor/device-tree/dist/src/arm/omap3xxx-clocks.dtsi vendor/device-tree/dist/src/arm/omap4-cpu-thermal.dtsi vendor/device-tree/dist/src/arm/omap4-duovero-parlor.dts vendor/device-tree/dist/src/arm/omap4-duovero.dtsi vendor/device-tree/dist/src/arm/omap4-panda-a4.dts vendor/device-tree/dist/src/arm/omap4-panda-common.dtsi vendor/device-tree/dist/src/arm/omap4-panda-es.dts vendor/device-tree/dist/src/arm/omap4-sdp-es23plus.dts vendor/device-tree/dist/src/arm/omap4-sdp.dts vendor/device-tree/dist/src/arm/omap4-var-om44customboard.dtsi vendor/device-tree/dist/src/arm/omap4-var-som-om44-wlan.dtsi vendor/device-tree/dist/src/arm/omap4-var-som-om44.dtsi vendor/device-tree/dist/src/arm/omap4.dtsi vendor/device-tree/dist/src/arm/omap4460.dtsi vendor/device-tree/dist/src/arm/omap5-cm-t54.dts vendor/device-tree/dist/src/arm/omap5-core-thermal.dtsi vendor/device-tree/dist/src/arm/omap5-gpu-thermal.dtsi vendor/device-tree/dist/src/arm/omap5-uevm.dts vendor/device-tree/dist/src/arm/omap5.dtsi vendor/device-tree/dist/src/arm/omap54xx-clocks.dtsi vendor/device-tree/dist/src/arm/orion5x.dtsi vendor/device-tree/dist/src/arm/phy3250.dts vendor/device-tree/dist/src/arm/pxa27x.dtsi vendor/device-tree/dist/src/arm/pxa2xx.dtsi vendor/device-tree/dist/src/arm/pxa3xx.dtsi vendor/device-tree/dist/src/arm/qcom-apq8064-cm-qs600.dts vendor/device-tree/dist/src/arm/qcom-apq8064-ifc6410.dts vendor/device-tree/dist/src/arm/qcom-apq8064.dtsi vendor/device-tree/dist/src/arm/qcom-apq8074-dragonboard.dts vendor/device-tree/dist/src/arm/qcom-apq8084-ifc6540.dts vendor/device-tree/dist/src/arm/qcom-apq8084-mtp.dts vendor/device-tree/dist/src/arm/qcom-apq8084.dtsi vendor/device-tree/dist/src/arm/qcom-ipq8064-ap148.dts vendor/device-tree/dist/src/arm/qcom-ipq8064.dtsi vendor/device-tree/dist/src/arm/qcom-msm8660-surf.dts vendor/device-tree/dist/src/arm/qcom-msm8660.dtsi vendor/device-tree/dist/src/arm/qcom-msm8960-cdp.dts vendor/device-tree/dist/src/arm/qcom-msm8960.dtsi vendor/device-tree/dist/src/arm/qcom-msm8974-sony-xperia-honami.dts vendor/device-tree/dist/src/arm/qcom-msm8974.dtsi vendor/device-tree/dist/src/arm/r7s72100.dtsi vendor/device-tree/dist/src/arm/r8a73a4-ape6evm.dts vendor/device-tree/dist/src/arm/r8a73a4.dtsi vendor/device-tree/dist/src/arm/r8a7740-armadillo800eva.dts vendor/device-tree/dist/src/arm/r8a7740.dtsi vendor/device-tree/dist/src/arm/r8a7778-bockw.dts vendor/device-tree/dist/src/arm/r8a7778.dtsi vendor/device-tree/dist/src/arm/r8a7779-marzen.dts vendor/device-tree/dist/src/arm/r8a7779.dtsi vendor/device-tree/dist/src/arm/r8a7790-lager.dts vendor/device-tree/dist/src/arm/r8a7790.dtsi vendor/device-tree/dist/src/arm/r8a7791-koelsch.dts vendor/device-tree/dist/src/arm/r8a7791.dtsi vendor/device-tree/dist/src/arm/r8a7794-alt.dts vendor/device-tree/dist/src/arm/r8a7794.dtsi vendor/device-tree/dist/src/arm/rk3066a-bqcurie2.dts vendor/device-tree/dist/src/arm/rk3066a-marsboard.dts vendor/device-tree/dist/src/arm/rk3066a-rayeager.dts vendor/device-tree/dist/src/arm/rk3066a.dtsi vendor/device-tree/dist/src/arm/rk3188-radxarock.dts vendor/device-tree/dist/src/arm/rk3188.dtsi vendor/device-tree/dist/src/arm/rk3288-evb-act8846.dts vendor/device-tree/dist/src/arm/rk3288-evb-rk808.dts vendor/device-tree/dist/src/arm/rk3288-evb.dtsi vendor/device-tree/dist/src/arm/rk3288-firefly.dtsi vendor/device-tree/dist/src/arm/rk3288-thermal.dtsi vendor/device-tree/dist/src/arm/rk3288.dtsi vendor/device-tree/dist/src/arm/rk3xxx.dtsi vendor/device-tree/dist/src/arm/s3c2416-smdk2416.dts vendor/device-tree/dist/src/arm/s3c2416.dtsi vendor/device-tree/dist/src/arm/s5pv210-aquila.dts vendor/device-tree/dist/src/arm/s5pv210-goni.dts vendor/device-tree/dist/src/arm/sama5d3.dtsi vendor/device-tree/dist/src/arm/sama5d35ek.dts vendor/device-tree/dist/src/arm/sama5d3_can.dtsi vendor/device-tree/dist/src/arm/sama5d3_emac.dtsi vendor/device-tree/dist/src/arm/sama5d3_gmac.dtsi vendor/device-tree/dist/src/arm/sama5d3_lcd.dtsi vendor/device-tree/dist/src/arm/sama5d3_mci2.dtsi vendor/device-tree/dist/src/arm/sama5d3_tcb1.dtsi vendor/device-tree/dist/src/arm/sama5d3_uart.dtsi vendor/device-tree/dist/src/arm/sama5d3xcm.dtsi vendor/device-tree/dist/src/arm/sama5d3xmb.dtsi vendor/device-tree/dist/src/arm/sama5d4.dtsi vendor/device-tree/dist/src/arm/sh73a0-kzm9g.dts vendor/device-tree/dist/src/arm/sh73a0.dtsi vendor/device-tree/dist/src/arm/socfpga.dtsi vendor/device-tree/dist/src/arm/socfpga_arria10.dtsi vendor/device-tree/dist/src/arm/socfpga_arria5_socdk.dts vendor/device-tree/dist/src/arm/socfpga_cyclone5_socdk.dts vendor/device-tree/dist/src/arm/socfpga_cyclone5_sockit.dts vendor/device-tree/dist/src/arm/socfpga_cyclone5_socrates.dts vendor/device-tree/dist/src/arm/spear1310-evb.dts vendor/device-tree/dist/src/arm/spear1310.dtsi vendor/device-tree/dist/src/arm/spear1340-evb.dts vendor/device-tree/dist/src/arm/spear1340.dtsi vendor/device-tree/dist/src/arm/spear13xx.dtsi vendor/device-tree/dist/src/arm/spear300-evb.dts vendor/device-tree/dist/src/arm/spear300.dtsi vendor/device-tree/dist/src/arm/spear310-evb.dts vendor/device-tree/dist/src/arm/spear310.dtsi vendor/device-tree/dist/src/arm/spear320-evb.dts vendor/device-tree/dist/src/arm/spear320.dtsi vendor/device-tree/dist/src/arm/spear3xx.dtsi vendor/device-tree/dist/src/arm/ste-ccu8540.dts vendor/device-tree/dist/src/arm/ste-ccu9540.dts vendor/device-tree/dist/src/arm/ste-dbx5x0.dtsi vendor/device-tree/dist/src/arm/ste-href-stuib.dtsi vendor/device-tree/dist/src/arm/ste-href-tvk1281618.dtsi vendor/device-tree/dist/src/arm/ste-href.dtsi vendor/device-tree/dist/src/arm/ste-hrefprev60-stuib.dts vendor/device-tree/dist/src/arm/ste-hrefprev60-tvk.dts vendor/device-tree/dist/src/arm/ste-hrefprev60.dtsi vendor/device-tree/dist/src/arm/ste-hrefv60plus-stuib.dts vendor/device-tree/dist/src/arm/ste-hrefv60plus-tvk.dts vendor/device-tree/dist/src/arm/ste-hrefv60plus.dtsi vendor/device-tree/dist/src/arm/ste-nomadik-nhk15.dts vendor/device-tree/dist/src/arm/ste-nomadik-s8815.dts vendor/device-tree/dist/src/arm/ste-nomadik-stn8815.dtsi vendor/device-tree/dist/src/arm/ste-snowball.dts vendor/device-tree/dist/src/arm/ste-u300.dts vendor/device-tree/dist/src/arm/stih407-b2120.dts vendor/device-tree/dist/src/arm/stih407-clock.dtsi vendor/device-tree/dist/src/arm/stih407-family.dtsi vendor/device-tree/dist/src/arm/stih407-pinctrl.dtsi vendor/device-tree/dist/src/arm/stih407.dtsi vendor/device-tree/dist/src/arm/stih410-b2120.dts vendor/device-tree/dist/src/arm/stih410-clock.dtsi vendor/device-tree/dist/src/arm/stih410.dtsi vendor/device-tree/dist/src/arm/stih415.dtsi vendor/device-tree/dist/src/arm/stih416-b2020e.dts vendor/device-tree/dist/src/arm/stih416-pinctrl.dtsi vendor/device-tree/dist/src/arm/stih416.dtsi vendor/device-tree/dist/src/arm/stih418-b2199.dts vendor/device-tree/dist/src/arm/stih418-clock.dtsi vendor/device-tree/dist/src/arm/stih418.dtsi vendor/device-tree/dist/src/arm/stihxxx-b2120.dtsi vendor/device-tree/dist/src/arm/sun4i-a10-a1000.dts vendor/device-tree/dist/src/arm/sun4i-a10-ba10-tvbox.dts vendor/device-tree/dist/src/arm/sun4i-a10-chuwi-v7-cw0825.dts vendor/device-tree/dist/src/arm/sun4i-a10-cubieboard.dts vendor/device-tree/dist/src/arm/sun4i-a10-hackberry.dts vendor/device-tree/dist/src/arm/sun4i-a10-hyundai-a7hd.dts vendor/device-tree/dist/src/arm/sun4i-a10-inet97fv2.dts vendor/device-tree/dist/src/arm/sun4i-a10-marsboard.dts vendor/device-tree/dist/src/arm/sun4i-a10-mini-xplus.dts vendor/device-tree/dist/src/arm/sun4i-a10-mk802.dts vendor/device-tree/dist/src/arm/sun4i-a10-mk802ii.dts vendor/device-tree/dist/src/arm/sun4i-a10-olinuxino-lime.dts vendor/device-tree/dist/src/arm/sun4i-a10-pcduino.dts vendor/device-tree/dist/src/arm/sun4i-a10.dtsi vendor/device-tree/dist/src/arm/sun5i-a10s-mk802.dts vendor/device-tree/dist/src/arm/sun5i-a10s-olinuxino-micro.dts vendor/device-tree/dist/src/arm/sun5i-a10s-r7-tv-dongle.dts vendor/device-tree/dist/src/arm/sun5i-a10s.dtsi vendor/device-tree/dist/src/arm/sun5i-a13-hsg-h702.dts vendor/device-tree/dist/src/arm/sun5i-a13-olinuxino-micro.dts vendor/device-tree/dist/src/arm/sun5i-a13-olinuxino.dts vendor/device-tree/dist/src/arm/sun5i-a13.dtsi vendor/device-tree/dist/src/arm/sun6i-a31-app4-evb1.dts vendor/device-tree/dist/src/arm/sun6i-a31-colombus.dts vendor/device-tree/dist/src/arm/sun6i-a31-hummingbird.dts vendor/device-tree/dist/src/arm/sun6i-a31-m9.dts vendor/device-tree/dist/src/arm/sun6i-a31.dtsi vendor/device-tree/dist/src/arm/sun6i-a31s-cs908.dts vendor/device-tree/dist/src/arm/sun6i-a31s.dtsi vendor/device-tree/dist/src/arm/sun7i-a20-bananapi.dts vendor/device-tree/dist/src/arm/sun7i-a20-bananapro.dts vendor/device-tree/dist/src/arm/sun7i-a20-cubieboard2.dts vendor/device-tree/dist/src/arm/sun7i-a20-cubietruck.dts vendor/device-tree/dist/src/arm/sun7i-a20-hummingbird.dts vendor/device-tree/dist/src/arm/sun7i-a20-i12-tvbox.dts vendor/device-tree/dist/src/arm/sun7i-a20-m3.dts vendor/device-tree/dist/src/arm/sun7i-a20-olinuxino-lime.dts vendor/device-tree/dist/src/arm/sun7i-a20-olinuxino-lime2.dts vendor/device-tree/dist/src/arm/sun7i-a20-olinuxino-micro.dts vendor/device-tree/dist/src/arm/sun7i-a20-pcduino3.dts vendor/device-tree/dist/src/arm/sun7i-a20.dtsi vendor/device-tree/dist/src/arm/sun8i-a23-ippo-q8h-v1.2.dts vendor/device-tree/dist/src/arm/sun8i-a23-ippo-q8h-v5.dts vendor/device-tree/dist/src/arm/sun8i-a23.dtsi vendor/device-tree/dist/src/arm/sun9i-a80-optimus.dts vendor/device-tree/dist/src/arm/sun9i-a80.dtsi vendor/device-tree/dist/src/arm/sunxi-common-regulators.dtsi vendor/device-tree/dist/src/arm/tegra114.dtsi vendor/device-tree/dist/src/arm/tegra124-jetson-tk1.dts vendor/device-tree/dist/src/arm/tegra124-nyan-big.dts vendor/device-tree/dist/src/arm/tegra124-venice2.dts vendor/device-tree/dist/src/arm/tegra124.dtsi vendor/device-tree/dist/src/arm/tegra20-seaboard.dts vendor/device-tree/dist/src/arm/tegra20.dtsi vendor/device-tree/dist/src/arm/tegra30-apalis-eval.dts vendor/device-tree/dist/src/arm/tegra30-apalis.dtsi vendor/device-tree/dist/src/arm/tegra30-beaver.dts vendor/device-tree/dist/src/arm/tegra30-cardhu.dtsi vendor/device-tree/dist/src/arm/tegra30-colibri-eval-v3.dts vendor/device-tree/dist/src/arm/tegra30-colibri.dtsi vendor/device-tree/dist/src/arm/tegra30.dtsi vendor/device-tree/dist/src/arm/twl4030_omap3.dtsi vendor/device-tree/dist/src/arm/twl6030_omap4.dtsi vendor/device-tree/dist/src/arm/usb_a9260_common.dtsi vendor/device-tree/dist/src/arm/usb_a9263.dts vendor/device-tree/dist/src/arm/versatile-ab.dts vendor/device-tree/dist/src/arm/versatile-pb.dts vendor/device-tree/dist/src/arm/vexpress-v2m-rs1.dtsi vendor/device-tree/dist/src/arm/vexpress-v2m.dtsi vendor/device-tree/dist/src/arm/vexpress-v2p-ca15_a7.dts vendor/device-tree/dist/src/arm/vexpress-v2p-ca9.dts vendor/device-tree/dist/src/arm/vf-colibri-eval-v3.dtsi vendor/device-tree/dist/src/arm/vf-colibri.dtsi vendor/device-tree/dist/src/arm/vf500-colibri-eval-v3.dts vendor/device-tree/dist/src/arm/vf500-colibri.dtsi vendor/device-tree/dist/src/arm/vf500.dtsi vendor/device-tree/dist/src/arm/vf610-colibri.dtsi vendor/device-tree/dist/src/arm/vf610-cosmic.dts vendor/device-tree/dist/src/arm/vf610-pinfunc.h vendor/device-tree/dist/src/arm/vf610-twr.dts vendor/device-tree/dist/src/arm/vf610.dtsi vendor/device-tree/dist/src/arm/vfxxx.dtsi vendor/device-tree/dist/src/arm/wm8505.dtsi vendor/device-tree/dist/src/arm/wm8650.dtsi vendor/device-tree/dist/src/arm/wm8750.dtsi vendor/device-tree/dist/src/arm/zynq-7000.dtsi vendor/device-tree/dist/src/arm/zynq-parallella.dts vendor/device-tree/dist/src/arm/zynq-zc702.dts vendor/device-tree/dist/src/arm/zynq-zc706.dts vendor/device-tree/dist/src/arm/zynq-zed.dts vendor/device-tree/dist/src/arm/zynq-zybo.dts vendor/device-tree/dist/src/arm64/amd/amd-overdrive.dts vendor/device-tree/dist/src/arm64/apm/apm-mustang.dts vendor/device-tree/dist/src/arm64/apm/apm-storm.dtsi vendor/device-tree/dist/src/arm64/arm/foundation-v8.dts vendor/device-tree/dist/src/arm64/arm/juno-clocks.dtsi vendor/device-tree/dist/src/arm64/arm/juno-motherboard.dtsi vendor/device-tree/dist/src/arm64/arm/juno.dts vendor/device-tree/dist/src/arm64/arm/rtsm_ve-aemv8a.dts vendor/device-tree/dist/src/arm64/arm/rtsm_ve-motherboard.dtsi vendor/device-tree/dist/src/arm64/cavium/thunder-88xx.dtsi vendor/device-tree/dist/src/arm64/exynos/exynos7-espresso.dts vendor/device-tree/dist/src/arm64/exynos/exynos7-pinctrl.dtsi vendor/device-tree/dist/src/arm64/exynos/exynos7.dtsi vendor/device-tree/dist/src/arm64/mediatek/mt8173-evb.dts vendor/device-tree/dist/src/arm64/mediatek/mt8173.dtsi Added: vendor/device-tree/dist/Bindings/arc/archs-pct.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arc/archs-pct.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,17 @@ +* ARC HS Performance Counters + +The ARC HS can be configured with a pipeline performance monitor for counting +CPU and cache events like cache misses and hits. Like conventional PCT there +are 100+ hardware conditions dynamically mapped to upto 32 counters. +It also supports overflow interrupts. + +Required properties: + +- compatible : should contain + "snps,archs-pct" + +Example: + +pmu { + compatible = "snps,archs-pct"; +}; Added: vendor/device-tree/dist/Bindings/arc/axs101.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arc/axs101.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,7 @@ +Synopsys DesignWare ARC Software Development Platforms Device Tree Bindings +--------------------------------------------------------------------------- + +SDP Main Board with an AXC001 CPU Card hoisting ARC700 core in silicon + +Required root node properties: + - compatible = "snps,axs101", "snps,arc-sdp"; Added: vendor/device-tree/dist/Bindings/arc/axs103.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arc/axs103.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,8 @@ +Synopsys DesignWare ARC Software Development Platforms Device Tree Bindings +--------------------------------------------------------------------------- + +SDP Main Board with an AXC003 FPGA Card which can contain various flavours of +HS38x cores. + +Required root node properties: + - compatible = "snps,axs103", "snps,arc-sdp"; Added: vendor/device-tree/dist/Bindings/arc/pct.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arc/pct.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,20 @@ +* ARC Performance Counters + +The ARC700 can be configured with a pipeline performance monitor for counting +CPU and cache events like cache misses and hits. Like conventional PCT there +are 100+ hardware conditions dynamically mapped to upto 32 counters + +Note that: + * The ARC 700 PCT does not support interrupts; although HW events may be + counted, the HW events themselves cannot serve as a trigger for a sample. + +Required properties: + +- compatible : should contain + "snps,arc700-pct" + +Example: + +pmu { + compatible = "snps,arc700-pct"; +}; Added: vendor/device-tree/dist/Bindings/arm/al,alpine.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/al,alpine.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,88 @@ +Annapurna Labs Alpine Platform Device Tree Bindings +--------------------------------------------------------------- + +Boards in the Alpine family shall have the following properties: + +* Required root node properties: +compatible: must contain "al,alpine" + +* Example: + +/ { + model = "Annapurna Labs Alpine Dev Board"; + compatible = "al,alpine"; + + ... +} + +* CPU node: + +The Alpine platform includes cortex-a15 cores. +enable-method: must be "al,alpine-smp" to allow smp [1] + +Example: + +cpus { + #address-cells = <1>; + #size-cells = <0>; + enable-method = "al,alpine-smp"; + + cpu@0 { + compatible = "arm,cortex-a15"; + device_type = "cpu"; + reg = <0>; + }; + + cpu@1 { + compatible = "arm,cortex-a15"; + device_type = "cpu"; + reg = <1>; + }; + + cpu@2 { + compatible = "arm,cortex-a15"; + device_type = "cpu"; + reg = <2>; + }; + + cpu@3 { + compatible = "arm,cortex-a15"; + device_type = "cpu"; + reg = <3>; + }; +}; + + +* Alpine CPU resume registers + +The CPU resume register are used to define required resume address after +reset. + +Properties: +- compatible : Should contain "al,alpine-cpu-resume". +- reg : Offset and length of the register set for the device + +Example: + +cpu_resume { + compatible = "al,alpine-cpu-resume"; + reg = <0xfbff5ed0 0x30>; +}; + +* Alpine System-Fabric Service Registers + +The System-Fabric Service Registers allow various operation on CPU and +system fabric, like powering CPUs off. + +Properties: +- compatible : Should contain "al,alpine-sysfabric-service" and "syscon". +- reg : Offset and length of the register set for the device + +Example: + +nb_service { + compatible = "al,alpine-sysfabric-service", "syscon"; + reg = <0xfb070000 0x10000>; +}; + +[1] arm/cpu-enable-method/al,alpine-smp Added: vendor/device-tree/dist/Bindings/arm/altera.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/altera.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,14 @@ +Altera's SoCFPGA platform device tree bindings +--------------------------------------------- + +Boards with Cyclone 5 SoC: +Required root node properties: +compatible = "altr,socfpga-cyclone5", "altr,socfpga"; + +Boards with Arria 5 SoC: +Required root node properties: +compatible = "altr,socfpga-arria5", "altr,socfpga"; + +Boards with Arria 10 SoC: +Required root node properties: +compatible = "altr,socfpga-arria10", "altr,socfpga"; Added: vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-controller.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-controller.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,12 @@ +Altera SOCFPGA SDRAM Controller + +Required properties: +- compatible : Should contain "altr,sdr-ctl" and "syscon". + syscon is required by the Altera SOCFPGA SDRAM EDAC. +- reg : Should contain 1 register range (address and length) + +Example: + sdr: sdr@ffc25000 { + compatible = "altr,sdr-ctl", "syscon"; + reg = <0xffc25000 0x1000>; + }; Modified: vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-edac.txt ============================================================================== --- vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-edac.txt Thu Jan 28 20:20:04 2016 (r295010) +++ vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-edac.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -2,7 +2,7 @@ Altera SOCFPGA SDRAM Error Detection & C The EDAC accesses a range of registers in the SDRAM controller. Required properties: -- compatible : should contain "altr,sdram-edac"; +- compatible : should contain "altr,sdram-edac" or "altr,sdram-edac-a10" - altr,sdr-syscon : phandle of the sdr module - interrupts : Should contain the SDRAM ECC IRQ in the appropriate format for the IRQ controller. Modified: vendor/device-tree/dist/Bindings/arm/amlogic.txt ============================================================================== --- vendor/device-tree/dist/Bindings/arm/amlogic.txt Thu Jan 28 20:20:04 2016 (r295010) +++ vendor/device-tree/dist/Bindings/arm/amlogic.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -8,3 +8,13 @@ Boards with the Amlogic Meson6 SoC shall Boards with the Amlogic Meson8 SoC shall have the following properties: Required root node property: compatible: "amlogic,meson8"; + +Boards with the Amlogic Meson8b SoC shall have the following properties: + Required root node property: + compatible: "amlogic,meson8b"; + +Board compatible values: + - "geniatech,atv1200" (Meson6) + - "minix,neo-x8" (Meson8) + - "tronfy,mxq" (Meson8b) + - "hardkernel,odroid-c1" (Meson8b) Added: vendor/device-tree/dist/Bindings/arm/apm/scu.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/apm/scu.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,17 @@ +APM X-GENE SoC series SCU Registers + +This system clock unit contain various register that control block resets, +clock enable/disables, clock divisors and other deepsleep registers. + +Properties: + - compatible : should contain two values. First value must be: + - "apm,xgene-scu" + second value must be always "syscon". + + - reg : offset and length of the register set. + +Example : + scu: system-clk-controller@17000000 { + compatible = "apm,xgene-scu","syscon"; + reg = <0x0 0x17000000 0x0 0x400>; + }; Modified: vendor/device-tree/dist/Bindings/arm/arch_timer.txt ============================================================================== --- vendor/device-tree/dist/Bindings/arm/arch_timer.txt Thu Jan 28 20:20:04 2016 (r295010) +++ vendor/device-tree/dist/Bindings/arm/arch_timer.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -17,7 +17,10 @@ to deliver its interrupts via SPIs. - interrupts : Interrupt list for secure, non-secure, virtual and hypervisor timers, in that order. -- clock-frequency : The frequency of the main counter, in Hz. Optional. +- clock-frequency : The frequency of the main counter, in Hz. Should be present + only where necessary to work around broken firmware which does not configure + CNTFRQ on all CPUs to a uniform correct value. Use of this property is + strongly discouraged; fix your firmware unless absolutely impossible. - always-on : a boolean property. If present, the timer is powered through an always-on power domain, therefore it never loses context. @@ -46,7 +49,8 @@ Example: - compatible : Should at least contain "arm,armv7-timer-mem". -- clock-frequency : The frequency of the main counter, in Hz. Optional. +- clock-frequency : The frequency of the main counter, in Hz. Should be present + only when firmware has not configured the MMIO CNTFRQ registers. - reg : The control frame base address. Added: vendor/device-tree/dist/Bindings/arm/arm,scpi.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/arm,scpi.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,188 @@ +System Control and Power Interface (SCPI) Message Protocol +---------------------------------------------------------- + +Firmware implementing the SCPI described in ARM document number ARM DUI 0922B +("ARM Compute Subsystem SCP: Message Interface Protocols")[0] can be used +by Linux to initiate various system control and power operations. + +Required properties: + +- compatible : should be "arm,scpi" +- mboxes: List of phandle and mailbox channel specifiers + All the channels reserved by remote SCP firmware for use by + SCPI message protocol should be specified in any order +- shmem : List of phandle pointing to the shared memory(SHM) area between the + processors using these mailboxes for IPC, one for each mailbox + SHM can be any memory reserved for the purpose of this communication + between the processors. + +See Documentation/devicetree/bindings/mailbox/mailbox.txt +for more details about the generic mailbox controller and +client driver bindings. + +Clock bindings for the clocks based on SCPI Message Protocol +------------------------------------------------------------ + +This binding uses the common clock binding[1]. + +Container Node +============== +Required properties: +- compatible : should be "arm,scpi-clocks" + All the clocks provided by SCP firmware via SCPI message + protocol much be listed as sub-nodes under this node. + +Sub-nodes +========= +Required properties: +- compatible : shall include one of the following + "arm,scpi-dvfs-clocks" - all the clocks that are variable and index based. + These clocks don't provide an entire range of values between the + limits but only discrete points within the range. The firmware + provides the mapping for each such operating frequency and the + index associated with it. The firmware also manages the + voltage scaling appropriately with the clock scaling. + "arm,scpi-variable-clocks" - all the clocks that are variable and provide full + range within the specified range. The firmware provides the + range of values within a specified range. + +Other required properties for all clocks(all from common clock binding): +- #clock-cells : Should be 1. Contains the Clock ID value used by SCPI commands. +- clock-output-names : shall be the corresponding names of the outputs. +- clock-indices: The identifying number for the clocks(i.e.clock_id) in the + node. It can be non linear and hence provide the mapping of identifiers + into the clock-output-names array. + +SRAM and Shared Memory for SCPI +------------------------------- + +A small area of SRAM is reserved for SCPI communication between application +processors and SCP. + +Required properties: +- compatible : should be "arm,juno-sram-ns" for Non-secure SRAM on Juno + +The rest of the properties should follow the generic mmio-sram description +found in ../../sram/sram.txt + +Each sub-node represents the reserved area for SCPI. + +Required sub-node properties: +- reg : The base offset and size of the reserved area with the SRAM +- compatible : should be "arm,juno-scp-shmem" for Non-secure SRAM based + shared memory on Juno platforms + +Sensor bindings for the sensors based on SCPI Message Protocol +-------------------------------------------------------------- +SCPI provides an API to access the various sensors on the SoC. + +Required properties: +- compatible : should be "arm,scpi-sensors". +- #thermal-sensor-cells: should be set to 1. This property follows the + thermal device tree bindings[2]. + + Valid cell values are raw identifiers (Sensor + ID) as used by the firmware. Refer to + platform documentation for your + implementation for the IDs to use. For Juno + R0 and Juno R1 refer to [3]. + +[0] http://infocenter.arm.com/help/topic/com.arm.doc.dui0922b/index.html +[1] Documentation/devicetree/bindings/clock/clock-bindings.txt +[2] Documentation/devicetree/bindings/thermal/thermal.txt +[3] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0922b/apas03s22.html + +Example: + +sram: sram@50000000 { + compatible = "arm,juno-sram-ns", "mmio-sram"; + reg = <0x0 0x50000000 0x0 0x10000>; + + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x0 0x50000000 0x10000>; + + cpu_scp_lpri: scp-shmem@0 { + compatible = "arm,juno-scp-shmem"; + reg = <0x0 0x200>; + }; + + cpu_scp_hpri: scp-shmem@200 { + compatible = "arm,juno-scp-shmem"; + reg = <0x200 0x200>; + }; +}; + +mailbox: mailbox0@40000000 { + .... + #mbox-cells = <1>; +}; + +scpi_protocol: scpi@2e000000 { + compatible = "arm,scpi"; + mboxes = <&mailbox 0 &mailbox 1>; + shmem = <&cpu_scp_lpri &cpu_scp_hpri>; + + clocks { + compatible = "arm,scpi-clocks"; + + scpi_dvfs: scpi_clocks@0 { + compatible = "arm,scpi-dvfs-clocks"; + #clock-cells = <1>; + clock-indices = <0>, <1>, <2>; + clock-output-names = "atlclk", "aplclk","gpuclk"; + }; + scpi_clk: scpi_clocks@3 { + compatible = "arm,scpi-variable-clocks"; + #clock-cells = <1>; + clock-indices = <3>, <4>; + clock-output-names = "pxlclk0", "pxlclk1"; + }; + }; + + scpi_sensors0: sensors { + compatible = "arm,scpi-sensors"; + #thermal-sensor-cells = <1>; + }; +}; + +cpu@0 { + ... + reg = <0 0>; + clocks = <&scpi_dvfs 0>; +}; + +hdlcd@7ff60000 { + ... + reg = <0 0x7ff60000 0 0x1000>; + clocks = <&scpi_clk 4>; +}; + +thermal-zones { + soc_thermal { + polling-delay-passive = <100>; + polling-delay = <1000>; + + /* sensor ID */ + thermal-sensors = <&scpi_sensors0 3>; + ... + }; +}; + +In the above example, the #clock-cells is set to 1 as required. +scpi_dvfs has 3 output clocks namely: atlclk, aplclk, and gpuclk with 0, +1 and 2 as clock-indices. scpi_clk has 2 output clocks namely: pxlclk0 +and pxlclk1 with 3 and 4 as clock-indices. + +The first consumer in the example is cpu@0 and it has '0' as the clock +specifier which points to the first entry in the output clocks of +scpi_dvfs i.e. "atlclk". + +Similarly the second example is hdlcd@7ff60000 and it has pxlclk1 as input +clock. '4' in the clock specifier here points to the second entry +in the output clocks of scpi_clocks i.e. "pxlclk1" + +The thermal-sensors property in the soc_thermal node uses the +temperature sensor provided by SCP firmware to setup a thermal +zone. The ID "3" is the sensor identifier for the temperature sensor +as used by the firmware. Modified: vendor/device-tree/dist/Bindings/arm/arm-boards ============================================================================== --- vendor/device-tree/dist/Bindings/arm/arm-boards Thu Jan 28 20:20:04 2016 (r295010) +++ vendor/device-tree/dist/Bindings/arm/arm-boards Thu Jan 28 20:21:15 2016 (r295011) @@ -157,3 +157,69 @@ Example: }; }; + +ARM Versatile Express Boards +----------------------------- +For details on the device tree bindings for ARM Versatile Express boards +please consult the vexpress.txt file in the same directory as this file. + +ARM Juno Boards +---------------- +The Juno boards are targeting development for AArch64 systems. The first +iteration, Juno r0, is a vehicle for evaluating big.LITTLE on AArch64, +with the second iteration, Juno r1, mainly aimed at development of PCIe +based systems. Juno r1 also has support for AXI masters placed on the TLX +connectors to join the coherency domain. + +Juno boards are described in a similar way to ARM Versatile Express boards, +with the motherboard part of the hardware being described in a separate file +to highlight the fact that is part of the support infrastructure for the SoC. +Juno device tree bindings also share the Versatile Express bindings as +described under the RS1 memory mapping. + +Required properties (in root node): + compatible = "arm,juno"; /* For Juno r0 board */ + compatible = "arm,juno-r1"; /* For Juno r1 board */ + +Required nodes: +The description for the board must include: + - a "psci" node describing the boot method used for the secondary CPUs. + A detailed description of the bindings used for "psci" nodes is present + in the psci.txt file. + - a "cpus" node describing the available cores and their associated + "enable-method"s. For more details see cpus.txt file. + +Example: + +/dts-v1/; +/ { + model = "ARM Juno development board (r0)"; + compatible = "arm,juno", "arm,vexpress"; + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + A57_0: cpu@0 { + compatible = "arm,cortex-a57","arm,armv8"; + reg = <0x0 0x0>; + device_type = "cpu"; + enable-method = "psci"; + }; + + ..... + + A53_0: cpu@100 { + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x100>; + device_type = "cpu"; + enable-method = "psci"; + }; + + ..... + }; + +}; Added: vendor/device-tree/dist/Bindings/arm/armada-39x.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/armada-39x.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,20 @@ +Marvell Armada 39x Platforms Device Tree Bindings +------------------------------------------------- + +Boards with a SoC of the Marvell Armada 39x family shall have the +following property: + +Required root node property: + + - compatible: must contain "marvell,armada390" + +In addition, boards using the Marvell Armada 398 SoC shall have the +following property before the previous one: + +Required root node property: + +compatible: must contain "marvell,armada398" + +Example: + +compatible = "marvell,a398-db", "marvell,armada398", "marvell,armada390"; Added: vendor/device-tree/dist/Bindings/arm/armv7m_systick.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/armv7m_systick.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,26 @@ +* ARMv7M System Timer + +ARMv7-M includes a system timer, known as SysTick. Current driver only +implements the clocksource feature. + +Required properties: +- compatible : Should be "arm,armv7m-systick" +- reg : The address range of the timer + +Required clocking property, have to be one of: +- clocks : The input clock of the timer +- clock-frequency : The rate in HZ in input of the ARM SysTick + +Examples: + +systick: timer@e000e010 { + compatible = "arm,armv7m-systick"; + reg = <0xe000e010 0x10>; + clocks = <&clk_systick>; +}; + +systick: timer@e000e010 { + compatible = "arm,armv7m-systick"; + reg = <0xe000e010 0x10>; + clock-frequency = <90000000>; +}; Modified: vendor/device-tree/dist/Bindings/arm/atmel-at91.txt ============================================================================== --- vendor/device-tree/dist/Bindings/arm/atmel-at91.txt Thu Jan 28 20:20:04 2016 (r295010) +++ vendor/device-tree/dist/Bindings/arm/atmel-at91.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -27,6 +27,8 @@ compatible: must be one of: o "atmel,at91sam9xe" * "atmel,sama5" for SoCs using a Cortex-A5, shall be extended with the specific SoC family: + o "atmel,sama5d2" shall be extended with the specific SoC compatible: + - "atmel,sama5d27" o "atmel,sama5d3" shall be extended with the specific SoC compatible: - "atmel,sama5d31" - "atmel,sama5d33" @@ -46,10 +48,13 @@ PIT Timer required properties: shared across all System Controller members. System Timer (ST) required properties: -- compatible: Should be "atmel,at91rm9200-st" +- compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd" - reg: Should contain registers location and length - interrupts: Should contain interrupt for the ST which is the IRQ line shared across all System Controller members. +- clocks: phandle to input clock. +Its subnodes can be: +- watchdog: compatible should be "atmel,at91rm9200-wdt" TC/TCLIB Timer required properties: - compatible: Should be "atmel,-tcb". @@ -59,7 +64,7 @@ TC/TCLIB Timer required properties: Note that you can specify several interrupt cells if the TC block has one interrupt per channel. - clock-names: tuple listing input clock names. - Required elements: "t0_clk" + Required elements: "t0_clk", "slow_clk" Optional elements: "t1_clk", "t2_clk" - clocks: phandles to input clocks. @@ -85,18 +90,20 @@ One interrupt per TC channel in a TC blo RSTC Reset Controller required properties: - compatible: Should be "atmel,-rstc". - can be "at91sam9260" or "at91sam9g45" + can be "at91sam9260" or "at91sam9g45" or "sama5d3" - reg: Should contain registers location and length +- clocks: phandle to input clock. Example: rstc@fffffd00 { compatible = "atmel,at91sam9260-rstc"; reg = <0xfffffd00 0x10>; + clocks = <&clk32k>; }; RAMC SDRAM/DDR Controller required properties: -- compatible: Should be "atmel,at91rm9200-sdramc", +- compatible: Should be "atmel,at91rm9200-sdramc", "syscon" "atmel,at91sam9260-sdramc", "atmel,at91sam9g45-ddramc", "atmel,sama5d3-ddramc", @@ -115,6 +122,7 @@ required properties: - compatible: Should be "atmel,-shdwc". can be "at91sam9260", "at91sam9rl" or "at91sam9x5". - reg: Should contain registers location and length +- clocks: phandle to input clock. optional properties: - atmel,wakeup-mode: String, operation mode of the wakeup mode. @@ -133,9 +141,10 @@ optional at91sam9x5 properties: Example: - rstc@fffffd00 { - compatible = "atmel,at91sam9260-rstc"; - reg = <0xfffffd00 0x10>; + shdwc@fffffd10 { + compatible = "atmel,at91sam9260-shdwc"; + reg = <0xfffffd10 0x10>; + clocks = <&clk32k>; }; Special Function Registers (SFR) Added: vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351-cpu-method.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351-cpu-method.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,36 @@ +Broadcom Kona Family CPU Enable Method +-------------------------------------- +This binding defines the enable method used for starting secondary +CPUs in the following Broadcom SoCs: + BCM11130, BCM11140, BCM11351, BCM28145, BCM28155, BCM21664 + +The enable method is specified by defining the following required +properties in the "cpus" device tree node: + - enable-method = "brcm,bcm11351-cpu-method"; + - secondary-boot-reg = <...>; + +The secondary-boot-reg property is a u32 value that specifies the +physical address of the register used to request the ROM holding pen +code release a secondary CPU. The value written to the register is +formed by encoding the target CPU id into the low bits of the +physical start address it should jump to. + +Example: + cpus { + #address-cells = <1>; + #size-cells = <0>; + enable-method = "brcm,bcm11351-cpu-method"; + secondary-boot-reg = <0x3500417c>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0>; + }; + + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <1>; + }; + }; Added: vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,10 @@ +Broadcom BCM11351 device tree bindings +------------------------------------------- + +Boards with the bcm281xx SoC family (which includes bcm11130, bcm11140, +bcm11351, bcm28145, bcm28155 SoCs) shall have the following properties: + +Required root node property: + +compatible = "brcm,bcm11351"; +DEPRECATED: compatible = "bcm,bcm11351"; Added: vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm21664.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm21664.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,15 @@ +Broadcom BCM21664 device tree bindings +-------------------------------------- + +This document describes the device tree bindings for boards with the BCM21664 +SoC. + +Required root node property: + - compatible: brcm,bcm21664 + +Example: + / { + model = "BCM21664 SoC"; + compatible = "brcm,bcm21664"; + [...] + } Added: vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm2835.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm2835.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,39 @@ +Broadcom BCM2835 device tree bindings +------------------------------------------- + +Raspberry Pi Model A +Required root node properties: +compatible = "raspberrypi,model-a", "brcm,bcm2835"; + +Raspberry Pi Model A+ +Required root node properties: +compatible = "raspberrypi,model-a-plus", "brcm,bcm2835"; + +Raspberry Pi Model B +Required root node properties: +compatible = "raspberrypi,model-b", "brcm,bcm2835"; + +Raspberry Pi Model B (no P5) +early model B with I2C0 rather than I2C1 routed to the expansion header +Required root node properties: +compatible = "raspberrypi,model-b-i2c0", "brcm,bcm2835"; + +Raspberry Pi Model B rev2 +Required root node properties: +compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835"; + +Raspberry Pi Model B+ +Required root node properties: +compatible = "raspberrypi,model-b-plus", "brcm,bcm2835"; + +Raspberry Pi 2 Model B +Required root node properties: +compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; + +Raspberry Pi Compute Module +Required root node properties: +compatible = "raspberrypi,compute-module", "brcm,bcm2835"; + +Generic BCM2835 board +Required root node properties: +compatible = "brcm,bcm2835"; Added: vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm4708.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm4708.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,15 @@ +Broadcom BCM4708 device tree bindings +------------------------------------------- + +Boards with the BCM4708 SoC shall have the following properties: + +Required root node property: + +bcm4708 +compatible = "brcm,bcm4708"; + +bcm4709 +compatible = "brcm,bcm4709"; + +bcm53012 +compatible = "brcm,bcm53012"; Added: vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm63138.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm63138.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,85 @@ +Broadcom BCM63138 DSL System-on-a-Chip device tree bindings +----------------------------------------------------------- + +Boards compatible with the BCM63138 DSL System-on-a-Chip should have the +following properties: + +Required root node property: + +compatible: should be "brcm,bcm63138" + +An optional Boot lookup table Device Tree node is required for secondary CPU +initialization as well as a 'resets' phandle to the correct PMB controller as +defined in reset/brcm,bcm63138-pmb.txt for this secondary CPU, and an +'enable-method' property. + +Required properties for the Boot lookup table node: +- compatible: should be "brcm,bcm63138-bootlut" +- reg: register base address and length for the Boot Lookup table + +Optional properties for the primary CPU node: +- enable-method: should be "brcm,bcm63138" + +Optional properties for the secondary CPU node: +- enable-method: should be "brcm,bcm63138" +- resets: phandle to the relevant PMB controller, one integer indicating the internal + bus number, and a second integer indicating the address of the CPU in the PMB + internal bus number. + +Example: + + cpus { + cpu@0 { + compatible = "arm,cotex-a9"; + reg = <0>; + ... + enable-method = "brcm,bcm63138"; + }; + + cpu@1 { + compatible = "arm,cortex-a9"; + reg = <1>; + ... + enable-method = "brcm,bcm63138"; + resets = <&pmb0 4 1>; + }; + }; + + bootlut: bootlut@8000 { + compatible = "brcm,bcm63138-bootlut"; + reg = <0x8000 0x50>; + }; + +======= +reboot +------ +Two nodes are required for software reboot: a timer node and a syscon-reboot node. + +Timer node: + +- compatible: Must be "brcm,bcm6328-timer", "syscon" +- reg: Register base address and length + +Syscon reboot node: + +See Documentation/devicetree/bindings/power/reset/syscon-reboot.txt for the +detailed list of properties, the two values defined below are specific to the +BCM6328-style timer: + +- offset: Should be 0x34 to denote the offset of the TIMER_WD_TIMER_RESET register + from the beginning of the TIMER block +- mask: Should be 1 for the SoftRst bit. + +Example: + + timer: timer@80 { + compatible = "brcm,bcm6328-timer", "syscon"; + reg = <0x80 0x3c>; + }; + + reboot { + compatible = "syscon-reboot"; + regmap = <&timer>; + offset = <0x34>; + mask = <0x1>; + }; Added: vendor/device-tree/dist/Bindings/arm/bcm/brcm,brcmstb.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/dist/Bindings/arm/bcm/brcm,brcmstb.txt Thu Jan 28 20:21:15 2016 (r295011) @@ -0,0 +1,255 @@ +ARM Broadcom STB platforms Device Tree Bindings +----------------------------------------------- +Boards with Broadcom Brahma15 ARM-based BCMxxxx (generally BCM7xxx variants) +SoC shall have the following DT organization: + +Required root node properties: + - compatible: "brcm,bcm", "brcm,brcmstb" + +example: +/ { + #address-cells = <2>; + #size-cells = <2>; + model = "Broadcom STB (bcm7445)"; + compatible = "brcm,bcm7445", "brcm,brcmstb"; + +Further, syscon nodes that map platform-specific registers used for general +system control is required: + + - compatible: "brcm,bcm-sun-top-ctrl", "syscon" + - compatible: "brcm,bcm-hif-cpubiuctrl", "syscon" + - compatible: "brcm,bcm-hif-continuation", "syscon" + +hif-cpubiuctrl node +------------------- +SoCs with Broadcom Brahma15 ARM-based CPUs have a specific Bus Interface Unit +(BIU) block which controls and interfaces the CPU complex to the different +Memory Controller Ports (MCP), one per memory controller (MEMC). This BIU block +offers a feature called Write Pairing which consists in collapsing two adjacent +cache lines into a single (bursted) write transaction towards the memory +controller (MEMC) to maximize write bandwidth. + +Required properties: + + - compatible: must be "brcm,bcm7445-hif-cpubiuctrl", "syscon" + +Optional properties: + + - brcm,write-pairing: + Boolean property, which when present indicates that the chip + supports write-pairing. + +example: + rdb { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + ranges = <0 0x00 0xf0000000 0x1000000>; + + sun_top_ctrl: syscon@404000 { + compatible = "brcm,bcm7445-sun-top-ctrl", "syscon"; + reg = <0x404000 0x51c>; + }; + + hif_cpubiuctrl: syscon@3e2400 { + compatible = "brcm,bcm7445-hif-cpubiuctrl", "syscon"; + reg = <0x3e2400 0x5b4>; + brcm,write-pairing; + }; + + hif_continuation: syscon@452000 { + compatible = "brcm,bcm7445-hif-continuation", "syscon"; + reg = <0x452000 0x100>; + }; + }; + +Nodes that allow for support of SMP initialization and reboot are required: + +smpboot +------- +Required properties: + + - compatible + The string "brcm,brcmstb-smpboot". + + - syscon-cpu + A phandle / integer array property which lets the BSP know the location + of certain CPU power-on registers. + + The layout of the property is as follows: + o a phandle to the "hif_cpubiuctrl" syscon node + o offset to the base CPU power zone register + o offset to the base CPU reset register + + - syscon-cont + A phandle pointing to the syscon node which describes the CPU boot + continuation registers. + o a phandle to the "hif_continuation" syscon node + +example: + smpboot { + compatible = "brcm,brcmstb-smpboot"; + syscon-cpu = <&hif_cpubiuctrl 0x88 0x178>; + syscon-cont = <&hif_continuation>; + }; + +reboot +------- +Required properties + + - compatible + The string property "brcm,brcmstb-reboot" for 40nm/28nm chips with + the new SYS_CTRL interface, or "brcm,bcm7038-reboot" for 65nm + chips with the old SUN_TOP_CTRL interface. + + - syscon + A phandle / integer array that points to the syscon node which describes + the general system reset registers. + o a phandle to "sun_top_ctrl" + o offset to the "reset source enable" register + o offset to the "software master reset" register + +example: + reboot { + compatible = "brcm,brcmstb-reboot"; + syscon = <&sun_top_ctrl 0x304 0x308>; + }; + + + +Power management +---------------- + +For power management (particularly, S2/S3/S5 system suspend), the following SoC +components are needed: + += Always-On control block (AON CTRL) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Jan 28 20:24:17 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0FDAAA3CE6B; Thu, 28 Jan 2016 20:24:17 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D078B1CF6; Thu, 28 Jan 2016 20:24:16 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SKOFwH004855; Thu, 28 Jan 2016 20:24:15 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SKOFlb004850; Thu, 28 Jan 2016 20:24:15 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <201601282024.u0SKOFlb004850@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Thu, 28 Jan 2016 20:24:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295012 - in head: sys/kern sys/sys tests/sys/kqueue X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 20:24:17 -0000 Author: vangyzen Date: Thu Jan 28 20:24:15 2016 New Revision: 295012 URL: https://svnweb.freebsd.org/changeset/base/295012 Log: kqueue EVFILT_PROC: avoid collision between NOTE_CHILD and NOTE_EXIT NOTE_CHILD and NOTE_EXIT return something in kevent.data: the parent pid (ppid) for NOTE_CHILD and the exit status for NOTE_EXIT. Do not let the two events be combined, since one would overwrite the other's data. PR: 180385 Submitted by: David A. Bright Reviewed by: jhb MFC after: 1 month Sponsored by: Dell Inc. Differential Revision: https://reviews.freebsd.org/D4900 Modified: head/sys/kern/kern_event.c head/sys/sys/event.h head/tests/sys/kqueue/common.h head/tests/sys/kqueue/main.c head/tests/sys/kqueue/proc.c Modified: head/sys/kern/kern_event.c ============================================================================== --- head/sys/kern/kern_event.c Thu Jan 28 20:21:15 2016 (r295011) +++ head/sys/kern/kern_event.c Thu Jan 28 20:24:15 2016 (r295012) @@ -373,11 +373,21 @@ filt_procattach(struct knote *kn) kn->kn_flags |= EV_CLEAR; /* automatically set */ /* - * internal flag indicating registration done by kernel + * Internal flag indicating registration done by kernel for the + * purposes of getting a NOTE_CHILD notification. */ - if (kn->kn_flags & EV_FLAG1) { + if (kn->kn_flags & EV_FLAG2) { + kn->kn_flags &= ~EV_FLAG2; kn->kn_data = kn->kn_sdata; /* ppid */ kn->kn_fflags = NOTE_CHILD; + kn->kn_sfflags &= ~NOTE_EXIT; + immediate = 1; /* Force immediate activation of child note. */ + } + /* + * Internal flag indicating registration done by kernel (for other than + * NOTE_CHILD). + */ + if (kn->kn_flags & EV_FLAG1) { kn->kn_flags &= ~EV_FLAG1; } @@ -385,9 +395,10 @@ filt_procattach(struct knote *kn) knlist_add(&p->p_klist, kn, 1); /* - * Immediately activate any exit notes if the target process is a - * zombie. This is necessary to handle the case where the target - * process, e.g. a child, dies before the kevent is registered. + * Immediately activate any child notes or, in the case of a zombie + * target process, exit notes. The latter is necessary to handle the + * case where the target process, e.g. a child, dies before the kevent + * is registered. */ if (immediate && filt_proc(kn, NOTE_EXIT)) KNOTE_ACTIVATE(kn, 0); @@ -495,7 +506,7 @@ knote_fork(struct knlist *list, int pid) /* * The NOTE_TRACK case. In addition to the activation - * of the event, we need to register new event to + * of the event, we need to register new events to * track the child. Drop the locks in preparation for * the call to kqueue_register(). */ @@ -504,8 +515,27 @@ knote_fork(struct knlist *list, int pid) list->kl_unlock(list->kl_lockarg); /* - * Activate existing knote and register a knote with + * Activate existing knote and register tracking knotes with * new process. + * + * First register a knote to get just the child notice. This + * must be a separate note from a potential NOTE_EXIT + * notification since both NOTE_CHILD and NOTE_EXIT are defined + * to use the data field (in conflicting ways). + */ + kev.ident = pid; + kev.filter = kn->kn_filter; + kev.flags = kn->kn_flags | EV_ADD | EV_ENABLE | EV_ONESHOT | EV_FLAG2; + kev.fflags = kn->kn_sfflags; + kev.data = kn->kn_id; /* parent */ + kev.udata = kn->kn_kevent.udata;/* preserve udata */ + error = kqueue_register(kq, &kev, NULL, 0); + if (error) + kn->kn_fflags |= NOTE_TRACKERR; + + /* + * Then register another knote to track other potential events + * from the new process. */ kev.ident = pid; kev.filter = kn->kn_filter; @@ -1129,7 +1159,7 @@ findkn: if (fp->f_type == DTYPE_KQUEUE) { /* - * if we add some inteligence about what we are doing, + * If we add some intelligence about what we are doing, * we should be able to support events on ourselves. * We need to know when we are doing this to prevent * getting both the knlist lock and the kq lock since @@ -1161,7 +1191,18 @@ findkn: kqueue_expand(kq, fops, kev->ident, waitok); KQ_LOCK(kq); - if (kq->kq_knhashmask != 0) { + + /* + * If possible, find an existing knote to use for this kevent. + */ + if (kev->filter == EVFILT_PROC && + (kev->flags & (EV_FLAG1 | EV_FLAG2)) != 0) { + /* This is an internal creation of a process tracking + * note. Don't attempt to coalesce this with an + * existing note. + */ + ; + } else if (kq->kq_knhashmask != 0) { struct klist *list; list = &kq->kq_knhash[ @@ -1173,7 +1214,7 @@ findkn: } } - /* knote is in the process of changing, wait for it to stablize. */ + /* knote is in the process of changing, wait for it to stabilize. */ if (kn != NULL && (kn->kn_status & KN_INFLUX) == KN_INFLUX) { KQ_GLOBAL_UNLOCK(&kq_global, haskqglobal); if (filedesc_unlock) { Modified: head/sys/sys/event.h ============================================================================== --- head/sys/sys/event.h Thu Jan 28 20:21:15 2016 (r295011) +++ head/sys/sys/event.h Thu Jan 28 20:24:15 2016 (r295012) @@ -80,6 +80,7 @@ struct kevent { #define EV_SYSFLAGS 0xF000 /* reserved by system */ #define EV_DROP 0x1000 /* note should be dropped */ #define EV_FLAG1 0x2000 /* filter-specific flag */ +#define EV_FLAG2 0x4000 /* filter-specific flag */ /* returned values */ #define EV_EOF 0x8000 /* EOF detected */ Modified: head/tests/sys/kqueue/common.h ============================================================================== --- head/tests/sys/kqueue/common.h Thu Jan 28 20:21:15 2016 (r295011) +++ head/tests/sys/kqueue/common.h Thu Jan 28 20:24:15 2016 (r295012) @@ -46,6 +46,7 @@ int vnode_fd; extern const char * kevent_to_str(struct kevent *); struct kevent * kevent_get(int); +struct kevent * kevent_get_timeout(int, int); void kevent_cmp(struct kevent *, struct kevent *); Modified: head/tests/sys/kqueue/main.c ============================================================================== --- head/tests/sys/kqueue/main.c Thu Jan 28 20:21:15 2016 (r295011) +++ head/tests/sys/kqueue/main.c Thu Jan 28 20:24:15 2016 (r295012) @@ -69,6 +69,28 @@ kevent_get(int kqfd) return (kev); } +/* Retrieve a single kevent, specifying a maximum time to wait for it. */ +struct kevent * +kevent_get_timeout(int kqfd, int seconds) +{ + int nfds; + struct kevent *kev; + struct timespec timeout = {seconds, 0}; + + if ((kev = calloc(1, sizeof(*kev))) == NULL) + err(1, "out of memory"); + + nfds = kevent(kqfd, NULL, 0, kev, 1, &timeout); + if (nfds < 0) { + err(1, "kevent(2)"); + } else if (nfds == 0) { + free(kev); + kev = NULL; + } + + return (kev); +} + char * kevent_fflags_dump(struct kevent *kev) { @@ -82,25 +104,39 @@ kevent_fflags_dump(struct kevent *kev) abort(); /* Not every filter has meaningful fflags */ - if (kev->filter != EVFILT_VNODE) { - snprintf(buf, 1024, "fflags = %d", kev->fflags); - return (buf); - } - - snprintf(buf, 1024, "fflags = %d (", kev->fflags); - KEVFFL_DUMP(NOTE_DELETE); - KEVFFL_DUMP(NOTE_WRITE); - KEVFFL_DUMP(NOTE_EXTEND); + if (kev->filter == EVFILT_PROC) { + snprintf(buf, 1024, "fflags = %x (", kev->fflags); + KEVFFL_DUMP(NOTE_EXIT); + KEVFFL_DUMP(NOTE_FORK); + KEVFFL_DUMP(NOTE_EXEC); + KEVFFL_DUMP(NOTE_CHILD); + KEVFFL_DUMP(NOTE_TRACKERR); + KEVFFL_DUMP(NOTE_TRACK); + buf[strlen(buf) - 1] = ')'; + } else if (kev->filter == EVFILT_PROCDESC) { + snprintf(buf, 1024, "fflags = %x (", kev->fflags); + KEVFFL_DUMP(NOTE_EXIT); + KEVFFL_DUMP(NOTE_FORK); + KEVFFL_DUMP(NOTE_EXEC); + buf[strlen(buf) - 1] = ')'; + } else if (kev->filter == EVFILT_VNODE) { + snprintf(buf, 1024, "fflags = %x (", kev->fflags); + KEVFFL_DUMP(NOTE_DELETE); + KEVFFL_DUMP(NOTE_WRITE); + KEVFFL_DUMP(NOTE_EXTEND); #if HAVE_NOTE_TRUNCATE - KEVFFL_DUMP(NOTE_TRUNCATE); + KEVFFL_DUMP(NOTE_TRUNCATE); #endif - KEVFFL_DUMP(NOTE_ATTRIB); - KEVFFL_DUMP(NOTE_LINK); - KEVFFL_DUMP(NOTE_RENAME); + KEVFFL_DUMP(NOTE_ATTRIB); + KEVFFL_DUMP(NOTE_LINK); + KEVFFL_DUMP(NOTE_RENAME); #if HAVE_NOTE_REVOKE - KEVFFL_DUMP(NOTE_REVOKE); + KEVFFL_DUMP(NOTE_REVOKE); #endif - buf[strlen(buf) - 1] = ')'; + buf[strlen(buf) - 1] = ')'; + } else { + snprintf(buf, 1024, "fflags = %x", kev->fflags); + } return (buf); } @@ -260,6 +296,15 @@ main(int argc, char **argv) argc--; } + /* + * Some tests fork. If output is fully buffered, + * the children inherit some buffered data and flush + * it when they exit, causing some data to be printed twice. + * Use line buffering to avoid this problem. + */ + setlinebuf(stdout); + setlinebuf(stderr); + test_kqueue(); test_kqueue_close(); Modified: head/tests/sys/kqueue/proc.c ============================================================================== --- head/tests/sys/kqueue/proc.c Thu Jan 28 20:21:15 2016 (r295011) +++ head/tests/sys/kqueue/proc.c Thu Jan 28 20:24:15 2016 (r295012) @@ -74,6 +74,172 @@ add_and_delete(void) } +static void +proc_track(int sleep_time) +{ + char test_id[64]; + struct kevent kev; + pid_t pid; + int pipe_fd[2]; + ssize_t result; + + snprintf(test_id, sizeof(test_id), + "kevent(EVFILT_PROC, NOTE_TRACK); sleep %d", sleep_time); + test_begin(test_id); + test_no_kevents(); + + if (pipe(pipe_fd)) { + err(1, "pipe (parent) failed! (%s() at %s:%d)", + __func__, __FILE__, __LINE__); + } + + /* Create a child to track. */ + pid = fork(); + if (pid == 0) { /* Child */ + pid_t grandchild = -1; + + /* + * Give the parent a chance to start tracking us. + */ + result = read(pipe_fd[1], test_id, 1); + if (result != 1) { + err(1, "read from pipe in child failed! (ret %zd) (%s() at %s:%d)", + result, __func__, __FILE__, __LINE__); + } + + /* + * Spawn a grandchild that will immediately exit. If the kernel has bug + * 180385, the parent will see a kevent with both NOTE_CHILD and + * NOTE_EXIT. If that bug is fixed, it will see two separate kevents + * for those notes. Note that this triggers the conditions for + * detecting the bug quite reliably on a 1 CPU system (or if the test + * process is restricted to a single CPU), but may not trigger it on a + * multi-CPU system. + */ + grandchild = fork(); + if (grandchild == 0) { /* Grandchild */ + if (sleep_time) sleep(sleep_time); + exit(1); + } else if (grandchild == -1) { /* Error */ + err(1, "fork (grandchild) failed! (%s() at %s:%d)", + __func__, __FILE__, __LINE__); + } else { /* Child (Grandchild Parent) */ + printf(" -- grandchild created (pid %d)\n", (int) grandchild); + } + if (sleep_time) sleep(sleep_time); + exit(0); + } else if (pid == -1) { /* Error */ + err(1, "fork (child) failed! (%s() at %s:%d)", + __func__, __FILE__, __LINE__); + } + + printf(" -- child created (pid %d)\n", (int) pid); + + kevent_add(kqfd, &kev, pid, EVFILT_PROC, EV_ADD | EV_ENABLE, + NOTE_TRACK | NOTE_EXEC | NOTE_EXIT | NOTE_FORK, + 0, NULL); + + printf(" -- tracking child (pid %d)\n", (int) pid); + + /* Now that we're tracking the child, tell it to proceed. */ + result = write(pipe_fd[0], test_id, 1); + if (result != 1) { + err(1, "write to pipe in parent failed! (ret %zd) (%s() at %s:%d)", + result, __func__, __FILE__, __LINE__); + } + + /* + * Several events should be received: + * - NOTE_FORK (from child) + * - NOTE_CHILD (from grandchild) + * - NOTE_EXIT (from grandchild) + * - NOTE_EXIT (from child) + * + * The NOTE_FORK and NOTE_EXIT from the child could be combined into a + * single event, but the NOTE_CHILD and NOTE_EXIT from the grandchild must + * not be combined. + * + * The loop continues until no events are received within a 5 second + * period, at which point it is assumed that no more will be coming. The + * loop is deliberately designed to attempt to get events even after all + * the expected ones are received in case some spurious events are + * generated as well as the expected ones. + */ + { + int child_exit = 0; + int child_fork = 0; + int gchild_exit = 0; + int gchild_note = 0; + pid_t gchild_pid = -1; + int done = 0; + + while (!done) + { + int handled = 0; + struct kevent *kevp; + + kevp = kevent_get_timeout(kqfd, 5); + if (kevp == NULL) { + done = 1; + } else { + printf(" -- Received kevent: %s\n", kevent_to_str(kevp)); + + if ((kevp->fflags & NOTE_CHILD) && (kevp->fflags & NOTE_EXIT)) { + errx(1, "NOTE_CHILD and NOTE_EXIT in same kevent: %s", kevent_to_str(kevp)); + } + + if (kevp->fflags & NOTE_CHILD) { + if (kevp->data == pid) { + if (!gchild_note) { + ++gchild_note; + gchild_pid = kevp->ident; + ++handled; + } else { + errx(1, "Spurious NOTE_CHILD: %s", kevent_to_str(kevp)); + } + } + } + + if (kevp->fflags & NOTE_EXIT) { + if ((kevp->ident == pid) && (!child_exit)) { + ++child_exit; + ++handled; + } else if ((kevp->ident == gchild_pid) && (!gchild_exit)) { + ++gchild_exit; + ++handled; + } else { + errx(1, "Spurious NOTE_EXIT: %s", kevent_to_str(kevp)); + } + } + + if (kevp->fflags & NOTE_FORK) { + if ((kevp->ident == pid) && (!child_fork)) { + ++child_fork; + ++handled; + } else { + errx(1, "Spurious NOTE_FORK: %s", kevent_to_str(kevp)); + } + } + + if (!handled) { + errx(1, "Spurious kevent: %s", kevent_to_str(kevp)); + } + + free(kevp); + } + } + + /* Make sure all expected events were received. */ + if (child_exit && child_fork && gchild_exit && gchild_note) { + printf(" -- Received all expected events.\n"); + } else { + errx(1, "Did not receive all expected events."); + } + } + + success(); +} + #ifdef TODO static void event_trigger(void) @@ -236,6 +402,8 @@ test_evfilt_proc() signal(SIGUSR1, sig_handler); add_and_delete(); + proc_track(0); /* Run without sleeping before children exit. */ + proc_track(1); /* Sleep a bit in the children before exiting. */ #if TODO event_trigger(); From owner-svn-src-all@freebsd.org Thu Jan 28 20:36:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1518CA704AA; Thu, 28 Jan 2016 20:36:08 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BB7F82E8; Thu, 28 Jan 2016 20:36:06 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SKa5iN007904; Thu, 28 Jan 2016 20:36:05 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SKa4h6007885; Thu, 28 Jan 2016 20:36:04 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201601282036.u0SKa4h6007885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 28 Jan 2016 20:36:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r295013 - in vendor/device-tree/ianc-afaecb70: . Bindings Bindings/arc Bindings/arm Bindings/arm/altera Bindings/arm/apm Bindings/arm/bcm Bindings/arm/calxeda Bindings/arm/cpu-enable-me... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 20:36:08 -0000 Author: andrew Date: Thu Jan 28 20:36:03 2016 New Revision: 295013 URL: https://svnweb.freebsd.org/changeset/base/295013 Log: Tag device-tree afaecb70 Added: vendor/device-tree/ianc-afaecb70/ - copied from r294995, vendor/device-tree/dist/ vendor/device-tree/ianc-afaecb70/Bindings/arc/archs-pct.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arc/archs-pct.txt vendor/device-tree/ianc-afaecb70/Bindings/arc/axs101.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arc/axs101.txt vendor/device-tree/ianc-afaecb70/Bindings/arc/axs103.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arc/axs103.txt vendor/device-tree/ianc-afaecb70/Bindings/arc/pct.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arc/pct.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/al,alpine.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/al,alpine.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/altera.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/altera.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/altera/socfpga-sdram-controller.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-controller.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/apm/ - copied from r295011, vendor/device-tree/dist/Bindings/arm/apm/ vendor/device-tree/ianc-afaecb70/Bindings/arm/arm,scpi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/arm,scpi.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/armada-39x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/armada-39x.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/armv7m_systick.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/armv7m_systick.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,bcm11351-cpu-method.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351-cpu-method.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,bcm11351.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,bcm21664.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm21664.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,bcm2835.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm2835.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,bcm4708.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm4708.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,bcm63138.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm63138.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,brcmstb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,brcmstb.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,cygnus.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,cygnus.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,nsp-cpu-method.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,nsp-cpu-method.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,nsp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,nsp.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/ns2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/ns2.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/raspberrypi,bcm2835-firmware.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/bcm/raspberrypi,bcm2835-firmware.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/compulab-boards.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/compulab-boards.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/cpu-enable-method/al,alpine-smp - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/cpu-enable-method/al,alpine-smp vendor/device-tree/ianc-afaecb70/Bindings/arm/freescale/ - copied from r295011, vendor/device-tree/dist/Bindings/arm/freescale/ vendor/device-tree/ianc-afaecb70/Bindings/arm/l2c2x0.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/l2c2x0.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,apmixedsys.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,apmixedsys.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,imgsys.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,imgsys.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,infracfg.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,infracfg.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,mmsys.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,mmsys.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,pericfg.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,pericfg.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,topckgen.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,topckgen.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,vdecsys.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,vdecsys.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,vencltsys.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,vencltsys.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,vencsys.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek/mediatek,vencsys.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/msm/qcom,idle-state.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/msm/qcom,idle-state.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mvebu-cpu-config.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mvebu-cpu-config.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/omap/ctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/omap/ctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/omap/l4.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/omap/l4.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/samsung/samsung-boards.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/samsung/samsung-boards.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/scu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/scu.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/secure.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/secure.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/sp810.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/sp810.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/technologic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/technologic.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/tegra/nvidia,nvec.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/tegra/nvidia,nvec.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/tegra/nvidia,tegra30-actmon.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/tegra/nvidia,tegra30-actmon.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/uniphier/ - copied from r295011, vendor/device-tree/dist/Bindings/arm/uniphier/ vendor/device-tree/ianc-afaecb70/Bindings/arm/ux500/boards.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/ux500/boards.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/zte.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/zte.txt vendor/device-tree/ianc-afaecb70/Bindings/ata/ahci-ceva.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/ata/ahci-ceva.txt vendor/device-tree/ianc-afaecb70/Bindings/ata/ahci-fsl-qoriq.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/ata/ahci-fsl-qoriq.txt vendor/device-tree/ianc-afaecb70/Bindings/ata/brcm,sata-brcmstb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/ata/brcm,sata-brcmstb.txt vendor/device-tree/ianc-afaecb70/Bindings/board/ - copied from r295011, vendor/device-tree/dist/Bindings/board/ vendor/device-tree/ianc-afaecb70/Bindings/bus/brcm,bus-axi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/bus/brcm,bus-axi.txt vendor/device-tree/ianc-afaecb70/Bindings/bus/renesas,bsc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/bus/renesas,bsc.txt vendor/device-tree/ianc-afaecb70/Bindings/bus/simple-pm-bus.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/bus/simple-pm-bus.txt vendor/device-tree/ianc-afaecb70/Bindings/bus/sunxi-rsb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/bus/sunxi-rsb.txt vendor/device-tree/ianc-afaecb70/Bindings/bus/uniphier-system-bus.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/bus/uniphier-system-bus.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/amlogic,meson8b-clkc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/amlogic,meson8b-clkc.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/arm-syscon-icst.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/arm-syscon-icst.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/brcm,bcm2835-aux-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/brcm,bcm2835-aux-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/brcm,bcm2835-cprman.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/brcm,bcm2835-cprman.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/brcm,iproc-clocks.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/brcm,iproc-clocks.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/brcm,kona-ccu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/brcm,kona-ccu.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/cs2000-cp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/cs2000-cp.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/csr,atlas7-car.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/csr,atlas7-car.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/dove-divider-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/dove-divider-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/exynos5433-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/exynos5433-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/fujitsu,mb86s70-crg11.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/fujitsu,mb86s70-crg11.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/gpio-mux-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/gpio-mux-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/hi6220-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/hi6220-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/imx6ul-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/imx6ul-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/imx7d-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/imx7d-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/ingenic,cgu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/ingenic,cgu.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/lpc1850-ccu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/lpc1850-ccu.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/lpc1850-cgu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/lpc1850-cgu.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/marvell,berlin.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/marvell,berlin.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/marvell,pxa1928.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/marvell,pxa1928.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/mt8173-cpu-dvfs.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/mt8173-cpu-dvfs.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/nvidia,tegra124-dfll.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/nvidia,tegra124-dfll.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/nvidia,tegra210-car.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/nvidia,tegra210-car.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/nxp,lpc3220-clk.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/nxp,lpc3220-clk.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/nxp,lpc3220-usb-clk.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/nxp,lpc3220-usb-clk.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/pistachio-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/pistachio-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/pwm-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/pwm-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/qca,ath79-pll.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/qca,ath79-pll.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/renesas,cpg-mssr.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/renesas,cpg-mssr.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/renesas,h8300-div-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/renesas,h8300-div-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/renesas,h8s2678-pll-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/renesas,h8s2678-pll-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/renesas,r8a7778-cpg-clocks.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/renesas,r8a7778-cpg-clocks.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/rockchip,rk3036-cru.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/rockchip,rk3036-cru.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/rockchip,rk3228-cru.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/rockchip,rk3228-cru.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/rockchip,rk3368-cru.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/rockchip,rk3368-cru.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/samsung,s2mps11.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/samsung,s2mps11.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/silabs,si514.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/silabs,si514.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/st,stm32-rcc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/st,stm32-rcc.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/tango4-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/tango4-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/ti,cdce925.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/ti,cdce925.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/ux500.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/ux500.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/zx296702-clk.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/zx296702-clk.txt vendor/device-tree/ianc-afaecb70/Bindings/common-properties.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/common-properties.txt vendor/device-tree/ianc-afaecb70/Bindings/cpufreq/cpufreq-st.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/cpufreq/cpufreq-st.txt vendor/device-tree/ianc-afaecb70/Bindings/cpufreq/tegra124-cpufreq.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/cpufreq/tegra124-cpufreq.txt vendor/device-tree/ianc-afaecb70/Bindings/cris/ - copied from r295011, vendor/device-tree/dist/Bindings/cris/ vendor/device-tree/ianc-afaecb70/Bindings/crypto/img-hash.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/crypto/img-hash.txt vendor/device-tree/ianc-afaecb70/Bindings/crypto/marvell-cesa.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/crypto/marvell-cesa.txt vendor/device-tree/ianc-afaecb70/Bindings/crypto/rockchip-crypto.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/crypto/rockchip-crypto.txt vendor/device-tree/ianc-afaecb70/Bindings/crypto/sun4i-ss.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/crypto/sun4i-ss.txt vendor/device-tree/ianc-afaecb70/Bindings/display/ - copied from r295011, vendor/device-tree/dist/Bindings/display/ vendor/device-tree/ianc-afaecb70/Bindings/dma/adi,axi-dmac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/adi,axi-dmac.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/apm-xgene-dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/apm-xgene-dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/arm-pl08x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/arm-pl08x.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/brcm,bcm2835-dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/brcm,bcm2835-dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/jz4780-dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/jz4780-dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/lpc1850-dmamux.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/lpc1850-dmamux.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/renesas,usb-dmac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/renesas,usb-dmac.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/stm32-dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/stm32-dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/sun4i-dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/sun4i-dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/ti-dma-crossbar.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/ti-dma-crossbar.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/zxdma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/zxdma.txt vendor/device-tree/ianc-afaecb70/Bindings/edac/ - copied from r295011, vendor/device-tree/dist/Bindings/edac/ vendor/device-tree/ianc-afaecb70/Bindings/eeprom/ - copied from r295011, vendor/device-tree/dist/Bindings/eeprom/ vendor/device-tree/ianc-afaecb70/Bindings/extcon/extcon-arizona.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/extcon/extcon-arizona.txt vendor/device-tree/ianc-afaecb70/Bindings/extcon/extcon-max3355.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/extcon/extcon-max3355.txt vendor/device-tree/ianc-afaecb70/Bindings/extcon/extcon-usb-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/extcon/extcon-usb-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/fpga/xilinx-zynq-fpga-mgr.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/fpga/xilinx-zynq-fpga-mgr.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/brcm,brcmstb-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/brcm,brcmstb-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/brcm,kona-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/brcm,kona-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-altera.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-altera.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-ath79.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-ath79.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-atlas7.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-atlas7.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-etraxfs.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-etraxfs.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-mpc8xxx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-mpc8xxx.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-tps65086.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-tps65086.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-xlp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-xlp.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/netxbig-gpio-ext.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/netxbig-gpio-ext.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/nxp,lpc1850-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/nxp,lpc1850-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/zx296702-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/zx296702-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/h8300/ - copied from r295011, vendor/device-tree/dist/Bindings/h8300/ vendor/device-tree/ianc-afaecb70/Bindings/hwlock/ - copied from r295011, vendor/device-tree/dist/Bindings/hwlock/ vendor/device-tree/ianc-afaecb70/Bindings/hwmon/ina2xx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/hwmon/ina2xx.txt vendor/device-tree/ianc-afaecb70/Bindings/hwmon/lm70.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/hwmon/lm70.txt vendor/device-tree/ianc-afaecb70/Bindings/hwmon/max6697.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/hwmon/max6697.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/brcm,kona-i2c.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/brcm,kona-i2c.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-brcmstb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-brcmstb.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-digicolor.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-digicolor.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-emev2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-emev2.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-jz4780.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-jz4780.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-lpc2k.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-lpc2k.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-mt6577.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-mt6577.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-mux-reg.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-mux-reg.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-uniphier-f.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-uniphier-f.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-uniphier.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-uniphier.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-xgene-slimpro.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-xgene-slimpro.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-xlp9xx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-xlp9xx.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/accel/lis302.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/accel/lis302.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/accel/mma8452.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/accel/mma8452.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/berlin2_adc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/berlin2_adc.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/da9150-gpadc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/da9150-gpadc.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/hi8435.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/hi8435.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/imx7d-adc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/imx7d-adc.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/mcp320x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/mcp320x.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/mcp3422.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/mcp3422.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/palmas-gpadc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/palmas-gpadc.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/ti-adc128s052.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/ti-adc128s052.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/ti-ads8688.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/ti-ads8688.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/dac/ti,dac7512.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/dac/ti,dac7512.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/health/ - copied from r295011, vendor/device-tree/dist/Bindings/iio/health/ vendor/device-tree/ianc-afaecb70/Bindings/iio/imu/ - copied from r295011, vendor/device-tree/dist/Bindings/iio/imu/ vendor/device-tree/ianc-afaecb70/Bindings/iio/light/apds9960.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/light/apds9960.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/light/us5182d.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/light/us5182d.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/magnetometer/bmc150_magn.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/magnetometer/bmc150_magn.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/magnetometer/mmc35240.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/magnetometer/mmc35240.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/pressure/ - copied from r295011, vendor/device-tree/dist/Bindings/iio/pressure/ vendor/device-tree/ianc-afaecb70/Bindings/iio/temperature/ - copied from r295011, vendor/device-tree/dist/Bindings/iio/temperature/ vendor/device-tree/ianc-afaecb70/Bindings/input/brcm,bcm-keypad.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/brcm,bcm-keypad.txt vendor/device-tree/ianc-afaecb70/Bindings/input/cypress,cyapa.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/cypress,cyapa.txt vendor/device-tree/ianc-afaecb70/Bindings/input/da9062-onkey.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/da9062-onkey.txt vendor/device-tree/ianc-afaecb70/Bindings/input/hid-over-i2c.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/hid-over-i2c.txt vendor/device-tree/ianc-afaecb70/Bindings/input/qcom,pm8941-pwrkey.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/qcom,pm8941-pwrkey.txt vendor/device-tree/ianc-afaecb70/Bindings/input/snvs-pwrkey.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/snvs-pwrkey.txt vendor/device-tree/ianc-afaecb70/Bindings/input/ti,drv2665.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/ti,drv2665.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/brcm,iproc-touchscreen.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/brcm,iproc-touchscreen.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/chipone_icn8318.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/chipone_icn8318.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/colibri-vf50-ts.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/colibri-vf50-ts.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/focaltech-ft6236.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/focaltech-ft6236.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/goodix.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/goodix.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/imx6ul_tsc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/imx6ul_tsc.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/sx8654.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/sx8654.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/ts4800-ts.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/ts4800-ts.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/allwinner,sunxi-nmi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/allwinner,sunxi-nmi.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/arm,gic-v3.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/arm,gic-v3.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/arm,gic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/arm,gic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/arm,versatile-fpga-irq.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/arm,versatile-fpga-irq.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/arm,vic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/arm,vic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/axis,crisv32-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/axis,crisv32-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/brcm,bcm2836-l1-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm2836-l1-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/brcm,bcm3380-l2-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm3380-l2-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/cdns,xtensa-mx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/cdns,xtensa-mx.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/cdns,xtensa-pic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/cdns,xtensa-pic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/hisilicon,mbigen-v2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/hisilicon,mbigen-v2.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/img,meta-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/img,meta-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/img,pdc-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/img,pdc-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/ingenic,intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/ingenic,intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/intel,ce4100-ioapic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/intel,ce4100-ioapic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/mediatek,sysirq.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/mediatek,sysirq.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/microchip,pic32-evic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/microchip,pic32-evic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/mrvl,intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/mrvl,intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/msi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/msi.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/nvidia,tegra-ictlr.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/nvidia,tegra-ictlr.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/nxp,lpc3220-mic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/nxp,lpc3220-mic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/open-pic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/open-pic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/qca,ath79-cpu-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/qca,ath79-cpu-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/qca,ath79-misc-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/qca,ath79-misc-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/renesas,h8300h-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/renesas,h8300h-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/renesas,h8s-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/renesas,h8s-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/samsung,exynos4210-combiner.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/samsung,exynos4210-combiner.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/snps,arc700-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/snps,arc700-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/snps,archs-idu-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/snps,archs-idu-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/snps,archs-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/snps,archs-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/st,spear3xx-shirq.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/st,spear3xx-shirq.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/st,sti-irq-syscfg.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/st,sti-irq-syscfg.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/technologic,ts4800.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/technologic,ts4800.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/ti,c64x+megamod-pic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/ti,c64x+megamod-pic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/ti,cp-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/ti,cp-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/ti,omap2-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/ti,omap2-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/ti,omap4-wugen-mpu - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/ti,omap4-wugen-mpu vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/via,vt8500-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/via,vt8500-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/iommu/arm,smmu-v3.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iommu/arm,smmu-v3.txt vendor/device-tree/ianc-afaecb70/Bindings/ipmi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/ipmi.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/backlight/ - copied from r295011, vendor/device-tree/dist/Bindings/leds/backlight/ vendor/device-tree/ianc-afaecb70/Bindings/leds/leds-aat1290.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/leds-aat1290.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/leds-bcm6328.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/leds-bcm6328.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/leds-bcm6358.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/leds-bcm6358.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/leds-ktd2692.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/leds-ktd2692.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/leds-netxbig.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/leds-netxbig.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/leds-powernv.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/leds-powernv.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/leds-tlc591xx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/leds-tlc591xx.txt vendor/device-tree/ianc-afaecb70/Bindings/mailbox/arm-mhu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mailbox/arm-mhu.txt vendor/device-tree/ianc-afaecb70/Bindings/mailbox/brcm,bcm2835-mbox.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mailbox/brcm,bcm2835-mbox.txt vendor/device-tree/ianc-afaecb70/Bindings/mailbox/sti-mailbox.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mailbox/sti-mailbox.txt vendor/device-tree/ianc-afaecb70/Bindings/media/i2c/adp1653.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/i2c/adp1653.txt vendor/device-tree/ianc-afaecb70/Bindings/media/i2c/mt9v032.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/i2c/mt9v032.txt vendor/device-tree/ianc-afaecb70/Bindings/media/i2c/ov2640.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/i2c/ov2640.txt vendor/device-tree/ianc-afaecb70/Bindings/media/i2c/ov2659.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/i2c/ov2659.txt vendor/device-tree/ianc-afaecb70/Bindings/media/i2c/tc358743.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/i2c/tc358743.txt vendor/device-tree/ianc-afaecb70/Bindings/media/renesas,jpu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/renesas,jpu.txt vendor/device-tree/ianc-afaecb70/Bindings/media/st,stih4xx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/st,stih4xx.txt vendor/device-tree/ianc-afaecb70/Bindings/media/stih407-c8sectpfe.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/stih407-c8sectpfe.txt vendor/device-tree/ianc-afaecb70/Bindings/media/ti,omap3isp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/ti,omap3isp.txt vendor/device-tree/ianc-afaecb70/Bindings/media/xilinx/ - copied from r295011, vendor/device-tree/dist/Bindings/media/xilinx/ vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/arm,pl172.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/arm,pl172.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/ath79-ddr-controller.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/ath79-ddr-controller.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/calxeda-ddr-ctrlr.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/calxeda-ddr-ctrlr.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/ingenic,jz4780-nemc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/ingenic,jz4780-nemc.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/renesas,h8300-bsc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/renesas,h8300-bsc.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/tegra-emc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/tegra-emc.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/atmel-flexcom.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/atmel-flexcom.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/axp20x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/axp20x.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/brcm,bcm59056.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/brcm,bcm59056.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/da9062.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/da9062.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/da9150.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/da9150.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/max77802.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/max77802.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/mfd.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/mfd.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/mt6397.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/mt6397.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/qcom,tcsr.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/qcom,tcsr.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/samsung,sec-core.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/samsung,sec-core.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/sky81452.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/sky81452.txt vendor/device-tree/ianc-afaecb70/Bindings/mips/ath79-soc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mips/ath79-soc.txt vendor/device-tree/ianc-afaecb70/Bindings/mips/brcm/brcm,bmips.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mips/brcm/brcm,bmips.txt vendor/device-tree/ianc-afaecb70/Bindings/mips/brcm/soc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mips/brcm/soc.txt vendor/device-tree/ianc-afaecb70/Bindings/mips/img/ - copied from r295011, vendor/device-tree/dist/Bindings/mips/img/ vendor/device-tree/ianc-afaecb70/Bindings/mips/pic32/ - copied from r295011, vendor/device-tree/dist/Bindings/mips/pic32/ vendor/device-tree/ianc-afaecb70/Bindings/misc/brcm,kona-smc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/misc/brcm,kona-smc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/brcm,kona-sdhci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/brcm,kona-sdhci.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/brcm,sdhci-iproc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/brcm,sdhci-iproc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/mmc-card.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/mmc-card.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/mtk-sd.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/mtk-sd.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/sdhci-atmel.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/sdhci-atmel.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/brcm,brcmnand.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/brcm,brcmnand.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/ingenic,jz4780-nand.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/ingenic,jz4780-nand.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/jedec,spi-nor.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/jedec,spi-nor.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/mtk-quadspi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/mtk-quadspi.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/nxp-spifi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/nxp-spifi.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/vf610-nfc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/vf610-nfc.txt vendor/device-tree/ianc-afaecb70/Bindings/net/brcm,bcm7445-switch-v4.0.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/brcm,bcm7445-switch-v4.0.txt vendor/device-tree/ianc-afaecb70/Bindings/net/brcm,bcmgenet.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/brcm,bcmgenet.txt vendor/device-tree/ianc-afaecb70/Bindings/net/brcm,iproc-mdio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/brcm,iproc-mdio.txt vendor/device-tree/ianc-afaecb70/Bindings/net/brcm,systemport.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/brcm,systemport.txt vendor/device-tree/ianc-afaecb70/Bindings/net/brcm,unimac-mdio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/brcm,unimac-mdio.txt vendor/device-tree/ianc-afaecb70/Bindings/net/can/sun4i_can.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/can/sun4i_can.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ezchip_enet.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ezchip_enet.txt vendor/device-tree/ianc-afaecb70/Bindings/net/hisilicon-hns-dsaf.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/hisilicon-hns-dsaf.txt vendor/device-tree/ianc-afaecb70/Bindings/net/hisilicon-hns-mdio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/hisilicon-hns-mdio.txt vendor/device-tree/ianc-afaecb70/Bindings/net/hisilicon-hns-nic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/hisilicon-hns-nic.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ieee802154/adf7242.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ieee802154/adf7242.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ieee802154/mrf24j40.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ieee802154/mrf24j40.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ipq806x-dwmac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ipq806x-dwmac.txt vendor/device-tree/ianc-afaecb70/Bindings/net/maxim,ds26522.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/maxim,ds26522.txt vendor/device-tree/ianc-afaecb70/Bindings/net/mediatek,mt7620-gsw.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/mediatek,mt7620-gsw.txt vendor/device-tree/ianc-afaecb70/Bindings/net/nfc/nfcmrvl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/nfc/nfcmrvl.txt vendor/device-tree/ianc-afaecb70/Bindings/net/nfc/nxp-nci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/nfc/nxp-nci.txt vendor/device-tree/ianc-afaecb70/Bindings/net/nfc/s3fwrn5.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/nfc/s3fwrn5.txt vendor/device-tree/ianc-afaecb70/Bindings/net/nfc/st-nci-i2c.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/nfc/st-nci-i2c.txt vendor/device-tree/ianc-afaecb70/Bindings/net/nfc/st-nci-spi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/nfc/st-nci-spi.txt vendor/device-tree/ianc-afaecb70/Bindings/net/nfc/st95hf.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/nfc/st95hf.txt vendor/device-tree/ianc-afaecb70/Bindings/net/nxp,lpc1850-dwmac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/nxp,lpc1850-dwmac.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ralink,rt2880-net.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ralink,rt2880-net.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ralink,rt3050-esw.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ralink,rt3050-esw.txt vendor/device-tree/ianc-afaecb70/Bindings/net/renesas,ravb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/renesas,ravb.txt vendor/device-tree/ianc-afaecb70/Bindings/net/smsc-lan87xx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/smsc-lan87xx.txt vendor/device-tree/ianc-afaecb70/Bindings/net/snps,dwc-qos-ethernet.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/snps,dwc-qos-ethernet.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ti,dp83867.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ti,dp83867.txt vendor/device-tree/ianc-afaecb70/Bindings/net/wireless/ti,wlcore.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/wireless/ti,wlcore.txt vendor/device-tree/ianc-afaecb70/Bindings/nvmem/ - copied from r295011, vendor/device-tree/dist/Bindings/nvmem/ vendor/device-tree/ianc-afaecb70/Bindings/opp/ - copied from r295011, vendor/device-tree/dist/Bindings/opp/ vendor/device-tree/ianc-afaecb70/Bindings/pci/altera-pcie-msi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/altera-pcie-msi.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/altera-pcie.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/altera-pcie.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/arm,juno-r1-pcie.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/arm,juno-r1-pcie.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/brcm,iproc-pcie.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/brcm,iproc-pcie.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/hisilicon-pcie.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/hisilicon-pcie.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/pci-msi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/pci-msi.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/plda,xpressrich3-axi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/plda,xpressrich3-axi.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/qcom,pcie.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/qcom,pcie.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/xgene-pci-msi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/xgene-pci-msi.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/brcm,brcmstb-sata-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/brcm,brcmstb-sata-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/brcm,cygnus-pcie-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/brcm,cygnus-pcie-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/brcm,kona-usb2-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/brcm,kona-usb2-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/calxeda-combophy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/calxeda-combophy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/dm816x-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/dm816x-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/keystone-usb-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/keystone-usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/mxs-usb-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/mxs-usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/nvidia,tegra20-usb-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/nvidia,tegra20-usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/phy-ath79-usb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/phy-ath79-usb.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/phy-hi6220-usb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/phy-hi6220-usb.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/phy-lpc18xx-usb-otg.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/phy-lpc18xx-usb-otg.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/phy-mt65xx-usb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/phy-mt65xx-usb.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/pistachio-usb-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/pistachio-usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/pxa1928-usb-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/pxa1928-usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/qcom,usb-8x16-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/qcom,usb-8x16-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/rcar-gen3-phy-usb2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/rcar-gen3-phy-usb2.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/sun9i-usb-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/sun9i-usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/atmel,at91-pio4-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/atmel,at91-pio4-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/berlin,pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/berlin,pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/brcm,cygnus-pinmux.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/brcm,cygnus-pinmux.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/brcm,iproc-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/brcm,iproc-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/brcm,nsp-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/brcm,nsp-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/cnxt,cx92755-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/cnxt,cx92755-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/fsl,imx6ul-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/fsl,imx6ul-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/fsl,imx7d-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/fsl,imx7d-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/img,pistachio-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/img,pistachio-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/lantiq,pinctrl-falcon.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/lantiq,pinctrl-falcon.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/lantiq,pinctrl-xway.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/lantiq,pinctrl-xway.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/marvell,armada-39x-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-39x-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/nvidia,tegra210-pinmux.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/nvidia,tegra210-pinmux.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/nxp,lpc1850-scu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/nxp,lpc1850-scu.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/pinctrl-atlas7.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/pinctrl-atlas7.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/pinctrl-mt65xx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/pinctrl-mt65xx.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/qcom,msm8660-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/qcom,msm8660-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/qcom,msm8996-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/qcom,msm8996-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/power/bq24257.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/bq24257.txt vendor/device-tree/ianc-afaecb70/Bindings/power/bq25890.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/bq25890.txt vendor/device-tree/ianc-afaecb70/Bindings/power/da9150-charger.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/da9150-charger.txt vendor/device-tree/ianc-afaecb70/Bindings/power/da9150-fg.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/da9150-fg.txt vendor/device-tree/ianc-afaecb70/Bindings/power/fsl,imx-gpc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/fsl,imx-gpc.txt vendor/device-tree/ianc-afaecb70/Bindings/power/pd-samsung.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/pd-samsung.txt vendor/device-tree/ianc-afaecb70/Bindings/power/qcom,coincell-charger.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/qcom,coincell-charger.txt vendor/device-tree/ianc-afaecb70/Bindings/power/reset/syscon-poweroff.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/reset/syscon-poweroff.txt vendor/device-tree/ianc-afaecb70/Bindings/power/rt9455_charger.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/rt9455_charger.txt vendor/device-tree/ianc-afaecb70/Bindings/power/wakeup-source.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/wakeup-source.txt vendor/device-tree/ianc-afaecb70/Bindings/power_supply/axp20x_usb_power.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power_supply/axp20x_usb_power.txt vendor/device-tree/ianc-afaecb70/Bindings/power_supply/qcom_smbb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power_supply/qcom_smbb.txt vendor/device-tree/ianc-afaecb70/Bindings/power_supply/tps65217_charger.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power_supply/tps65217_charger.txt vendor/device-tree/ianc-afaecb70/Bindings/powerpc/fsl/mpc512x_lpbfifo.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/powerpc/fsl/mpc512x_lpbfifo.txt vendor/device-tree/ianc-afaecb70/Bindings/powerpc/fsl/scfg.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/powerpc/fsl/scfg.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/brcm,bcm7038-pwm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/brcm,bcm7038-pwm.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/brcm,kona-pwm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/brcm,kona-pwm.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/lpc1850-sct-pwm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/lpc1850-sct-pwm.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/pwm-berlin.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/pwm-berlin.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/pwm-mtk-disp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/pwm-mtk-disp.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/pwm-omap-dmtimer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/pwm-omap-dmtimer.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/renesas,pwm-rcar.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/renesas,pwm-rcar.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/arizona-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/arizona-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/lm363x-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/lm363x-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/max77686.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/max77686.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/mt6311-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/mt6311-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/pv88060.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/pv88060.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/pv88090.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/pv88090.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/qcom,smd-rpm-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/qcom,smd-rpm-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/qcom,spmi-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/qcom,spmi-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/samsung,s2mpa01.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/samsung,s2mpa01.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/samsung,s2mps11.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/samsung,s2mps11.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/samsung,s5m8767.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/samsung,s5m8767.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/tps65023.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/tps65023.txt vendor/device-tree/ianc-afaecb70/Bindings/remoteproc/ - copied from r295011, vendor/device-tree/dist/Bindings/remoteproc/ vendor/device-tree/ianc-afaecb70/Bindings/reset/ath79-reset.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/ath79-reset.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/berlin,reset.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/berlin,reset.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/brcm,bcm21664-resetmgr.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/brcm,bcm21664-resetmgr.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/brcm,bcm63138-pmb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/brcm,bcm63138-pmb.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/hisilicon,hi6220-reset.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/hisilicon,hi6220-reset.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/nxp,lpc1850-rgu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/nxp,lpc1850-rgu.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/zynq-reset.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/zynq-reset.txt vendor/device-tree/ianc-afaecb70/Bindings/rng/atmel-trng.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rng/atmel-trng.txt vendor/device-tree/ianc-afaecb70/Bindings/rng/brcm,iproc-rng200.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rng/brcm,iproc-rng200.txt vendor/device-tree/ianc-afaecb70/Bindings/rng/omap_rng.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rng/omap_rng.txt vendor/device-tree/ianc-afaecb70/Bindings/rng/samsung,exynos-rng4.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rng/samsung,exynos-rng4.txt vendor/device-tree/ianc-afaecb70/Bindings/rng/st,rng.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rng/st,rng.txt vendor/device-tree/ianc-afaecb70/Bindings/rng/st,stm32-rng.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rng/st,stm32-rng.txt vendor/device-tree/ianc-afaecb70/Bindings/rng/timeriomem_rng.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rng/timeriomem_rng.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/abracon,abx80x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/abracon,abx80x.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/dallas,ds1390.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/dallas,ds1390.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/digicolor-rtc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/digicolor-rtc.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/nxp,lpc1788-rtc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/nxp,lpc1788-rtc.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/pcf8563.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/pcf8563.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/rtc-mxc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/rtc-mxc.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/rtc-st-lpc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/rtc-st-lpc.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/ti,bq32k.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/ti,bq32k.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/xlnx-rtc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/xlnx-rtc.txt vendor/device-tree/ianc-afaecb70/Bindings/scsi/ - copied from r295011, vendor/device-tree/dist/Bindings/scsi/ vendor/device-tree/ianc-afaecb70/Bindings/security/tpm/st33zp24-spi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/security/tpm/st33zp24-spi.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/8250.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/8250.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/arm_sbsa_uart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/arm_sbsa_uart.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/axis,etraxfs-uart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/axis,etraxfs-uart.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/brcm,bcm6345-uart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/brcm,bcm6345-uart.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/ingenic,uart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/ingenic,uart.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/nxp,lpc1850-uart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/nxp,lpc1850-uart.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/uniphier-uart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/uniphier-uart.txt vendor/device-tree/ianc-afaecb70/Bindings/soc/bcm/ - copied from r295011, vendor/device-tree/dist/Bindings/soc/bcm/ vendor/device-tree/ianc-afaecb70/Bindings/soc/dove/ - copied from r295011, vendor/device-tree/dist/Bindings/soc/dove/ vendor/device-tree/ianc-afaecb70/Bindings/soc/mediatek/ - copied from r295011, vendor/device-tree/dist/Bindings/soc/mediatek/ vendor/device-tree/ianc-afaecb70/Bindings/soc/qcom/qcom,smd-rpm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/soc/qcom/qcom,smd-rpm.txt vendor/device-tree/ianc-afaecb70/Bindings/soc/qcom/qcom,smd.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/soc/qcom/qcom,smd.txt vendor/device-tree/ianc-afaecb70/Bindings/soc/qcom/qcom,smem.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/soc/qcom/qcom,smem.txt vendor/device-tree/ianc-afaecb70/Bindings/soc/qcom/qcom,smp2p.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/soc/qcom/qcom,smp2p.txt vendor/device-tree/ianc-afaecb70/Bindings/soc/qcom/qcom,smsm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/soc/qcom/qcom,smsm.txt vendor/device-tree/ianc-afaecb70/Bindings/soc/rockchip/ - copied from r295011, vendor/device-tree/dist/Bindings/soc/rockchip/ vendor/device-tree/ianc-afaecb70/Bindings/soc/ti/wkup_m3_ipc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/soc/ti/wkup_m3_ipc.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/ak4554.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/ak4554.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/ak4613.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/ak4613.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/atmel-classd.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/atmel-classd.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/atmel-pdmic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/atmel-pdmic.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/brcm,bcm2835-i2s.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/brcm,bcm2835-i2s.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/bt-sco.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/bt-sco.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/cs4349.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/cs4349.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/da7213.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/da7213.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/da7218.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/da7218.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/da7219.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/da7219.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/gtm601.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/gtm601.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/ics43432.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/ics43432.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/img,i2s-in.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/img,i2s-in.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/img,i2s-out.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/img,i2s-out.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/img,parallel-out.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/img,parallel-out.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/img,pistachio-internal-dac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/img,pistachio-internal-dac.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/img,spdif-in.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/img,spdif-in.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/img,spdif-out.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/img,spdif-out.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/inno-rk3036.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/inno-rk3036.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/max98925.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/max98925.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/mt8173-max98090.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/mt8173-max98090.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/mt8173-rt5650-rt5676.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/mt8173-rt5650-rt5676.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/mtk-afe-pcm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/mtk-afe-pcm.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/nau8825.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/nau8825.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/pcm179x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/pcm179x.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/qcom,apq8016-sbc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/qcom,apq8016-sbc.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/qcom,lpass-cpu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/qcom,lpass-cpu.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/renesas,rsrc-card.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/renesas,rsrc-card.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rockchip-max98090.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rockchip-max98090.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rockchip-rt5645.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rockchip-rt5645.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rockchip-spdif.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rockchip-spdif.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rt5616.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rt5616.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rt5645.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rt5645.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rt5651.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rt5651.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rt5659.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rt5659.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/st,sti-asoc-card.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/st,sti-asoc-card.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/storm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/storm.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/sun4i-codec.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/sun4i-codec.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/tas571x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/tas571x.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/ti,pcm3168a.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/ti,pcm3168a.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/wlf,wm8974.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/wlf,wm8974.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/zte,zx-i2s.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/zte,zx-i2s.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/zte,zx-spdif.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/zte,zx-spdif.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/brcm,bcm2835-aux-spi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/brcm,bcm2835-aux-spi.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-ath79.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-ath79.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-mt65xx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-mt65xx.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-xlp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-xlp.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-zynqmp-qspi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-zynqmp-qspi.txt vendor/device-tree/ianc-afaecb70/Bindings/sram/ - copied from r295011, vendor/device-tree/dist/Bindings/sram/ vendor/device-tree/ianc-afaecb70/Bindings/staging/ion/ - copied from r295011, vendor/device-tree/dist/Bindings/staging/ion/ vendor/device-tree/ianc-afaecb70/Bindings/thermal/hisilicon-thermal.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/thermal/hisilicon-thermal.txt vendor/device-tree/ianc-afaecb70/Bindings/thermal/qcom-spmi-temp-alarm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/thermal/qcom-spmi-temp-alarm.txt vendor/device-tree/ianc-afaecb70/Bindings/thermal/qoriq-thermal.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/thermal/qoriq-thermal.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/brcm,kona-timer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/brcm,kona-timer.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/img,pistachio-gptimer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/img,pistachio-gptimer.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/nxp,lpc3220-timer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/nxp,lpc3220-timer.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/renesas,16bit-timer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/renesas,16bit-timer.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/renesas,8bit-timer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/renesas,8bit-timer.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/renesas,tpu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/renesas,tpu.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/st,stih407-lpc - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/st,stih407-lpc vendor/device-tree/ianc-afaecb70/Bindings/timer/st,stm32-timer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/st,stm32-timer.txt vendor/device-tree/ianc-afaecb70/Bindings/ufs/ufs-qcom.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/ufs/ufs-qcom.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/allwinner,sun4i-a10-musb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/allwinner,sun4i-a10-musb.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/brcm,bcm3384-usb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/brcm,bcm3384-usb.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/dwc3-xilinx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/dwc3-xilinx.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/mt8173-xhci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/mt8173-xhci.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/octeon-usb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/octeon-usb.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/renesas_usb3.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/renesas_usb3.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/alphascale-asm9260.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/alphascale-asm9260.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/atmel-sama5d4-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/atmel-sama5d4-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/brcm,bcm7038-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/brcm,bcm7038-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/brcm,kona-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/brcm,kona-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/digicolor-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/digicolor-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/lpc18xx-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/lpc18xx-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/meson-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/meson-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/mt7621-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/mt7621-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/sigma,smp8642-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/sigma,smp8642-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/sp805-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/sp805-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/st_lpc_wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/st_lpc_wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/ts4800-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/ts4800-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/ziirave-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/ziirave-wdt.txt vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/bcm-cygnus.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/bcm-cygnus.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/bcm-ns2.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/bcm-ns2.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/bcm-nsp.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/bcm-nsp.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/bcm2835-aux.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/bcm2835-aux.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/bcm2835.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/bcm2835.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/exynos5433.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/exynos5433.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/hi6220-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/hi6220-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/imx6ul-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/imx6ul-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/imx7d-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/imx7d-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/jz4740-cgu.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/jz4740-cgu.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/jz4780-cgu.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/jz4780-cgu.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/lpc18xx-ccu.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/lpc18xx-ccu.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/lpc18xx-cgu.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/lpc18xx-cgu.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/lpc32xx-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/lpc32xx-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/marvell,pxa1928.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/marvell,pxa1928.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/meson8b-clkc.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/meson8b-clkc.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/mt8135-clk.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/mt8135-clk.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/mt8173-clk.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/mt8173-clk.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/pistachio-clk.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/pistachio-clk.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/qcom,gcc-msm8916.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-msm8916.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/qcom,gcc-msm8996.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-msm8996.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/qcom,mmcc-msm8996.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/qcom,mmcc-msm8996.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/r8a73a4-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/r8a73a4-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/r8a7778-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/r8a7778-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/r8a7793-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/r8a7793-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/r8a7795-cpg-mssr.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/r8a7795-cpg-mssr.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/renesas-cpg-mssr.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/renesas-cpg-mssr.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/rk3036-cru.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/rk3036-cru.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/rk3228-cru.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/rk3228-cru.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/rk3368-cru.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/rk3368-cru.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/samsung,s2mps11.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/samsung,s2mps11.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/sun4i-a10-pll2.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/sun4i-a10-pll2.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/tegra210-car.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/tegra210-car.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/zx296702-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/zx296702-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/dma/axi-dmac.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/dma/axi-dmac.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/gpio/meson8b-gpio.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/gpio/meson8b-gpio.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/i2c/ - copied from r295011, vendor/device-tree/dist/include/dt-bindings/i2c/ vendor/device-tree/ianc-afaecb70/include/dt-bindings/input/linux-event-codes.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/input/linux-event-codes.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/interrupt-controller/irq-st.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/interrupt-controller/irq-st.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/leds/ - copied from r295011, vendor/device-tree/dist/include/dt-bindings/leds/ vendor/device-tree/ianc-afaecb70/include/dt-bindings/media/ - copied from r295011, vendor/device-tree/dist/include/dt-bindings/media/ vendor/device-tree/ianc-afaecb70/include/dt-bindings/memory/tegra210-mc.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/memory/tegra210-mc.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/mfd/arizona.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/mfd/arizona.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/mfd/atmel-flexcom.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/mfd/atmel-flexcom.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/mfd/st-lpc.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/mfd/st-lpc.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/net/ - copied from r295011, vendor/device-tree/dist/include/dt-bindings/net/ vendor/device-tree/ianc-afaecb70/include/dt-bindings/phy/phy-pistachio-usb.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/phy/phy-pistachio-usb.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/bcm2835.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/bcm2835.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/dm814x.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/dm814x.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/mt6397-pinfunc.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/mt6397-pinfunc.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/mt65xx.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/mt65xx.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/power/ - copied from r295011, vendor/device-tree/dist/include/dt-bindings/power/ vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/altr,rst-mgr-a10.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/altr,rst-mgr-a10.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/hisi,hi6220-resets.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/hisi,hi6220-resets.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/mt8135-resets.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/mt8135-resets.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/mt8173-resets.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/mt8173-resets.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/qcom,gcc-msm8916.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/qcom,gcc-msm8916.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/stih407-resets.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/stih407-resets.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/stih415-resets.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/stih415-resets.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/stih416-resets.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/stih416-resets.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/tegra124-car.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/tegra124-car.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/sound/apq8016-lpass.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/sound/apq8016-lpass.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/sound/audio-jack-events.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/sound/audio-jack-events.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/sound/tas2552.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/sound/tas2552.h vendor/device-tree/ianc-afaecb70/scripts/flatten-symlinks.sh - copied unchanged from r295011, vendor/device-tree/dist/scripts/flatten-symlinks.sh vendor/device-tree/ianc-afaecb70/scripts/merge-new-release.sh - copied unchanged from r295011, vendor/device-tree/dist/scripts/merge-new-release.sh vendor/device-tree/ianc-afaecb70/src/arm/alpine-db.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/alpine-db.dts vendor/device-tree/ianc-afaecb70/src/arm/alpine.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/alpine.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am335x-baltos-ir5221.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-baltos-ir5221.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-bonegreen.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-bonegreen.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-chiliboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-chiliboard.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-chilisom.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-chilisom.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am335x-cm-t335.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-cm-t335.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-phycore-som.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-phycore-som.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am335x-sbc-t335.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-sbc-t335.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-shc.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-shc.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-sl50.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-sl50.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-wega-rdk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-wega-rdk.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-wega.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-wega.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am437x-cm-t43.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am437x-cm-t43.dts vendor/device-tree/ianc-afaecb70/src/arm/am437x-sbc-t43.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am437x-sbc-t43.dts vendor/device-tree/ianc-afaecb70/src/arm/am57xx-cl-som-am57x.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am57xx-cl-som-am57x.dts vendor/device-tree/ianc-afaecb70/src/arm/am57xx-sbc-am57x.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am57xx-sbc-am57x.dts vendor/device-tree/ianc-afaecb70/src/arm/arm-realview-pb11mp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/arm-realview-pb11mp.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-dlink-dns327l.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-dlink-dns327l.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-seagate-nas-2bay.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-seagate-nas-2bay.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-seagate-nas-4bay.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-seagate-nas-4bay.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-seagate-nas-xbay.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-seagate-nas-xbay.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-370-seagate-personal-cloud-2bay.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-seagate-personal-cloud-2bay.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-seagate-personal-cloud.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-seagate-personal-cloud.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-seagate-personal-cloud.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-seagate-personal-cloud.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-385-linksys-caiman.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-385-linksys-caiman.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-385-linksys-cobra.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-385-linksys-cobra.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-385-linksys.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-385-linksys.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-388-clearfog.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-388-clearfog.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-38x-solidrun-microsom.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-38x-solidrun-microsom.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-390.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-390.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-398-db.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-398-db.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-398.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-398.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-39x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-39x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-linksys-mamba.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-linksys-mamba.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-ariettag25.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-ariettag25.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-kizbox.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-kizbox.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-kizbox2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-kizbox2.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-kizboxmini.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-kizboxmini.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-sama5d2_xplained.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-sama5d2_xplained.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-sama5d4_ma5d4.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-sama5d4_ma5d4.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91-sama5d4_ma5d4evk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-sama5d4_ma5d4evk.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-sama5d4_xplained.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-sama5d4_xplained.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-vinco.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-vinco.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x5dm.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x5dm.dtsi vendor/device-tree/ianc-afaecb70/src/arm/axp152.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/axp152.dtsi vendor/device-tree/ianc-afaecb70/src/arm/axp22x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/axp22x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm-nsp.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm-nsp.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm2835-rpi-a-plus.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm2835-rpi-a-plus.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm2835-rpi-b-rev2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm2835-rpi-b-rev2.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm2836-rpi-2-b.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm2836-rpi-2-b.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm2836.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm2836.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm283x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm283x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm4708-asus-rt-ac56u.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4708-asus-rt-ac56u.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4708-asus-rt-ac68u.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4708-asus-rt-ac68u.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4708-smartrg-sr400ac.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4708-smartrg-sr400ac.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4709-asus-rt-ac87u.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4709-asus-rt-ac87u.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4709-buffalo-wxr-1900dhp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4709-buffalo-wxr-1900dhp.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4709-netgear-r7000.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4709-netgear-r7000.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4709-netgear-r8000.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4709-netgear-r8000.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm5301x-nand-cs0-bch8.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm5301x-nand-cs0-bch8.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm94708.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm94708.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm94709.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm94709.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm953012k.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm953012k.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm958305k.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm958305k.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm958625k.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm958625k.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm9hmidc.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm9hmidc.dtsi vendor/device-tree/ianc-afaecb70/src/arm/compulab-sb-som.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/compulab-sb-som.dtsi vendor/device-tree/ianc-afaecb70/src/arm/cros-ec-sbs.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/cros-ec-sbs.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dm8148-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dm8148-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/dm8148-t410.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dm8148-t410.dts vendor/device-tree/ianc-afaecb70/src/arm/dm814x-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dm814x-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dm814x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dm814x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dove-cm-a510.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dove-cm-a510.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dove-sbc-a510.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dove-sbc-a510.dts vendor/device-tree/ianc-afaecb70/src/arm/dra62x-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dra62x-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dra62x-j5eco-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dra62x-j5eco-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/dra62x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dra62x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4-cpu-thermal.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4-cpu-thermal.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4412-tmu-sensor-conf.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4412-tmu-sensor-conf.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5250-snow-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5250-snow-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5250-snow-rev5.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5250-snow-rev5.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5420-trip-points.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5420-trip-points.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5422-cpu-thermal.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5422-cpu-thermal.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5422-cpus.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5422-cpus.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5422-odroidxu3-audio.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5422-odroidxu3-audio.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5422-odroidxu3-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5422-odroidxu3-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5422-odroidxu3-lite.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5422-odroidxu3-lite.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5422-odroidxu4.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5422-odroidxu4.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5440-tmu-sensor-conf.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5440-tmu-sensor-conf.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5440-trip-points.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5440-trip-points.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx51-ts4800.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx51-ts4800.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-apf6dev.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-apf6dev.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-aristainetos2_4.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-aristainetos2_4.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-aristainetos2_7.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-aristainetos2_7.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-gw551x.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-gw551x.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-nit6xlite.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-nit6xlite.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-apf6dev.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-apf6dev.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-gw551x.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-gw551x.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-nitrogen6_max.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-nitrogen6_max.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-novena.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-novena.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-apf6.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-apf6.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-apf6dev.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-apf6dev.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-aristainetos2.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-aristainetos2.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-gw551x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-gw551x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-nit6xlite.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-nit6xlite.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-nitrogen6_max.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-nitrogen6_max.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6sl-warp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6sl-warp.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6sx-sdb-reva.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6sx-sdb-reva.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6sx-sdb.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6sx-sdb.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6ul-14x14-evk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6ul-14x14-evk.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6ul-pinfunc.h - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6ul-pinfunc.h vendor/device-tree/ianc-afaecb70/src/arm/imx6ul.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6ul.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx7d-cl-som-imx7.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx7d-cl-som-imx7.dts vendor/device-tree/ianc-afaecb70/src/arm/imx7d-pinfunc.h - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx7d-pinfunc.h vendor/device-tree/ianc-afaecb70/src/arm/imx7d-sbc-imx7.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx7d-sbc-imx7.dts vendor/device-tree/ianc-afaecb70/src/arm/imx7d-sdb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx7d-sdb.dts vendor/device-tree/ianc-afaecb70/src/arm/imx7d.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx7d.dtsi vendor/device-tree/ianc-afaecb70/src/arm/k2e-netcp.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2e-netcp.dtsi vendor/device-tree/ianc-afaecb70/src/arm/k2hk-netcp.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2hk-netcp.dtsi vendor/device-tree/ianc-afaecb70/src/arm/k2l-netcp.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2l-netcp.dtsi vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-lswvl.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-lswvl.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-lswxl.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-lswxl.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-nas2big.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-nas2big.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-nsa325.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-nsa325.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-pogoplug-series-4.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-pogoplug-series-4.dts vendor/device-tree/ianc-afaecb70/src/arm/logicpd-torpedo-37xx-devkit.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/logicpd-torpedo-37xx-devkit.dts vendor/device-tree/ianc-afaecb70/src/arm/logicpd-torpedo-som.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/logicpd-torpedo-som.dtsi vendor/device-tree/ianc-afaecb70/src/arm/lpc18xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/lpc18xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/lpc4337-ciaa.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/lpc4337-ciaa.dts vendor/device-tree/ianc-afaecb70/src/arm/lpc4350-hitex-eval.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/lpc4350-hitex-eval.dts vendor/device-tree/ianc-afaecb70/src/arm/lpc4350.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/lpc4350.dtsi vendor/device-tree/ianc-afaecb70/src/arm/lpc4357-ea4357-devkit.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/lpc4357-ea4357-devkit.dts vendor/device-tree/ianc-afaecb70/src/arm/lpc4357.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/lpc4357.dtsi vendor/device-tree/ianc-afaecb70/src/arm/meson8-minix-neo-x8.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/meson8-minix-neo-x8.dts vendor/device-tree/ianc-afaecb70/src/arm/meson8b-mxq.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/meson8b-mxq.dts vendor/device-tree/ianc-afaecb70/src/arm/meson8b-odroidc1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/meson8b-odroidc1.dts vendor/device-tree/ianc-afaecb70/src/arm/meson8b.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/meson8b.dtsi vendor/device-tree/ianc-afaecb70/src/arm/mt2701-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/mt2701-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/mt2701.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/mt2701.dtsi vendor/device-tree/ianc-afaecb70/src/arm/mt6580-evbp1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/mt6580-evbp1.dts vendor/device-tree/ianc-afaecb70/src/arm/mt6580.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/mt6580.dtsi vendor/device-tree/ianc-afaecb70/src/arm/mt8135-pinfunc.h - copied unchanged from r295011, vendor/device-tree/dist/src/arm/mt8135-pinfunc.h vendor/device-tree/ianc-afaecb70/src/arm/omap3-devkit8000-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-devkit8000-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-devkit8000-lcd-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-devkit8000-lcd-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-devkit8000-lcd43.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-devkit8000-lcd43.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-devkit8000-lcd70.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-devkit8000-lcd70.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-palo35-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-palo35-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-palo35.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-palo35.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-storm-palo35.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-storm-palo35.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-storm-tobiduo.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-storm-tobiduo.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-tobiduo-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-tobiduo-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-tobiduo.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-tobiduo.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-pandora-1ghz.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-pandora-1ghz.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-pandora-600mhz.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-pandora-600mhz.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-pandora-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-pandora-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap5-board-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap5-board-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap5-igep0050.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap5-igep0050.dts vendor/device-tree/ianc-afaecb70/src/arm/orion5x-linkstation-lswtgl.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/orion5x-linkstation-lswtgl.dts vendor/device-tree/ianc-afaecb70/src/arm/orion5x-lswsgl.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/orion5x-lswsgl.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-apq8064-sony-xperia-yuga.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-apq8064-sony-xperia-yuga.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-pm8841.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-pm8841.dtsi vendor/device-tree/ianc-afaecb70/src/arm/qcom-pm8941.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-pm8941.dtsi vendor/device-tree/ianc-afaecb70/src/arm/qcom-pma8084.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-pma8084.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a7791-porter.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7791-porter.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7793-gose.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7793-gose.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7793.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7793.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a7794-silk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7794-silk.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a77xx-aa121td01-panel.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a77xx-aa121td01-panel.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3036-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3036-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3036-kylin.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3036-kylin.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3036.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3036.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3228-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3228-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3228.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3228.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3288-popmetal.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-popmetal.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-r89.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-r89.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-rock2-som.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-rock2-som.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3288-rock2-square.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-rock2-square.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron-brain.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron-brain.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron-chromebook.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron-chromebook.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron-jaq.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron-jaq.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron-jerry.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron-jerry.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron-mickey.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron-mickey.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron-minnie.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron-minnie.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron-pinky.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron-pinky.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron-sdmmc.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron-sdmmc.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron-speedy.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron-speedy.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-veyron.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-veyron.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d2-pinfunc.h - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d2-pinfunc.h vendor/device-tree/ianc-afaecb70/src/arm/sama5d2.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d2.dtsi vendor/device-tree/ianc-afaecb70/src/arm/socfpga_arria10_socdk.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_arria10_socdk.dtsi vendor/device-tree/ianc-afaecb70/src/arm/socfpga_arria10_socdk_sdmmc.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_arria10_socdk_sdmmc.dts vendor/device-tree/ianc-afaecb70/src/arm/socfpga_cyclone5_de0_sockit.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_cyclone5_de0_sockit.dts vendor/device-tree/ianc-afaecb70/src/arm/socfpga_cyclone5_mcv.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_cyclone5_mcv.dtsi vendor/device-tree/ianc-afaecb70/src/arm/socfpga_cyclone5_mcvevk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_cyclone5_mcvevk.dts vendor/device-tree/ianc-afaecb70/src/arm/stm32429i-eval.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stm32429i-eval.dts vendor/device-tree/ianc-afaecb70/src/arm/stm32f429-disco.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stm32f429-disco.dts vendor/device-tree/ianc-afaecb70/src/arm/stm32f429.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stm32f429.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-gemei-g9.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-gemei-g9.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-inet1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-inet1.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-inet9f-rev03.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-inet9f-rev03.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-itead-iteaduino-plus.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-itead-iteaduino-plus.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-jesurun-q5.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-jesurun-q5.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-pcduino2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-pcduino2.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-pov-protab2-ips9.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-pov-protab2-ips9.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a10s-auxtek-t003.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a10s-auxtek-t003.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a10s-auxtek-t004.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a10s-auxtek-t004.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a10s-wobo-i5.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a10s-wobo-i5.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a13-empire-electronix-d709.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a13-empire-electronix-d709.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a13-inet-98v-rev2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a13-inet-98v-rev2.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a13-q8-tablet.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a13-q8-tablet.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a13-utoo-p66.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a13-utoo-p66.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-q8-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-q8-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun5i-r8-chip.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-r8-chip.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-r8.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-r8.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun5i.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31-i7.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31-i7.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31-mele-a1000g-quad.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31-mele-a1000g-quad.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31s-primo81.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31s-primo81.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31s-sina31s-core.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31s-sina31s-core.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31s-sina31s.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31s-sina31s.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31s-sinovoip-bpi-m2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31s-sinovoip-bpi-m2.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31s-yones-toptech-bs1078-v2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31s-yones-toptech-bs1078-v2.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-icnova-swac.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-icnova-swac.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-mk808c.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-mk808c.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-olimex-som-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-olimex-som-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-orangepi-mini.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-orangepi-mini.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-orangepi.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-orangepi.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-pcduino3-nano.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-pcduino3-nano.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-wexler-tab7200.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-wexler-tab7200.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-wits-pro-a20-dkt.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-wits-pro-a20-dkt.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a23-a33.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a23-a33.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a23-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a23-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a23-gt90h-v4.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a23-gt90h-v4.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a23-q8-tablet.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a23-q8-tablet.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a33-et-q8-v1.6.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a33-et-q8-v1.6.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a33-ga10h-v1.1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a33-ga10h-v1.1.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a33-ippo-q8h-v1.2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a33-ippo-q8h-v1.2.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a33-q8-tablet.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a33-q8-tablet.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a33-sinlinx-sina33.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a33-sinlinx-sina33.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a33.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a33.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun8i-h3-orangepi-plus.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-h3-orangepi-plus.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-h3.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-h3.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun8i-q8-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-q8-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun9i-a80-cubieboard4.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun9i-a80-cubieboard4.dts vendor/device-tree/ianc-afaecb70/src/arm/sunxi-q8-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sunxi-q8-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tango4-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tango4-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tango4-smp8758.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tango4-smp8758.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tango4-vantage-1172.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tango4-vantage-1172.dts vendor/device-tree/ianc-afaecb70/src/arm/tegra124-jetson-tk1-emc.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra124-jetson-tk1-emc.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra124-nyan-big-emc.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra124-nyan-big-emc.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra124-nyan-blaze-emc.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra124-nyan-blaze-emc.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra124-nyan-blaze.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra124-nyan-blaze.dts vendor/device-tree/ianc-afaecb70/src/arm/tegra124-nyan.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra124-nyan.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-common32.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-common32.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-ld4-ref.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-ld4-ref.dts vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-ld4.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-ld4.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-ld6b-ref.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-ld6b-ref.dts vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-ld6b.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-ld6b.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-pro4-ref.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-pro4-ref.dts vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-pro4.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-pro4.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-pro5.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-pro5.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-sld3-ref.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-sld3-ref.dts vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-sld3.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-sld3.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-sld8-ref.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-sld8-ref.dts vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ph1-sld8.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ph1-sld8.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-pinctrl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-pinctrl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-proxstream2-gentil.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-proxstream2-gentil.dts vendor/device-tree/ianc-afaecb70/src/arm/uniphier-proxstream2-vodka.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-proxstream2-vodka.dts vendor/device-tree/ianc-afaecb70/src/arm/uniphier-proxstream2.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-proxstream2.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-ref-daughter.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-ref-daughter.dtsi vendor/device-tree/ianc-afaecb70/src/arm/uniphier-support-card.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/uniphier-support-card.dtsi vendor/device-tree/ianc-afaecb70/src/arm/vf610m4-colibri.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf610m4-colibri.dts vendor/device-tree/ianc-afaecb70/src/arm/vf610m4-cosmic.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf610m4-cosmic.dts vendor/device-tree/ianc-afaecb70/src/arm/vf610m4.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf610m4.dtsi vendor/device-tree/ianc-afaecb70/src/arm/zx296702-ad1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/zx296702-ad1.dts vendor/device-tree/ianc-afaecb70/src/arm/zx296702.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/zx296702.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/altera/ - copied from r295011, vendor/device-tree/dist/src/arm64/altera/ vendor/device-tree/ianc-afaecb70/src/arm64/apm/apm-merlin.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/apm/apm-merlin.dts vendor/device-tree/ianc-afaecb70/src/arm64/apm/apm-shadowcat.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/apm/apm-shadowcat.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/arm/juno-base.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/juno-base.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/arm/juno-r1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/juno-r1.dts vendor/device-tree/ianc-afaecb70/src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts vendor/device-tree/ianc-afaecb70/src/arm64/arm/vexpress-v2m-rs1.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/vexpress-v2m-rs1.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/broadcom/ - copied from r295011, vendor/device-tree/dist/src/arm64/broadcom/ vendor/device-tree/ianc-afaecb70/src/arm64/freescale/fsl-ls1043a-rdb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/freescale/fsl-ls1043a-rdb.dts vendor/device-tree/ianc-afaecb70/src/arm64/freescale/fsl-ls1043a.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/freescale/fsl-ls1043a.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/freescale/fsl-ls2080a-qds.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/freescale/fsl-ls2080a-qds.dts vendor/device-tree/ianc-afaecb70/src/arm64/freescale/fsl-ls2080a-rdb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/freescale/fsl-ls2080a-rdb.dts vendor/device-tree/ianc-afaecb70/src/arm64/freescale/fsl-ls2080a-simu.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/freescale/fsl-ls2080a-simu.dts vendor/device-tree/ianc-afaecb70/src/arm64/freescale/fsl-ls2080a.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/freescale/fsl-ls2080a.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/hisilicon/ - copied from r295011, vendor/device-tree/dist/src/arm64/hisilicon/ vendor/device-tree/ianc-afaecb70/src/arm64/marvell/ - copied from r295011, vendor/device-tree/dist/src/arm64/marvell/ vendor/device-tree/ianc-afaecb70/src/arm64/mediatek/mt6795-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/mediatek/mt6795-evb.dts vendor/device-tree/ianc-afaecb70/src/arm64/mediatek/mt6795.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/mediatek/mt6795.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/mediatek/mt8173-pinfunc.h - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/mediatek/mt8173-pinfunc.h vendor/device-tree/ianc-afaecb70/src/arm64/nvidia/ - copied from r295011, vendor/device-tree/dist/src/arm64/nvidia/ vendor/device-tree/ianc-afaecb70/src/arm64/qcom/ - copied from r295011, vendor/device-tree/dist/src/arm64/qcom/ vendor/device-tree/ianc-afaecb70/src/arm64/renesas/ - copied from r295011, vendor/device-tree/dist/src/arm64/renesas/ vendor/device-tree/ianc-afaecb70/src/arm64/rockchip/ - copied from r295011, vendor/device-tree/dist/src/arm64/rockchip/ vendor/device-tree/ianc-afaecb70/src/arm64/socionext/ - copied from r295011, vendor/device-tree/dist/src/arm64/socionext/ vendor/device-tree/ianc-afaecb70/src/arm64/sprd/ - copied from r295011, vendor/device-tree/dist/src/arm64/sprd/ vendor/device-tree/ianc-afaecb70/src/arm64/xilinx/ - copied from r295011, vendor/device-tree/dist/src/arm64/xilinx/ vendor/device-tree/ianc-afaecb70/src/mips/ - copied from r295011, vendor/device-tree/dist/src/mips/ Replaced: vendor/device-tree/ianc-afaecb70/Bindings/arm/altera/socfpga-sdram-edac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-edac.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/amlogic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/amlogic.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/arch_timer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/arch_timer.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/arm-boards - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/arm-boards vendor/device-tree/ianc-afaecb70/Bindings/arm/atmel-at91.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/atmel-at91.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/cci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/cci.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/coherency-fabric.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/coherency-fabric.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/coresight.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/coresight.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/cpus.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/cpus.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/fsl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/fsl.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/hisilicon/hisilicon.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/hisilicon/hisilicon.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/idle-states.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/idle-states.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/keystone/keystone.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/keystone/keystone.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/marvell,berlin.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/marvell,berlin.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/marvell,kirkwood.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/marvell,kirkwood.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/mediatek.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/msm/qcom,saw2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/msm/qcom,saw2.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/msm/timer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/msm/timer.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/omap/crossbar.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/omap/crossbar.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/omap/l3-noc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/omap/l3-noc.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/omap/omap.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/omap/omap.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/omap/prcm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/omap/prcm.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/pmu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/pmu.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/psci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/psci.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/rockchip.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/rockchip.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/samsung/exynos-adc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/samsung/exynos-adc.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/samsung/pmu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/samsung/pmu.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/shmobile.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/shmobile.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/sti.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/sti.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/sunxi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/sunxi.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/tegra/nvidia,tegra20-ahb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/tegra/nvidia,tegra20-ahb.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/twd.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/arm/twd.txt vendor/device-tree/ianc-afaecb70/Bindings/ata/ahci-st.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/ata/ahci-st.txt vendor/device-tree/ianc-afaecb70/Bindings/ata/sata_rcar.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/ata/sata_rcar.txt vendor/device-tree/ianc-afaecb70/Bindings/bus/omap-ocp2scp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/bus/omap-ocp2scp.txt vendor/device-tree/ianc-afaecb70/Bindings/chosen.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/chosen.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/at91-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/at91-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/clock-bindings.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/clock-bindings.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/emev2-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/emev2-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/exynos3250-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/exynos3250-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/keystone-pll.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/keystone-pll.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/mvebu-core-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/mvebu-core-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/mvebu-gated-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/mvebu-gated-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/nvidia,tegra124-car.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/nvidia,tegra124-car.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/qcom,gcc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/qcom,gcc.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/qcom,mmcc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/qcom,mmcc.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/qoriq-clock.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/qoriq-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/renesas,cpg-div6-clocks.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/renesas,cpg-div6-clocks.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/renesas,cpg-mstp-clocks.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/renesas,cpg-mstp-clocks.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/renesas,r8a7779-cpg-clocks.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/renesas,r8a7779-cpg-clocks.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/renesas,rcar-gen2-cpg-clocks.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/renesas,rcar-gen2-cpg-clocks.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/renesas,rz-cpg-clocks.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/renesas,rz-cpg-clocks.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/silabs,si5351.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/silabs,si5351.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/st/st,clkgen-pll.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/st/st,clkgen-pll.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/sunxi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/clock/sunxi.txt vendor/device-tree/ianc-afaecb70/Bindings/cpufreq/arm_big_little_dt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/cpufreq/arm_big_little_dt.txt vendor/device-tree/ianc-afaecb70/Bindings/cpufreq/cpufreq-dt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/cpufreq/cpufreq-dt.txt vendor/device-tree/ianc-afaecb70/Bindings/crypto/fsl-sec2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/crypto/fsl-sec2.txt vendor/device-tree/ianc-afaecb70/Bindings/crypto/fsl-sec4.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/crypto/fsl-sec4.txt vendor/device-tree/ianc-afaecb70/Bindings/crypto/mv_cesa.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/crypto/mv_cesa.txt vendor/device-tree/ianc-afaecb70/Bindings/devfreq/event/exynos-ppmu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/devfreq/event/exynos-ppmu.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/fsl-mxs-dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/fsl-mxs-dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/mv-xor.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/mv-xor.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/qcom_bam_dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/qcom_bam_dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/renesas,rcar-dmac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/renesas,rcar-dmac.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/sirfsoc-dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/sirfsoc-dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/sun6i-dma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/sun6i-dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/ti-edma.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/dma/ti-edma.txt vendor/device-tree/ianc-afaecb70/Bindings/extcon/extcon-palmas.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/extcon/extcon-palmas.txt vendor/device-tree/ianc-afaecb70/Bindings/fpga/altera-socfpga-fpga-mgr.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/fpga/altera-socfpga-fpga-mgr.txt vendor/device-tree/ianc-afaecb70/Bindings/fuse/nvidia,tegra20-fuse.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/fuse/nvidia,tegra20-fuse.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-fan.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-fan.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-pca953x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-pca953x.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-sx150x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-sx150x.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-zynq.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio-zynq.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/mrvl-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/mrvl-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/renesas,gpio-rcar.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/renesas,gpio-rcar.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/snps-dwapb-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/gpio/snps-dwapb-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/hwmon/ltc2978.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/hwmon/ltc2978.txt vendor/device-tree/ianc-afaecb70/Bindings/hwmon/ntc_thermistor.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/hwmon/ntc_thermistor.txt vendor/device-tree/ianc-afaecb70/Bindings/hwmon/pwm-fan.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/hwmon/pwm-fan.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-at91.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-at91.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-cadence.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-cadence.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-davinci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-davinci.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-imx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-imx.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-rcar.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-rcar.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-sh_mobile.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/i2c-sh_mobile.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/trivial-devices.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/i2c/trivial-devices.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/accel/bma180.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/accel/bma180.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/adc/vf610-adc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/adc/vf610-adc.txt vendor/device-tree/ianc-afaecb70/Bindings/iio/st-sensors.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iio/st-sensors.txt vendor/device-tree/ianc-afaecb70/Bindings/input/ads7846.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/ads7846.txt vendor/device-tree/ianc-afaecb70/Bindings/input/cap11xx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/cap11xx.txt vendor/device-tree/ianc-afaecb70/Bindings/input/elants_i2c.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/elants_i2c.txt vendor/device-tree/ianc-afaecb70/Bindings/input/gpio-keys-polled.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/gpio-keys-polled.txt vendor/device-tree/ianc-afaecb70/Bindings/input/gpio-keys.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/gpio-keys.txt vendor/device-tree/ianc-afaecb70/Bindings/input/gpio-matrix-keypad.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/gpio-matrix-keypad.txt vendor/device-tree/ianc-afaecb70/Bindings/input/nvidia,tegra20-kbc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/nvidia,tegra20-kbc.txt vendor/device-tree/ianc-afaecb70/Bindings/input/qcom,pm8xxx-keypad.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/qcom,pm8xxx-keypad.txt vendor/device-tree/ianc-afaecb70/Bindings/input/rotary-encoder.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/rotary-encoder.txt vendor/device-tree/ianc-afaecb70/Bindings/input/samsung-keypad.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/samsung-keypad.txt vendor/device-tree/ianc-afaecb70/Bindings/input/sun4i-lradc-keys.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/sun4i-lradc-keys.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/edt-ft5x06.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/edt-ft5x06.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/pixcir_i2c_ts.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/pixcir_i2c_ts.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/sun4i.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/sun4i.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/ti-tsc-adc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/ti-tsc-adc.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/touchscreen.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/touchscreen.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/tsc2005.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/tsc2005.txt vendor/device-tree/ianc-afaecb70/Bindings/input/touchscreen/zforce_ts.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/input/touchscreen/zforce_ts.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/atmel,aic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/atmel,aic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/mips-gic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/mips-gic.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/renesas,intc-irqpin.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/renesas,intc-irqpin.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/renesas,irqc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/interrupt-controller/renesas,irqc.txt vendor/device-tree/ianc-afaecb70/Bindings/iommu/arm,smmu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iommu/arm,smmu.txt vendor/device-tree/ianc-afaecb70/Bindings/iommu/renesas,ipmmu-vmsa.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iommu/renesas,ipmmu-vmsa.txt vendor/device-tree/ianc-afaecb70/Bindings/iommu/samsung,sysmmu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iommu/samsung,sysmmu.txt vendor/device-tree/ianc-afaecb70/Bindings/iommu/ti,omap-iommu.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/iommu/ti,omap-iommu.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/common.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/common.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/leds-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/leds-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/leds/leds-ns2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/leds/leds-ns2.txt vendor/device-tree/ianc-afaecb70/Bindings/mailbox/mailbox.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mailbox/mailbox.txt vendor/device-tree/ianc-afaecb70/Bindings/mailbox/omap-mailbox.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mailbox/omap-mailbox.txt vendor/device-tree/ianc-afaecb70/Bindings/media/exynos-jpeg-codec.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/exynos-jpeg-codec.txt vendor/device-tree/ianc-afaecb70/Bindings/media/exynos5-gsc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/exynos5-gsc.txt vendor/device-tree/ianc-afaecb70/Bindings/media/i2c/adv7604.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/i2c/adv7604.txt vendor/device-tree/ianc-afaecb70/Bindings/media/video-interfaces.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/media/video-interfaces.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/fsl/ifc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/fsl/ifc.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/nvidia,tegra-mc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/nvidia,tegra-mc.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/renesas-memory-controllers.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/renesas-memory-controllers.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/synopsys.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/synopsys.txt vendor/device-tree/ianc-afaecb70/Bindings/memory-controllers/ti/emif.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/memory-controllers/ti/emif.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/arizona.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/arizona.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/atmel-hlcdc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/atmel-hlcdc.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/cros-ec.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/cros-ec.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/da9063.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/da9063.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/max77686.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/max77686.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/max77693.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/max77693.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/palmas.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/palmas.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/qcom,spmi-pmic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/qcom,spmi-pmic.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/qcom-rpm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/qcom-rpm.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/rk808.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/rk808.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/syscon.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/syscon.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/tc3589x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mfd/tc3589x.txt vendor/device-tree/ianc-afaecb70/Bindings/misc/nvidia,tegra20-apbmisc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/misc/nvidia,tegra20-apbmisc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/arasan,sdhci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/arasan,sdhci.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/exynos-dw-mshc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/exynos-dw-mshc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/fsl-esdhc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/fsl-esdhc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/fsl-imx-esdhc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/fsl-imx-esdhc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/k3-dw-mshc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/k3-dw-mshc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/mmc-pwrseq-simple.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/mmc-pwrseq-simple.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/mmc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/mmc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/renesas,mmcif.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/renesas,mmcif.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/rockchip-dw-mshc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/rockchip-dw-mshc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/sdhci-st.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/sdhci-st.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/synopsys-dw-mshc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/synopsys-dw-mshc.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/ti-omap-hsmmc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mmc/ti-omap-hsmmc.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/fsl-quadspi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/fsl-quadspi.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/fsmc-nand.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/fsmc-nand.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/partition.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/partition.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/pxa3xx-nand.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/pxa3xx-nand.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/sunxi-nand.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/mtd/sunxi-nand.txt vendor/device-tree/ianc-afaecb70/Bindings/net/amd-xgbe.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/amd-xgbe.txt vendor/device-tree/ianc-afaecb70/Bindings/net/apm-xgene-enet.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/apm-xgene-enet.txt vendor/device-tree/ianc-afaecb70/Bindings/net/cpsw.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/cpsw.txt vendor/device-tree/ianc-afaecb70/Bindings/net/dsa/dsa.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/dsa/dsa.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ethernet.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ethernet.txt vendor/device-tree/ianc-afaecb70/Bindings/net/fixed-link.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/fixed-link.txt vendor/device-tree/ianc-afaecb70/Bindings/net/fsl-tsec-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/fsl-tsec-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/net/hisilicon-hip04-net.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/hisilicon-hip04-net.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ieee802154/at86rf230.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ieee802154/at86rf230.txt vendor/device-tree/ianc-afaecb70/Bindings/net/ieee802154/cc2520.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/ieee802154/cc2520.txt vendor/device-tree/ianc-afaecb70/Bindings/net/keystone-netcp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/keystone-netcp.txt vendor/device-tree/ianc-afaecb70/Bindings/net/macb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/macb.txt vendor/device-tree/ianc-afaecb70/Bindings/net/marvell-armada-370-neta.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/marvell-armada-370-neta.txt vendor/device-tree/ianc-afaecb70/Bindings/net/micrel-ksz90x1.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/micrel-ksz90x1.txt vendor/device-tree/ianc-afaecb70/Bindings/net/nfc/trf7970a.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/nfc/trf7970a.txt vendor/device-tree/ianc-afaecb70/Bindings/net/phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/phy.txt vendor/device-tree/ianc-afaecb70/Bindings/net/rockchip-dwmac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/rockchip-dwmac.txt vendor/device-tree/ianc-afaecb70/Bindings/net/socfpga-dwmac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/socfpga-dwmac.txt vendor/device-tree/ianc-afaecb70/Bindings/net/stmmac.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/net/stmmac.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/designware-pcie.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/designware-pcie.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/host-generic-pci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/host-generic-pci.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/layerscape-pci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/layerscape-pci.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/pci-rcar-gen2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/pci-rcar-gen2.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/pci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/pci.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/rcar-pci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/rcar-pci.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/ti-pci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/ti-pci.txt vendor/device-tree/ianc-afaecb70/Bindings/pci/xilinx-pcie.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pci/xilinx-pcie.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/phy-miphy365x.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/phy-miphy365x.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/rcar-gen2-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/rcar-gen2-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/rockchip-usb-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/rockchip-usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/samsung-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/samsung-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/sun4i-usb-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/sun4i-usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/phy/ti-phy.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/phy/ti-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/allwinner,sunxi-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/allwinner,sunxi-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/marvell,armada-370-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-370-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/marvell,armada-375-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-375-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/marvell,armada-38x-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-38x-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/marvell,armada-xp-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/marvell,armada-xp-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/meson,pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/meson,pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/pinctrl-bindings.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/pinctrl-bindings.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/qcom,pmic-gpio.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/qcom,pmic-gpio.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/qcom,pmic-mpp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/qcom,pmic-mpp.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/renesas,pfc-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/renesas,pfc-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/rockchip,pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/rockchip,pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/samsung-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/samsung-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/ste,nomadik.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/ste,nomadik.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/xlnx,zynq-pinctrl.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pinctrl/xlnx,zynq-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/power/power_domain.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/power_domain.txt vendor/device-tree/ianc-afaecb70/Bindings/power/renesas,sysc-rmobile.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/renesas,sysc-rmobile.txt vendor/device-tree/ianc-afaecb70/Bindings/power/rockchip-io-domain.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/rockchip-io-domain.txt vendor/device-tree/ianc-afaecb70/Bindings/power/twl-charger.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power/twl-charger.txt vendor/device-tree/ianc-afaecb70/Bindings/power_supply/max17042_battery.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/power_supply/max17042_battery.txt vendor/device-tree/ianc-afaecb70/Bindings/powerpc/fsl/fman.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/powerpc/fsl/fman.txt vendor/device-tree/ianc-afaecb70/Bindings/powerpc/fsl/guts.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/powerpc/fsl/guts.txt vendor/device-tree/ianc-afaecb70/Bindings/powerpc/fsl/mpc5121-psc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/powerpc/fsl/mpc5121-psc.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/imx-pwm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/imx-pwm.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/lpc32xx-pwm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/lpc32xx-pwm.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/pwm-sun4i.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/pwm/pwm-sun4i.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/act8865-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/act8865-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/anatop-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/anatop-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/da9210.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/da9210.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/da9211.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/da9211.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/max77802.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/max77802.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/max8973-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/max8973-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/pbias-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/pbias-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/pwm-regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/pwm-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/regulator.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/tps65217.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/regulator/tps65217.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/socfpga-reset.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/socfpga-reset.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/st,sti-picophyreset.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/st,sti-picophyreset.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/st,sti-powerdown.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/st,sti-powerdown.txt vendor/device-tree/ianc-afaecb70/Bindings/reset/st,sti-softreset.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/reset/st,sti-softreset.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/atmel,at91rm9200-rtc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/atmel,at91rm9200-rtc.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/haoyu,hym8563.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/haoyu,hym8563.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/isil,isl12057.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/isil,isl12057.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/rtc-omap.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/rtc-omap.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/rtc-opal.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/rtc-opal.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/s3c-rtc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/s3c-rtc.txt vendor/device-tree/ianc-afaecb70/Bindings/rtc/stmp3xxx-rtc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/rtc/stmp3xxx-rtc.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/atmel-usart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/atmel-usart.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/mrvl,pxa-ssp.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/mrvl,pxa-ssp.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/mtk-uart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/mtk-uart.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/nxp,sc16is7xx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/nxp,sc16is7xx.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/omap_serial.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/omap_serial.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/pl011.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/pl011.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/qcom,msm-uartdm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/qcom,msm-uartdm.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/renesas,sci-serial.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/renesas,sci-serial.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/sirf-uart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/sirf-uart.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/snps-dw-apb-uart.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/serial/snps-dw-apb-uart.txt vendor/device-tree/ianc-afaecb70/Bindings/soc/fsl/qman-portals.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/soc/fsl/qman-portals.txt vendor/device-tree/ianc-afaecb70/Bindings/soc/qcom/qcom,gsbi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/soc/qcom/qcom,gsbi.txt vendor/device-tree/ianc-afaecb70/Bindings/soc/ti/keystone-navigator-qmss.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/soc/ti/keystone-navigator-qmss.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/adi,adau1701.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/adi,adau1701.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/ak4642.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/ak4642.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/fsl,asrc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/fsl,asrc.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/fsl,esai.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/fsl,esai.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/fsl,spdif.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/fsl,spdif.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/fsl-asoc-card.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/fsl-asoc-card.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/ingenic,jz4740-i2s.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/ingenic,jz4740-i2s.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/max98090.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/max98090.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/max98357a.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/max98357a.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/nvidia,tegra-audio-max98090.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/nvidia,tegra-audio-max98090.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/nvidia,tegra30-hda.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/nvidia,tegra30-hda.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/omap-twl4030.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/omap-twl4030.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/renesas,rsnd.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/renesas,rsnd.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rockchip-i2s.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rockchip-i2s.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rt5640.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rt5640.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/rt5677.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/rt5677.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/simple-card.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/simple-card.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/tas2552.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/tas2552.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/tdm-slot.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/tdm-slot.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/wm8741.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/wm8741.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/wm8804.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/wm8804.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/wm8994.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/sound/wm8994.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/fsl-imx-cspi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/fsl-imx-cspi.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/qcom,spi-qup.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/qcom,spi-qup.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/sh-msiof.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/sh-msiof.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/snps,dw-apb-ssi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/snps,dw-apb-ssi.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-davinci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-davinci.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-fsl-dspi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-fsl-dspi.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-img-spfi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-img-spfi.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-orion.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-orion.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-rockchip.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-rockchip.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi-sirf.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi-sirf.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi_atmel.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi_atmel.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/spi_pl022.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/spi_pl022.txt vendor/device-tree/ianc-afaecb70/Bindings/spi/ti_qspi.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spi/ti_qspi.txt vendor/device-tree/ianc-afaecb70/Bindings/spmi/qcom,spmi-pmic-arb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/spmi/qcom,spmi-pmic-arb.txt vendor/device-tree/ianc-afaecb70/Bindings/staging/iio/adc/mxs-lradc.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/staging/iio/adc/mxs-lradc.txt vendor/device-tree/ianc-afaecb70/Bindings/submitting-patches.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/submitting-patches.txt vendor/device-tree/ianc-afaecb70/Bindings/thermal/rcar-thermal.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/thermal/rcar-thermal.txt vendor/device-tree/ianc-afaecb70/Bindings/thermal/rockchip-thermal.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/thermal/rockchip-thermal.txt vendor/device-tree/ianc-afaecb70/Bindings/thermal/thermal.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/thermal/thermal.txt vendor/device-tree/ianc-afaecb70/Bindings/thermal/ti_soc_thermal.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/thermal/ti_soc_thermal.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/cadence,ttc-timer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/cadence,ttc-timer.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/mediatek,mtk-timer.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/timer/mediatek,mtk-timer.txt vendor/device-tree/ianc-afaecb70/Bindings/ufs/ufshcd-pltfrm.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/ufs/ufshcd-pltfrm.txt vendor/device-tree/ianc-afaecb70/Bindings/unittest.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/unittest.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/atmel-usb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/atmel-usb.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/ci-hdrc-usb2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/ci-hdrc-usb2.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/dwc2.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/dwc2.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/dwc3-st.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/dwc3-st.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/dwc3.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/dwc3.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/generic.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/generic.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/msm-hsusb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/msm-hsusb.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/renesas_usbhs.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/renesas_usbhs.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/twlxxxx-usb.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/twlxxxx-usb.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/usb-ehci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/usb-ehci.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/usb-xhci.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/usb-xhci.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/usb3503.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/usb3503.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/usbmisc-imx.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/usb/usbmisc-imx.txt vendor/device-tree/ianc-afaecb70/Bindings/vendor-prefixes.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/vendor-prefixes.txt vendor/device-tree/ianc-afaecb70/Bindings/w1/omap-hdq.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/w1/omap-hdq.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/atmel-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/atmel-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/mtk-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/mtk-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/watchdog/omap-wdt.txt - copied unchanged from r295011, vendor/device-tree/dist/Bindings/watchdog/omap-wdt.txt vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/at91.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/at91.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/berlin2q.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/berlin2q.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/exynos3250.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/exynos3250.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/exynos4.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/exynos4.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/exynos5250.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/exynos5250.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/exynos5420.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/exynos5420.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/exynos7-clk.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/exynos7-clk.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/imx6qdl-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/imx6qdl-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/imx6sl-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/imx6sl-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/imx6sx-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/imx6sx-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/marvell,mmp2.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/marvell,mmp2.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/marvell,pxa168.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/marvell,pxa168.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/marvell,pxa910.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/marvell,pxa910.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/qcom,gcc-apq8084.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-apq8084.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/qcom,gcc-ipq806x.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-ipq806x.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/qcom,gcc-msm8974.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/qcom,gcc-msm8974.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/qcom,mmcc-apq8084.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/qcom,mmcc-apq8084.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/qcom,mmcc-msm8974.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/qcom,mmcc-msm8974.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/r8a7790-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/r8a7790-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/r8a7791-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/r8a7791-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/r8a7794-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/r8a7794-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/rk3066a-cru.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/rk3066a-cru.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/rk3188-cru-common.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/rk3188-cru-common.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/rk3188-cru.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/rk3188-cru.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/rk3288-cru.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/rk3288-cru.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/sh73a0-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/sh73a0-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/tegra124-car-common.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/tegra124-car-common.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clock/vf610-clock.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/clock/vf610-clock.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/gpio/gpio.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/gpio/gpio.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/input/input.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/input/input.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/mfd/palmas.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/mfd/palmas.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/mfd/qcom-rpm.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/mfd/qcom-rpm.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/am33xx.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/am33xx.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/am43xx.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/am43xx.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/dra.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/dra.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/omap.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/omap.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/qcom,pmic-gpio.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/qcom,pmic-gpio.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/pinctrl/qcom,pmic-mpp.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/pinctrl/qcom,pmic-mpp.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset/qcom,gcc-ipq806x.h - copied unchanged from r295011, vendor/device-tree/dist/include/dt-bindings/reset/qcom,gcc-ipq806x.h vendor/device-tree/ianc-afaecb70/scripts/cronjob - copied unchanged from r295011, vendor/device-tree/dist/scripts/cronjob vendor/device-tree/ianc-afaecb70/scripts/filter.sh - copied unchanged from r295011, vendor/device-tree/dist/scripts/filter.sh vendor/device-tree/ianc-afaecb70/scripts/index-filter.sh - copied unchanged from r295011, vendor/device-tree/dist/scripts/index-filter.sh vendor/device-tree/ianc-afaecb70/src/arm/am335x-base0033.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-base0033.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-bone-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-bone-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am335x-bone.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-bone.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-boneblack.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-boneblack.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-evmsk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-evmsk.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-igep0033.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-igep0033.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am335x-lxm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-lxm.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-nano.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-nano.dts vendor/device-tree/ianc-afaecb70/src/arm/am335x-pepper.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am335x-pepper.dts vendor/device-tree/ianc-afaecb70/src/arm/am33xx-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am33xx-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am33xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am33xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am3517-craneboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am3517-craneboard.dts vendor/device-tree/ianc-afaecb70/src/arm/am3517.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am3517.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am35xx-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am35xx-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am4372.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am4372.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am437x-gp-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am437x-gp-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/am437x-idk-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am437x-idk-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/am437x-sk-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am437x-sk-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/am43x-epos-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am43x-epos-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/am43xx-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am43xx-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/am57xx-beagle-x15.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/am57xx-beagle-x15.dts vendor/device-tree/ianc-afaecb70/src/arm/animeo_ip.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/animeo_ip.dts vendor/device-tree/ianc-afaecb70/src/arm/arm-realview-pb1176.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/arm-realview-pb1176.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-db.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-db.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-mirabox.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-mirabox.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-netgear-rn102.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-netgear-rn102.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-netgear-rn104.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-netgear-rn104.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-rd.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-rd.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-synology-ds213j.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-synology-ds213j.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-370-xp.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370-xp.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-370.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-370.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-375-db.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-375-db.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-375.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-375.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-385-db-ap.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-385-db-ap.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-388-db.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-388-db.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-388-gp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-388-gp.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-388-rd.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-388-rd.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-38x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-38x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-axpwifiap.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-axpwifiap.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-db.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-db.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-gp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-gp.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-lenovo-ix4-300d.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-lenovo-ix4-300d.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-matrix.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-matrix.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-mv78260.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-mv78260.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-mv78460.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-mv78460.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-netgear-rn2120.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-netgear-rn2120.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-openblocks-ax3-4.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-openblocks-ax3-4.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-xp-synology-ds414.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp-synology-ds414.dts vendor/device-tree/ianc-afaecb70/src/arm/armada-xp.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armada-xp.dtsi vendor/device-tree/ianc-afaecb70/src/arm/armv7-m.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/armv7-m.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91-foxg20.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-foxg20.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-qil_a9260.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-qil_a9260.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-sama5d3_xplained.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-sama5d3_xplained.dts vendor/device-tree/ianc-afaecb70/src/arm/at91-sama5d4ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91-sama5d4ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91rm9200.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91rm9200.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91rm9200ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91rm9200ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9260.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9260.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9261.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9261.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9261ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9261ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9263.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9263.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9263ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9263ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9g15.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9g15.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9g15ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9g15ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9g20ek_common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9g20ek_common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9g25.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9g25.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9g25ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9g25ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9g35.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9g35.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9g35ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9g35ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9g45.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9g45.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9m10g45ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9m10g45ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9n12.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9n12.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9n12ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9n12ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9rl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9rl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9rlek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9rlek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x35.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x35.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x35ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x35ek.dts vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x5.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x5.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x5_isi.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x5_isi.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x5_lcd.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x5_lcd.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x5_macb0.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x5_macb0.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x5_macb1.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x5_macb1.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x5cm.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x5cm.dtsi vendor/device-tree/ianc-afaecb70/src/arm/at91sam9x5ek.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/at91sam9x5ek.dtsi vendor/device-tree/ianc-afaecb70/src/arm/atlas7-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/atlas7-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/atlas7.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/atlas7.dtsi vendor/device-tree/ianc-afaecb70/src/arm/axp209.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/axp209.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm-cygnus-clock.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm-cygnus-clock.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm-cygnus.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm-cygnus.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm11351.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm11351.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm21664.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm21664.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm2835-rpi-b-plus.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm2835-rpi-b-plus.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm2835-rpi-b.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm2835-rpi-b.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm2835-rpi.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm2835-rpi.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm2835.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm2835.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm4708-buffalo-wzr-1750dhp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4708-buffalo-wzr-1750dhp.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4708-luxul-xwc-1000.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4708-luxul-xwc-1000.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4708-netgear-r6250.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4708-netgear-r6250.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4708-netgear-r6300-v2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4708-netgear-r6300-v2.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm4708.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm4708.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm47081-asus-rt-n18u.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm47081-asus-rt-n18u.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm47081-buffalo-wzr-600dhp2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm47081-buffalo-wzr-600dhp2.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm47081-buffalo-wzr-900dhp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm47081-buffalo-wzr-900dhp.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm5301x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm5301x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm63138.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm63138.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm7445-bcm97445svmb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm7445-bcm97445svmb.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm7445.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm7445.dtsi vendor/device-tree/ianc-afaecb70/src/arm/bcm911360_entphn.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm911360_entphn.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm911360k.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm911360k.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm958300k.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm958300k.dts vendor/device-tree/ianc-afaecb70/src/arm/bcm963138dvt.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/bcm963138dvt.dts vendor/device-tree/ianc-afaecb70/src/arm/berlin2-sony-nsz-gs7.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/berlin2-sony-nsz-gs7.dts vendor/device-tree/ianc-afaecb70/src/arm/berlin2.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/berlin2.dtsi vendor/device-tree/ianc-afaecb70/src/arm/berlin2cd-google-chromecast.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/berlin2cd-google-chromecast.dts vendor/device-tree/ianc-afaecb70/src/arm/berlin2cd.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/berlin2cd.dtsi vendor/device-tree/ianc-afaecb70/src/arm/berlin2q-marvell-dmp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/berlin2q-marvell-dmp.dts vendor/device-tree/ianc-afaecb70/src/arm/berlin2q.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/berlin2q.dtsi vendor/device-tree/ianc-afaecb70/src/arm/cros-ec-keyboard.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/cros-ec-keyboard.dtsi vendor/device-tree/ianc-afaecb70/src/arm/cx92755.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/cx92755.dtsi vendor/device-tree/ianc-afaecb70/src/arm/cx92755_equinox.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/cx92755_equinox.dts vendor/device-tree/ianc-afaecb70/src/arm/da850-enbw-cmc.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/da850-enbw-cmc.dts vendor/device-tree/ianc-afaecb70/src/arm/da850-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/da850-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/da850.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/da850.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dm8168-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dm8168-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/dm816x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dm816x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dove-cubox.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dove-cubox.dts vendor/device-tree/ianc-afaecb70/src/arm/dove.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dove.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dra7-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dra7-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/dra7.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dra7.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dra72-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dra72-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/dra72x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dra72x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dra74x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dra74x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/dra7xx-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/dra7xx-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ea3250.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ea3250.dts vendor/device-tree/ianc-afaecb70/src/arm/efm32gg-dk3750.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/efm32gg-dk3750.dts vendor/device-tree/ianc-afaecb70/src/arm/efm32gg.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/efm32gg.dtsi vendor/device-tree/ianc-afaecb70/src/arm/emev2-kzm9d.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/emev2-kzm9d.dts vendor/device-tree/ianc-afaecb70/src/arm/emev2.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/emev2.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos3250-monk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos3250-monk.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos3250-rinato.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos3250-rinato.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos3250.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos3250.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4210-origen.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4210-origen.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4210-smdkv310.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4210-smdkv310.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4210-trats.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4210-trats.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4210-universal_c210.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4210-universal_c210.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4210.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4210.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4212.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4212.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4412-odroid-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4412-odroid-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4412-odroidu3.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4412-odroidu3.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4412-odroidx.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4412-odroidx.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4412-origen.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4412-origen.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4412-smdk4412.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4412-smdk4412.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4412-tiny4412.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4412-tiny4412.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4412-trats2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4412-trats2.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos4412.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4412.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4415.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4415.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4x12-pinctrl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4x12-pinctrl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos4x12.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos4x12.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5250-arndale.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5250-arndale.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5250-pinctrl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5250-pinctrl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5250-smdk5250.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5250-smdk5250.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5250-snow.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5250-snow.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5250-spring.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5250-spring.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5250.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5250.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5260-xyref5260.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5260-xyref5260.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5410-smdk5410.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5410-smdk5410.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5410.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5410.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5420-arndale-octa.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5420-arndale-octa.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5420-peach-pit.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5420-peach-pit.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5420-pinctrl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5420-pinctrl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5420-smdk5420.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5420-smdk5420.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5420.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5420.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5422-odroidxu3.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5422-odroidxu3.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5440-sd5v1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5440-sd5v1.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5440-ssdk5440.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5440-ssdk5440.dts vendor/device-tree/ianc-afaecb70/src/arm/exynos5440.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5440.dtsi vendor/device-tree/ianc-afaecb70/src/arm/exynos5800-peach-pi.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/exynos5800-peach-pi.dts vendor/device-tree/ianc-afaecb70/src/arm/hi3620-hi4511.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/hi3620-hi4511.dts vendor/device-tree/ianc-afaecb70/src/arm/hip04.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/hip04.dtsi vendor/device-tree/ianc-afaecb70/src/arm/hisi-x5hd2-dkb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/hisi-x5hd2-dkb.dts vendor/device-tree/ianc-afaecb70/src/arm/imx23-olinuxino.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx23-olinuxino.dts vendor/device-tree/ianc-afaecb70/src/arm/imx23.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx23.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx25-pdk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx25-pdk.dts vendor/device-tree/ianc-afaecb70/src/arm/imx25-pinfunc.h - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx25-pinfunc.h vendor/device-tree/ianc-afaecb70/src/arm/imx25.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx25.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx27.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx27.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx28-apf28.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx28-apf28.dts vendor/device-tree/ianc-afaecb70/src/arm/imx28-apf28dev.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx28-apf28dev.dts vendor/device-tree/ianc-afaecb70/src/arm/imx28-cfa10036.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx28-cfa10036.dts vendor/device-tree/ianc-afaecb70/src/arm/imx28-cfa10057.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx28-cfa10057.dts vendor/device-tree/ianc-afaecb70/src/arm/imx28-evk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx28-evk.dts vendor/device-tree/ianc-afaecb70/src/arm/imx28-m28evk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx28-m28evk.dts vendor/device-tree/ianc-afaecb70/src/arm/imx28-tx28.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx28-tx28.dts vendor/device-tree/ianc-afaecb70/src/arm/imx28.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx28.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx31.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx31.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx35.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx35.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx50-evk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx50-evk.dts vendor/device-tree/ianc-afaecb70/src/arm/imx50.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx50.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx51-apf51dev.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx51-apf51dev.dts vendor/device-tree/ianc-afaecb70/src/arm/imx51.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx51.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx53-ard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53-ard.dts vendor/device-tree/ianc-afaecb70/src/arm/imx53-m53evk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53-m53evk.dts vendor/device-tree/ianc-afaecb70/src/arm/imx53-qsb-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53-qsb-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx53-qsrb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53-qsrb.dts vendor/device-tree/ianc-afaecb70/src/arm/imx53-smd.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53-smd.dts vendor/device-tree/ianc-afaecb70/src/arm/imx53-tqma53.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53-tqma53.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx53-tx53-x03x.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53-tx53-x03x.dts vendor/device-tree/ianc-afaecb70/src/arm/imx53-tx53.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53-tx53.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx53-voipac-bsb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53-voipac-bsb.dts vendor/device-tree/ianc-afaecb70/src/arm/imx53.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx53.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-aristainetos_4.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-aristainetos_4.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-aristainetos_7.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-aristainetos_7.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-cubox-i.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-cubox-i.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-hummingboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-hummingboard.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-nitrogen6x.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-nitrogen6x.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-rex-basic.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-rex-basic.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-riotboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-riotboard.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl-sabrelite.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl-sabrelite.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6dl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6dl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6q-arm2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-arm2.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-cubox-i.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-cubox-i.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-dmo-edmqmx6.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-dmo-edmqmx6.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-gk802.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-gk802.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-gw5400-a.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-gw5400-a.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-hummingboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-hummingboard.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-nitrogen6x.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-nitrogen6x.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-rex-pro.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-rex-pro.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-sabrelite.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-sabrelite.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q-tbs2910.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q-tbs2910.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6q.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6q.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-aristainetos.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-aristainetos.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-cubox-i.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-cubox-i.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-dfi-fs700-m60.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-dfi-fs700-m60.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-gw51xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-gw51xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-gw52xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-gw52xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-gw53xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-gw53xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-gw54xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-gw54xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-gw552x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-gw552x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-hummingboard.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-hummingboard.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-microsom-ar8035.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-microsom-ar8035.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-microsom.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-microsom.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-nitrogen6x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-nitrogen6x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-phytec-pfla02.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-phytec-pfla02.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-rex.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-rex.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-sabreauto.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-sabreauto.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-sabrelite.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-sabrelite.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-sabresd.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-sabresd.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-tx6.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-tx6.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl-wandboard.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl-wandboard.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6qdl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6qdl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6sl-evk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6sl-evk.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6sl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6sl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/imx6sx-sabreauto.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6sx-sabreauto.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6sx-sdb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6sx-sdb.dts vendor/device-tree/ianc-afaecb70/src/arm/imx6sx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/imx6sx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/integrator.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/integrator.dtsi vendor/device-tree/ianc-afaecb70/src/arm/k2e-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2e-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/k2e-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2e-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/k2e.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2e.dtsi vendor/device-tree/ianc-afaecb70/src/arm/k2hk-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2hk-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/k2hk-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2hk-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/k2hk.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2hk.dtsi vendor/device-tree/ianc-afaecb70/src/arm/k2l-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2l-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/k2l-evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2l-evm.dts vendor/device-tree/ianc-afaecb70/src/arm/k2l.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/k2l.dtsi vendor/device-tree/ianc-afaecb70/src/arm/keystone.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/keystone.dtsi vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-b3.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-b3.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-cloudbox.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-cloudbox.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-d2net.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-d2net.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-dir665.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-dir665.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-dreamplug.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-dreamplug.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-is2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-is2.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-lsxl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-lsxl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-mv88f6281gtw-ge.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-mv88f6281gtw-ge.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-net2big.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-net2big.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-net5big.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-net5big.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-netxbig.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-netxbig.dtsi vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-ns2-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-ns2-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-ns2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-ns2.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-ns2max.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-ns2max.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-ns2mini.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-ns2mini.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-rd88f6192.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-rd88f6192.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-synology.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-synology.dtsi vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-t5325.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-t5325.dts vendor/device-tree/ianc-afaecb70/src/arm/kirkwood-ts219.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood-ts219.dtsi vendor/device-tree/ianc-afaecb70/src/arm/kirkwood.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/kirkwood.dtsi vendor/device-tree/ianc-afaecb70/src/arm/lpc32xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/lpc32xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ls1021a-qds.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ls1021a-qds.dts vendor/device-tree/ianc-afaecb70/src/arm/ls1021a-twr.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ls1021a-twr.dts vendor/device-tree/ianc-afaecb70/src/arm/ls1021a.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ls1021a.dtsi vendor/device-tree/ianc-afaecb70/src/arm/meson.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/meson.dtsi vendor/device-tree/ianc-afaecb70/src/arm/meson6-atv1200.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/meson6-atv1200.dts vendor/device-tree/ianc-afaecb70/src/arm/meson8.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/meson8.dtsi vendor/device-tree/ianc-afaecb70/src/arm/mt6589.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/mt6589.dtsi vendor/device-tree/ianc-afaecb70/src/arm/mt8127.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/mt8127.dtsi vendor/device-tree/ianc-afaecb70/src/arm/mt8135-evbp1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/mt8135-evbp1.dts vendor/device-tree/ianc-afaecb70/src/arm/mt8135.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/mt8135.dtsi vendor/device-tree/ianc-afaecb70/src/arm/nspire-classic.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/nspire-classic.dtsi vendor/device-tree/ianc-afaecb70/src/arm/nspire-cx.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/nspire-cx.dts vendor/device-tree/ianc-afaecb70/src/arm/nspire.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/nspire.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap2.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap2.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap2420-n8x0-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap2420-n8x0-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap2420.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap2420.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap2430-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap2430-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap2430.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap2430.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap24xx-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap24xx-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-beagle-xm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-beagle-xm.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-beagle.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-beagle.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-cm-t3517.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-cm-t3517.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-cm-t3730.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-cm-t3730.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-cm-t3x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-cm-t3x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-cm-t3x30.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-cm-t3x30.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-devkit8000.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-devkit8000.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-evm-37xx.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-evm-37xx.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-evm-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-evm-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-gta04.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-gta04.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-gta04a5.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-gta04a5.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-igep.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-igep.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-igep0020-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-igep0020-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-igep0020-rev-f.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-igep0020-rev-f.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-igep0020.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-igep0020.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-igep0030-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-igep0030-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-igep0030-rev-g.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-igep0030-rev-g.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-igep0030.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-igep0030.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-ldp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-ldp.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-lilly-a83x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-lilly-a83x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-lilly-dbb056.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-lilly-dbb056.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-n9.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-n9.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-n900.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-n900.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-n950-n9.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-n950-n9.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-n950.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-n950.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-alto35-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-alto35-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-base.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-base.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-chestnut43-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-chestnut43-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-common-lcd35.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-common-lcd35.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-common-lcd43.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-common-lcd43.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-gallop43-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-gallop43-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo-palo43-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo-palo43-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-overo.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-overo.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-panel-sharp-ls037v7dw01.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-panel-sharp-ls037v7dw01.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-tao3530.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-tao3530.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3-zoom3.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3-zoom3.dts vendor/device-tree/ianc-afaecb70/src/arm/omap3.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap34xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap34xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap36xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap36xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap3xxx-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap3xxx-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap4-cpu-thermal.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-cpu-thermal.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap4-duovero-parlor.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-duovero-parlor.dts vendor/device-tree/ianc-afaecb70/src/arm/omap4-duovero.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-duovero.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap4-panda-a4.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-panda-a4.dts vendor/device-tree/ianc-afaecb70/src/arm/omap4-panda-common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-panda-common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap4-panda-es.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-panda-es.dts vendor/device-tree/ianc-afaecb70/src/arm/omap4-sdp-es23plus.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-sdp-es23plus.dts vendor/device-tree/ianc-afaecb70/src/arm/omap4-sdp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-sdp.dts vendor/device-tree/ianc-afaecb70/src/arm/omap4-var-om44customboard.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-var-om44customboard.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap4-var-som-om44-wlan.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-var-som-om44-wlan.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap4-var-som-om44.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4-var-som-om44.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap4.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap4460.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap4460.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap5-cm-t54.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap5-cm-t54.dts vendor/device-tree/ianc-afaecb70/src/arm/omap5-core-thermal.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap5-core-thermal.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap5-gpu-thermal.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap5-gpu-thermal.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap5-uevm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap5-uevm.dts vendor/device-tree/ianc-afaecb70/src/arm/omap5.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap5.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap54xx-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/omap54xx-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm/orion5x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/orion5x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/phy3250.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/phy3250.dts vendor/device-tree/ianc-afaecb70/src/arm/pxa27x.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/pxa27x.dtsi vendor/device-tree/ianc-afaecb70/src/arm/pxa2xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/pxa2xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/pxa3xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/pxa3xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/qcom-apq8064-cm-qs600.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-apq8064-cm-qs600.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-apq8064-ifc6410.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-apq8064-ifc6410.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-apq8064.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-apq8064.dtsi vendor/device-tree/ianc-afaecb70/src/arm/qcom-apq8074-dragonboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-apq8074-dragonboard.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-apq8084-ifc6540.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-apq8084-ifc6540.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-apq8084-mtp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-apq8084-mtp.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-apq8084.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-apq8084.dtsi vendor/device-tree/ianc-afaecb70/src/arm/qcom-ipq8064-ap148.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-ipq8064-ap148.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-ipq8064.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-ipq8064.dtsi vendor/device-tree/ianc-afaecb70/src/arm/qcom-msm8660-surf.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-msm8660-surf.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-msm8660.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-msm8660.dtsi vendor/device-tree/ianc-afaecb70/src/arm/qcom-msm8960-cdp.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-msm8960-cdp.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-msm8960.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-msm8960.dtsi vendor/device-tree/ianc-afaecb70/src/arm/qcom-msm8974-sony-xperia-honami.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-msm8974-sony-xperia-honami.dts vendor/device-tree/ianc-afaecb70/src/arm/qcom-msm8974.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/qcom-msm8974.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r7s72100.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r7s72100.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a73a4-ape6evm.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a73a4-ape6evm.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a73a4.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a73a4.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a7740-armadillo800eva.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7740-armadillo800eva.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7740.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7740.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a7778-bockw.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7778-bockw.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7778.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7778.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a7779-marzen.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7779-marzen.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7779.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7779.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a7790-lager.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7790-lager.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7790.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7790.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a7791-koelsch.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7791-koelsch.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7791.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7791.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a7794-alt.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7794-alt.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7794.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/r8a7794.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3066a-bqcurie2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3066a-bqcurie2.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3066a-marsboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3066a-marsboard.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3066a-rayeager.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3066a-rayeager.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3066a.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3066a.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3188-radxarock.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3188-radxarock.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3188.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3188.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3288-evb-act8846.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-evb-act8846.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-evb-rk808.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-evb-rk808.dts vendor/device-tree/ianc-afaecb70/src/arm/rk3288-evb.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-evb.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3288-firefly.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-firefly.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3288-thermal.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288-thermal.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3288.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3288.dtsi vendor/device-tree/ianc-afaecb70/src/arm/rk3xxx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/rk3xxx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/s3c2416-smdk2416.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/s3c2416-smdk2416.dts vendor/device-tree/ianc-afaecb70/src/arm/s3c2416.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/s3c2416.dtsi vendor/device-tree/ianc-afaecb70/src/arm/s5pv210-aquila.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/s5pv210-aquila.dts vendor/device-tree/ianc-afaecb70/src/arm/s5pv210-goni.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/s5pv210-goni.dts vendor/device-tree/ianc-afaecb70/src/arm/sama5d3.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d35ek.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d35ek.dts vendor/device-tree/ianc-afaecb70/src/arm/sama5d3_can.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3_can.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d3_emac.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3_emac.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d3_gmac.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3_gmac.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d3_lcd.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3_lcd.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d3_mci2.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3_mci2.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d3_tcb1.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3_tcb1.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d3_uart.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3_uart.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d3xcm.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3xcm.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d3xmb.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d3xmb.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sama5d4.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sama5d4.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sh73a0-kzm9g.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sh73a0-kzm9g.dts vendor/device-tree/ianc-afaecb70/src/arm/sh73a0.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sh73a0.dtsi vendor/device-tree/ianc-afaecb70/src/arm/socfpga.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga.dtsi vendor/device-tree/ianc-afaecb70/src/arm/socfpga_arria10.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_arria10.dtsi vendor/device-tree/ianc-afaecb70/src/arm/socfpga_arria5_socdk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_arria5_socdk.dts vendor/device-tree/ianc-afaecb70/src/arm/socfpga_cyclone5_socdk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_cyclone5_socdk.dts vendor/device-tree/ianc-afaecb70/src/arm/socfpga_cyclone5_sockit.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_cyclone5_sockit.dts vendor/device-tree/ianc-afaecb70/src/arm/socfpga_cyclone5_socrates.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/socfpga_cyclone5_socrates.dts vendor/device-tree/ianc-afaecb70/src/arm/spear1310-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear1310-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/spear1310.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear1310.dtsi vendor/device-tree/ianc-afaecb70/src/arm/spear1340-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear1340-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/spear1340.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear1340.dtsi vendor/device-tree/ianc-afaecb70/src/arm/spear13xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear13xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/spear300-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear300-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/spear300.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear300.dtsi vendor/device-tree/ianc-afaecb70/src/arm/spear310-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear310-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/spear310.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear310.dtsi vendor/device-tree/ianc-afaecb70/src/arm/spear320-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear320-evb.dts vendor/device-tree/ianc-afaecb70/src/arm/spear320.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear320.dtsi vendor/device-tree/ianc-afaecb70/src/arm/spear3xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/spear3xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ste-ccu8540.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-ccu8540.dts vendor/device-tree/ianc-afaecb70/src/arm/ste-ccu9540.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-ccu9540.dts vendor/device-tree/ianc-afaecb70/src/arm/ste-dbx5x0.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-dbx5x0.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ste-href-stuib.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-href-stuib.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ste-href-tvk1281618.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-href-tvk1281618.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ste-href.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-href.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ste-hrefprev60-stuib.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-hrefprev60-stuib.dts vendor/device-tree/ianc-afaecb70/src/arm/ste-hrefprev60-tvk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-hrefprev60-tvk.dts vendor/device-tree/ianc-afaecb70/src/arm/ste-hrefprev60.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-hrefprev60.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ste-hrefv60plus-stuib.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-hrefv60plus-stuib.dts vendor/device-tree/ianc-afaecb70/src/arm/ste-hrefv60plus-tvk.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-hrefv60plus-tvk.dts vendor/device-tree/ianc-afaecb70/src/arm/ste-hrefv60plus.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-hrefv60plus.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ste-nomadik-nhk15.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-nomadik-nhk15.dts vendor/device-tree/ianc-afaecb70/src/arm/ste-nomadik-s8815.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-nomadik-s8815.dts vendor/device-tree/ianc-afaecb70/src/arm/ste-nomadik-stn8815.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-nomadik-stn8815.dtsi vendor/device-tree/ianc-afaecb70/src/arm/ste-snowball.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-snowball.dts vendor/device-tree/ianc-afaecb70/src/arm/ste-u300.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/ste-u300.dts vendor/device-tree/ianc-afaecb70/src/arm/stih407-b2120.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih407-b2120.dts vendor/device-tree/ianc-afaecb70/src/arm/stih407-clock.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih407-clock.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih407-family.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih407-family.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih407-pinctrl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih407-pinctrl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih407.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih407.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih410-b2120.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih410-b2120.dts vendor/device-tree/ianc-afaecb70/src/arm/stih410-clock.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih410-clock.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih410.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih410.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih415.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih415.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih416-b2020e.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih416-b2020e.dts vendor/device-tree/ianc-afaecb70/src/arm/stih416-pinctrl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih416-pinctrl.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih416.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih416.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih418-b2199.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih418-b2199.dts vendor/device-tree/ianc-afaecb70/src/arm/stih418-clock.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih418-clock.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stih418.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stih418.dtsi vendor/device-tree/ianc-afaecb70/src/arm/stihxxx-b2120.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/stihxxx-b2120.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-a1000.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-a1000.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-ba10-tvbox.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-ba10-tvbox.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-chuwi-v7-cw0825.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-chuwi-v7-cw0825.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-cubieboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-cubieboard.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-hackberry.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-hackberry.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-hyundai-a7hd.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-hyundai-a7hd.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-inet97fv2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-inet97fv2.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-marsboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-marsboard.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-mini-xplus.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-mini-xplus.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-mk802.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-mk802.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-mk802ii.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-mk802ii.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-olinuxino-lime.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-olinuxino-lime.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10-pcduino.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10-pcduino.dts vendor/device-tree/ianc-afaecb70/src/arm/sun4i-a10.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun4i-a10.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a10s-mk802.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a10s-mk802.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a10s-olinuxino-micro.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a10s-olinuxino-micro.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a10s-r7-tv-dongle.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a10s-r7-tv-dongle.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a10s.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a10s.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a13-hsg-h702.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a13-hsg-h702.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a13-olinuxino-micro.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a13-olinuxino-micro.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a13-olinuxino.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a13-olinuxino.dts vendor/device-tree/ianc-afaecb70/src/arm/sun5i-a13.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun5i-a13.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31-app4-evb1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31-app4-evb1.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31-colombus.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31-colombus.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31-hummingbird.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31-hummingbird.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31-m9.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31-m9.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31s-cs908.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31s-cs908.dts vendor/device-tree/ianc-afaecb70/src/arm/sun6i-a31s.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun6i-a31s.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-bananapi.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-bananapi.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-bananapro.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-bananapro.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-cubieboard2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-cubieboard2.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-cubietruck.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-cubietruck.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-hummingbird.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-hummingbird.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-i12-tvbox.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-i12-tvbox.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-m3.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-m3.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-olinuxino-lime.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-olinuxino-lime.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-olinuxino-lime2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-olinuxino-lime2.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-olinuxino-micro.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-olinuxino-micro.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20-pcduino3.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20-pcduino3.dts vendor/device-tree/ianc-afaecb70/src/arm/sun7i-a20.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun7i-a20.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a23-ippo-q8h-v1.2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a23-ippo-q8h-v1.2.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a23-ippo-q8h-v5.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a23-ippo-q8h-v5.dts vendor/device-tree/ianc-afaecb70/src/arm/sun8i-a23.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun8i-a23.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sun9i-a80-optimus.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun9i-a80-optimus.dts vendor/device-tree/ianc-afaecb70/src/arm/sun9i-a80.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sun9i-a80.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sunxi-common-regulators.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/sunxi-common-regulators.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra114.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra114.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra124-jetson-tk1.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra124-jetson-tk1.dts vendor/device-tree/ianc-afaecb70/src/arm/tegra124-nyan-big.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra124-nyan-big.dts vendor/device-tree/ianc-afaecb70/src/arm/tegra124-venice2.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra124-venice2.dts vendor/device-tree/ianc-afaecb70/src/arm/tegra124.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra124.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra20-seaboard.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra20-seaboard.dts vendor/device-tree/ianc-afaecb70/src/arm/tegra20.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra20.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra30-apalis-eval.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra30-apalis-eval.dts vendor/device-tree/ianc-afaecb70/src/arm/tegra30-apalis.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra30-apalis.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra30-beaver.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra30-beaver.dts vendor/device-tree/ianc-afaecb70/src/arm/tegra30-cardhu.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra30-cardhu.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra30-colibri-eval-v3.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra30-colibri-eval-v3.dts vendor/device-tree/ianc-afaecb70/src/arm/tegra30-colibri.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra30-colibri.dtsi vendor/device-tree/ianc-afaecb70/src/arm/tegra30.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/tegra30.dtsi vendor/device-tree/ianc-afaecb70/src/arm/twl4030_omap3.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/twl4030_omap3.dtsi vendor/device-tree/ianc-afaecb70/src/arm/twl6030_omap4.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/twl6030_omap4.dtsi vendor/device-tree/ianc-afaecb70/src/arm/usb_a9260_common.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/usb_a9260_common.dtsi vendor/device-tree/ianc-afaecb70/src/arm/usb_a9263.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/usb_a9263.dts vendor/device-tree/ianc-afaecb70/src/arm/versatile-ab.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/versatile-ab.dts vendor/device-tree/ianc-afaecb70/src/arm/versatile-pb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/versatile-pb.dts vendor/device-tree/ianc-afaecb70/src/arm/vexpress-v2m-rs1.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vexpress-v2m-rs1.dtsi vendor/device-tree/ianc-afaecb70/src/arm/vexpress-v2m.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vexpress-v2m.dtsi vendor/device-tree/ianc-afaecb70/src/arm/vexpress-v2p-ca15_a7.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vexpress-v2p-ca15_a7.dts vendor/device-tree/ianc-afaecb70/src/arm/vexpress-v2p-ca9.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vexpress-v2p-ca9.dts vendor/device-tree/ianc-afaecb70/src/arm/vf-colibri-eval-v3.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf-colibri-eval-v3.dtsi vendor/device-tree/ianc-afaecb70/src/arm/vf-colibri.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf-colibri.dtsi vendor/device-tree/ianc-afaecb70/src/arm/vf500-colibri-eval-v3.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf500-colibri-eval-v3.dts vendor/device-tree/ianc-afaecb70/src/arm/vf500-colibri.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf500-colibri.dtsi vendor/device-tree/ianc-afaecb70/src/arm/vf500.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf500.dtsi vendor/device-tree/ianc-afaecb70/src/arm/vf610-colibri.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf610-colibri.dtsi vendor/device-tree/ianc-afaecb70/src/arm/vf610-cosmic.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf610-cosmic.dts vendor/device-tree/ianc-afaecb70/src/arm/vf610-pinfunc.h - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf610-pinfunc.h vendor/device-tree/ianc-afaecb70/src/arm/vf610-twr.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf610-twr.dts vendor/device-tree/ianc-afaecb70/src/arm/vf610.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vf610.dtsi vendor/device-tree/ianc-afaecb70/src/arm/vfxxx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/vfxxx.dtsi vendor/device-tree/ianc-afaecb70/src/arm/wm8505.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/wm8505.dtsi vendor/device-tree/ianc-afaecb70/src/arm/wm8650.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/wm8650.dtsi vendor/device-tree/ianc-afaecb70/src/arm/wm8750.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/wm8750.dtsi vendor/device-tree/ianc-afaecb70/src/arm/zynq-7000.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm/zynq-7000.dtsi vendor/device-tree/ianc-afaecb70/src/arm/zynq-parallella.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/zynq-parallella.dts vendor/device-tree/ianc-afaecb70/src/arm/zynq-zc702.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/zynq-zc702.dts vendor/device-tree/ianc-afaecb70/src/arm/zynq-zc706.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/zynq-zc706.dts vendor/device-tree/ianc-afaecb70/src/arm/zynq-zed.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/zynq-zed.dts vendor/device-tree/ianc-afaecb70/src/arm/zynq-zybo.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm/zynq-zybo.dts vendor/device-tree/ianc-afaecb70/src/arm64/amd/amd-overdrive.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/amd/amd-overdrive.dts vendor/device-tree/ianc-afaecb70/src/arm64/apm/apm-mustang.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/apm/apm-mustang.dts vendor/device-tree/ianc-afaecb70/src/arm64/apm/apm-storm.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/apm/apm-storm.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/arm/foundation-v8.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/foundation-v8.dts vendor/device-tree/ianc-afaecb70/src/arm64/arm/juno-clocks.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/juno-clocks.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/arm/juno-motherboard.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/juno-motherboard.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/arm/juno.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/juno.dts vendor/device-tree/ianc-afaecb70/src/arm64/arm/rtsm_ve-aemv8a.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/rtsm_ve-aemv8a.dts vendor/device-tree/ianc-afaecb70/src/arm64/arm/rtsm_ve-motherboard.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/arm/rtsm_ve-motherboard.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/cavium/thunder-88xx.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/cavium/thunder-88xx.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/exynos/exynos7-espresso.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/exynos/exynos7-espresso.dts vendor/device-tree/ianc-afaecb70/src/arm64/exynos/exynos7-pinctrl.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/exynos/exynos7-pinctrl.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/exynos/exynos7.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/exynos/exynos7.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/mediatek/mt8173-evb.dts - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/mediatek/mt8173-evb.dts vendor/device-tree/ianc-afaecb70/src/arm64/mediatek/mt8173.dtsi - copied unchanged from r295011, vendor/device-tree/dist/src/arm64/mediatek/mt8173.dtsi Deleted: vendor/device-tree/ianc-afaecb70/Bindings/arc/interrupts.txt vendor/device-tree/ianc-afaecb70/Bindings/arc/pmu.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/altera/socfpga-reset.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/armada-370-xp-mpic.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/atmel-adc.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/atmel-aic.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/bcm11351.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/bcm21664.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/bcm63138.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,bcm11351-cpu-method vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/cygnus.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/kona-resetmgr.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/kona-timer.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/kona-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm2835.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm4708.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/brcm-brcmstb.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/calxeda/combophy.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/calxeda/mem-ctrlr.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/davinci/ vendor/device-tree/ianc-afaecb70/Bindings/arm/exynos/ vendor/device-tree/ianc-afaecb70/Bindings/arm/geniatech.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/gic-v3.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/gic.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/l2cc.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/lpc32xx-mic.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mediatek/mediatek,sysirq.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/mrvl/intc.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/omap/intc.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/rockchip/pmu-sram.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/rockchip/smp-sram.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/samsung-boards.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/samsung/interrupt-combiner.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/spear/ vendor/device-tree/ianc-afaecb70/Bindings/arm/versatile-fpga-irq.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/vic.txt vendor/device-tree/ianc-afaecb70/Bindings/arm/vt8500/via,vt8500-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/ata/exynos-sata-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/bus/bcma.txt vendor/device-tree/ianc-afaecb70/Bindings/c6x/interrupt.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/bcm-cygnus-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/bcm-kona-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/clock/corenet-clock.txt vendor/device-tree/ianc-afaecb70/Bindings/cpufreq/cpufreq-cpu0.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/bcm2835-dma.txt vendor/device-tree/ianc-afaecb70/Bindings/dma/rcar-audmapp.txt vendor/device-tree/ianc-afaecb70/Bindings/drm/ vendor/device-tree/ianc-afaecb70/Bindings/eeprom.txt vendor/device-tree/ianc-afaecb70/Bindings/fb/ vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-bcm-kona.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio-msm.txt vendor/device-tree/ianc-afaecb70/Bindings/gpio/gpio_keys.txt vendor/device-tree/ianc-afaecb70/Bindings/gpu/nvidia,tegra20-host1x.txt vendor/device-tree/ianc-afaecb70/Bindings/gpu/st,stih4xx.txt vendor/device-tree/ianc-afaecb70/Bindings/hid/ vendor/device-tree/ianc-afaecb70/Bindings/hwrng/ vendor/device-tree/ianc-afaecb70/Bindings/i2c/i2c-bcm-kona.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/ina209.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/ina2xx.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/max6697.txt vendor/device-tree/ianc-afaecb70/Bindings/i2c/ti,bq32k.txt vendor/device-tree/ianc-afaecb70/Bindings/input/cap1106.txt vendor/device-tree/ianc-afaecb70/Bindings/interrupt-controller/allwinner,sun67i-sc-nmi.txt vendor/device-tree/ianc-afaecb70/Bindings/metag/meta-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/metag/pdc-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/bcm590xx.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/qcom,pm8xxx.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/s2mpa01.txt vendor/device-tree/ianc-afaecb70/Bindings/mfd/s2mps11.txt vendor/device-tree/ianc-afaecb70/Bindings/mipi/ vendor/device-tree/ianc-afaecb70/Bindings/mips/brcm/bcm3384-intc.txt vendor/device-tree/ianc-afaecb70/Bindings/mips/brcm/bmips.txt vendor/device-tree/ianc-afaecb70/Bindings/mips/brcm/cm-dsl.txt vendor/device-tree/ianc-afaecb70/Bindings/mips/brcm/usb.txt vendor/device-tree/ianc-afaecb70/Bindings/misc/allwinner,sunxi-sid.txt vendor/device-tree/ianc-afaecb70/Bindings/misc/at25.txt vendor/device-tree/ianc-afaecb70/Bindings/misc/bmp085.txt vendor/device-tree/ianc-afaecb70/Bindings/misc/lis302.txt vendor/device-tree/ianc-afaecb70/Bindings/misc/smc.txt vendor/device-tree/ianc-afaecb70/Bindings/misc/sram.txt vendor/device-tree/ianc-afaecb70/Bindings/misc/ti,dac7512.txt vendor/device-tree/ianc-afaecb70/Bindings/mmc/kona-sdhci.txt vendor/device-tree/ianc-afaecb70/Bindings/mtd/m25p80.txt vendor/device-tree/ianc-afaecb70/Bindings/net/amd-xgbe-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/net/broadcom-bcmgenet.txt vendor/device-tree/ianc-afaecb70/Bindings/net/broadcom-mdio-unimac.txt vendor/device-tree/ianc-afaecb70/Bindings/net/broadcom-sf2.txt vendor/device-tree/ianc-afaecb70/Bindings/net/broadcom-systemport.txt vendor/device-tree/ianc-afaecb70/Bindings/net/cdns-emac.txt vendor/device-tree/ianc-afaecb70/Bindings/net/micrel-ksz9021.txt vendor/device-tree/ianc-afaecb70/Bindings/net/nfc/st21nfcb.txt vendor/device-tree/ianc-afaecb70/Bindings/nvec/ vendor/device-tree/ianc-afaecb70/Bindings/open-pic.txt vendor/device-tree/ianc-afaecb70/Bindings/panel/ vendor/device-tree/ianc-afaecb70/Bindings/phy/bcm-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/brcm,capri-pinctrl.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/lantiq,falcon-pinumx.txt vendor/device-tree/ianc-afaecb70/Bindings/pinctrl/lantiq,xway-pinumx.txt vendor/device-tree/ianc-afaecb70/Bindings/power/opp.txt vendor/device-tree/ianc-afaecb70/Bindings/powerpc/fsl/board.txt vendor/device-tree/ianc-afaecb70/Bindings/powerpc/fsl/ifc.txt vendor/device-tree/ianc-afaecb70/Bindings/pwm/bcm-kona-pwm.txt vendor/device-tree/ianc-afaecb70/Bindings/regulator/s5m8767-regulator.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/bcm63xx-uart.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/of-serial.txt vendor/device-tree/ianc-afaecb70/Bindings/serial/via,vt8500-uart.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/ak4554.c vendor/device-tree/ianc-afaecb70/Bindings/sound/bcm2835-i2s.txt vendor/device-tree/ianc-afaecb70/Bindings/sound/pcm1792a.txt vendor/device-tree/ianc-afaecb70/Bindings/staging/imx-drm/ vendor/device-tree/ianc-afaecb70/Bindings/staging/xillybus.txt vendor/device-tree/ianc-afaecb70/Bindings/timer/efm32,timer.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/ci-hdrc-imx.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/ci-hdrc-qcom.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/ci-hdrc-zevio.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/keystone-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/mxs-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/nvidia,tegra20-usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/platform-uhci.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/samsung-usbphy.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/usb-phy.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/via,vt8500-ehci.txt vendor/device-tree/ianc-afaecb70/Bindings/usb/vt8500-ehci.txt vendor/device-tree/ianc-afaecb70/Bindings/video/ vendor/device-tree/ianc-afaecb70/Bindings/watchdog/meson6-wdt.txt vendor/device-tree/ianc-afaecb70/Bindings/x86/interrupt.txt vendor/device-tree/ianc-afaecb70/include/dt-bindings/clk/at91.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/clk/exynos-audss-clk.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/phy/phy-miphy365x.h vendor/device-tree/ianc-afaecb70/include/dt-bindings/reset-controller/ vendor/device-tree/ianc-afaecb70/src/arm/dove-cm-a510.dts vendor/device-tree/ianc-afaecb70/src/arm/imx53-evk.dts vendor/device-tree/ianc-afaecb70/src/arm/kizbox.dts vendor/device-tree/ianc-afaecb70/src/arm/omap34xx-hs.dtsi vendor/device-tree/ianc-afaecb70/src/arm/omap36xx-hs.dtsi vendor/device-tree/ianc-afaecb70/src/arm/r8a73a4-ape6evm-reference.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7778-bockw-reference.dts vendor/device-tree/ianc-afaecb70/src/arm/r8a7791-henninger.dts vendor/device-tree/ianc-afaecb70/src/arm/sh7372-mackerel.dts vendor/device-tree/ianc-afaecb70/src/arm/sh7372.dtsi vendor/device-tree/ianc-afaecb70/src/arm/sh73a0-kzm9g-reference.dts vendor/device-tree/ianc-afaecb70/src/arm/socfpga_arria10_socdk.dts vendor/device-tree/ianc-afaecb70/src/arm/tps65217.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/freescale/fsl-ls2085a-simu.dts vendor/device-tree/ianc-afaecb70/src/arm64/freescale/fsl-ls2085a.dtsi vendor/device-tree/ianc-afaecb70/src/arm64/skeleton.dtsi vendor/device-tree/ianc-afaecb70/testcase-data/ Copied: vendor/device-tree/ianc-afaecb70/Bindings/arc/archs-pct.txt (from r295011, vendor/device-tree/dist/Bindings/arc/archs-pct.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arc/archs-pct.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arc/archs-pct.txt) @@ -0,0 +1,17 @@ +* ARC HS Performance Counters + +The ARC HS can be configured with a pipeline performance monitor for counting +CPU and cache events like cache misses and hits. Like conventional PCT there +are 100+ hardware conditions dynamically mapped to upto 32 counters. +It also supports overflow interrupts. + +Required properties: + +- compatible : should contain + "snps,archs-pct" + +Example: + +pmu { + compatible = "snps,archs-pct"; +}; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arc/axs101.txt (from r295011, vendor/device-tree/dist/Bindings/arc/axs101.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arc/axs101.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arc/axs101.txt) @@ -0,0 +1,7 @@ +Synopsys DesignWare ARC Software Development Platforms Device Tree Bindings +--------------------------------------------------------------------------- + +SDP Main Board with an AXC001 CPU Card hoisting ARC700 core in silicon + +Required root node properties: + - compatible = "snps,axs101", "snps,arc-sdp"; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arc/axs103.txt (from r295011, vendor/device-tree/dist/Bindings/arc/axs103.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arc/axs103.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arc/axs103.txt) @@ -0,0 +1,8 @@ +Synopsys DesignWare ARC Software Development Platforms Device Tree Bindings +--------------------------------------------------------------------------- + +SDP Main Board with an AXC003 FPGA Card which can contain various flavours of +HS38x cores. + +Required root node properties: + - compatible = "snps,axs103", "snps,arc-sdp"; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arc/pct.txt (from r295011, vendor/device-tree/dist/Bindings/arc/pct.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arc/pct.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arc/pct.txt) @@ -0,0 +1,20 @@ +* ARC Performance Counters + +The ARC700 can be configured with a pipeline performance monitor for counting +CPU and cache events like cache misses and hits. Like conventional PCT there +are 100+ hardware conditions dynamically mapped to upto 32 counters + +Note that: + * The ARC 700 PCT does not support interrupts; although HW events may be + counted, the HW events themselves cannot serve as a trigger for a sample. + +Required properties: + +- compatible : should contain + "snps,arc700-pct" + +Example: + +pmu { + compatible = "snps,arc700-pct"; +}; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/al,alpine.txt (from r295011, vendor/device-tree/dist/Bindings/arm/al,alpine.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/al,alpine.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/al,alpine.txt) @@ -0,0 +1,88 @@ +Annapurna Labs Alpine Platform Device Tree Bindings +--------------------------------------------------------------- + +Boards in the Alpine family shall have the following properties: + +* Required root node properties: +compatible: must contain "al,alpine" + +* Example: + +/ { + model = "Annapurna Labs Alpine Dev Board"; + compatible = "al,alpine"; + + ... +} + +* CPU node: + +The Alpine platform includes cortex-a15 cores. +enable-method: must be "al,alpine-smp" to allow smp [1] + +Example: + +cpus { + #address-cells = <1>; + #size-cells = <0>; + enable-method = "al,alpine-smp"; + + cpu@0 { + compatible = "arm,cortex-a15"; + device_type = "cpu"; + reg = <0>; + }; + + cpu@1 { + compatible = "arm,cortex-a15"; + device_type = "cpu"; + reg = <1>; + }; + + cpu@2 { + compatible = "arm,cortex-a15"; + device_type = "cpu"; + reg = <2>; + }; + + cpu@3 { + compatible = "arm,cortex-a15"; + device_type = "cpu"; + reg = <3>; + }; +}; + + +* Alpine CPU resume registers + +The CPU resume register are used to define required resume address after +reset. + +Properties: +- compatible : Should contain "al,alpine-cpu-resume". +- reg : Offset and length of the register set for the device + +Example: + +cpu_resume { + compatible = "al,alpine-cpu-resume"; + reg = <0xfbff5ed0 0x30>; +}; + +* Alpine System-Fabric Service Registers + +The System-Fabric Service Registers allow various operation on CPU and +system fabric, like powering CPUs off. + +Properties: +- compatible : Should contain "al,alpine-sysfabric-service" and "syscon". +- reg : Offset and length of the register set for the device + +Example: + +nb_service { + compatible = "al,alpine-sysfabric-service", "syscon"; + reg = <0xfb070000 0x10000>; +}; + +[1] arm/cpu-enable-method/al,alpine-smp Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/altera.txt (from r295011, vendor/device-tree/dist/Bindings/arm/altera.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/altera.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/altera.txt) @@ -0,0 +1,14 @@ +Altera's SoCFPGA platform device tree bindings +--------------------------------------------- + +Boards with Cyclone 5 SoC: +Required root node properties: +compatible = "altr,socfpga-cyclone5", "altr,socfpga"; + +Boards with Arria 5 SoC: +Required root node properties: +compatible = "altr,socfpga-arria5", "altr,socfpga"; + +Boards with Arria 10 SoC: +Required root node properties: +compatible = "altr,socfpga-arria10", "altr,socfpga"; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/altera/socfpga-sdram-controller.txt (from r295011, vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-controller.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/altera/socfpga-sdram-controller.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-controller.txt) @@ -0,0 +1,12 @@ +Altera SOCFPGA SDRAM Controller + +Required properties: +- compatible : Should contain "altr,sdr-ctl" and "syscon". + syscon is required by the Altera SOCFPGA SDRAM EDAC. +- reg : Should contain 1 register range (address and length) + +Example: + sdr: sdr@ffc25000 { + compatible = "altr,sdr-ctl", "syscon"; + reg = <0xffc25000 0x1000>; + }; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/altera/socfpga-sdram-edac.txt (from r295011, vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-edac.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/altera/socfpga-sdram-edac.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/altera/socfpga-sdram-edac.txt) @@ -0,0 +1,15 @@ +Altera SOCFPGA SDRAM Error Detection & Correction [EDAC] +The EDAC accesses a range of registers in the SDRAM controller. + +Required properties: +- compatible : should contain "altr,sdram-edac" or "altr,sdram-edac-a10" +- altr,sdr-syscon : phandle of the sdr module +- interrupts : Should contain the SDRAM ECC IRQ in the + appropriate format for the IRQ controller. + +Example: + sdramedac { + compatible = "altr,sdram-edac"; + altr,sdr-syscon = <&sdr>; + interrupts = <0 39 4>; + }; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/amlogic.txt (from r295011, vendor/device-tree/dist/Bindings/arm/amlogic.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/amlogic.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/amlogic.txt) @@ -0,0 +1,20 @@ +Amlogic MesonX device tree bindings +------------------------------------------- + +Boards with the Amlogic Meson6 SoC shall have the following properties: + Required root node property: + compatible: "amlogic,meson6" + +Boards with the Amlogic Meson8 SoC shall have the following properties: + Required root node property: + compatible: "amlogic,meson8"; + +Boards with the Amlogic Meson8b SoC shall have the following properties: + Required root node property: + compatible: "amlogic,meson8b"; + +Board compatible values: + - "geniatech,atv1200" (Meson6) + - "minix,neo-x8" (Meson8) + - "tronfy,mxq" (Meson8b) + - "hardkernel,odroid-c1" (Meson8b) Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/arch_timer.txt (from r295011, vendor/device-tree/dist/Bindings/arm/arch_timer.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/arch_timer.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/arch_timer.txt) @@ -0,0 +1,96 @@ +* ARM architected timer + +ARM cores may have a per-core architected timer, which provides per-cpu timers, +or a memory mapped architected timer, which provides up to 8 frames with a +physical and optional virtual timer per frame. + +The per-core architected timer is attached to a GIC to deliver its +per-processor interrupts via PPIs. The memory mapped timer is attached to a GIC +to deliver its interrupts via SPIs. + +** CP15 Timer node properties: + +- compatible : Should at least contain one of + "arm,armv7-timer" + "arm,armv8-timer" + +- interrupts : Interrupt list for secure, non-secure, virtual and + hypervisor timers, in that order. + +- clock-frequency : The frequency of the main counter, in Hz. Should be present + only where necessary to work around broken firmware which does not configure + CNTFRQ on all CPUs to a uniform correct value. Use of this property is + strongly discouraged; fix your firmware unless absolutely impossible. + +- always-on : a boolean property. If present, the timer is powered through an + always-on power domain, therefore it never loses context. + +** Optional properties: + +- arm,cpu-registers-not-fw-configured : Firmware does not initialize + any of the generic timer CPU registers, which contain their + architecturally-defined reset values. Only supported for 32-bit + systems which follow the ARMv7 architected reset values. + + +Example: + + timer { + compatible = "arm,cortex-a15-timer", + "arm,armv7-timer"; + interrupts = <1 13 0xf08>, + <1 14 0xf08>, + <1 11 0xf08>, + <1 10 0xf08>; + clock-frequency = <100000000>; + }; + +** Memory mapped timer node properties: + +- compatible : Should at least contain "arm,armv7-timer-mem". + +- clock-frequency : The frequency of the main counter, in Hz. Should be present + only when firmware has not configured the MMIO CNTFRQ registers. + +- reg : The control frame base address. + +Note that #address-cells, #size-cells, and ranges shall be present to ensure +the CPU can address a frame's registers. + +A timer node has up to 8 frame sub-nodes, each with the following properties: + +- frame-number: 0 to 7. + +- interrupts : Interrupt list for physical and virtual timers in that order. + The virtual timer interrupt is optional. + +- reg : The first and second view base addresses in that order. The second view + base address is optional. + +- status : "disabled" indicates the frame is not available for use. Optional. + +Example: + + timer@f0000000 { + compatible = "arm,armv7-timer-mem"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xf0000000 0x1000>; + clock-frequency = <50000000>; + + frame@f0001000 { + frame-number = <0> + interrupts = <0 13 0x8>, + <0 14 0x8>; + reg = <0xf0001000 0x1000>, + <0xf0002000 0x1000>; + }; + + frame@f0003000 { + frame-number = <1> + interrupts = <0 15 0x8>; + reg = <0xf0003000 0x1000>; + status = "disabled"; + }; + }; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/arm,scpi.txt (from r295011, vendor/device-tree/dist/Bindings/arm/arm,scpi.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/arm,scpi.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/arm,scpi.txt) @@ -0,0 +1,188 @@ +System Control and Power Interface (SCPI) Message Protocol +---------------------------------------------------------- + +Firmware implementing the SCPI described in ARM document number ARM DUI 0922B +("ARM Compute Subsystem SCP: Message Interface Protocols")[0] can be used +by Linux to initiate various system control and power operations. + +Required properties: + +- compatible : should be "arm,scpi" +- mboxes: List of phandle and mailbox channel specifiers + All the channels reserved by remote SCP firmware for use by + SCPI message protocol should be specified in any order +- shmem : List of phandle pointing to the shared memory(SHM) area between the + processors using these mailboxes for IPC, one for each mailbox + SHM can be any memory reserved for the purpose of this communication + between the processors. + +See Documentation/devicetree/bindings/mailbox/mailbox.txt +for more details about the generic mailbox controller and +client driver bindings. + +Clock bindings for the clocks based on SCPI Message Protocol +------------------------------------------------------------ + +This binding uses the common clock binding[1]. + +Container Node +============== +Required properties: +- compatible : should be "arm,scpi-clocks" + All the clocks provided by SCP firmware via SCPI message + protocol much be listed as sub-nodes under this node. + +Sub-nodes +========= +Required properties: +- compatible : shall include one of the following + "arm,scpi-dvfs-clocks" - all the clocks that are variable and index based. + These clocks don't provide an entire range of values between the + limits but only discrete points within the range. The firmware + provides the mapping for each such operating frequency and the + index associated with it. The firmware also manages the + voltage scaling appropriately with the clock scaling. + "arm,scpi-variable-clocks" - all the clocks that are variable and provide full + range within the specified range. The firmware provides the + range of values within a specified range. + +Other required properties for all clocks(all from common clock binding): +- #clock-cells : Should be 1. Contains the Clock ID value used by SCPI commands. +- clock-output-names : shall be the corresponding names of the outputs. +- clock-indices: The identifying number for the clocks(i.e.clock_id) in the + node. It can be non linear and hence provide the mapping of identifiers + into the clock-output-names array. + +SRAM and Shared Memory for SCPI +------------------------------- + +A small area of SRAM is reserved for SCPI communication between application +processors and SCP. + +Required properties: +- compatible : should be "arm,juno-sram-ns" for Non-secure SRAM on Juno + +The rest of the properties should follow the generic mmio-sram description +found in ../../sram/sram.txt + +Each sub-node represents the reserved area for SCPI. + +Required sub-node properties: +- reg : The base offset and size of the reserved area with the SRAM +- compatible : should be "arm,juno-scp-shmem" for Non-secure SRAM based + shared memory on Juno platforms + +Sensor bindings for the sensors based on SCPI Message Protocol +-------------------------------------------------------------- +SCPI provides an API to access the various sensors on the SoC. + +Required properties: +- compatible : should be "arm,scpi-sensors". +- #thermal-sensor-cells: should be set to 1. This property follows the + thermal device tree bindings[2]. + + Valid cell values are raw identifiers (Sensor + ID) as used by the firmware. Refer to + platform documentation for your + implementation for the IDs to use. For Juno + R0 and Juno R1 refer to [3]. + +[0] http://infocenter.arm.com/help/topic/com.arm.doc.dui0922b/index.html +[1] Documentation/devicetree/bindings/clock/clock-bindings.txt +[2] Documentation/devicetree/bindings/thermal/thermal.txt +[3] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0922b/apas03s22.html + +Example: + +sram: sram@50000000 { + compatible = "arm,juno-sram-ns", "mmio-sram"; + reg = <0x0 0x50000000 0x0 0x10000>; + + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x0 0x50000000 0x10000>; + + cpu_scp_lpri: scp-shmem@0 { + compatible = "arm,juno-scp-shmem"; + reg = <0x0 0x200>; + }; + + cpu_scp_hpri: scp-shmem@200 { + compatible = "arm,juno-scp-shmem"; + reg = <0x200 0x200>; + }; +}; + +mailbox: mailbox0@40000000 { + .... + #mbox-cells = <1>; +}; + +scpi_protocol: scpi@2e000000 { + compatible = "arm,scpi"; + mboxes = <&mailbox 0 &mailbox 1>; + shmem = <&cpu_scp_lpri &cpu_scp_hpri>; + + clocks { + compatible = "arm,scpi-clocks"; + + scpi_dvfs: scpi_clocks@0 { + compatible = "arm,scpi-dvfs-clocks"; + #clock-cells = <1>; + clock-indices = <0>, <1>, <2>; + clock-output-names = "atlclk", "aplclk","gpuclk"; + }; + scpi_clk: scpi_clocks@3 { + compatible = "arm,scpi-variable-clocks"; + #clock-cells = <1>; + clock-indices = <3>, <4>; + clock-output-names = "pxlclk0", "pxlclk1"; + }; + }; + + scpi_sensors0: sensors { + compatible = "arm,scpi-sensors"; + #thermal-sensor-cells = <1>; + }; +}; + +cpu@0 { + ... + reg = <0 0>; + clocks = <&scpi_dvfs 0>; +}; + +hdlcd@7ff60000 { + ... + reg = <0 0x7ff60000 0 0x1000>; + clocks = <&scpi_clk 4>; +}; + +thermal-zones { + soc_thermal { + polling-delay-passive = <100>; + polling-delay = <1000>; + + /* sensor ID */ + thermal-sensors = <&scpi_sensors0 3>; + ... + }; +}; + +In the above example, the #clock-cells is set to 1 as required. +scpi_dvfs has 3 output clocks namely: atlclk, aplclk, and gpuclk with 0, +1 and 2 as clock-indices. scpi_clk has 2 output clocks namely: pxlclk0 +and pxlclk1 with 3 and 4 as clock-indices. + +The first consumer in the example is cpu@0 and it has '0' as the clock +specifier which points to the first entry in the output clocks of +scpi_dvfs i.e. "atlclk". + +Similarly the second example is hdlcd@7ff60000 and it has pxlclk1 as input +clock. '4' in the clock specifier here points to the second entry +in the output clocks of scpi_clocks i.e. "pxlclk1" + +The thermal-sensors property in the soc_thermal node uses the +temperature sensor provided by SCP firmware to setup a thermal +zone. The ID "3" is the sensor identifier for the temperature sensor +as used by the firmware. Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/arm-boards (from r295011, vendor/device-tree/dist/Bindings/arm/arm-boards) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/arm-boards Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/arm-boards) @@ -0,0 +1,225 @@ +ARM Integrator/AP (Application Platform) and Integrator/CP (Compact Platform) +----------------------------------------------------------------------------- +ARM's oldest Linux-supported platform with connectors for different core +tiles of ARMv4, ARMv5 and ARMv6 type. + +Required properties (in root node): + compatible = "arm,integrator-ap"; /* Application Platform */ + compatible = "arm,integrator-cp"; /* Compact Platform */ + +FPGA type interrupt controllers, see the versatile-fpga-irq binding doc. + +Required nodes: + +- core-module: the root node to the Integrator platforms must have + a core-module with regs and the compatible string + "arm,core-module-integrator" +- external-bus-interface: the root node to the Integrator platforms + must have an external bus interface with regs and the + compatible-string "arm,external-bus-interface" + + Required properties for the core module: + - regs: the location and size of the core module registers, one + range of 0x200 bytes. + +- syscon: the root node of the Integrator platforms must have a + system controller node pointing to the control registers, + with the compatible string + "arm,integrator-ap-syscon" + "arm,integrator-cp-syscon" + respectively. + + Required properties for the system controller: + - regs: the location and size of the system controller registers, + one range of 0x100 bytes. + + Required properties for the AP system controller: + - interrupts: the AP syscon node must include the logical module + interrupts, stated in order of module instance , + , ... for the CP system controller this + is not required not of any use. + +/dts-v1/; +/include/ "integrator.dtsi" + +/ { + model = "ARM Integrator/AP"; + compatible = "arm,integrator-ap"; + + core-module@10000000 { + compatible = "arm,core-module-integrator"; + reg = <0x10000000 0x200>; + }; + + ebi@12000000 { + compatible = "arm,external-bus-interface"; + reg = <0x12000000 0x100>; + }; + + syscon { + compatible = "arm,integrator-ap-syscon"; + reg = <0x11000000 0x100>; + interrupt-parent = <&pic>; + /* These are the logic module IRQs */ + interrupts = <9>, <10>, <11>, <12>; + }; +}; + + +ARM Versatile Application and Platform Baseboards +------------------------------------------------- +ARM's development hardware platform with connectors for customizable +core tiles. The hardware configuration of the Versatile boards is +highly customizable. + +Required properties (in root node): + compatible = "arm,versatile-ab"; /* Application baseboard */ + compatible = "arm,versatile-pb"; /* Platform baseboard */ + +Interrupt controllers: +- VIC required properties: + compatible = "arm,versatile-vic"; + interrupt-controller; + #interrupt-cells = <1>; + +- SIC required properties: + compatible = "arm,versatile-sic"; + interrupt-controller; + #interrupt-cells = <1>; + +Required nodes: + +- core-module: the root node to the Versatile platforms must have + a core-module with regs and the compatible strings + "arm,core-module-versatile", "syscon" + +ARM RealView Boards +------------------- +The RealView boards cover tailored evaluation boards that are used to explore +the ARM11 and Cortex A-8 and Cortex A-9 processors. + +Required properties (in root node): + /* RealView Emulation Baseboard */ + compatible = "arm,realview-eb"; + /* RealView Platform Baseboard for ARM1176JZF-S */ + compatible = "arm,realview-pb1176"; + /* RealView Platform Baseboard for ARM11 MPCore */ + compatible = "arm,realview-pb11mp"; + /* RealView Platform Baseboard for Cortex A-8 */ + compatible = "arm,realview-pba8"; + /* RealView Platform Baseboard Explore for Cortex A-9 */ + compatible = "arm,realview-pbx"; + +Required nodes: + +- soc: some node of the RealView platforms must be the SoC + node that contain the SoC-specific devices, withe the compatible + string set to one of these tuples: + "arm,realview-eb-soc", "simple-bus" + "arm,realview-pb1176-soc", "simple-bus" + "arm,realview-pb11mp-soc", "simple-bus" + "arm,realview-pba8-soc", "simple-bus" + "arm,realview-pbx-soc", "simple-bus" + +- syscon: some subnode of the RealView SoC node must be a + system controller node pointing to the control registers, + with the compatible string set to one of these tuples: + "arm,realview-eb-syscon", "syscon" + "arm,realview-pb1176-syscon", "syscon" + "arm,realview-pb11mp-syscon", "syscon" + "arm,realview-pba8-syscon", "syscon" + "arm,realview-pbx-syscon", "syscon" + + Required properties for the system controller: + - regs: the location and size of the system controller registers, + one range of 0x1000 bytes. + +Example: + +/dts-v1/; +#include +#include "skeleton.dtsi" + +/ { + model = "ARM RealView PB1176 with device tree"; + compatible = "arm,realview-pb1176"; + + soc { + #address-cells = <1>; + #size-cells = <1>; + compatible = "arm,realview-pb1176-soc", "simple-bus"; + ranges; + + syscon: syscon@10000000 { + compatible = "arm,realview-syscon", "syscon"; + reg = <0x10000000 0x1000>; + }; + + }; +}; + +ARM Versatile Express Boards +----------------------------- +For details on the device tree bindings for ARM Versatile Express boards +please consult the vexpress.txt file in the same directory as this file. + +ARM Juno Boards +---------------- +The Juno boards are targeting development for AArch64 systems. The first +iteration, Juno r0, is a vehicle for evaluating big.LITTLE on AArch64, +with the second iteration, Juno r1, mainly aimed at development of PCIe +based systems. Juno r1 also has support for AXI masters placed on the TLX +connectors to join the coherency domain. + +Juno boards are described in a similar way to ARM Versatile Express boards, +with the motherboard part of the hardware being described in a separate file +to highlight the fact that is part of the support infrastructure for the SoC. +Juno device tree bindings also share the Versatile Express bindings as +described under the RS1 memory mapping. + +Required properties (in root node): + compatible = "arm,juno"; /* For Juno r0 board */ + compatible = "arm,juno-r1"; /* For Juno r1 board */ + +Required nodes: +The description for the board must include: + - a "psci" node describing the boot method used for the secondary CPUs. + A detailed description of the bindings used for "psci" nodes is present + in the psci.txt file. + - a "cpus" node describing the available cores and their associated + "enable-method"s. For more details see cpus.txt file. + +Example: + +/dts-v1/; +/ { + model = "ARM Juno development board (r0)"; + compatible = "arm,juno", "arm,vexpress"; + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + A57_0: cpu@0 { + compatible = "arm,cortex-a57","arm,armv8"; + reg = <0x0 0x0>; + device_type = "cpu"; + enable-method = "psci"; + }; + + ..... + + A53_0: cpu@100 { + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x100>; + device_type = "cpu"; + enable-method = "psci"; + }; + + ..... + }; + +}; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/armada-39x.txt (from r295011, vendor/device-tree/dist/Bindings/arm/armada-39x.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/armada-39x.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/armada-39x.txt) @@ -0,0 +1,20 @@ +Marvell Armada 39x Platforms Device Tree Bindings +------------------------------------------------- + +Boards with a SoC of the Marvell Armada 39x family shall have the +following property: + +Required root node property: + + - compatible: must contain "marvell,armada390" + +In addition, boards using the Marvell Armada 398 SoC shall have the +following property before the previous one: + +Required root node property: + +compatible: must contain "marvell,armada398" + +Example: + +compatible = "marvell,a398-db", "marvell,armada398", "marvell,armada390"; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/armv7m_systick.txt (from r295011, vendor/device-tree/dist/Bindings/arm/armv7m_systick.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/armv7m_systick.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/armv7m_systick.txt) @@ -0,0 +1,26 @@ +* ARMv7M System Timer + +ARMv7-M includes a system timer, known as SysTick. Current driver only +implements the clocksource feature. + +Required properties: +- compatible : Should be "arm,armv7m-systick" +- reg : The address range of the timer + +Required clocking property, have to be one of: +- clocks : The input clock of the timer +- clock-frequency : The rate in HZ in input of the ARM SysTick + +Examples: + +systick: timer@e000e010 { + compatible = "arm,armv7m-systick"; + reg = <0xe000e010 0x10>; + clocks = <&clk_systick>; +}; + +systick: timer@e000e010 { + compatible = "arm,armv7m-systick"; + reg = <0xe000e010 0x10>; + clock-frequency = <90000000>; +}; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/atmel-at91.txt (from r295011, vendor/device-tree/dist/Bindings/arm/atmel-at91.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/atmel-at91.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/atmel-at91.txt) @@ -0,0 +1,164 @@ +Atmel AT91 device tree bindings. +================================ + +Boards with a SoC of the Atmel AT91 or SMART family shall have the following +properties: + +Required root node properties: +compatible: must be one of: + * "atmel,at91rm9200" + + * "atmel,at91sam9" for SoCs using an ARM926EJ-S core, shall be extended with + the specific SoC family or compatible: + o "atmel,at91sam9260" + o "atmel,at91sam9261" + o "atmel,at91sam9263" + o "atmel,at91sam9x5" for the 5 series, shall be extended with the specific + SoC compatible: + - "atmel,at91sam9g15" + - "atmel,at91sam9g25" + - "atmel,at91sam9g35" + - "atmel,at91sam9x25" + - "atmel,at91sam9x35" + o "atmel,at91sam9g20" + o "atmel,at91sam9g45" + o "atmel,at91sam9n12" + o "atmel,at91sam9rl" + o "atmel,at91sam9xe" + * "atmel,sama5" for SoCs using a Cortex-A5, shall be extended with the specific + SoC family: + o "atmel,sama5d2" shall be extended with the specific SoC compatible: + - "atmel,sama5d27" + o "atmel,sama5d3" shall be extended with the specific SoC compatible: + - "atmel,sama5d31" + - "atmel,sama5d33" + - "atmel,sama5d34" + - "atmel,sama5d35" + - "atmel,sama5d36" + o "atmel,sama5d4" shall be extended with the specific SoC compatible: + - "atmel,sama5d41" + - "atmel,sama5d42" + - "atmel,sama5d43" + - "atmel,sama5d44" + +PIT Timer required properties: +- compatible: Should be "atmel,at91sam9260-pit" +- reg: Should contain registers location and length +- interrupts: Should contain interrupt for the PIT which is the IRQ line + shared across all System Controller members. + +System Timer (ST) required properties: +- compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd" +- reg: Should contain registers location and length +- interrupts: Should contain interrupt for the ST which is the IRQ line + shared across all System Controller members. +- clocks: phandle to input clock. +Its subnodes can be: +- watchdog: compatible should be "atmel,at91rm9200-wdt" + +TC/TCLIB Timer required properties: +- compatible: Should be "atmel,-tcb". + can be "at91rm9200" or "at91sam9x5" +- reg: Should contain registers location and length +- interrupts: Should contain all interrupts for the TC block + Note that you can specify several interrupt cells if the TC + block has one interrupt per channel. +- clock-names: tuple listing input clock names. + Required elements: "t0_clk", "slow_clk" + Optional elements: "t1_clk", "t2_clk" +- clocks: phandles to input clocks. + +Examples: + +One interrupt per TC block: + tcb0: timer@fff7c000 { + compatible = "atmel,at91rm9200-tcb"; + reg = <0xfff7c000 0x100>; + interrupts = <18 4>; + clocks = <&tcb0_clk>; + clock-names = "t0_clk"; + }; + +One interrupt per TC channel in a TC block: + tcb1: timer@fffdc000 { + compatible = "atmel,at91rm9200-tcb"; + reg = <0xfffdc000 0x100>; + interrupts = <26 4 27 4 28 4>; + clocks = <&tcb1_clk>; + clock-names = "t0_clk"; + }; + +RSTC Reset Controller required properties: +- compatible: Should be "atmel,-rstc". + can be "at91sam9260" or "at91sam9g45" or "sama5d3" +- reg: Should contain registers location and length +- clocks: phandle to input clock. + +Example: + + rstc@fffffd00 { + compatible = "atmel,at91sam9260-rstc"; + reg = <0xfffffd00 0x10>; + clocks = <&clk32k>; + }; + +RAMC SDRAM/DDR Controller required properties: +- compatible: Should be "atmel,at91rm9200-sdramc", "syscon" + "atmel,at91sam9260-sdramc", + "atmel,at91sam9g45-ddramc", + "atmel,sama5d3-ddramc", +- reg: Should contain registers location and length + +Examples: + + ramc0: ramc@ffffe800 { + compatible = "atmel,at91sam9g45-ddramc"; + reg = <0xffffe800 0x200>; + }; + +SHDWC Shutdown Controller + +required properties: +- compatible: Should be "atmel,-shdwc". + can be "at91sam9260", "at91sam9rl" or "at91sam9x5". +- reg: Should contain registers location and length +- clocks: phandle to input clock. + +optional properties: +- atmel,wakeup-mode: String, operation mode of the wakeup mode. + Supported values are: "none", "high", "low", "any". +- atmel,wakeup-counter: Counter on Wake-up 0 (between 0x0 and 0xf). + +optional at91sam9260 properties: +- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up. + +optional at91sam9rl properties: +- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up. +- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up. + +optional at91sam9x5 properties: +- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up. + +Example: + + shdwc@fffffd10 { + compatible = "atmel,at91sam9260-shdwc"; + reg = <0xfffffd10 0x10>; + clocks = <&clk32k>; + }; + +Special Function Registers (SFR) + +Special Function Registers (SFR) manage specific aspects of the integrated +memory, bridge implementations, processor and other functionality not controlled +elsewhere. + +required properties: +- compatible: Should be "atmel,-sfr", "syscon". + can be "sama5d3" or "sama5d4". +- reg: Should contain registers location and length + + sfr@f0038000 { + compatible = "atmel,sama5d3-sfr", "syscon"; + reg = <0xf0038000 0x60>; + }; Copied: vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,bcm11351-cpu-method.txt (from r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351-cpu-method.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/device-tree/ianc-afaecb70/Bindings/arm/bcm/brcm,bcm11351-cpu-method.txt Thu Jan 28 20:36:03 2016 (r295013, copy of r295011, vendor/device-tree/dist/Bindings/arm/bcm/brcm,bcm11351-cpu-method.txt) @@ -0,0 +1,36 @@ +Broadcom Kona Family CPU Enable Method +-------------------------------------- +This binding defines the enable method used for starting secondary +CPUs in the following Broadcom SoCs: + BCM11130, BCM11140, BCM11351, BCM28145, BCM28155, BCM21664 + +The enable method is specified by defining the following required +properties in the "cpus" device tree node: + - enable-method = "brcm,bcm11351-cpu-method"; + - secondary-boot-reg = <...>; + +The secondary-boot-reg property is a u32 value that specifies the +physical address of the register used to request the ROM holding pen +code release a secondary CPU. The value written to the register is +formed by encoding the target CPU id into the low bits of the +physical start address it should jump to. + +Example: + cpus { + #address-cells = <1>; + #size-cells = <0>; + enable-method = "brcm,bcm11351-cpu-method"; + secondary-boot-reg = <0x3500417c>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0>; + }; + + cpu1: cpu@1 { + device_type = "cpu"; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Jan 28 21:30:51 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 628B8A71A58; Thu, 28 Jan 2016 21:30:51 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 39B831ED6; Thu, 28 Jan 2016 21:30:51 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SLUoYT022954; Thu, 28 Jan 2016 21:30:50 GMT (envelope-from hiren@FreeBSD.org) Received: (from hiren@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SLUnYs022950; Thu, 28 Jan 2016 21:30:49 GMT (envelope-from hiren@FreeBSD.org) Message-Id: <201601282130.u0SLUnYs022950@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hiren set sender to hiren@FreeBSD.org using -f From: Hiren Panchasara Date: Thu, 28 Jan 2016 21:30:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295015 - stable/10/sys/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 21:30:51 -0000 Author: hiren Date: Thu Jan 28 21:30:49 2016 New Revision: 295015 URL: https://svnweb.freebsd.org/changeset/base/295015 Log: MFC r294840 Persist timers TCPTV_PERSMIN and TCPTV_PERSMAX are hardcoded with 5 seconds and 60 seconds, respectively. Turn them into sysctls that can be tuned live. The default values of 5 seconds and 60 seconds have been retained. Modified: stable/10/sys/netinet/tcp_output.c stable/10/sys/netinet/tcp_subr.c stable/10/sys/netinet/tcp_timer.c stable/10/sys/netinet/tcp_timer.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/netinet/tcp_output.c ============================================================================== --- stable/10/sys/netinet/tcp_output.c Thu Jan 28 20:42:29 2016 (r295014) +++ stable/10/sys/netinet/tcp_output.c Thu Jan 28 21:30:49 2016 (r295015) @@ -1608,7 +1608,7 @@ tcp_setpersist(struct tcpcb *tp) * Start/restart persistance timer. */ TCPT_RANGESET(tt, t * tcp_backoff[tp->t_rxtshift], - TCPTV_PERSMIN, TCPTV_PERSMAX); + tcp_persmin, tcp_persmax); tcp_timer_activate(tp, TT_PERSIST, tt); if (tp->t_rxtshift < TCP_MAXRXTSHIFT) tp->t_rxtshift++; Modified: stable/10/sys/netinet/tcp_subr.c ============================================================================== --- stable/10/sys/netinet/tcp_subr.c Thu Jan 28 20:42:29 2016 (r295014) +++ stable/10/sys/netinet/tcp_subr.c Thu Jan 28 21:30:49 2016 (r295015) @@ -400,6 +400,8 @@ tcp_init(void) tcp_rexmit_min = TCPTV_MIN; if (tcp_rexmit_min < 1) tcp_rexmit_min = 1; + tcp_persmin = TCPTV_PERSMIN; + tcp_persmax = TCPTV_PERSMAX; tcp_rexmit_slop = TCPTV_CPU_VAR; tcp_finwait2_timeout = TCPTV_FINWAIT2_TIMEOUT; tcp_tcbhashsize = hashsize; Modified: stable/10/sys/netinet/tcp_timer.c ============================================================================== --- stable/10/sys/netinet/tcp_timer.c Thu Jan 28 20:42:29 2016 (r295014) +++ stable/10/sys/netinet/tcp_timer.c Thu Jan 28 21:30:49 2016 (r295015) @@ -71,6 +71,14 @@ __FBSDID("$FreeBSD$"); #include #endif +int tcp_persmin; +SYSCTL_PROC(_net_inet_tcp, OID_AUTO, persmin, CTLTYPE_INT|CTLFLAG_RW, + &tcp_persmin, 0, sysctl_msec_to_ticks, "I", "minimum persistence interval"); + +int tcp_persmax; +SYSCTL_PROC(_net_inet_tcp, OID_AUTO, persmax, CTLTYPE_INT|CTLFLAG_RW, + &tcp_persmax, 0, sysctl_msec_to_ticks, "I", "maximum persistence interval"); + int tcp_keepinit; SYSCTL_PROC(_net_inet_tcp, TCPCTL_KEEPINIT, keepinit, CTLTYPE_INT|CTLFLAG_RW, &tcp_keepinit, 0, sysctl_msec_to_ticks, "I", "time to establish connection"); Modified: stable/10/sys/netinet/tcp_timer.h ============================================================================== --- stable/10/sys/netinet/tcp_timer.h Thu Jan 28 20:42:29 2016 (r295014) +++ stable/10/sys/netinet/tcp_timer.h Thu Jan 28 21:30:49 2016 (r295015) @@ -78,7 +78,7 @@ #define TCPTV_RTOBASE ( 3*hz) /* assumed RTO if no info */ #define TCPTV_SRTTDFLT ( 3*hz) /* assumed RTT if no info */ -#define TCPTV_PERSMIN ( 5*hz) /* retransmit persistence */ +#define TCPTV_PERSMIN ( 5*hz) /* minimum persist interval */ #define TCPTV_PERSMAX ( 60*hz) /* maximum persist interval */ #define TCPTV_KEEP_INIT ( 75*hz) /* initial connect keepalive */ @@ -174,6 +174,8 @@ struct tcp_timer { #define TP_KEEPCNT(tp) ((tp)->t_keepcnt ? (tp)->t_keepcnt : tcp_keepcnt) #define TP_MAXIDLE(tp) (TP_KEEPCNT(tp) * TP_KEEPINTVL(tp)) +extern int tcp_persmin; /* minimum persist interval */ +extern int tcp_persmax; /* maximum persist interval */ extern int tcp_keepinit; /* time to establish connection */ extern int tcp_keepidle; /* time before keepalive probes begin */ extern int tcp_keepintvl; /* time between keepalive probes */ From owner-svn-src-all@freebsd.org Thu Jan 28 21:42:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA6CCA6E249; Thu, 28 Jan 2016 21:42:16 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7799AAE1; Thu, 28 Jan 2016 21:42:16 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SLgFLk028720; Thu, 28 Jan 2016 21:42:15 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SLgA10028669; Thu, 28 Jan 2016 21:42:10 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201601282142.u0SLgA10028669@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 28 Jan 2016 21:42:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295016 - in stable/10: crypto/openssl crypto/openssl/apps crypto/openssl/crypto crypto/openssl/crypto/aes crypto/openssl/crypto/bio crypto/openssl/crypto/bn crypto/openssl/crypto/camel... X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 21:42:17 -0000 Author: jkim Date: Thu Jan 28 21:42:10 2016 New Revision: 295016 URL: https://svnweb.freebsd.org/changeset/base/295016 Log: Merge OpenSSL 1.0.1r. Relnotes: yes Added: stable/10/crypto/openssl/doc/ssl/SSL_CTX_set_tlsext_status_cb.pod - copied unchanged from r295003, vendor-crypto/openssl/dist-1.0.1/doc/ssl/SSL_CTX_set_tlsext_status_cb.pod stable/10/crypto/openssl/util/pod2mantest - copied unchanged from r295003, vendor-crypto/openssl/dist-1.0.1/util/pod2mantest stable/10/secure/lib/libssl/man/SSL_CTX_set_tlsext_status_cb.3 (contents, props changed) Modified: stable/10/crypto/openssl/ACKNOWLEDGMENTS stable/10/crypto/openssl/CHANGES stable/10/crypto/openssl/Configure stable/10/crypto/openssl/INSTALL stable/10/crypto/openssl/LICENSE stable/10/crypto/openssl/Makefile stable/10/crypto/openssl/Makefile.org stable/10/crypto/openssl/NEWS stable/10/crypto/openssl/README stable/10/crypto/openssl/apps/engine.c stable/10/crypto/openssl/apps/ocsp.c stable/10/crypto/openssl/apps/pkcs12.c stable/10/crypto/openssl/apps/speed.c stable/10/crypto/openssl/apps/x509.c stable/10/crypto/openssl/crypto/aes/aes.h stable/10/crypto/openssl/crypto/aes/aes_cbc.c stable/10/crypto/openssl/crypto/aes/aes_cfb.c stable/10/crypto/openssl/crypto/aes/aes_core.c stable/10/crypto/openssl/crypto/aes/aes_ctr.c stable/10/crypto/openssl/crypto/aes/aes_ecb.c stable/10/crypto/openssl/crypto/aes/aes_ige.c stable/10/crypto/openssl/crypto/aes/aes_locl.h stable/10/crypto/openssl/crypto/aes/aes_misc.c stable/10/crypto/openssl/crypto/aes/aes_ofb.c stable/10/crypto/openssl/crypto/aes/aes_x86core.c stable/10/crypto/openssl/crypto/bio/bio.h stable/10/crypto/openssl/crypto/bio/bss_bio.c stable/10/crypto/openssl/crypto/bio/bss_conn.c stable/10/crypto/openssl/crypto/bio/bss_dgram.c stable/10/crypto/openssl/crypto/bn/bn_exp.c stable/10/crypto/openssl/crypto/bn/exptest.c stable/10/crypto/openssl/crypto/camellia/camellia.c stable/10/crypto/openssl/crypto/camellia/camellia.h stable/10/crypto/openssl/crypto/camellia/cmll_cbc.c stable/10/crypto/openssl/crypto/camellia/cmll_cfb.c stable/10/crypto/openssl/crypto/camellia/cmll_ctr.c stable/10/crypto/openssl/crypto/camellia/cmll_ecb.c stable/10/crypto/openssl/crypto/camellia/cmll_locl.h stable/10/crypto/openssl/crypto/camellia/cmll_misc.c stable/10/crypto/openssl/crypto/camellia/cmll_ofb.c stable/10/crypto/openssl/crypto/camellia/cmll_utl.c stable/10/crypto/openssl/crypto/des/des_old.c stable/10/crypto/openssl/crypto/des/des_old.h stable/10/crypto/openssl/crypto/des/des_old2.c stable/10/crypto/openssl/crypto/dsa/dsa_ossl.c stable/10/crypto/openssl/crypto/dso/dso.h stable/10/crypto/openssl/crypto/dso/dso_dl.c stable/10/crypto/openssl/crypto/dso/dso_dlfcn.c stable/10/crypto/openssl/crypto/dso/dso_lib.c stable/10/crypto/openssl/crypto/ec/ectest.c stable/10/crypto/openssl/crypto/engine/eng_all.c stable/10/crypto/openssl/crypto/evp/e_camellia.c stable/10/crypto/openssl/crypto/evp/e_old.c stable/10/crypto/openssl/crypto/evp/e_seed.c stable/10/crypto/openssl/crypto/mem_clr.c stable/10/crypto/openssl/crypto/o_dir.c stable/10/crypto/openssl/crypto/o_dir.h stable/10/crypto/openssl/crypto/o_dir_test.c stable/10/crypto/openssl/crypto/o_str.c stable/10/crypto/openssl/crypto/o_str.h stable/10/crypto/openssl/crypto/o_time.c stable/10/crypto/openssl/crypto/o_time.h stable/10/crypto/openssl/crypto/opensslv.h stable/10/crypto/openssl/crypto/rc4/rc4_utl.c stable/10/crypto/openssl/crypto/rsa/rsa_chk.c stable/10/crypto/openssl/crypto/rsa/rsa_sign.c stable/10/crypto/openssl/crypto/seed/seed_cbc.c stable/10/crypto/openssl/crypto/seed/seed_cfb.c stable/10/crypto/openssl/crypto/seed/seed_ecb.c stable/10/crypto/openssl/crypto/seed/seed_ofb.c stable/10/crypto/openssl/crypto/sha/sha1test.c stable/10/crypto/openssl/crypto/store/store.h stable/10/crypto/openssl/crypto/store/str_lib.c stable/10/crypto/openssl/crypto/store/str_locl.h stable/10/crypto/openssl/crypto/store/str_mem.c stable/10/crypto/openssl/crypto/store/str_meth.c stable/10/crypto/openssl/crypto/ts/ts_rsp_verify.c stable/10/crypto/openssl/crypto/ui/ui.h stable/10/crypto/openssl/crypto/ui/ui_compat.c stable/10/crypto/openssl/crypto/ui/ui_compat.h stable/10/crypto/openssl/crypto/ui/ui_lib.c stable/10/crypto/openssl/crypto/ui/ui_locl.h stable/10/crypto/openssl/crypto/ui/ui_openssl.c stable/10/crypto/openssl/crypto/ui/ui_util.c stable/10/crypto/openssl/crypto/x509/x509_vfy.c stable/10/crypto/openssl/crypto/x509/x509_vfy.h stable/10/crypto/openssl/crypto/x509v3/v3_pci.c stable/10/crypto/openssl/crypto/x509v3/v3_pcia.c stable/10/crypto/openssl/doc/apps/s_time.pod stable/10/crypto/openssl/doc/crypto/BIO_s_connect.pod stable/10/crypto/openssl/doc/ssl/SSL_CTX_set_tmp_dh_callback.pod stable/10/crypto/openssl/engines/e_chil.c stable/10/crypto/openssl/ssl/d1_both.c stable/10/crypto/openssl/ssl/kssl.c stable/10/crypto/openssl/ssl/kssl.h stable/10/crypto/openssl/ssl/kssl_lcl.h stable/10/crypto/openssl/ssl/s2_srvr.c stable/10/crypto/openssl/ssl/s3_clnt.c stable/10/crypto/openssl/ssl/s3_lib.c stable/10/crypto/openssl/ssl/s3_srvr.c stable/10/crypto/openssl/ssl/ssl.h stable/10/crypto/openssl/ssl/ssl_sess.c stable/10/crypto/openssl/ssl/t1_enc.c stable/10/crypto/openssl/ssl/t1_lib.c stable/10/crypto/openssl/util/pl/VC-32.pl stable/10/secure/lib/libcrypto/Makefile.inc stable/10/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 stable/10/secure/lib/libcrypto/man/ASN1_STRING_length.3 stable/10/secure/lib/libcrypto/man/ASN1_STRING_new.3 stable/10/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 stable/10/secure/lib/libcrypto/man/ASN1_generate_nconf.3 stable/10/secure/lib/libcrypto/man/BIO_ctrl.3 stable/10/secure/lib/libcrypto/man/BIO_f_base64.3 stable/10/secure/lib/libcrypto/man/BIO_f_buffer.3 stable/10/secure/lib/libcrypto/man/BIO_f_cipher.3 stable/10/secure/lib/libcrypto/man/BIO_f_md.3 stable/10/secure/lib/libcrypto/man/BIO_f_null.3 stable/10/secure/lib/libcrypto/man/BIO_f_ssl.3 stable/10/secure/lib/libcrypto/man/BIO_find_type.3 stable/10/secure/lib/libcrypto/man/BIO_new.3 stable/10/secure/lib/libcrypto/man/BIO_new_CMS.3 stable/10/secure/lib/libcrypto/man/BIO_push.3 stable/10/secure/lib/libcrypto/man/BIO_read.3 stable/10/secure/lib/libcrypto/man/BIO_s_accept.3 stable/10/secure/lib/libcrypto/man/BIO_s_bio.3 stable/10/secure/lib/libcrypto/man/BIO_s_connect.3 stable/10/secure/lib/libcrypto/man/BIO_s_fd.3 stable/10/secure/lib/libcrypto/man/BIO_s_file.3 stable/10/secure/lib/libcrypto/man/BIO_s_mem.3 stable/10/secure/lib/libcrypto/man/BIO_s_null.3 stable/10/secure/lib/libcrypto/man/BIO_s_socket.3 stable/10/secure/lib/libcrypto/man/BIO_set_callback.3 stable/10/secure/lib/libcrypto/man/BIO_should_retry.3 stable/10/secure/lib/libcrypto/man/BN_BLINDING_new.3 stable/10/secure/lib/libcrypto/man/BN_CTX_new.3 stable/10/secure/lib/libcrypto/man/BN_CTX_start.3 stable/10/secure/lib/libcrypto/man/BN_add.3 stable/10/secure/lib/libcrypto/man/BN_add_word.3 stable/10/secure/lib/libcrypto/man/BN_bn2bin.3 stable/10/secure/lib/libcrypto/man/BN_cmp.3 stable/10/secure/lib/libcrypto/man/BN_copy.3 stable/10/secure/lib/libcrypto/man/BN_generate_prime.3 stable/10/secure/lib/libcrypto/man/BN_mod_inverse.3 stable/10/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 stable/10/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 stable/10/secure/lib/libcrypto/man/BN_new.3 stable/10/secure/lib/libcrypto/man/BN_num_bytes.3 stable/10/secure/lib/libcrypto/man/BN_rand.3 stable/10/secure/lib/libcrypto/man/BN_set_bit.3 stable/10/secure/lib/libcrypto/man/BN_swap.3 stable/10/secure/lib/libcrypto/man/BN_zero.3 stable/10/secure/lib/libcrypto/man/CMS_add0_cert.3 stable/10/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3 stable/10/secure/lib/libcrypto/man/CMS_add1_signer.3 stable/10/secure/lib/libcrypto/man/CMS_compress.3 stable/10/secure/lib/libcrypto/man/CMS_decrypt.3 stable/10/secure/lib/libcrypto/man/CMS_encrypt.3 stable/10/secure/lib/libcrypto/man/CMS_final.3 stable/10/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3 stable/10/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3 stable/10/secure/lib/libcrypto/man/CMS_get0_type.3 stable/10/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3 stable/10/secure/lib/libcrypto/man/CMS_sign.3 stable/10/secure/lib/libcrypto/man/CMS_sign_receipt.3 stable/10/secure/lib/libcrypto/man/CMS_uncompress.3 stable/10/secure/lib/libcrypto/man/CMS_verify.3 stable/10/secure/lib/libcrypto/man/CMS_verify_receipt.3 stable/10/secure/lib/libcrypto/man/CONF_modules_free.3 stable/10/secure/lib/libcrypto/man/CONF_modules_load_file.3 stable/10/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3 stable/10/secure/lib/libcrypto/man/DH_generate_key.3 stable/10/secure/lib/libcrypto/man/DH_generate_parameters.3 stable/10/secure/lib/libcrypto/man/DH_get_ex_new_index.3 stable/10/secure/lib/libcrypto/man/DH_new.3 stable/10/secure/lib/libcrypto/man/DH_set_method.3 stable/10/secure/lib/libcrypto/man/DH_size.3 stable/10/secure/lib/libcrypto/man/DSA_SIG_new.3 stable/10/secure/lib/libcrypto/man/DSA_do_sign.3 stable/10/secure/lib/libcrypto/man/DSA_dup_DH.3 stable/10/secure/lib/libcrypto/man/DSA_generate_key.3 stable/10/secure/lib/libcrypto/man/DSA_generate_parameters.3 stable/10/secure/lib/libcrypto/man/DSA_get_ex_new_index.3 stable/10/secure/lib/libcrypto/man/DSA_new.3 stable/10/secure/lib/libcrypto/man/DSA_set_method.3 stable/10/secure/lib/libcrypto/man/DSA_sign.3 stable/10/secure/lib/libcrypto/man/DSA_size.3 stable/10/secure/lib/libcrypto/man/ERR_GET_LIB.3 stable/10/secure/lib/libcrypto/man/ERR_clear_error.3 stable/10/secure/lib/libcrypto/man/ERR_error_string.3 stable/10/secure/lib/libcrypto/man/ERR_get_error.3 stable/10/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 stable/10/secure/lib/libcrypto/man/ERR_load_strings.3 stable/10/secure/lib/libcrypto/man/ERR_print_errors.3 stable/10/secure/lib/libcrypto/man/ERR_put_error.3 stable/10/secure/lib/libcrypto/man/ERR_remove_state.3 stable/10/secure/lib/libcrypto/man/ERR_set_mark.3 stable/10/secure/lib/libcrypto/man/EVP_BytesToKey.3 stable/10/secure/lib/libcrypto/man/EVP_DigestInit.3 stable/10/secure/lib/libcrypto/man/EVP_DigestSignInit.3 stable/10/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3 stable/10/secure/lib/libcrypto/man/EVP_EncryptInit.3 stable/10/secure/lib/libcrypto/man/EVP_OpenInit.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_cmp.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_derive.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_keygen.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_new.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_print_private.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_sign.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_verify.3 stable/10/secure/lib/libcrypto/man/EVP_PKEY_verify_recover.3 stable/10/secure/lib/libcrypto/man/EVP_SealInit.3 stable/10/secure/lib/libcrypto/man/EVP_SignInit.3 stable/10/secure/lib/libcrypto/man/EVP_VerifyInit.3 stable/10/secure/lib/libcrypto/man/OBJ_nid2obj.3 stable/10/secure/lib/libcrypto/man/OPENSSL_Applink.3 stable/10/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 stable/10/secure/lib/libcrypto/man/OPENSSL_config.3 stable/10/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 stable/10/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 stable/10/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 stable/10/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3 stable/10/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3 stable/10/secure/lib/libcrypto/man/PKCS12_create.3 stable/10/secure/lib/libcrypto/man/PKCS12_parse.3 stable/10/secure/lib/libcrypto/man/PKCS7_decrypt.3 stable/10/secure/lib/libcrypto/man/PKCS7_encrypt.3 stable/10/secure/lib/libcrypto/man/PKCS7_sign.3 stable/10/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3 stable/10/secure/lib/libcrypto/man/PKCS7_verify.3 stable/10/secure/lib/libcrypto/man/RAND_add.3 stable/10/secure/lib/libcrypto/man/RAND_bytes.3 stable/10/secure/lib/libcrypto/man/RAND_cleanup.3 stable/10/secure/lib/libcrypto/man/RAND_egd.3 stable/10/secure/lib/libcrypto/man/RAND_load_file.3 stable/10/secure/lib/libcrypto/man/RAND_set_rand_method.3 stable/10/secure/lib/libcrypto/man/RSA_blinding_on.3 stable/10/secure/lib/libcrypto/man/RSA_check_key.3 stable/10/secure/lib/libcrypto/man/RSA_generate_key.3 stable/10/secure/lib/libcrypto/man/RSA_get_ex_new_index.3 stable/10/secure/lib/libcrypto/man/RSA_new.3 stable/10/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 stable/10/secure/lib/libcrypto/man/RSA_print.3 stable/10/secure/lib/libcrypto/man/RSA_private_encrypt.3 stable/10/secure/lib/libcrypto/man/RSA_public_encrypt.3 stable/10/secure/lib/libcrypto/man/RSA_set_method.3 stable/10/secure/lib/libcrypto/man/RSA_sign.3 stable/10/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 stable/10/secure/lib/libcrypto/man/RSA_size.3 stable/10/secure/lib/libcrypto/man/SMIME_read_CMS.3 stable/10/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 stable/10/secure/lib/libcrypto/man/SMIME_write_CMS.3 stable/10/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 stable/10/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 stable/10/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 stable/10/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 stable/10/secure/lib/libcrypto/man/X509_NAME_print_ex.3 stable/10/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3 stable/10/secure/lib/libcrypto/man/X509_STORE_CTX_get_ex_new_index.3 stable/10/secure/lib/libcrypto/man/X509_STORE_CTX_new.3 stable/10/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3 stable/10/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3 stable/10/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3 stable/10/secure/lib/libcrypto/man/X509_new.3 stable/10/secure/lib/libcrypto/man/X509_verify_cert.3 stable/10/secure/lib/libcrypto/man/bio.3 stable/10/secure/lib/libcrypto/man/blowfish.3 stable/10/secure/lib/libcrypto/man/bn.3 stable/10/secure/lib/libcrypto/man/bn_internal.3 stable/10/secure/lib/libcrypto/man/buffer.3 stable/10/secure/lib/libcrypto/man/crypto.3 stable/10/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3 stable/10/secure/lib/libcrypto/man/d2i_CMS_ContentInfo.3 stable/10/secure/lib/libcrypto/man/d2i_DHparams.3 stable/10/secure/lib/libcrypto/man/d2i_DSAPublicKey.3 stable/10/secure/lib/libcrypto/man/d2i_ECPrivateKey.3 stable/10/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3 stable/10/secure/lib/libcrypto/man/d2i_RSAPublicKey.3 stable/10/secure/lib/libcrypto/man/d2i_X509.3 stable/10/secure/lib/libcrypto/man/d2i_X509_ALGOR.3 stable/10/secure/lib/libcrypto/man/d2i_X509_CRL.3 stable/10/secure/lib/libcrypto/man/d2i_X509_NAME.3 stable/10/secure/lib/libcrypto/man/d2i_X509_REQ.3 stable/10/secure/lib/libcrypto/man/d2i_X509_SIG.3 stable/10/secure/lib/libcrypto/man/des.3 stable/10/secure/lib/libcrypto/man/dh.3 stable/10/secure/lib/libcrypto/man/dsa.3 stable/10/secure/lib/libcrypto/man/ecdsa.3 stable/10/secure/lib/libcrypto/man/engine.3 stable/10/secure/lib/libcrypto/man/err.3 stable/10/secure/lib/libcrypto/man/evp.3 stable/10/secure/lib/libcrypto/man/hmac.3 stable/10/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3 stable/10/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3 stable/10/secure/lib/libcrypto/man/lh_stats.3 stable/10/secure/lib/libcrypto/man/lhash.3 stable/10/secure/lib/libcrypto/man/md5.3 stable/10/secure/lib/libcrypto/man/mdc2.3 stable/10/secure/lib/libcrypto/man/pem.3 stable/10/secure/lib/libcrypto/man/rand.3 stable/10/secure/lib/libcrypto/man/rc4.3 stable/10/secure/lib/libcrypto/man/ripemd.3 stable/10/secure/lib/libcrypto/man/rsa.3 stable/10/secure/lib/libcrypto/man/sha.3 stable/10/secure/lib/libcrypto/man/threads.3 stable/10/secure/lib/libcrypto/man/ui.3 stable/10/secure/lib/libcrypto/man/ui_compat.3 stable/10/secure/lib/libcrypto/man/x509.3 stable/10/secure/lib/libssl/Makefile.man stable/10/secure/lib/libssl/man/SSL_CIPHER_get_name.3 stable/10/secure/lib/libssl/man/SSL_COMP_add_compression_method.3 stable/10/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3 stable/10/secure/lib/libssl/man/SSL_CTX_add_session.3 stable/10/secure/lib/libssl/man/SSL_CTX_ctrl.3 stable/10/secure/lib/libssl/man/SSL_CTX_flush_sessions.3 stable/10/secure/lib/libssl/man/SSL_CTX_free.3 stable/10/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3 stable/10/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3 stable/10/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3 stable/10/secure/lib/libssl/man/SSL_CTX_new.3 stable/10/secure/lib/libssl/man/SSL_CTX_sess_number.3 stable/10/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3 stable/10/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3 stable/10/secure/lib/libssl/man/SSL_CTX_sessions.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_cert_store.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_info_callback.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_mode.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_options.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_psk_client_callback.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_read_ahead.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_timeout.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_tlsext_ticket_key_cb.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3 stable/10/secure/lib/libssl/man/SSL_CTX_set_verify.3 stable/10/secure/lib/libssl/man/SSL_CTX_use_certificate.3 stable/10/secure/lib/libssl/man/SSL_CTX_use_psk_identity_hint.3 stable/10/secure/lib/libssl/man/SSL_SESSION_free.3 stable/10/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3 stable/10/secure/lib/libssl/man/SSL_SESSION_get_time.3 stable/10/secure/lib/libssl/man/SSL_accept.3 stable/10/secure/lib/libssl/man/SSL_alert_type_string.3 stable/10/secure/lib/libssl/man/SSL_clear.3 stable/10/secure/lib/libssl/man/SSL_connect.3 stable/10/secure/lib/libssl/man/SSL_do_handshake.3 stable/10/secure/lib/libssl/man/SSL_free.3 stable/10/secure/lib/libssl/man/SSL_get_SSL_CTX.3 stable/10/secure/lib/libssl/man/SSL_get_ciphers.3 stable/10/secure/lib/libssl/man/SSL_get_client_CA_list.3 stable/10/secure/lib/libssl/man/SSL_get_current_cipher.3 stable/10/secure/lib/libssl/man/SSL_get_default_timeout.3 stable/10/secure/lib/libssl/man/SSL_get_error.3 stable/10/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3 stable/10/secure/lib/libssl/man/SSL_get_ex_new_index.3 stable/10/secure/lib/libssl/man/SSL_get_fd.3 stable/10/secure/lib/libssl/man/SSL_get_peer_cert_chain.3 stable/10/secure/lib/libssl/man/SSL_get_peer_certificate.3 stable/10/secure/lib/libssl/man/SSL_get_psk_identity.3 stable/10/secure/lib/libssl/man/SSL_get_rbio.3 stable/10/secure/lib/libssl/man/SSL_get_session.3 stable/10/secure/lib/libssl/man/SSL_get_verify_result.3 stable/10/secure/lib/libssl/man/SSL_get_version.3 stable/10/secure/lib/libssl/man/SSL_library_init.3 stable/10/secure/lib/libssl/man/SSL_load_client_CA_file.3 stable/10/secure/lib/libssl/man/SSL_new.3 stable/10/secure/lib/libssl/man/SSL_pending.3 stable/10/secure/lib/libssl/man/SSL_read.3 stable/10/secure/lib/libssl/man/SSL_rstate_string.3 stable/10/secure/lib/libssl/man/SSL_session_reused.3 stable/10/secure/lib/libssl/man/SSL_set_bio.3 stable/10/secure/lib/libssl/man/SSL_set_connect_state.3 stable/10/secure/lib/libssl/man/SSL_set_fd.3 stable/10/secure/lib/libssl/man/SSL_set_session.3 stable/10/secure/lib/libssl/man/SSL_set_shutdown.3 stable/10/secure/lib/libssl/man/SSL_set_verify_result.3 stable/10/secure/lib/libssl/man/SSL_shutdown.3 stable/10/secure/lib/libssl/man/SSL_state_string.3 stable/10/secure/lib/libssl/man/SSL_want.3 stable/10/secure/lib/libssl/man/SSL_write.3 stable/10/secure/lib/libssl/man/d2i_SSL_SESSION.3 stable/10/secure/lib/libssl/man/ssl.3 stable/10/secure/usr.bin/openssl/man/CA.pl.1 stable/10/secure/usr.bin/openssl/man/asn1parse.1 stable/10/secure/usr.bin/openssl/man/c_rehash.1 stable/10/secure/usr.bin/openssl/man/ca.1 stable/10/secure/usr.bin/openssl/man/ciphers.1 stable/10/secure/usr.bin/openssl/man/cms.1 stable/10/secure/usr.bin/openssl/man/crl.1 stable/10/secure/usr.bin/openssl/man/crl2pkcs7.1 stable/10/secure/usr.bin/openssl/man/dgst.1 stable/10/secure/usr.bin/openssl/man/dhparam.1 stable/10/secure/usr.bin/openssl/man/dsa.1 stable/10/secure/usr.bin/openssl/man/dsaparam.1 stable/10/secure/usr.bin/openssl/man/ec.1 stable/10/secure/usr.bin/openssl/man/ecparam.1 stable/10/secure/usr.bin/openssl/man/enc.1 stable/10/secure/usr.bin/openssl/man/errstr.1 stable/10/secure/usr.bin/openssl/man/gendsa.1 stable/10/secure/usr.bin/openssl/man/genpkey.1 stable/10/secure/usr.bin/openssl/man/genrsa.1 stable/10/secure/usr.bin/openssl/man/nseq.1 stable/10/secure/usr.bin/openssl/man/ocsp.1 stable/10/secure/usr.bin/openssl/man/openssl.1 stable/10/secure/usr.bin/openssl/man/passwd.1 stable/10/secure/usr.bin/openssl/man/pkcs12.1 stable/10/secure/usr.bin/openssl/man/pkcs7.1 stable/10/secure/usr.bin/openssl/man/pkcs8.1 stable/10/secure/usr.bin/openssl/man/pkey.1 stable/10/secure/usr.bin/openssl/man/pkeyparam.1 stable/10/secure/usr.bin/openssl/man/pkeyutl.1 stable/10/secure/usr.bin/openssl/man/rand.1 stable/10/secure/usr.bin/openssl/man/req.1 stable/10/secure/usr.bin/openssl/man/rsa.1 stable/10/secure/usr.bin/openssl/man/rsautl.1 stable/10/secure/usr.bin/openssl/man/s_client.1 stable/10/secure/usr.bin/openssl/man/s_server.1 stable/10/secure/usr.bin/openssl/man/s_time.1 stable/10/secure/usr.bin/openssl/man/sess_id.1 stable/10/secure/usr.bin/openssl/man/smime.1 stable/10/secure/usr.bin/openssl/man/speed.1 stable/10/secure/usr.bin/openssl/man/spkac.1 stable/10/secure/usr.bin/openssl/man/ts.1 stable/10/secure/usr.bin/openssl/man/tsget.1 stable/10/secure/usr.bin/openssl/man/verify.1 stable/10/secure/usr.bin/openssl/man/version.1 stable/10/secure/usr.bin/openssl/man/x509.1 stable/10/secure/usr.bin/openssl/man/x509v3_config.1 Modified: stable/10/crypto/openssl/ACKNOWLEDGMENTS ============================================================================== --- stable/10/crypto/openssl/ACKNOWLEDGMENTS Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/ACKNOWLEDGMENTS Thu Jan 28 21:42:10 2016 (r295016) @@ -1,30 +1,2 @@ -The OpenSSL project depends on volunteer efforts and financial support from -the end user community. That support comes in the form of donations and paid -sponsorships, software support contracts, paid consulting services -and commissioned software development. - -Since all these activities support the continued development and improvement -of OpenSSL we consider all these clients and customers as sponsors of the -OpenSSL project. - -We would like to identify and thank the following such sponsors for their past -or current significant support of the OpenSSL project: - -Major support: - - Qualys http://www.qualys.com/ - -Very significant support: - - OpenGear: http://www.opengear.com/ - -Significant support: - - PSW Group: http://www.psw.net/ - Acano Ltd. http://acano.com/ - -Please note that we ask permission to identify sponsors and that some sponsors -we consider eligible for inclusion here have requested to remain anonymous. - -Additional sponsorship or financial support is always welcome: for more -information please contact the OpenSSL Software Foundation. +Please https://www.openssl.org/community/thanks.html for the current +acknowledgements. Modified: stable/10/crypto/openssl/CHANGES ============================================================================== --- stable/10/crypto/openssl/CHANGES Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/CHANGES Thu Jan 28 21:42:10 2016 (r295016) @@ -2,6 +2,30 @@ OpenSSL CHANGES _______________ + Changes between 1.0.1q and 1.0.1r [28 Jan 2016] + + *) Protection for DH small subgroup attacks + + As a precautionary measure the SSL_OP_SINGLE_DH_USE option has been + switched on by default and cannot be disabled. This could have some + performance impact. + [Matt Caswell] + + *) SSLv2 doesn't block disabled ciphers + + A malicious client can negotiate SSLv2 ciphers that have been disabled on + the server and complete SSLv2 handshakes even if all SSLv2 ciphers have + been disabled, provided that the SSLv2 protocol was not also disabled via + SSL_OP_NO_SSLv2. + + This issue was reported to OpenSSL on 26th December 2015 by Nimrod Aviram + and Sebastian Schinzel. + (CVE-2015-3197) + [Viktor Dukhovni] + + *) Reject DH handshakes with parameters shorter than 1024 bits. + [Kurt Roeckx] + Changes between 1.0.1p and 1.0.1q [3 Dec 2015] *) Certificate verify crash with missing PSS parameter Modified: stable/10/crypto/openssl/Configure ============================================================================== --- stable/10/crypto/openssl/Configure Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/Configure Thu Jan 28 21:42:10 2016 (r295016) @@ -105,6 +105,9 @@ my $usage="Usage: Configure [no- my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED"; +# Warn that "make depend" should be run? +my $warn_make_depend = 0; + my $clang_devteam_warn = "-Wno-unused-parameter -Wno-missing-field-initializers -Wno-language-extension-token -Wno-extended-offsetof -Qunused-arguments"; my $strict_warnings = 0; @@ -1446,7 +1449,7 @@ if ($target =~ /\-icc$/) # Intel C compi # linker only when --prefix is not /usr. if ($target =~ /^BSD\-/) { - $shared_ldflag.=" -Wl,-rpath,\$(LIBRPATH)" if ($prefix !~ m|^/usr[/]*$|); + $shared_ldflag.=" -Wl,-rpath,\$\$(LIBRPATH)" if ($prefix !~ m|^/usr[/]*$|); } if ($sys_id ne "") @@ -1953,14 +1956,8 @@ EOF &dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s'); } if ($depflags ne $default_depflags && !$make_depend) { - print < (note that your message will be recorded in the request tracker publicly readable - via http://www.openssl.org/support/rt.html and will be forwarded to a - public mailing list). Include the output of "make report" in your message. - Please check out the request tracker. Maybe the bug was already - reported or has already been fixed. + at https://www.openssl.org/community/index.html#bugs and will be + forwarded to a public mailing list). Include the output of "make + report" in your message. Please check out the request tracker. Maybe + the bug was already reported or has already been fixed. [If you encounter assembler error messages, try the "no-asm" configuration option as an immediate fix.] Modified: stable/10/crypto/openssl/LICENSE ============================================================================== --- stable/10/crypto/openssl/LICENSE Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/LICENSE Thu Jan 28 21:42:10 2016 (r295016) @@ -12,7 +12,7 @@ --------------- /* ==================================================================== - * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1998-2016 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: stable/10/crypto/openssl/Makefile ============================================================================== --- stable/10/crypto/openssl/Makefile Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/Makefile Thu Jan 28 21:42:10 2016 (r295016) @@ -4,7 +4,7 @@ ## Makefile for OpenSSL ## -VERSION=1.0.1q +VERSION=1.0.1r MAJOR=1 MINOR=0.1 SHLIB_VERSION_NUMBER=1.0.0 @@ -181,8 +181,7 @@ SHARED_LDFLAGS= GENERAL= Makefile BASENAME= openssl NAME= $(BASENAME)-$(VERSION) -TARFILE= $(NAME).tar -WTARFILE= $(NAME)-win.tar +TARFILE= ../$(NAME).tar EXHEADER= e_os2.h HEADER= e_os.h @@ -501,38 +500,35 @@ TABLE: Configure # would occur. Therefore the list of files is temporarily stored into a file # and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal # tar does not support the --files-from option. -TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \ - --owner openssl:0 --group openssl:0 \ - --transform 's|^|openssl-$(VERSION)/|' \ +TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from $(TARFILE).list \ + --owner 0 --group 0 \ + --transform 's|^|$(NAME)/|' \ -cvf - -../$(TARFILE).list: +$(TARFILE).list: find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \ \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \ - \! -name '*test' \! -name '.#*' \! -name '*~' \ - | sort > ../$(TARFILE).list + \( \! -name '*test' -o -name bctest -o -name pod2mantest \) \ + \! -name '.#*' \! -name '*~' \! -type l \ + | sort > $(TARFILE).list -tar: ../$(TARFILE).list +tar: $(TARFILE).list find . -type d -print | xargs chmod 755 find . -type f -print | xargs chmod a+r find . -type f -perm -0100 -print | xargs chmod a+x - $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE).gz - -tar-snap: ../$(TARFILE).list - $(TAR_COMMAND) > ../$(TARFILE) - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE) + $(TAR_COMMAND) | gzip --best > $(TARFILE).gz + rm -f $(TARFILE).list + ls -l $(TARFILE).gz + +tar-snap: $(TARFILE).list + $(TAR_COMMAND) > $(TARFILE) + rm -f $(TARFILE).list + ls -l $(TARFILE) dist: $(PERL) Configure dist - @$(MAKE) dist_pem_h @$(MAKE) SDIRS='$(SDIRS)' clean - @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar - -dist_pem_h: - (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar install: all install_docs install_sw Modified: stable/10/crypto/openssl/Makefile.org ============================================================================== --- stable/10/crypto/openssl/Makefile.org Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/Makefile.org Thu Jan 28 21:42:10 2016 (r295016) @@ -179,8 +179,7 @@ SHARED_LDFLAGS= GENERAL= Makefile BASENAME= openssl NAME= $(BASENAME)-$(VERSION) -TARFILE= $(NAME).tar -WTARFILE= $(NAME)-win.tar +TARFILE= ../$(NAME).tar EXHEADER= e_os2.h HEADER= e_os.h @@ -499,38 +498,35 @@ TABLE: Configure # would occur. Therefore the list of files is temporarily stored into a file # and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal # tar does not support the --files-from option. -TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \ - --owner openssl:0 --group openssl:0 \ - --transform 's|^|openssl-$(VERSION)/|' \ +TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from $(TARFILE).list \ + --owner 0 --group 0 \ + --transform 's|^|$(NAME)/|' \ -cvf - -../$(TARFILE).list: +$(TARFILE).list: find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \ \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \ - \! -name '*test' \! -name '.#*' \! -name '*~' \ - | sort > ../$(TARFILE).list + \( \! -name '*test' -o -name bctest -o -name pod2mantest \) \ + \! -name '.#*' \! -name '*~' \! -type l \ + | sort > $(TARFILE).list -tar: ../$(TARFILE).list +tar: $(TARFILE).list find . -type d -print | xargs chmod 755 find . -type f -print | xargs chmod a+r find . -type f -perm -0100 -print | xargs chmod a+x - $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE).gz - -tar-snap: ../$(TARFILE).list - $(TAR_COMMAND) > ../$(TARFILE) - rm -f ../$(TARFILE).list - ls -l ../$(TARFILE) + $(TAR_COMMAND) | gzip --best > $(TARFILE).gz + rm -f $(TARFILE).list + ls -l $(TARFILE).gz + +tar-snap: $(TARFILE).list + $(TAR_COMMAND) > $(TARFILE) + rm -f $(TARFILE).list + ls -l $(TARFILE) dist: $(PERL) Configure dist - @$(MAKE) dist_pem_h @$(MAKE) SDIRS='$(SDIRS)' clean - @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar - -dist_pem_h: - (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar install: all install_docs install_sw Modified: stable/10/crypto/openssl/NEWS ============================================================================== --- stable/10/crypto/openssl/NEWS Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/NEWS Thu Jan 28 21:42:10 2016 (r295016) @@ -5,6 +5,11 @@ This file gives a brief overview of the major changes between each OpenSSL release. For more details please read the CHANGES file. + Major changes between OpenSSL 1.0.1q and OpenSSL 1.0.1r [28 Jan 2016] + + o Protection for DH small subgroup attacks + o SSLv2 doesn't block disabled ciphers (CVE-2015-3197) + Major changes between OpenSSL 1.0.1p and OpenSSL 1.0.1q [3 Dec 2015] o Certificate verify crash with missing PSS parameter (CVE-2015-3194) Modified: stable/10/crypto/openssl/README ============================================================================== --- stable/10/crypto/openssl/README Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/README Thu Jan 28 21:42:10 2016 (r295016) @@ -1,5 +1,5 @@ - OpenSSL 1.0.1q 3 Dec 2015 + OpenSSL 1.0.1r 28 Jan 2016 Copyright (c) 1998-2015 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson @@ -90,11 +90,12 @@ In order to avoid spam, this is a moderated mailing list, and it might take a day for the ticket to show up. (We also scan posts to make sure - that security disclosures aren't publically posted by mistake.) Mail to - this address is recorded in the public RT (request tracker) database (see - https://www.openssl.org/support/rt.html for details) and also forwarded - the public openssl-dev mailing list. Confidential mail may be sent to - openssl-security@openssl.org (PGP key available from the key servers). + that security disclosures aren't publically posted by mistake.) Mail + to this address is recorded in the public RT (request tracker) database + (see https://www.openssl.org/community/index.html#bugs for details) and + also forwarded the public openssl-dev mailing list. Confidential mail + may be sent to openssl-security@openssl.org (PGP key available from the + key servers). Please do NOT use this for general assistance or support queries. Just because something doesn't work the way you expect does not mean it Modified: stable/10/crypto/openssl/apps/engine.c ============================================================================== --- stable/10/crypto/openssl/apps/engine.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/apps/engine.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* apps/engine.c -*- mode: C; c-file-style: "eay" -*- */ +/* apps/engine.c */ /* * Written by Richard Levitte for the OpenSSL project * 2000. Modified: stable/10/crypto/openssl/apps/ocsp.c ============================================================================== --- stable/10/crypto/openssl/apps/ocsp.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/apps/ocsp.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1003,7 +1003,7 @@ static int make_ocsp_response(OCSP_RESPO bs = OCSP_BASICRESP_new(); thisupd = X509_gmtime_adj(NULL, 0); if (ndays != -1) - nextupd = X509_gmtime_adj(NULL, nmin * 60 + ndays * 3600 * 24); + nextupd = X509_time_adj_ex(NULL, ndays, nmin * 60, NULL); /* Examine each certificate id in the request */ for (i = 0; i < id_count; i++) { Modified: stable/10/crypto/openssl/apps/pkcs12.c ============================================================================== --- stable/10/crypto/openssl/apps/pkcs12.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/apps/pkcs12.c Thu Jan 28 21:42:10 2016 (r295016) @@ -79,7 +79,8 @@ const EVP_CIPHER *enc; # define CLCERTS 0x8 # define CACERTS 0x10 -int get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **chain); +static int get_cert_chain(X509 *cert, X509_STORE *store, + STACK_OF(X509) **chain); int dump_certs_keys_p12(BIO *out, PKCS12 *p12, char *pass, int passlen, int options, char *pempass); int dump_certs_pkeys_bags(BIO *out, STACK_OF(PKCS12_SAFEBAG) *bags, @@ -594,7 +595,7 @@ int MAIN(int argc, char **argv) vret = get_cert_chain(ucert, store, &chain2); X509_STORE_free(store); - if (!vret) { + if (vret == X509_V_OK) { /* Exclude verified certificate */ for (i = 1; i < sk_X509_num(chain2); i++) sk_X509_push(certs, sk_X509_value(chain2, i)); @@ -602,7 +603,7 @@ int MAIN(int argc, char **argv) X509_free(sk_X509_value(chain2, 0)); sk_X509_free(chain2); } else { - if (vret >= 0) + if (vret != X509_V_ERR_UNSPECIFIED) BIO_printf(bio_err, "Error %s getting chain.\n", X509_verify_cert_error_string(vret)); else @@ -906,36 +907,25 @@ int dump_certs_pkeys_bag(BIO *out, PKCS1 /* Given a single certificate return a verified chain or NULL if error */ -/* Hope this is OK .... */ - -int get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **chain) +static int get_cert_chain(X509 *cert, X509_STORE *store, + STACK_OF(X509) **chain) { X509_STORE_CTX store_ctx; - STACK_OF(X509) *chn; + STACK_OF(X509) *chn = NULL; int i = 0; - /* - * FIXME: Should really check the return status of X509_STORE_CTX_init - * for an error, but how that fits into the return value of this function - * is less obvious. - */ - X509_STORE_CTX_init(&store_ctx, store, cert, NULL); - if (X509_verify_cert(&store_ctx) <= 0) { - i = X509_STORE_CTX_get_error(&store_ctx); - if (i == 0) - /* - * avoid returning 0 if X509_verify_cert() did not set an - * appropriate error value in the context - */ - i = -1; - chn = NULL; - goto err; - } else + if (!X509_STORE_CTX_init(&store_ctx, store, cert, NULL)) { + *chain = NULL; + return X509_V_ERR_UNSPECIFIED; + } + + if (X509_verify_cert(&store_ctx) > 0) chn = X509_STORE_CTX_get1_chain(&store_ctx); - err: + else if ((i = X509_STORE_CTX_get_error(&store_ctx)) == 0) + i = X509_V_ERR_UNSPECIFIED; + X509_STORE_CTX_cleanup(&store_ctx); *chain = chn; - return i; } Modified: stable/10/crypto/openssl/apps/speed.c ============================================================================== --- stable/10/crypto/openssl/apps/speed.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/apps/speed.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* apps/speed.c -*- mode:C; c-file-style: "eay" -*- */ +/* apps/speed.c */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * Modified: stable/10/crypto/openssl/apps/x509.c ============================================================================== --- stable/10/crypto/openssl/apps/x509.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/apps/x509.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1170,12 +1170,7 @@ static int sign(X509 *x, EVP_PKEY *pkey, if (X509_gmtime_adj(X509_get_notBefore(x), 0) == NULL) goto err; - /* Lets just make it 12:00am GMT, Jan 1 1970 */ - /* memcpy(x->cert_info->validity->notBefore,"700101120000Z",13); */ - /* 28 days to be certified */ - - if (X509_gmtime_adj(X509_get_notAfter(x), (long)60 * 60 * 24 * days) == - NULL) + if (X509_time_adj_ex(X509_get_notAfter(x), days, 0, NULL) == NULL) goto err; if (!X509_set_pubkey(x, pkey)) Modified: stable/10/crypto/openssl/crypto/aes/aes.h ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes.h Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes.h Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes.h */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/aes/aes_cbc.c ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_cbc.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_cbc.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_cbc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_cbc.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/aes/aes_cfb.c ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_cfb.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_cfb.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_cfb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_cfb.c */ /* ==================================================================== * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/aes/aes_core.c ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_core.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_core.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_core.c */ /** * rijndael-alg-fst.c * Modified: stable/10/crypto/openssl/crypto/aes/aes_ctr.c ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_ctr.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_ctr.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ctr.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ctr.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/aes/aes_ecb.c ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_ecb.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_ecb.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ecb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ecb.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/aes/aes_ige.c ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_ige.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_ige.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ige.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ige.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/aes/aes_locl.h ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_locl.h Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_locl.h Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes.h */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/aes/aes_misc.c ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_misc.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_misc.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_misc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_misc.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/aes/aes_ofb.c ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_ofb.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_ofb.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_ofb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_ofb.c */ /* ==================================================================== * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/aes/aes_x86core.c ============================================================================== --- stable/10/crypto/openssl/crypto/aes/aes_x86core.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/aes/aes_x86core.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes_core.c */ /** * rijndael-alg-fst.c * Modified: stable/10/crypto/openssl/crypto/bio/bio.h ============================================================================== --- stable/10/crypto/openssl/crypto/bio/bio.h Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/bio/bio.h Thu Jan 28 21:42:10 2016 (r295016) @@ -478,11 +478,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_hostname(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0) # define BIO_get_conn_port(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1) # define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2) -# define BIO_get_conn_int_port(b) BIO_int_ctrl(b,BIO_C_GET_CONNECT,3,0) +# define BIO_get_conn_int_port(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,0,NULL) # define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) -/* BIO_s_accept_socket() */ +/* BIO_s_accept() */ # define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) # define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0) /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ @@ -495,6 +495,7 @@ struct bio_dgram_sctp_prinfo { # define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) # define BIO_get_bind_mode(b,mode) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) +/* BIO_s_accept() and BIO_s_connect() */ # define BIO_do_connect(b) BIO_do_handshake(b) # define BIO_do_accept(b) BIO_do_handshake(b) # define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) @@ -514,12 +515,15 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_url(b,url) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,(char *)(url)) # define BIO_get_no_connect_return(b) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,NULL) +/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ # define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) # define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) +/* BIO_s_file() */ # define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) # define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) +/* BIO_s_fd() and BIO_s_file() */ # define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) # define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) Modified: stable/10/crypto/openssl/crypto/bio/bss_bio.c ============================================================================== --- stable/10/crypto/openssl/crypto/bio/bss_bio.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/bio/bss_bio.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/bio/bss_bio.c -*- Mode: C; c-file-style: "eay" -*- */ +/* crypto/bio/bss_bio.c */ /* ==================================================================== * Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/bio/bss_conn.c ============================================================================== --- stable/10/crypto/openssl/crypto/bio/bss_conn.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/bio/bss_conn.c Thu Jan 28 21:42:10 2016 (r295016) @@ -419,7 +419,7 @@ static long conn_ctrl(BIO *b, int cmd, l { BIO *dbio; int *ip; - const char **pptr; + const char **pptr = NULL; long ret = 1; BIO_CONNECT *data; @@ -442,19 +442,28 @@ static long conn_ctrl(BIO *b, int cmd, l case BIO_C_GET_CONNECT: if (ptr != NULL) { pptr = (const char **)ptr; - if (num == 0) { - *pptr = data->param_hostname; + } - } else if (num == 1) { - *pptr = data->param_port; - } else if (num == 2) { - *pptr = (char *)&(data->ip[0]); - } else if (num == 3) { - *((int *)ptr) = data->port; + if (b->init) { + if (pptr != NULL) { + ret = 1; + if (num == 0) { + *pptr = data->param_hostname; + } else if (num == 1) { + *pptr = data->param_port; + } else if (num == 2) { + *pptr = (char *)&(data->ip[0]); + } else { + ret = 0; + } + } + if (num == 3) { + ret = data->port; } - if ((!b->init) || (ptr == NULL)) + } else { + if (pptr != NULL) *pptr = "not initialized"; - ret = 1; + ret = 0; } break; case BIO_C_SET_CONNECT: Modified: stable/10/crypto/openssl/crypto/bio/bss_dgram.c ============================================================================== --- stable/10/crypto/openssl/crypto/bio/bss_dgram.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/bio/bss_dgram.c Thu Jan 28 21:42:10 2016 (r295016) @@ -515,10 +515,8 @@ static long dgram_ctrl(BIO *b, int cmd, switch (cmd) { case BIO_CTRL_RESET: num = 0; - case BIO_C_FILE_SEEK: ret = 0; break; - case BIO_C_FILE_TELL: case BIO_CTRL_INFO: ret = 0; break; Modified: stable/10/crypto/openssl/crypto/bn/bn_exp.c ============================================================================== --- stable/10/crypto/openssl/crypto/bn/bn_exp.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/bn/bn_exp.c Thu Jan 28 21:42:10 2016 (r295016) @@ -271,9 +271,14 @@ int BN_mod_exp_recp(BIGNUM *r, const BIG } bits = BN_num_bits(p); - if (bits == 0) { - ret = BN_one(r); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(r); + } else { + ret = BN_one(r); + } return ret; } @@ -407,7 +412,13 @@ int BN_mod_exp_mont(BIGNUM *rr, const BI } bits = BN_num_bits(p); if (bits == 0) { - ret = BN_one(rr); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(rr); + } else { + ret = BN_one(rr); + } return ret; } @@ -579,7 +590,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBU * precomputation memory layout to limit data-dependency to a minimum to * protect secret exponents (cf. the hyper-threading timing attacks pointed * out by Colin Percival, - * http://www.daemong-consideredperthreading-considered-harmful/) + * http://www.daemonology.net/hyperthreading-considered-harmful/) */ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, @@ -608,7 +619,13 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr bits = BN_num_bits(p); if (bits == 0) { - ret = BN_one(rr); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(rr); + } else { + ret = BN_one(rr); + } return ret; } @@ -908,8 +925,9 @@ int BN_mod_exp_mont_word(BIGNUM *rr, BN_ if (BN_is_one(m)) { ret = 1; BN_zero(rr); - } else + } else { ret = BN_one(rr); + } return ret; } if (a == 0) { @@ -1023,9 +1041,14 @@ int BN_mod_exp_simple(BIGNUM *r, const B } bits = BN_num_bits(p); - - if (bits == 0) { - ret = BN_one(r); + if (bits == 0) { + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) { + ret = 1; + BN_zero(r); + } else { + ret = BN_one(r); + } return ret; } Modified: stable/10/crypto/openssl/crypto/bn/exptest.c ============================================================================== --- stable/10/crypto/openssl/crypto/bn/exptest.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/bn/exptest.c Thu Jan 28 21:42:10 2016 (r295016) @@ -73,14 +73,34 @@ static const char rnd_seed[] = "string to make the random number generator think it has entropy"; /* + * Test that r == 0 in test_exp_mod_zero(). Returns one on success, + * returns zero and prints debug output otherwise. + */ +static int a_is_zero_mod_one(const char *method, const BIGNUM *r, + const BIGNUM *a) { + if (!BN_is_zero(r)) { + fprintf(stderr, "%s failed:\n", method); + fprintf(stderr, "a ** 0 mod 1 = r (should be 0)\n"); + fprintf(stderr, "a = "); + BN_print_fp(stderr, a); + fprintf(stderr, "\nr = "); + BN_print_fp(stderr, r); + fprintf(stderr, "\n"); + return 0; + } + return 1; +} + +/* * test_exp_mod_zero tests that x**0 mod 1 == 0. It returns zero on success. */ static int test_exp_mod_zero() { BIGNUM a, p, m; BIGNUM r; + BN_ULONG one_word = 1; BN_CTX *ctx = BN_CTX_new(); - int ret = 1; + int ret = 1, failed = 0; BN_init(&m); BN_one(&m); @@ -92,21 +112,65 @@ static int test_exp_mod_zero() BN_zero(&p); BN_init(&r); - BN_mod_exp(&r, &a, &p, &m, ctx); - BN_CTX_free(ctx); - if (BN_is_zero(&r)) - ret = 0; - else { - printf("1**0 mod 1 = "); - BN_print_fp(stdout, &r); - printf(", should be 0\n"); + if (!BN_rand(&a, 1024, 0, 0)) + goto err; + + if (!BN_mod_exp(&r, &a, &p, &m, ctx)) + goto err; + + if (!a_is_zero_mod_one("BN_mod_exp", &r, &a)) + failed = 1; + + if (!BN_mod_exp_recp(&r, &a, &p, &m, ctx)) + goto err; + + if (!a_is_zero_mod_one("BN_mod_exp_recp", &r, &a)) + failed = 1; + + if (!BN_mod_exp_simple(&r, &a, &p, &m, ctx)) + goto err; + + if (!a_is_zero_mod_one("BN_mod_exp_simple", &r, &a)) + failed = 1; + + if (!BN_mod_exp_mont(&r, &a, &p, &m, ctx, NULL)) + goto err; + + if (!a_is_zero_mod_one("BN_mod_exp_mont", &r, &a)) + failed = 1; + + if (!BN_mod_exp_mont_consttime(&r, &a, &p, &m, ctx, NULL)) { + goto err; + } + + if (!a_is_zero_mod_one("BN_mod_exp_mont_consttime", &r, &a)) + failed = 1; + + /* + * A different codepath exists for single word multiplication + * in non-constant-time only. + */ + if (!BN_mod_exp_mont_word(&r, one_word, &p, &m, ctx, NULL)) + goto err; + + if (!BN_is_zero(&r)) { + fprintf(stderr, "BN_mod_exp_mont_word failed:\n"); + fprintf(stderr, "1 ** 0 mod 1 = r (should be 0)\n"); + fprintf(stderr, "r = "); + BN_print_fp(stderr, &r); + fprintf(stderr, "\n"); + return 0; } + ret = failed; + + err: BN_free(&r); BN_free(&a); BN_free(&p); BN_free(&m); + BN_CTX_free(ctx); return ret; } Modified: stable/10/crypto/openssl/crypto/camellia/camellia.c ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/camellia.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/camellia.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia.c */ /* ==================================================================== * Copyright 2006 NTT (Nippon Telegraph and Telephone Corporation) . * ALL RIGHTS RESERVED. @@ -67,7 +67,7 @@ /* * Algorithm Specification - * http://info.isl.llia/specicrypt/eng/camellia/specifications.html + * http://info.isl.ntt.co.jp/crypt/eng/camellia/specifications.html */ /* Modified: stable/10/crypto/openssl/crypto/camellia/camellia.h ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/camellia.h Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/camellia.h Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia.h */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/camellia/cmll_cbc.c ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/cmll_cbc.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/cmll_cbc.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_cbc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_cbc.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/camellia/cmll_cfb.c ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/cmll_cfb.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/cmll_cfb.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_cfb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_cfb.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/camellia/cmll_ctr.c ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/cmll_ctr.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/cmll_ctr.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_ctr.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_ctr.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/camellia/cmll_ecb.c ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/cmll_ecb.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/cmll_ecb.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_ecb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_ecb.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/camellia/cmll_locl.h ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/cmll_locl.h Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/cmll_locl.h Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_locl.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_locl.h */ /* ==================================================================== * Copyright 2006 NTT (Nippon Telegraph and Telephone Corporation) . * ALL RIGHTS RESERVED. Modified: stable/10/crypto/openssl/crypto/camellia/cmll_misc.c ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/cmll_misc.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/cmll_misc.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_misc.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_misc.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/camellia/cmll_ofb.c ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/cmll_ofb.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/cmll_ofb.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia_ofb.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia_ofb.c */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/camellia/cmll_utl.c ============================================================================== --- stable/10/crypto/openssl/crypto/camellia/cmll_utl.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/camellia/cmll_utl.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/camellia/cmll_utl.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/cmll_utl.c */ /* ==================================================================== * Copyright (c) 2011 The OpenSSL Project. All rights reserved. * Modified: stable/10/crypto/openssl/crypto/des/des_old.c ============================================================================== --- stable/10/crypto/openssl/crypto/des/des_old.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/des/des_old.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/des/des_old.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/des/des_old.c */ /*- * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING Modified: stable/10/crypto/openssl/crypto/des/des_old.h ============================================================================== --- stable/10/crypto/openssl/crypto/des/des_old.h Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/des/des_old.h Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/des/des_old.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/des/des_old.h */ /*- * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING Modified: stable/10/crypto/openssl/crypto/des/des_old2.c ============================================================================== --- stable/10/crypto/openssl/crypto/des/des_old2.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/des/des_old2.c Thu Jan 28 21:42:10 2016 (r295016) @@ -1,4 +1,4 @@ -/* crypto/des/des_old.c -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/des/des_old.c */ /* * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING The Modified: stable/10/crypto/openssl/crypto/dsa/dsa_ossl.c ============================================================================== --- stable/10/crypto/openssl/crypto/dsa/dsa_ossl.c Thu Jan 28 21:30:49 2016 (r295015) +++ stable/10/crypto/openssl/crypto/dsa/dsa_ossl.c Thu Jan 28 21:42:10 2016 (r295016) @@ -187,9 +187,6 @@ static DSA_SIG *dsa_do_sign(const unsign if (!BN_mod_mul(s, s, kinv, dsa->q, ctx)) goto err; - ret = DSA_SIG_new(); - if (ret == NULL) - goto err; /* * Redo if r or s is zero as required by FIPS 186-3: this is very * unlikely. @@ -201,11 +198,14 @@ static DSA_SIG *dsa_do_sign(const unsign } goto redo; } + ret = DSA_SIG_new(); + if (ret == NULL) + goto err; ret->r = r; ret->s = s; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Jan 28 21:45:26 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B399FA6E4FF; Thu, 28 Jan 2016 21:45:26 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 90938D50; Thu, 28 Jan 2016 21:45:26 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SLjPsE028983; Thu, 28 Jan 2016 21:45:25 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SLjPk5028981; Thu, 28 Jan 2016 21:45:25 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601282145.u0SLjPk5028981@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 28 Jan 2016 21:45:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295017 - in head/sys: dev/filemon modules/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 21:45:26 -0000 Author: bdrewery Date: Thu Jan 28 21:45:25 2016 New Revision: 295017 URL: https://svnweb.freebsd.org/changeset/base/295017 Log: filemon: Use process_exec EVENTHANDLER to capture sys_execve. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon_wrapper.c head/sys/modules/filemon/Makefile Modified: head/sys/dev/filemon/filemon_wrapper.c ============================================================================== --- head/sys/dev/filemon/filemon_wrapper.c Thu Jan 28 21:42:10 2016 (r295016) +++ head/sys/dev/filemon/filemon_wrapper.c Thu Jan 28 21:45:25 2016 (r295017) @@ -29,8 +29,10 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include +#include #include "opt_compat.h" @@ -44,7 +46,6 @@ __FBSDID("$FreeBSD$"); (2011-09-10) so this code is broken for 9-CURRENT September 10th-16th. */ #define sys_chdir chdir -#define sys_execve execve #define sys_link link #define sys_open open #define sys_rename rename @@ -56,6 +57,7 @@ __FBSDID("$FreeBSD$"); #endif #endif /* __FreeBSD_version */ +static eventhandler_tag filemon_exec_tag; static eventhandler_tag filemon_exit_tag; static eventhandler_tag filemon_fork_tag; @@ -137,62 +139,33 @@ filemon_wrapper_chdir(struct thread *td, return (ret); } -static int -filemon_wrapper_execve(struct thread *td, struct execve_args *uap) +static void +filemon_event_process_exec(void *arg __unused, struct proc *p, + struct image_params *imgp) { - char fname[MAXPATHLEN]; - int ret; - size_t done; - size_t len; struct filemon *filemon; + char *fullpath, *freepath; + size_t len; - copyinstr(uap->fname, fname, sizeof(fname), &done); - - if ((ret = sys_execve(td, uap)) == 0) { - if ((filemon = filemon_pid_check(curproc)) != NULL) { - len = snprintf(filemon->msgbufr, - sizeof(filemon->msgbufr), "E %d %s\n", - curproc->p_pid, fname); - - filemon_output(filemon, filemon->msgbufr, len); - - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); - } - } - - return (ret); -} + if ((filemon = filemon_pid_check(p)) != NULL) { + fullpath = ""; + freepath = NULL; -#if defined(COMPAT_IA32) || defined(COMPAT_FREEBSD32) || defined(COMPAT_ARCH32) -static int -filemon_wrapper_freebsd32_execve(struct thread *td, - struct freebsd32_execve_args *uap) -{ - char fname[MAXPATHLEN]; - int ret; - size_t done; - size_t len; - struct filemon *filemon; + vn_fullpath(FIRST_THREAD_IN_PROC(p), imgp->vp, &fullpath, + &freepath); - copyinstr(uap->fname, fname, sizeof(fname), &done); + len = snprintf(filemon->msgbufr, + sizeof(filemon->msgbufr), "E %d %s\n", + p->p_pid, fullpath); - if ((ret = freebsd32_execve(td, uap)) == 0) { - if ((filemon = filemon_pid_check(curproc)) != NULL) { - len = snprintf(filemon->msgbufr, - sizeof(filemon->msgbufr), "E %d %s\n", - curproc->p_pid, fname); + filemon_output(filemon, filemon->msgbufr, len); - filemon_output(filemon, filemon->msgbufr, len); + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); - } + free(freepath, M_TEMP); } - - return (ret); } -#endif static int filemon_wrapper_open(struct thread *td, struct open_args *uap) @@ -550,7 +523,6 @@ filemon_wrapper_install(void) #endif sv_table[SYS_chdir].sy_call = (sy_call_t *) filemon_wrapper_chdir; - sv_table[SYS_execve].sy_call = (sy_call_t *) filemon_wrapper_execve; sv_table[SYS_open].sy_call = (sy_call_t *) filemon_wrapper_open; sv_table[SYS_openat].sy_call = (sy_call_t *) filemon_wrapper_openat; sv_table[SYS_rename].sy_call = (sy_call_t *) filemon_wrapper_rename; @@ -566,7 +538,6 @@ filemon_wrapper_install(void) sv_table = ia32_freebsd_sysvec.sv_table; sv_table[FREEBSD32_SYS_chdir].sy_call = (sy_call_t *) filemon_wrapper_chdir; - sv_table[FREEBSD32_SYS_freebsd32_execve].sy_call = (sy_call_t *) filemon_wrapper_freebsd32_execve; sv_table[FREEBSD32_SYS_open].sy_call = (sy_call_t *) filemon_wrapper_open; sv_table[FREEBSD32_SYS_openat].sy_call = (sy_call_t *) filemon_wrapper_openat; sv_table[FREEBSD32_SYS_rename].sy_call = (sy_call_t *) filemon_wrapper_rename; @@ -579,6 +550,8 @@ filemon_wrapper_install(void) #endif #endif /* COMPAT_ARCH32 */ + filemon_exec_tag = EVENTHANDLER_REGISTER(process_exec, + filemon_event_process_exec, NULL, EVENTHANDLER_PRI_LAST); filemon_exit_tag = EVENTHANDLER_REGISTER(process_exit, filemon_event_process_exit, NULL, EVENTHANDLER_PRI_LAST); filemon_fork_tag = EVENTHANDLER_REGISTER(process_fork, @@ -595,7 +568,6 @@ filemon_wrapper_deinstall(void) #endif sv_table[SYS_chdir].sy_call = (sy_call_t *)sys_chdir; - sv_table[SYS_execve].sy_call = (sy_call_t *)sys_execve; sv_table[SYS_open].sy_call = (sy_call_t *)sys_open; sv_table[SYS_openat].sy_call = (sy_call_t *)sys_openat; sv_table[SYS_rename].sy_call = (sy_call_t *)sys_rename; @@ -611,7 +583,6 @@ filemon_wrapper_deinstall(void) sv_table = ia32_freebsd_sysvec.sv_table; sv_table[FREEBSD32_SYS_chdir].sy_call = (sy_call_t *)sys_chdir; - sv_table[FREEBSD32_SYS_freebsd32_execve].sy_call = (sy_call_t *)freebsd32_execve; sv_table[FREEBSD32_SYS_open].sy_call = (sy_call_t *)sys_open; sv_table[FREEBSD32_SYS_openat].sy_call = (sy_call_t *)sys_openat; sv_table[FREEBSD32_SYS_rename].sy_call = (sy_call_t *)sys_rename; @@ -624,6 +595,7 @@ filemon_wrapper_deinstall(void) #endif #endif /* COMPAT_ARCH32 */ + EVENTHANDLER_DEREGISTER(process_exec, filemon_exec_tag); EVENTHANDLER_DEREGISTER(process_exit, filemon_exit_tag); EVENTHANDLER_DEREGISTER(process_fork, filemon_fork_tag); } Modified: head/sys/modules/filemon/Makefile ============================================================================== --- head/sys/modules/filemon/Makefile Thu Jan 28 21:42:10 2016 (r295016) +++ head/sys/modules/filemon/Makefile Thu Jan 28 21:45:25 2016 (r295017) @@ -4,6 +4,6 @@ KMOD= filemon SRCS= ${KMOD}.c -SRCS+= opt_compat.h +SRCS+= opt_compat.h vnode_if.h .include From owner-svn-src-all@freebsd.org Thu Jan 28 22:08:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6AF5A7041C; Thu, 28 Jan 2016 22:08:43 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8D8101DB2; Thu, 28 Jan 2016 22:08:43 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SM8gRE035156; Thu, 28 Jan 2016 22:08:42 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SM8gv9035154; Thu, 28 Jan 2016 22:08:42 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201601282208.u0SM8gv9035154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Thu, 28 Jan 2016 22:08:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295018 - stable/10/share/man/man4 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 22:08:43 -0000 Author: brooks Date: Thu Jan 28 22:08:42 2016 New Revision: 295018 URL: https://svnweb.freebsd.org/changeset/base/295018 Log: MFC r294452: Add a simple manpage for the cfi(4) and associated cfid(4) drivers. Sponsored by: DARPA, AFRL Added: stable/10/share/man/man4/cfi.4 - copied unchanged from r294452, head/share/man/man4/cfi.4 Modified: stable/10/share/man/man4/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man4/Makefile ============================================================================== --- stable/10/share/man/man4/Makefile Thu Jan 28 21:45:25 2016 (r295017) +++ stable/10/share/man/man4/Makefile Thu Jan 28 22:08:42 2016 (r295018) @@ -94,6 +94,7 @@ MAN= aac.4 \ ${_ccd.4} \ cd.4 \ cdce.4 \ + cfi.4 \ ch.4 \ ciss.4 \ cm.4 \ @@ -575,6 +576,7 @@ MLINKS+=bwn.4 if_bwn.4 MLINKS+=${_bxe.4} ${_if_bxe.4} MLINKS+=cas.4 if_cas.4 MLINKS+=cdce.4 if_cdce.4 +MLINKS+=cfi.4 cfid.4 MLINKS+=crypto.4 cryptodev.4 MLINKS+=cue.4 if_cue.4 MLINKS+=cxgb.4 if_cxgb.4 Copied: stable/10/share/man/man4/cfi.4 (from r294452, head/share/man/man4/cfi.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/share/man/man4/cfi.4 Thu Jan 28 22:08:42 2016 (r295018, copy of r294452, head/share/man/man4/cfi.4) @@ -0,0 +1,94 @@ +.\"- +.\" Copyright (c) 2015-2016 SRI International +.\" All rights reserved. +.\" +.\" This software was developed by SRI International and the University of +.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) +.\" ("CTSRD"), as part of the DARPA CRASH research programme. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd January 20, 2016 +.Dt CFI 4 +.Os +.Sh NAME +.Nm cfi , +.Nm cfid +.Nd driver for Common Flash Interface (CFI) NOR flash +.Sh SYNOPSIS +.Cd "device cfi" +.Cd "device cfid" +.Cd "options CFI_SUPPORT_STRATAFLASH" +.Cd "options CFI_ARMEDANDDANGEROUS" +.Pp +In +.Pa /boot/device.hints : +.Cd hint.cfi.0.at="nexus0" +.Cd hint.cfi.0.maddr=0x74000000 +.Cd hint.cfi.0.msize=0x4000000 +.Pp +In DTS file: +.Cd flash@74000000 { +.Cd " compatible =" Qo cfi-flash Qc ; +.Cd " reg = <0x74000000 0x4000000>;" +.Cd }; +.Sh DESCRIPTION +The +.Nm +device driver provides a management interface to NOR flash devices supporting +the Common Flash Interface (CFI) specification. +Its companion device +.Nm cfid +provides a +.Xr geom 4 +disk interface to the device. +.Pp +Special support for features of the Intel StrataFlash line are available +with the +.Cd CFI_SUPPORT_STRATAFLASH +kernel option. +Additional support for write-once bits to switch part of Intel StrataFlash +devices to read-only can be enabled by the +.Cd CFI_ARMEDANDDANGEROUS +kernel option. +.El +.Sh SEE ALSO +.Xr led 4 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 8.0 . +.Sh AUTHORS +The +.Nm +driver was written by +.An Juniper Networks +with StrataFlash support by +.An Sam Leffler . +This manual page was written by SRI International and the University of +Cambridge Computer Laboratory under DARPA/AFRL contract +.Pq FA8750-10-C-0237 +.Pq Do CTSRD Dc , +as part of the DARPA CRASH research programme. From owner-svn-src-all@freebsd.org Thu Jan 28 22:24:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2798DA70D36 for ; Thu, 28 Jan 2016 22:24:27 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-wm0-x230.google.com (mail-wm0-x230.google.com [IPv6:2a00:1450:400c:c09::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C9641A7F for ; Thu, 28 Jan 2016 22:24:26 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-wm0-x230.google.com with SMTP id p63so44562568wmp.1 for ; Thu, 28 Jan 2016 14:24:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=gS/QTpnEgSs+3Jk2xS9m5T3AAu9tVXAUuBVz2GWHOyc=; b=SkgmcXVkfIfzF9Dg6XwDcQlia4nObx9GJadRkjOpsqIkXRgf+eRiNLfrRBCedWf8zZ UTTtztxS73PwcRogArhpCKMmyZVBX+Wz1LzYFbUuNMnyUMdnPNpMv6ysgukEgaWsnPrc LYtPV3UjnVXmSmBOWo0biPZO/sDRg6NEXNlDc0mUc3Ud62DOUEn5yo/e2Miw7zWQsHuk ejyjbccqQVbugP1nBCfMgUBgbpH7sQq/aCdr+pPo1OheFwicMu0gcbPrWviysQuY1MZ7 Pl6MF+UGM3sWyusWlu/MH2qv+Y4oGgcClpfbqJ38Y+rc625NMuwSNHKjSIWGBd1JRIvM 24HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=gS/QTpnEgSs+3Jk2xS9m5T3AAu9tVXAUuBVz2GWHOyc=; b=dpjQUGP4Dxvv1gHEYaAWXiLVbkiyMvhzdXAOV7hMeIfLbQudbnO83rEwGudDDLXbzE Xq8mNojReXiDtT7+cnhHSqxaEQEGXmyc4X5IcZep3lID6L441tOyWJm1PuMvDQTucc2F tB2EeHgLcOcZohtheJiNO4LvhYTH+j8SP8Yc5WF6Wv95Outv5xTRyKkTTf2AMbL6BFlG 9RmmB0mgVHZdeWpR9JfVvgyHmnFadrw7C2fGnNiS5Mv1jbN4aLxNc2o7a6XTd4dwBZiz 9Ma6Tuhx2al12ULGXemZwtdBzCkhXscaVYKvsdZ+NkYCS+yE+tZm0sL++WgBxMdZkKDv szZQ== X-Gm-Message-State: AG10YOQaATRNRMfqNybaDSsWH3xLu6pWUghn4fk4+rW+lG2T7YFY2onN/EVQ6yaAjr6CS7ev29FJw4BvZQM4hxZh MIME-Version: 1.0 X-Received: by 10.28.184.78 with SMTP id i75mr5718202wmf.22.1454019865372; Thu, 28 Jan 2016 14:24:25 -0800 (PST) Received: by 10.194.82.6 with HTTP; Thu, 28 Jan 2016 14:24:25 -0800 (PST) In-Reply-To: <201601281605.u0SG5kYU027051@repo.freebsd.org> References: <201601281605.u0SG5kYU027051@repo.freebsd.org> Date: Thu, 28 Jan 2016 23:24:25 +0100 Message-ID: Subject: Re: svn commit: r294995 - head/sys/netinet From: Oliver Pinter To: Michael Tuexen Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 22:24:27 -0000 On Thu, Jan 28, 2016 at 5:05 PM, Michael Tuexen wrote: > Author: tuexen > Date: Thu Jan 28 16:05:46 2016 > New Revision: 294995 > URL: https://svnweb.freebsd.org/changeset/base/294995 > > Log: > Always look in the TCP pool. > This fixes issues with a restarting peer when the listening > 1-to-1 style socket is closed. > > MFC after: 3 days > > Modified: > head/sys/netinet/sctp_input.c > head/sys/netinet/sctp_pcb.c > > Modified: head/sys/netinet/sctp_input.c > ============================================================================== > --- head/sys/netinet/sctp_input.c Thu Jan 28 15:44:14 2016 (r294994) > +++ head/sys/netinet/sctp_input.c Thu Jan 28 16:05:46 2016 (r294995) > @@ -5688,6 +5688,7 @@ sctp_common_input_processing(struct mbuf > if (net->port == 0) { > sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); > } > +printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port)); Are these debug printf intended? > net->port = port; > } > #endif > @@ -5719,6 +5720,7 @@ sctp_common_input_processing(struct mbuf > if (net->port == 0) { > sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); > } > +printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port)); > net->port = port; > } > #endif > @@ -5831,6 +5833,7 @@ sctp_common_input_processing(struct mbuf > if (net->port == 0) { > sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); > } > +printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port)); > net->port = port; > } > #endif > > Modified: head/sys/netinet/sctp_pcb.c > ============================================================================== > --- head/sys/netinet/sctp_pcb.c Thu Jan 28 15:44:14 2016 (r294994) > +++ head/sys/netinet/sctp_pcb.c Thu Jan 28 16:05:46 2016 (r294995) > @@ -2256,7 +2256,6 @@ sctp_findassociation_addr(struct mbuf *m > struct sctphdr *sh, struct sctp_chunkhdr *ch, > struct sctp_inpcb **inp_p, struct sctp_nets **netp, uint32_t vrf_id) > { > - int find_tcp_pool; > struct sctp_tcb *stcb; > struct sctp_inpcb *inp; > > @@ -2268,25 +2267,13 @@ sctp_findassociation_addr(struct mbuf *m > return (stcb); > } > } > - find_tcp_pool = 0; > - /* > - * Don't consider INIT chunks since that breaks 1-to-1 sockets: When > - * a server closes the listener, incoming INIT chunks are not > - * responsed by an INIT-ACK chunk. > - */ > - if ((ch->chunk_type != SCTP_INITIATION_ACK) && > - (ch->chunk_type != SCTP_COOKIE_ACK) && > - (ch->chunk_type != SCTP_COOKIE_ECHO)) { > - /* Other chunk types go to the tcp pool. */ > - find_tcp_pool = 1; > - } > if (inp_p) { > stcb = sctp_findassociation_addr_sa(src, dst, inp_p, netp, > - find_tcp_pool, vrf_id); > + 1, vrf_id); > inp = *inp_p; > } else { > stcb = sctp_findassociation_addr_sa(src, dst, &inp, netp, > - find_tcp_pool, vrf_id); > + 1, vrf_id); > } > SCTPDBG(SCTP_DEBUG_PCB1, "stcb:%p inp:%p\n", (void *)stcb, (void *)inp); > if (stcb == NULL && inp) { > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" From owner-svn-src-all@freebsd.org Thu Jan 28 22:34:30 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4CF7A712EA; Thu, 28 Jan 2016 22:34:30 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 91AA812A7; Thu, 28 Jan 2016 22:34:30 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SMYTdW044141; Thu, 28 Jan 2016 22:34:29 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SMYT5Y044140; Thu, 28 Jan 2016 22:34:29 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201601282234.u0SMYT5Y044140@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Thu, 28 Jan 2016 22:34:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295019 - stable/10/sys/mips/include X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 22:34:30 -0000 Author: brooks Date: Thu Jan 28 22:34:29 2016 New Revision: 295019 URL: https://svnweb.freebsd.org/changeset/base/295019 Log: MFC r294463: Shift saved floating point registers up in jmp_buf. sigmask_t is 128-bits so requires two slots. Obtained from: CheriBSD (93699cb9b6e73980ac369e379cea9772c9494ccc) Sponsored by: DARPA, AFRL Modified: stable/10/sys/mips/include/asm.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/mips/include/asm.h ============================================================================== --- stable/10/sys/mips/include/asm.h Thu Jan 28 22:08:42 2016 (r295018) +++ stable/10/sys/mips/include/asm.h Thu Jan 28 22:34:29 2016 (r295019) @@ -706,20 +706,21 @@ _C_LABEL(x): /* Only valid with the _JB_MAGIC_SETJMP magic */ #define _JB_SIGMASK 13 +#define __JB_SIGMASK_REMAINDER 14 /* sigmask_t is 128-bits */ -#define _JB_FPREG_F20 14 -#define _JB_FPREG_F21 15 -#define _JB_FPREG_F22 16 -#define _JB_FPREG_F23 17 -#define _JB_FPREG_F24 18 -#define _JB_FPREG_F25 19 -#define _JB_FPREG_F26 20 -#define _JB_FPREG_F27 21 -#define _JB_FPREG_F28 22 -#define _JB_FPREG_F29 23 -#define _JB_FPREG_F30 24 -#define _JB_FPREG_F31 25 -#define _JB_FPREG_FCSR 26 +#define _JB_FPREG_F20 15 +#define _JB_FPREG_F21 16 +#define _JB_FPREG_F22 17 +#define _JB_FPREG_F23 18 +#define _JB_FPREG_F24 19 +#define _JB_FPREG_F25 20 +#define _JB_FPREG_F26 21 +#define _JB_FPREG_F27 22 +#define _JB_FPREG_F28 23 +#define _JB_FPREG_F29 24 +#define _JB_FPREG_F30 25 +#define _JB_FPREG_F31 26 +#define _JB_FPREG_FCSR 27 /* * Various macros for dealing with TLB hazards From owner-svn-src-all@freebsd.org Thu Jan 28 22:57:11 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8792FA71FBA; Thu, 28 Jan 2016 22:57:11 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3B2A9613; Thu, 28 Jan 2016 22:57:11 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SMvAM3051003; Thu, 28 Jan 2016 22:57:10 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SMvAhg051002; Thu, 28 Jan 2016 22:57:10 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201601282257.u0SMvAhg051002@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Thu, 28 Jan 2016 22:57:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295020 - stable/10/lib/libc/mips X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 22:57:11 -0000 Author: brooks Date: Thu Jan 28 22:57:09 2016 New Revision: 295020 URL: https://svnweb.freebsd.org/changeset/base/295020 Log: MFC r294515: Fix the implementations of PSEUDO_NOERROR and PSEUDO. The PSEUDO* macros should not declare , only _ and __sys_. This was causing the interposing C wrappers to be ignored due to link order. Reviewed by: kib Obtained from: CheriBSD (4e8e13c90fc6a80e1520de44a6864cfd78b3b56d) Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D4097 Modified: stable/10/lib/libc/mips/SYS.h Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/mips/SYS.h ============================================================================== --- stable/10/lib/libc/mips/SYS.h Thu Jan 28 22:34:29 2016 (r295019) +++ stable/10/lib/libc/mips/SYS.h Thu Jan 28 22:57:09 2016 (r295020) @@ -100,13 +100,31 @@ * Do a syscall that cannot fail (sync, get{p,u,g,eu,eg)id) */ #define RSYSCALL_NOERROR(x) \ - PSEUDO_NOERROR(x) +LEAF(__sys_ ## x); \ + .weak _C_LABEL(x); \ + _C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x)); \ + .weak _C_LABEL(__CONCAT(_,x)); \ + _C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x)); \ + SYSTRAP(x); \ + j ra; \ +END(__sys_ ## x) /* * Do a normal syscall. */ #define RSYSCALL(x) \ - PSEUDO(x) +LEAF(__sys_ ## x); \ + .weak _C_LABEL(x); \ + _C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x)); \ + .weak _C_LABEL(__CONCAT(_,x)); \ + _C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x)); \ + PIC_PROLOGUE(__sys_ ## x); \ + SYSTRAP(x); \ + bne a3,zero,err; \ + PIC_RETURN(); \ +err: \ + PIC_TAILCALL(__cerror); \ +END(__sys_ ## x) /* * Do a renamed or pseudo syscall (e.g., _exit()), where the entrypoint @@ -114,18 +132,14 @@ */ #define PSEUDO_NOERROR(x) \ LEAF(__sys_ ## x); \ - .weak _C_LABEL(x); \ - _C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x)); \ .weak _C_LABEL(__CONCAT(_,x)); \ _C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x)); \ SYSTRAP(x); \ j ra; \ - END(__sys_ ## x) +END(__sys_ ## x) #define PSEUDO(x) \ LEAF(__sys_ ## x); \ - .weak _C_LABEL(x); \ - _C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x)); \ .weak _C_LABEL(__CONCAT(_,x)); \ _C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x)); \ PIC_PROLOGUE(__sys_ ## x); \ From owner-svn-src-all@freebsd.org Thu Jan 28 23:12:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7D899D94CE; Thu, 28 Jan 2016 23:12:13 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95AD0C57; Thu, 28 Jan 2016 23:12:13 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SNCC9I056910; Thu, 28 Jan 2016 23:12:12 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SNCCZJ056909; Thu, 28 Jan 2016 23:12:12 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601282312.u0SNCCZJ056909@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 28 Jan 2016 23:12:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295021 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 23:12:13 -0000 Author: tuexen Date: Thu Jan 28 23:12:12 2016 New Revision: 295021 URL: https://svnweb.freebsd.org/changeset/base/295021 Log: Remove debug output which was committed by accident. Thanks to Oliver Pinter for reporting. MFC after: 3 days X-MFC with: r294995 Modified: head/sys/netinet/sctp_input.c Modified: head/sys/netinet/sctp_input.c ============================================================================== --- head/sys/netinet/sctp_input.c Thu Jan 28 22:57:09 2016 (r295020) +++ head/sys/netinet/sctp_input.c Thu Jan 28 23:12:12 2016 (r295021) @@ -5688,7 +5688,6 @@ sctp_common_input_processing(struct mbuf if (net->port == 0) { sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); } -printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port)); net->port = port; } #endif @@ -5720,7 +5719,6 @@ printf("Changing remote encaps port from if (net->port == 0) { sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); } -printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port)); net->port = port; } #endif @@ -5833,7 +5831,6 @@ printf("Changing remote encaps port from if (net->port == 0) { sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); } -printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port)); net->port = port; } #endif From owner-svn-src-all@freebsd.org Thu Jan 28 23:13:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A086A9D9538; Thu, 28 Jan 2016 23:13:13 +0000 (UTC) (envelope-from tuexen@freebsd.org) Received: from mail-n.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.franken.de", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 54395DE9; Thu, 28 Jan 2016 23:13:13 +0000 (UTC) (envelope-from tuexen@freebsd.org) Received: from [192.168.1.200] (p4FE315DD.dip0.t-ipconnect.de [79.227.21.221]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTP id 5B8971C0B462F; Fri, 29 Jan 2016 00:13:09 +0100 (CET) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\)) Subject: Re: svn commit: r294995 - head/sys/netinet From: Michael Tuexen In-Reply-To: Date: Fri, 29 Jan 2016 00:13:08 +0100 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <7FF45A03-6FC8-4FFF-94E5-BC6212F5EF02@freebsd.org> References: <201601281605.u0SG5kYU027051@repo.freebsd.org> To: Oliver Pinter X-Mailer: Apple Mail (2.3112) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 23:13:13 -0000 > On 28 Jan 2016, at 23:24, Oliver Pinter = wrote: >=20 > On Thu, Jan 28, 2016 at 5:05 PM, Michael Tuexen = wrote: >> Author: tuexen >> Date: Thu Jan 28 16:05:46 2016 >> New Revision: 294995 >> URL: https://svnweb.freebsd.org/changeset/base/294995 >>=20 >> Log: >> Always look in the TCP pool. >> This fixes issues with a restarting peer when the listening >> 1-to-1 style socket is closed. >>=20 >> MFC after: 3 days >>=20 >> Modified: >> head/sys/netinet/sctp_input.c >> head/sys/netinet/sctp_pcb.c >>=20 >> Modified: head/sys/netinet/sctp_input.c >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sys/netinet/sctp_input.c Thu Jan 28 15:44:14 2016 = (r294994) >> +++ head/sys/netinet/sctp_input.c Thu Jan 28 16:05:46 2016 = (r294995) >> @@ -5688,6 +5688,7 @@ sctp_common_input_processing(struct mbuf >> if (net->port =3D=3D 0) { >> sctp_pathmtu_adjustment(stcb, = net->mtu - sizeof(struct udphdr)); >> } >> +printf("Changing remote encaps port from %u to %u.\n", = ntohs(net->port), ntohs(port)); >=20 > Are these debug printf intended? No. Fixed in https://svnweb.freebsd.org/changeset/base/295021 Thanks for reporting! Best regards Michael >=20 >> net->port =3D port; >> } >> #endif >> @@ -5719,6 +5720,7 @@ sctp_common_input_processing(struct mbuf >> if (net->port =3D=3D 0) { >> sctp_pathmtu_adjustment(stcb, net->mtu - = sizeof(struct udphdr)); >> } >> +printf("Changing remote encaps port from %u to %u.\n", = ntohs(net->port), ntohs(port)); >> net->port =3D port; >> } >> #endif >> @@ -5831,6 +5833,7 @@ sctp_common_input_processing(struct mbuf >> if (net->port =3D=3D 0) { >> sctp_pathmtu_adjustment(stcb, = net->mtu - sizeof(struct udphdr)); >> } >> +printf("Changing remote encaps port from %u to %u.\n", = ntohs(net->port), ntohs(port)); >> net->port =3D port; >> } >> #endif >>=20 >> Modified: head/sys/netinet/sctp_pcb.c >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sys/netinet/sctp_pcb.c Thu Jan 28 15:44:14 2016 = (r294994) >> +++ head/sys/netinet/sctp_pcb.c Thu Jan 28 16:05:46 2016 = (r294995) >> @@ -2256,7 +2256,6 @@ sctp_findassociation_addr(struct mbuf *m >> struct sctphdr *sh, struct sctp_chunkhdr *ch, >> struct sctp_inpcb **inp_p, struct sctp_nets **netp, uint32_t = vrf_id) >> { >> - int find_tcp_pool; >> struct sctp_tcb *stcb; >> struct sctp_inpcb *inp; >>=20 >> @@ -2268,25 +2267,13 @@ sctp_findassociation_addr(struct mbuf *m >> return (stcb); >> } >> } >> - find_tcp_pool =3D 0; >> - /* >> - * Don't consider INIT chunks since that breaks 1-to-1 = sockets: When >> - * a server closes the listener, incoming INIT chunks are not >> - * responsed by an INIT-ACK chunk. >> - */ >> - if ((ch->chunk_type !=3D SCTP_INITIATION_ACK) && >> - (ch->chunk_type !=3D SCTP_COOKIE_ACK) && >> - (ch->chunk_type !=3D SCTP_COOKIE_ECHO)) { >> - /* Other chunk types go to the tcp pool. */ >> - find_tcp_pool =3D 1; >> - } >> if (inp_p) { >> stcb =3D sctp_findassociation_addr_sa(src, dst, inp_p, = netp, >> - find_tcp_pool, vrf_id); >> + 1, vrf_id); >> inp =3D *inp_p; >> } else { >> stcb =3D sctp_findassociation_addr_sa(src, dst, &inp, = netp, >> - find_tcp_pool, vrf_id); >> + 1, vrf_id); >> } >> SCTPDBG(SCTP_DEBUG_PCB1, "stcb:%p inp:%p\n", (void *)stcb, = (void *)inp); >> if (stcb =3D=3D NULL && inp) { >> _______________________________________________ >> svn-src-head@freebsd.org mailing list >> https://lists.freebsd.org/mailman/listinfo/svn-src-head >> To unsubscribe, send any mail to = "svn-src-head-unsubscribe@freebsd.org" >=20 From owner-svn-src-all@freebsd.org Thu Jan 28 23:15:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7E91E9D95D0; Thu, 28 Jan 2016 23:15:16 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5600BF84; Thu, 28 Jan 2016 23:15:16 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0SNFFkm057141; Thu, 28 Jan 2016 23:15:15 GMT (envelope-from jimharris@FreeBSD.org) Received: (from jimharris@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0SNFFuX057139; Thu, 28 Jan 2016 23:15:15 GMT (envelope-from jimharris@FreeBSD.org) Message-Id: <201601282315.u0SNFFuX057139@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jimharris set sender to jimharris@FreeBSD.org using -f From: Jim Harris Date: Thu, 28 Jan 2016 23:15:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295022 - in head: share/man/man4 sys/dev/nvd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 23:15:16 -0000 Author: jimharris Date: Thu Jan 28 23:15:14 2016 New Revision: 295022 URL: https://svnweb.freebsd.org/changeset/base/295022 Log: nvd: add hw.nvd.delete_max tunable The NVMe specification does not define a maximum or optimal delete size, so technically max delete size is min(full size of namespace, 2^32 - 1 LBAs). A single delete operation for a multi-TB NVMe namespace though may take much longer to complete than the nvme(4) I/O timeout period. So choose a sensible default here that is still suitably large to minimize the number of overall delete operations. This also fixes possible uint32_t overflow on initial TRIM operation for zpool create operations for NVMe namespaces with >4G LBAs. MFC after: 3 days Sponsored by: Intel Modified: head/share/man/man4/nvd.4 head/sys/dev/nvd/nvd.c Modified: head/share/man/man4/nvd.4 ============================================================================== --- head/share/man/man4/nvd.4 Thu Jan 28 23:12:12 2016 (r295021) +++ head/share/man/man4/nvd.4 Thu Jan 28 23:15:14 2016 (r295022) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2012-2014 Intel Corporation +.\" Copyright (c) 2012-2016 Intel Corporation .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -33,7 +33,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 18, 2014 +.Dd January 28, 2016 .Dt NVD 4 .Os .Sh NAME @@ -74,6 +74,15 @@ Note that device nodes from the driver are not .Xr GEOM 4 disks and cannot be partitioned. +.Sh CONFIGURATION +The +.Nm +driver defines a system-wide maximum delete size for NVMe devices. The +default is 1GB. To select a different value, set the following tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.nvd.delete_max= +.Ed .Sh SEE ALSO .Xr GEOM 4 , .Xr nvme 4 , Modified: head/sys/dev/nvd/nvd.c ============================================================================== --- head/sys/dev/nvd/nvd.c Thu Jan 28 23:12:12 2016 (r295021) +++ head/sys/dev/nvd/nvd.c Thu Jan 28 23:15:14 2016 (r295022) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 2012-2013 Intel Corporation + * Copyright (C) 2012-2016 Intel Corporation * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -88,6 +89,19 @@ struct nvd_controller { static TAILQ_HEAD(, nvd_controller) ctrlr_head; static TAILQ_HEAD(disk_list, nvd_disk) disk_head; +static SYSCTL_NODE(_hw, OID_AUTO, nvd, CTLFLAG_RD, 0, "nvd driver parameters"); +/* + * The NVMe specification does not define a maximum or optimal delete size, so + * technically max delete size is min(full size of the namespace, 2^32 - 1 + * LBAs). A single delete for a multi-TB NVMe namespace though may take much + * longer to complete than the nvme(4) I/O timeout period. So choose a sensible + * default here that is still suitably large to minimize the number of overall + * delete operations. + */ +static uint64_t nvd_delete_max = (1024 * 1024 * 1024); /* 1GB */ +SYSCTL_UQUAD(_hw_nvd, OID_AUTO, delete_max, CTLFLAG_RDTUN, &nvd_delete_max, 0, + "nvd maximum BIO_DELETE size in bytes"); + static int nvd_modevent(module_t mod, int type, void *arg) { int error = 0; @@ -295,6 +309,8 @@ nvd_new_disk(struct nvme_namespace *ns, disk->d_sectorsize = nvme_ns_get_sector_size(ns); disk->d_mediasize = (off_t)nvme_ns_get_size(ns); disk->d_delmaxsize = (off_t)nvme_ns_get_size(ns); + if (disk->d_delmaxsize > nvd_delete_max) + disk->d_delmaxsize = nvd_delete_max; disk->d_stripesize = nvme_ns_get_optimal_sector_size(ns); if (TAILQ_EMPTY(&disk_head)) From owner-svn-src-all@freebsd.org Fri Jan 29 00:01:39 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28754A706BD; Fri, 29 Jan 2016 00:01:39 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EA48A34A; Fri, 29 Jan 2016 00:01:38 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0T01bQc072314; Fri, 29 Jan 2016 00:01:37 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0T01bFV072313; Fri, 29 Jan 2016 00:01:37 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201601290001.u0T01bFV072313@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Fri, 29 Jan 2016 00:01:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r295024 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 00:01:39 -0000 Author: marius Date: Fri Jan 29 00:01:37 2016 New Revision: 295024 URL: https://svnweb.freebsd.org/changeset/base/295024 Log: Require explicit re@ approval for commits to stable/10, as the code freeze for 10.3-RELEASE is now in effect. Approved by: re (implicit) Modified: svnadmin/conf/approvers Modified: svnadmin/conf/approvers ============================================================================== --- svnadmin/conf/approvers Thu Jan 28 23:59:34 2016 (r295023) +++ svnadmin/conf/approvers Fri Jan 29 00:01:37 2016 (r295024) @@ -17,7 +17,7 @@ # $FreeBSD$ # #^head/ re -#^stable/10/ re +^stable/10/ re ^releng/10.[0-2]/ (security-officer|so) ^releng/9.[0-3]/ (security-officer|so) ^releng/8.[0-4]/ (security-officer|so) From owner-svn-src-all@freebsd.org Fri Jan 29 00:44:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9524A712D2; Fri, 29 Jan 2016 00:44:29 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC6AA1DFF; Fri, 29 Jan 2016 00:44:29 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0T0iSTk084576; Fri, 29 Jan 2016 00:44:28 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0T0iSiH084575; Fri, 29 Jan 2016 00:44:28 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601290044.u0T0iSiH084575@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 29 Jan 2016 00:44:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295026 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 00:44:30 -0000 Author: bdrewery Date: Fri Jan 29 00:44:28 2016 New Revision: 295026 URL: https://svnweb.freebsd.org/changeset/base/295026 Log: filemon_open: Don't record a process to trace here. Only ioctl(FILEMON_SET_PID) should be setting the process-to-be-traced. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon.c Modified: head/sys/dev/filemon/filemon.c ============================================================================== --- head/sys/dev/filemon/filemon.c Fri Jan 29 00:29:32 2016 (r295025) +++ head/sys/dev/filemon/filemon.c Fri Jan 29 00:44:28 2016 (r295026) @@ -221,10 +221,9 @@ filemon_open(struct cdev *dev, int oflag filemon = malloc(sizeof(struct filemon), M_FILEMON, M_WAITOK | M_ZERO); sx_init(&filemon->lock, "filemon"); + filemon->pid = -1; } - filemon->pid = curproc->p_pid; - devfs_set_cdevpriv(filemon, filemon_dtr); /* Get exclusive write access. */ From owner-svn-src-all@freebsd.org Fri Jan 29 00:44:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C73FDA712F4; Fri, 29 Jan 2016 00:44:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8980B1E2E; Fri, 29 Jan 2016 00:44:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0T0iW0l084624; Fri, 29 Jan 2016 00:44:32 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0T0iWqC084622; Fri, 29 Jan 2016 00:44:32 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601290044.u0T0iWqC084622@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 29 Jan 2016 00:44:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295027 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 00:44:34 -0000 Author: bdrewery Date: Fri Jan 29 00:44:32 2016 New Revision: 295027 URL: https://svnweb.freebsd.org/changeset/base/295027 Log: filemon: Track the process pointer rather than a pid. The process is not held since the process_exit hook is called after the exithold. There is no need to hold the process since the hook will always see it exiting via the process_exit event. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon.c head/sys/dev/filemon/filemon_wrapper.c Modified: head/sys/dev/filemon/filemon.c ============================================================================== --- head/sys/dev/filemon/filemon.c Fri Jan 29 00:44:28 2016 (r295026) +++ head/sys/dev/filemon/filemon.c Fri Jan 29 00:44:32 2016 (r295027) @@ -89,7 +89,7 @@ struct filemon { TAILQ_ENTRY(filemon) link; /* Link into the in-use list. */ struct sx lock; /* Lock mutex for this filemon. */ struct file *fp; /* Output file pointer. */ - pid_t pid; /* The process ID being monitored. */ + struct proc *p; /* The process being monitored. */ char fname1[MAXPATHLEN]; /* Temporary filename buffer. */ char fname2[MAXPATHLEN]; /* Temporary filename buffer. */ char msgbufr[1024]; /* Output message buffer. */ @@ -137,7 +137,7 @@ filemon_dtr(void *data) fp = filemon->fp; filemon->fp = NULL; - filemon->pid = -1; + filemon->p = NULL; /* Add to the free list. */ TAILQ_INSERT_TAIL(&filemons_free, filemon, link); @@ -188,7 +188,7 @@ filemon_ioctl(struct cdev *dev, u_long c error = pget(*((pid_t *)data), PGET_CANDEBUG | PGET_NOTWEXIT, &p); if (error == 0) { - filemon->pid = p->p_pid; + filemon->p = p; PROC_UNLOCK(p); } break; @@ -221,7 +221,6 @@ filemon_open(struct cdev *dev, int oflag filemon = malloc(sizeof(struct filemon), M_FILEMON, M_WAITOK | M_ZERO); sx_init(&filemon->lock, "filemon"); - filemon->pid = -1; } devfs_set_cdevpriv(filemon, filemon_dtr); Modified: head/sys/dev/filemon/filemon_wrapper.c ============================================================================== --- head/sys/dev/filemon/filemon_wrapper.c Fri Jan 29 00:44:28 2016 (r295026) +++ head/sys/dev/filemon/filemon_wrapper.c Fri Jan 29 00:44:32 2016 (r295027) @@ -98,7 +98,7 @@ filemon_pid_check(struct proc *p) sx_slock(&proctree_lock); while (p != initproc) { TAILQ_FOREACH(filemon, &filemons_inuse, link) { - if (p->p_pid == filemon->pid) { + if (p == filemon->p) { sx_sunlock(&proctree_lock); filemon_filemon_lock(filemon); filemon_unlock_read(); @@ -452,14 +452,14 @@ filemon_event_process_exit(void *arg __u filemon_output(filemon, filemon->msgbufr, len); /* Check if the monitored process is about to exit. */ - if (filemon->pid == p->p_pid) { + if (filemon->p == p) { len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "# Stop %ju.%06ju\n# Bye bye\n", (uintmax_t)now.tv_sec, (uintmax_t)now.tv_usec); filemon_output(filemon, filemon->msgbufr, len); - filemon->pid = -1; + filemon->p = NULL; } /* Unlock the found filemon structure. */ From owner-svn-src-all@freebsd.org Fri Jan 29 00:59:50 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 47771A71816; Fri, 29 Jan 2016 00:59:50 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1866F1439; Fri, 29 Jan 2016 00:59:50 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0T0xn0B087587; Fri, 29 Jan 2016 00:59:49 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0T0xn8W087586; Fri, 29 Jan 2016 00:59:49 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201601290059.u0T0xn8W087586@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Fri, 29 Jan 2016 00:59:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295028 - head/lib/libbluetooth X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 00:59:50 -0000 Author: brooks Date: Fri Jan 29 00:59:48 2016 New Revision: 295028 URL: https://svnweb.freebsd.org/changeset/base/295028 Log: Declare bt_devenum() to match the definition. Obtained from: CheriBSD (1c1dad87ef9983a4ca0c7d6eb0792d489436bcd1) MFC after: 1 week Sponsored by: DARPA, AFRL Modified: head/lib/libbluetooth/bluetooth.h Modified: head/lib/libbluetooth/bluetooth.h ============================================================================== --- head/lib/libbluetooth/bluetooth.h Fri Jan 29 00:44:32 2016 (r295027) +++ head/lib/libbluetooth/bluetooth.h Fri Jan 29 00:59:48 2016 (r295028) @@ -178,7 +178,7 @@ int bt_devfilter_evt_tst(struct bt_devf int bt_devinquiry(char const *devname, time_t length, int num_rsp, struct bt_devinquiry **ii); int bt_devinfo (struct bt_devinfo *di); -int bt_devenum (bt_devenum_cb_t *cb, void *arg); +int bt_devenum (bt_devenum_cb_t cb, void *arg); /* * bdaddr utility functions (from NetBSD) From owner-svn-src-all@freebsd.org Fri Jan 29 01:00:14 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 14FE2A71878; Fri, 29 Jan 2016 01:00:14 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DA5AD161E; Fri, 29 Jan 2016 01:00:13 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0T10C3B087677; Fri, 29 Jan 2016 01:00:12 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0T10CeP087676; Fri, 29 Jan 2016 01:00:12 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601290100.u0T10CeP087676@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 29 Jan 2016 01:00:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295029 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 01:00:14 -0000 Author: bdrewery Date: Fri Jan 29 01:00:12 2016 New Revision: 295029 URL: https://svnweb.freebsd.org/changeset/base/295029 Log: Document the purpose and non-purpose of filemon(4). MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/share/man/man4/filemon.4 Modified: head/share/man/man4/filemon.4 ============================================================================== --- head/share/man/man4/filemon.4 Fri Jan 29 00:59:48 2016 (r295028) +++ head/share/man/man4/filemon.4 Fri Jan 29 01:00:12 2016 (r295029) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 14, 2013 +.Dd January 28, 2016 .Dt FILEMON 4 .Os .Sh NAME @@ -49,6 +49,18 @@ responds to two .Xr ioctl 2 calls. .Pp +.Nm +is not intended to be a security auditing tool. +Many syscalls are not tracked and binaries of foreign ABI will not be fully +audited. +It is intended for auditing of processes for the purpose of determining its +dependencies in an efficient and easily parsable format. +An example of this is +.Xr make 1 +which uses this module with +.Sy .MAKE.MODE=meta +to handle incremental builds more smartly. +.Pp System calls are denoted using the following single letters: .Pp .Bl -tag -width indent -compact @@ -173,3 +185,7 @@ A .Nm device appeared in .Fx 9.1 . +.Sh BUGS +Loading +.Nm +may reduce system performance for the noted syscalls. From owner-svn-src-all@freebsd.org Fri Jan 29 01:09:05 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92AFEA71B93; Fri, 29 Jan 2016 01:09:05 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5FA901B58; Fri, 29 Jan 2016 01:09:05 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0T194cr090540; Fri, 29 Jan 2016 01:09:04 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0T194n0090539; Fri, 29 Jan 2016 01:09:04 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601290109.u0T194n0090539@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 29 Jan 2016 01:09:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295030 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 01:09:05 -0000 Author: bdrewery Date: Fri Jan 29 01:09:04 2016 New Revision: 295030 URL: https://svnweb.freebsd.org/changeset/base/295030 Log: Note the double fork behavior with filemon. X-MFC-With: r295029 MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/share/man/man4/filemon.4 Modified: head/share/man/man4/filemon.4 ============================================================================== --- head/share/man/man4/filemon.4 Fri Jan 29 01:00:12 2016 (r295029) +++ head/share/man/man4/filemon.4 Fri Jan 29 01:09:04 2016 (r295030) @@ -189,3 +189,8 @@ device appeared in Loading .Nm may reduce system performance for the noted syscalls. +.Pp +Only children of the set process are logged. +Processes can escape being traced by double forking. +This is not seen as a problem as the intended use is build monitoring, which +does not make sense to have daemons for. From owner-svn-src-all@freebsd.org Fri Jan 29 01:22:14 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0ED1DA720F3; Fri, 29 Jan 2016 01:22:14 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D04A811AF; Fri, 29 Jan 2016 01:22:13 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0T1MCpx095929; Fri, 29 Jan 2016 01:22:12 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0T1MCGo095927; Fri, 29 Jan 2016 01:22:12 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201601290122.u0T1MCGo095927@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Fri, 29 Jan 2016 01:22:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295031 - head/lib/libc/db/hash X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 01:22:14 -0000 Author: brooks Date: Fri Jan 29 01:22:12 2016 New Revision: 295031 URL: https://svnweb.freebsd.org/changeset/base/295031 Log: Use intptr_t note ptrdiff_t when storing flags in the bottom bits of pointers. Obtained from: CheriBSD (e3a69027cc5a384431156d61c90d4304387a9b9d) Sponsored by: DARPA, AFRL Modified: head/lib/libc/db/hash/hash.h head/lib/libc/db/hash/hash_buf.c Modified: head/lib/libc/db/hash/hash.h ============================================================================== --- head/lib/libc/db/hash/hash.h Fri Jan 29 01:09:04 2016 (r295030) +++ head/lib/libc/db/hash/hash.h Fri Jan 29 01:22:12 2016 (r295031) @@ -138,11 +138,11 @@ typedef struct htab { /* Memory reside #define ALL_SET ((u_int32_t)0xFFFFFFFF) #define ALL_CLEAR 0 -#define PTROF(X) ((BUFHEAD *)((ptrdiff_t)(X)&~0x3)) -#define ISMOD(X) ((u_int32_t)(ptrdiff_t)(X)&0x1) -#define DOMOD(X) ((X) = (char *)((ptrdiff_t)(X)|0x1)) -#define ISDISK(X) ((u_int32_t)(ptrdiff_t)(X)&0x2) -#define DODISK(X) ((X) = (char *)((ptrdiff_t)(X)|0x2)) +#define PTROF(X) ((BUFHEAD *)((intptr_t)(X)&~0x3)) +#define ISMOD(X) ((u_int32_t)(intptr_t)(X)&0x1) +#define DOMOD(X) ((X) = (char *)((intptr_t)(X)|0x1)) +#define ISDISK(X) ((u_int32_t)(intptr_t)(X)&0x2) +#define DODISK(X) ((X) = (char *)((intptr_t)(X)|0x2)) #define BITS_PER_MAP 32 Modified: head/lib/libc/db/hash/hash_buf.c ============================================================================== --- head/lib/libc/db/hash/hash_buf.c Fri Jan 29 01:09:04 2016 (r295030) +++ head/lib/libc/db/hash/hash_buf.c Fri Jan 29 01:22:12 2016 (r295031) @@ -138,7 +138,7 @@ __get_buf(HTAB *hashp, u_int32_t addr, return (NULL); if (!prev_bp) segp[segment_ndx] = - (BUFHEAD *)((ptrdiff_t)bp | is_disk_mask); + (BUFHEAD *)((intptr_t)bp | is_disk_mask); } else { BUF_REMOVE(bp); MRU_INSERT(bp); From owner-svn-src-all@freebsd.org Fri Jan 29 01:54:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73FF6A729E7; Fri, 29 Jan 2016 01:54:33 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 450C810D1; Fri, 29 Jan 2016 01:54:33 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0T1sWsm004835; Fri, 29 Jan 2016 01:54:32 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0T1sW3U004834; Fri, 29 Jan 2016 01:54:32 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201601290154.u0T1sW3U004834@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Fri, 29 Jan 2016 01:54:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295032 - head/etc/periodic/security X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 01:54:33 -0000 Author: marius Date: Fri Jan 29 01:54:32 2016 New Revision: 295032 URL: https://svnweb.freebsd.org/changeset/base/295032 Log: Use '^[>+][^+]' instead of '^[>+]' with grep(1) when filtering the diff(1) output between two files in "new_only"-mode. Otherwise, with the default of using unified format a remnant of the header in the output is the result. This is especially irritating when the two files differ but the second one is empty, amounting to the vestige of the header being the only readout. Reported by: Stefan Haemmerl MFC after: 3 days Modified: head/etc/periodic/security/security.functions Modified: head/etc/periodic/security/security.functions ============================================================================== --- head/etc/periodic/security/security.functions Fri Jan 29 01:22:12 2016 (r295031) +++ head/etc/periodic/security/security.functions Fri Jan 29 01:54:32 2016 (r295032) @@ -51,7 +51,7 @@ check_diff() { rc=0 if [ "$1" = "new_only" ]; then shift - filter="grep '^[>+]'" + filter="grep '^[>+][^+]'" else filter="cat" fi From owner-svn-src-all@freebsd.org Fri Jan 29 09:16:09 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79846A71034; Fri, 29 Jan 2016 09:16:09 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4A5601F8F; Fri, 29 Jan 2016 09:16:09 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0T9G8tV034299; Fri, 29 Jan 2016 09:16:08 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0T9G8Nr034297; Fri, 29 Jan 2016 09:16:08 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601290916.u0T9G8Nr034297@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Fri, 29 Jan 2016 09:16:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295035 - stable/10/sys/dev/ixgbe X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 09:16:09 -0000 Author: smh Date: Fri Jan 29 09:16:08 2016 New Revision: 295035 URL: https://svnweb.freebsd.org/changeset/base/295035 Log: MFC r294578: Fix ix advertise value after media change Approved by: re (gjb) Sponsored by: Multiplay Modified: stable/10/sys/dev/ixgbe/if_ix.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/ixgbe/if_ix.c ============================================================================== --- stable/10/sys/dev/ixgbe/if_ix.c Fri Jan 29 03:10:22 2016 (r295034) +++ stable/10/sys/dev/ixgbe/if_ix.c Fri Jan 29 09:16:08 2016 (r295035) @@ -1855,10 +1855,16 @@ ixgbe_media_change(struct ifnet * ifp) hw->mac.autotry_restart = TRUE; hw->mac.ops.setup_link(hw, speed, TRUE); - adapter->advertise = - ((speed & IXGBE_LINK_SPEED_10GB_FULL) << 2) | - ((speed & IXGBE_LINK_SPEED_1GB_FULL) << 1) | - ((speed & IXGBE_LINK_SPEED_100_FULL) << 0); + if (IFM_SUBTYPE(ifm->ifm_media) == IFM_AUTO) { + adapter->advertise = 0; + } else { + if ((speed & IXGBE_LINK_SPEED_10GB_FULL) != 0) + adapter->advertise |= 1 << 2; + if ((speed & IXGBE_LINK_SPEED_1GB_FULL) != 0) + adapter->advertise |= 1 << 1; + if ((speed & IXGBE_LINK_SPEED_100_FULL) != 0) + adapter->advertise |= 1 << 0; + } return (0); From owner-svn-src-all@freebsd.org Fri Jan 29 10:31:57 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1355FA72CC6; Fri, 29 Jan 2016 10:31:57 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CFA7B1063; Fri, 29 Jan 2016 10:31:56 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TAVtFW054565; Fri, 29 Jan 2016 10:31:55 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TAVsKM054548; Fri, 29 Jan 2016 10:31:54 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601291031.u0TAVsKM054548@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Fri, 29 Jan 2016 10:31:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295036 - in head/sys: arm/arm arm/conf arm/include conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 10:31:57 -0000 Author: mmel Date: Fri Jan 29 10:31:54 2016 New Revision: 295036 URL: https://svnweb.freebsd.org/changeset/base/295036 Log: ARM: remove old pmap-v6 code. The new pmap-v6 is mature enough, and dual implementation is showstopper for major cleanup. This patch only removes old code from tree. Cleanups will follow asap. Deleted: head/sys/arm/arm/pmap-v6.c Modified: head/sys/arm/arm/genassym.c head/sys/arm/arm/locore-v6.S head/sys/arm/arm/machdep.c head/sys/arm/arm/mem.c head/sys/arm/arm/mp_machdep.c head/sys/arm/arm/swtch.S head/sys/arm/arm/trap-v6.c head/sys/arm/conf/std.armv6 head/sys/arm/include/machdep.h head/sys/arm/include/pmap.h head/sys/arm/include/pte.h head/sys/arm/include/sf_buf.h head/sys/arm/include/vm.h head/sys/conf/files.arm head/sys/conf/options.arm Modified: head/sys/arm/arm/genassym.c ============================================================================== --- head/sys/arm/arm/genassym.c Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/arm/genassym.c Fri Jan 29 10:31:54 2016 (r295036) @@ -61,16 +61,16 @@ __FBSDID("$FreeBSD$"); ASSYM(KERNBASE, KERNBASE); ASSYM(PCB_NOALIGNFLT, PCB_NOALIGNFLT); -#ifdef ARM_NEW_PMAP +#if __ARM_ARCH >= 6 ASSYM(CPU_ASID_KERNEL,CPU_ASID_KERNEL); #endif ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault)); -#ifndef ARM_NEW_PMAP +#if __ARM_ARCH < 6 ASSYM(PCB_DACR, offsetof(struct pcb, pcb_dacr)); #endif ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags)); ASSYM(PCB_PAGEDIR, offsetof(struct pcb, pcb_pagedir)); -#ifndef ARM_NEW_PMAP +#if __ARM_ARCH < 6 ASSYM(PCB_L1VEC, offsetof(struct pcb, pcb_l1vec)); ASSYM(PCB_PL1VEC, offsetof(struct pcb, pcb_pl1vec)); #endif Modified: head/sys/arm/arm/locore-v6.S ============================================================================== --- head/sys/arm/arm/locore-v6.S Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/arm/locore-v6.S Fri Jan 29 10:31:54 2016 (r295036) @@ -30,6 +30,7 @@ #include "assym.s" #include +#include #include #include #include @@ -39,11 +40,6 @@ __FBSDID("$FreeBSD$"); -#ifndef ARM_NEW_PMAP -#define PTE1_OFFSET L1_S_OFFSET -#define PTE1_SHIFT L1_S_SHIFT -#define PTE1_SIZE L1_S_SIZE -#endif #if __ARM_ARCH >= 7 #if defined(__ARM_ARCH_7VE__) || defined(__clang__) @@ -287,7 +283,6 @@ ASENTRY_NP(init_mmu) mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) mcr CP15_DACR(r0) -#ifdef ARM_NEW_PMAP /* * Set TEX remap registers * - All is set to uncacheable memory @@ -296,7 +291,6 @@ ASENTRY_NP(init_mmu) mcr CP15_PRRR(r0) mov r0, #0 mcr CP15_NMRR(r0) -#endif mcr CP15_TLBIALL /* Flush TLB */ DSB ISB @@ -305,9 +299,7 @@ ASENTRY_NP(init_mmu) mrc CP15_SCTLR(r0) orr r0, r0, #CPU_CONTROL_MMU_ENABLE orr r0, r0, #CPU_CONTROL_V6_EXTPAGE -#ifdef ARM_NEW_PMAP orr r0, r0, #CPU_CONTROL_TR_ENABLE -#endif orr r0, r0, #CPU_CONTROL_AF_ENABLE mcr CP15_SCTLR(r0) DSB @@ -398,23 +390,11 @@ END(reinit_mmu) * Addresses must be 1MiB aligned */ build_device_pagetables: -#if defined(ARM_NEW_PMAP) ldr r4, =PTE1_V|PTE1_A|PTE1_AP_KRW|TEX1_CLASS_0 -#elif defined(SMP) - ldr r4, =(L1_TYPE_S|L1_S_AP(AP_KRW)|L1_SHARED) -#else - ldr r4, =(L1_TYPE_S|L1_S_AP(AP_KRW)) -#endif b 1f build_pagetables: /* Set the required page attributed */ -#if defined(ARM_NEW_PMAP) ldr r4, =PTE1_V|PTE1_A|PTE1_AP_KRW|TEX1_CLASS_0 -#elif defined(SMP) - ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)|L1_SHARED) -#else - ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)) -#endif 1: orr r1, r4 Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/arm/machdep.c Fri Jan 29 10:31:54 2016 (r295036) @@ -199,7 +199,7 @@ static char *loader_envp; vm_paddr_t pmap_pa; -#ifdef ARM_NEW_PMAP +#if __ARM_ARCH >= 6 vm_offset_t systempage; vm_offset_t irqstack; vm_offset_t undstack; @@ -456,7 +456,7 @@ cpu_startup(void *dummy) pcb->pcb_regs.sf_sp = (u_int)thread0.td_kstack + USPACE_SVC_STACK_TOP; pmap_set_pcb_pagedir(pmap_kernel(), pcb); -#ifndef ARM_NEW_PMAP +#if __ARM_ARCH < 6 vector_page_setprot(VM_PROT_READ); pmap_postinit(); #endif @@ -1283,7 +1283,7 @@ arm_predict_branch(void *cookie, u_int i } } -#ifdef ARM_NEW_PMAP +#if __ARM_ARCH >= 6 void set_stackptrs(int cpu) { @@ -1447,7 +1447,7 @@ print_kenv(void) debugf(" %x %s\n", (uint32_t)cp, cp); } -#ifndef ARM_NEW_PMAP +#if __ARM_ARCH < 6 void * initarm(struct arm_boot_params *abp) { @@ -1717,7 +1717,7 @@ initarm(struct arm_boot_params *abp) return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); } -#else /* !ARM_NEW_PMAP */ +#else /* __ARM_ARCH < 6 */ void * initarm(struct arm_boot_params *abp) { @@ -1905,7 +1905,7 @@ initarm(struct arm_boot_params *abp) } -#endif /* !ARM_NEW_PMAP */ +#endif /* __ARM_ARCH < 6 */ #endif /* FDT */ uint32_t (*arm_cpu_fill_vdso_timehands)(struct vdso_timehands *, Modified: head/sys/arm/arm/mem.c ============================================================================== --- head/sys/arm/arm/mem.c Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/arm/mem.c Fri Jan 29 10:31:54 2016 (r295036) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -113,7 +114,7 @@ memrw(struct cdev *dev, struct uio *uio, return (EINVAL); sx_xlock(&tmppt_lock); pmap_kenter((vm_offset_t)_tmppt, v); -#ifdef ARM_NEW_PMAP +#if __ARM_ARCH >= 6 pmap_tlb_flush(kernel_pmap, (vm_offset_t)_tmppt); #endif o = (int)uio->uio_offset & PAGE_MASK; Modified: head/sys/arm/arm/mp_machdep.c ============================================================================== --- head/sys/arm/arm/mp_machdep.c Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/arm/mp_machdep.c Fri Jan 29 10:31:54 2016 (r295036) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -155,7 +156,7 @@ init_secondary(int cpu) #ifndef ARM_INTRNG int start = 0, end = 0; #endif -#ifdef ARM_NEW_PMAP +#if __ARM_ARCH >= 6 uint32_t actlr_mask, actlr_set; pmap_set_tex(); @@ -167,11 +168,11 @@ init_secondary(int cpu) set_stackptrs(cpu); enable_interrupts(PSR_A); -#else /* ARM_NEW_PMAP */ +#else /* __ARM_ARCH >= 6 */ cpu_setup(); setttb(pmap_pa); cpu_tlb_flushID(); -#endif /* ARM_NEW_PMAP */ +#endif /* __ARM_ARCH >= 6 */ pc = &__pcpu[cpu]; /* @@ -183,7 +184,7 @@ init_secondary(int cpu) pcpu_init(pc, cpu, sizeof(struct pcpu)); dpcpu_init(dpcpu[cpu - 1], cpu); -#ifndef ARM_NEW_PMAP +#if __ARM_ARCH < 6 /* Provide stack pointers for other processor modes. */ set_stackptrs(cpu); #endif Modified: head/sys/arm/arm/swtch.S ============================================================================== --- head/sys/arm/arm/swtch.S Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/arm/swtch.S Fri Jan 29 10:31:54 2016 (r295036) @@ -114,7 +114,7 @@ __FBSDID("$FreeBSD$"); .word _C_LABEL(blocked_lock) -#ifndef ARM_NEW_PMAP +#if __ARM_ARCH < 6 #define DOMAIN_CLIENT 0x01 @@ -418,7 +418,7 @@ ENTRY(cpu_switch) END(cpu_switch) -#else /* !ARM_NEW_PMAP */ +#else /* __ARM_ARCH < 6 */ #include ENTRY(cpu_context_switch) /* QQQ: What about macro instead of function? */ @@ -789,7 +789,7 @@ sw4_panic_str: END(cpu_switch) -#endif /* !ARM_NEW_PMAP */ +#endif /* __ARM_ARCH < 6 */ ENTRY(savectx) stmfd sp!, {lr} Modified: head/sys/arm/arm/trap-v6.c ============================================================================== --- head/sys/arm/arm/trap-v6.c Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/arm/trap-v6.c Fri Jan 29 10:31:54 2016 (r295036) @@ -334,13 +334,11 @@ abort_handler(struct trapframe *tf, int * they are not from KVA space. Thus, no action is needed here. */ -#ifdef ARM_NEW_PMAP rv = pmap_fault(PCPU_GET(curpmap), far, fsr, idx, usermode); if (rv == KERN_SUCCESS) return; if (rv == KERN_INVALID_ADDRESS) goto nogo; -#endif /* * Now, when we handled imprecise and debug aborts, the rest of * aborts should be really related to mapping. @@ -488,13 +486,6 @@ abort_handler(struct trapframe *tf, int last_fault_code = fsr; #endif -#ifndef ARM_NEW_PMAP - if (pmap_fault_fixup(vmspace_pmap(td->td_proc->p_vmspace), va, ftype, - usermode)) { - goto out; - } -#endif - #ifdef INVARIANTS onfault = pcb->pcb_onfault; pcb->pcb_onfault = NULL; Modified: head/sys/arm/conf/std.armv6 ============================================================================== --- head/sys/arm/conf/std.armv6 Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/conf/std.armv6 Fri Jan 29 10:31:54 2016 (r295036) @@ -37,8 +37,6 @@ options KBD_INSTALL_CDEV # install a CD options FREEBSD_BOOT_LOADER # Process metadata passed from loader(8) options VFP # Enable floating point hardware support -options ARM_NEW_PMAP # Use new pmap code. - # DTrace support options KDTRACE_HOOKS # Kernel DTrace hooks options DDB_CTF # all architectures - kernel ELF linker loads CTF data Modified: head/sys/arm/include/machdep.h ============================================================================== --- head/sys/arm/include/machdep.h Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/include/machdep.h Fri Jan 29 10:31:54 2016 (r295036) @@ -4,8 +4,10 @@ #ifndef _MACHDEP_BOOT_MACHDEP_H_ #define _MACHDEP_BOOT_MACHDEP_H_ +#include + /* Structs that need to be initialised by initarm */ -#ifdef ARM_NEW_PMAP +#if __ARM_ARCH >= 6 extern vm_offset_t irqstack; extern vm_offset_t undstack; extern vm_offset_t abtstack; Modified: head/sys/arm/include/pmap.h ============================================================================== --- head/sys/arm/include/pmap.h Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/include/pmap.h Fri Jan 29 10:31:54 2016 (r295036) @@ -46,9 +46,11 @@ * * $FreeBSD$ */ -#ifdef ARM_NEW_PMAP + #include + +#if __ARM_ARCH >= 6 #include -#else /* ARM_NEW_PMAP */ +#else /* __ARM_ARCH >= 6 */ #ifndef _MACHINE_PMAP_H_ #define _MACHINE_PMAP_H_ @@ -704,4 +706,4 @@ extern vm_paddr_t dump_avail[]; #endif /* !LOCORE */ #endif /* !_MACHINE_PMAP_H_ */ -#endif /* !ARM_NEW_PMAP */ +#endif /* __ARM_ARCH >= 6 */ Modified: head/sys/arm/include/pte.h ============================================================================== --- head/sys/arm/include/pte.h Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/include/pte.h Fri Jan 29 10:31:54 2016 (r295036) @@ -33,9 +33,11 @@ * * $FreeBSD$ */ -#ifdef ARM_NEW_PMAP +#include + +#if __ARM_ARCH >= 6 #include -#else /* ARM_NEW_PMAP */ +#else /* __ARM_ARCH >= 6 */ #ifndef _MACHINE_PTE_H_ #define _MACHINE_PTE_H_ @@ -356,6 +358,6 @@ typedef pt_entry_t pt2_entry_t; /* comp * 1 X 1 1 1 Y Y WT Y Y */ #endif /* !_MACHINE_PTE_H_ */ -#endif /* !ARM_NEW_PMAP */ +#endif /* __ARM_ARCH >= 6 */ /* End of pte.h */ Modified: head/sys/arm/include/sf_buf.h ============================================================================== --- head/sys/arm/include/sf_buf.h Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/include/sf_buf.h Fri Jan 29 10:31:54 2016 (r295036) @@ -29,11 +29,13 @@ #ifndef _MACHINE_SF_BUF_H_ #define _MACHINE_SF_BUF_H_ +#include + static inline void sf_buf_map(struct sf_buf *sf, int flags) { -#ifdef ARM_NEW_PMAP +#if __ARM_ARCH >= 6 pmap_qenter(sf->kva, &(sf->m), 1); #else pmap_kenter(sf->kva, VM_PAGE_TO_PHYS(sf->m)); @@ -44,7 +46,7 @@ static inline int sf_buf_unmap(struct sf_buf *sf) { -#ifdef ARM_NEW_PMAP +#if __ARM_ARCH >= 6 pmap_qremove(sf->kva, 1); #else pmap_kremove(sf->kva); Modified: head/sys/arm/include/vm.h ============================================================================== --- head/sys/arm/include/vm.h Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/arm/include/vm.h Fri Jan 29 10:31:54 2016 (r295036) @@ -29,7 +29,9 @@ #ifndef _MACHINE_VM_H_ #define _MACHINE_VM_H_ -#ifdef ARM_NEW_PMAP +#include + +#if __ARM_ARCH >= 6 #include #define VM_MEMATTR_WB_WA ((vm_memattr_t)PTE2_ATTR_WB_WA) @@ -40,9 +42,11 @@ #define VM_MEMATTR_DEFAULT VM_MEMATTR_WB_WA #define VM_MEMATTR_UNCACHEABLE VM_MEMATTR_SO /* misused by DMA */ +#ifdef _KERNEL +/* Don't export aliased VM_MEMATTR to userland */ #define VM_MEMATTR_WRITE_COMBINING VM_MEMATTR_WT /* for DRM */ #define VM_MEMATTR_WRITE_BACK VM_MEMATTR_WB_WA /* for DRM */ - +#endif #else /* Memory attribute configuration. */ #define VM_MEMATTR_DEFAULT 0 Modified: head/sys/conf/files.arm ============================================================================== --- head/sys/conf/files.arm Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/conf/files.arm Fri Jan 29 10:31:54 2016 (r295036) @@ -64,8 +64,7 @@ arm/arm/pl310.c optional pl310 arm/arm/platform.c optional platform arm/arm/platform_if.m optional platform arm/arm/pmap.c optional !armv6 -arm/arm/pmap-v6.c optional armv6 !arm_new_pmap -arm/arm/pmap-v6-new.c optional armv6 arm_new_pmap +arm/arm/pmap-v6-new.c optional armv6 arm/arm/pmu.c optional pmu | fdt hwpmc arm/arm/sc_machdep.c optional sc arm/arm/setcpsr.S standard Modified: head/sys/conf/options.arm ============================================================================== --- head/sys/conf/options.arm Fri Jan 29 09:16:08 2016 (r295035) +++ head/sys/conf/options.arm Fri Jan 29 10:31:54 2016 (r295036) @@ -5,7 +5,6 @@ ARM_INTRNG opt_global.h ARM_KERN_DIRECTMAP opt_vm.h ARM_L2_PIPT opt_global.h ARM_MANY_BOARD opt_global.h -ARM_NEW_PMAP opt_global.h NKPT2PG opt_pmap.h ARM_WANT_TP_ADDRESS opt_global.h COUNTS_PER_SEC opt_timer.h From owner-svn-src-all@freebsd.org Fri Jan 29 11:00:34 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1309A71459; Fri, 29 Jan 2016 11:00:34 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9B0F11B00; Fri, 29 Jan 2016 11:00:34 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TB0XTx063108; Fri, 29 Jan 2016 11:00:33 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TB0X6Q063106; Fri, 29 Jan 2016 11:00:33 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601291100.u0TB0X6Q063106@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Fri, 29 Jan 2016 11:00:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295037 - in head/sys: arm/arm conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 11:00:34 -0000 Author: mmel Date: Fri Jan 29 11:00:33 2016 New Revision: 295037 URL: https://svnweb.freebsd.org/changeset/base/295037 Log: ARM: After removal of old pmap-v6 code, rename pmap-v6-new.c to pmap-v6.c. Added: head/sys/arm/arm/pmap-v6.c - copied unchanged from r295036, head/sys/arm/arm/pmap-v6-new.c Deleted: head/sys/arm/arm/pmap-v6-new.c Modified: head/sys/conf/files.arm Copied: head/sys/arm/arm/pmap-v6.c (from r295036, head/sys/arm/arm/pmap-v6-new.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/arm/pmap-v6.c Fri Jan 29 11:00:33 2016 (r295037, copy of r295036, head/sys/arm/arm/pmap-v6-new.c) @@ -0,0 +1,6634 @@ +/*- + * Copyright (c) 1991 Regents of the University of California. + * Copyright (c) 1994 John S. Dyson + * Copyright (c) 1994 David Greenman + * Copyright (c) 2005-2010 Alan L. Cox + * Copyright (c) 2014 Svatopluk Kraus + * Copyright (c) 2014 Michal Meloun + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * the Systems Programming Group of the University of Utah Computer + * Science Department and William Jolitz of UUNET Technologies Inc. + * + * 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. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. + * + * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 + */ +/*- + * Copyright (c) 2003 Networks Associates Technology, Inc. + * All rights reserved. + * + * This software was developed for the FreeBSD Project by Jake Burkholder, + * Safeport Network Services, and Network Associates Laboratories, the + * Security Research Division of Network Associates, Inc. under + * DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA + * CHATS research program. + * + * 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$"); + +/* + * Manages physical address maps. + * + * Since the information managed by this module is + * also stored by the logical address mapping module, + * this module may throw away valid virtual-to-physical + * mappings at almost any time. However, invalidations + * of virtual-to-physical mappings must be done as + * requested. + * + * In order to cope with hardware architectures which + * make virtual-to-physical map invalidates expensive, + * this module may delay invalidate or reduced protection + * operations until such time as they are actually + * necessary. This module is given full information as + * to which processors are currently using which maps, + * and to when physical maps must be made correct. + */ + +#include "opt_vm.h" +#include "opt_pmap.h" +#include "opt_ddb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef SMP +#include +#else +#include +#endif + +#ifdef DDB +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#ifdef SMP +#include +#endif + +#ifndef PMAP_SHPGPERPROC +#define PMAP_SHPGPERPROC 200 +#endif + +#ifndef DIAGNOSTIC +#define PMAP_INLINE __inline +#else +#define PMAP_INLINE +#endif + +#ifdef PMAP_DEBUG +static void pmap_zero_page_check(vm_page_t m); +void pmap_debug(int level); +int pmap_pid_dump(int pid); + +#define PDEBUG(_lev_,_stat_) \ + if (pmap_debug_level >= (_lev_)) \ + ((_stat_)) +#define dprintf printf +int pmap_debug_level = 1; +#else /* PMAP_DEBUG */ +#define PDEBUG(_lev_,_stat_) /* Nothing */ +#define dprintf(x, arg...) +#endif /* PMAP_DEBUG */ + +/* + * Level 2 page tables map definion ('max' is excluded). + */ + +#define PT2V_MIN_ADDRESS ((vm_offset_t)PT2MAP) +#define PT2V_MAX_ADDRESS ((vm_offset_t)PT2MAP + PT2MAP_SIZE) + +#define UPT2V_MIN_ADDRESS ((vm_offset_t)PT2MAP) +#define UPT2V_MAX_ADDRESS \ + ((vm_offset_t)(PT2MAP + (KERNBASE >> PT2MAP_SHIFT))) + +/* + * Promotion to a 1MB (PTE1) page mapping requires that the corresponding + * 4KB (PTE2) page mappings have identical settings for the following fields: + */ +#define PTE2_PROMOTE (PTE2_V | PTE2_A | PTE2_NM | PTE2_S | PTE2_NG | \ + PTE2_NX | PTE2_RO | PTE2_U | PTE2_W | \ + PTE2_ATTR_MASK) + +#define PTE1_PROMOTE (PTE1_V | PTE1_A | PTE1_NM | PTE1_S | PTE1_NG | \ + PTE1_NX | PTE1_RO | PTE1_U | PTE1_W | \ + PTE1_ATTR_MASK) + +#define ATTR_TO_L1(l2_attr) ((((l2_attr) & L2_TEX0) ? L1_S_TEX0 : 0) | \ + (((l2_attr) & L2_C) ? L1_S_C : 0) | \ + (((l2_attr) & L2_B) ? L1_S_B : 0) | \ + (((l2_attr) & PTE2_A) ? PTE1_A : 0) | \ + (((l2_attr) & PTE2_NM) ? PTE1_NM : 0) | \ + (((l2_attr) & PTE2_S) ? PTE1_S : 0) | \ + (((l2_attr) & PTE2_NG) ? PTE1_NG : 0) | \ + (((l2_attr) & PTE2_NX) ? PTE1_NX : 0) | \ + (((l2_attr) & PTE2_RO) ? PTE1_RO : 0) | \ + (((l2_attr) & PTE2_U) ? PTE1_U : 0) | \ + (((l2_attr) & PTE2_W) ? PTE1_W : 0)) + +#define ATTR_TO_L2(l1_attr) ((((l1_attr) & L1_S_TEX0) ? L2_TEX0 : 0) | \ + (((l1_attr) & L1_S_C) ? L2_C : 0) | \ + (((l1_attr) & L1_S_B) ? L2_B : 0) | \ + (((l1_attr) & PTE1_A) ? PTE2_A : 0) | \ + (((l1_attr) & PTE1_NM) ? PTE2_NM : 0) | \ + (((l1_attr) & PTE1_S) ? PTE2_S : 0) | \ + (((l1_attr) & PTE1_NG) ? PTE2_NG : 0) | \ + (((l1_attr) & PTE1_NX) ? PTE2_NX : 0) | \ + (((l1_attr) & PTE1_RO) ? PTE2_RO : 0) | \ + (((l1_attr) & PTE1_U) ? PTE2_U : 0) | \ + (((l1_attr) & PTE1_W) ? PTE2_W : 0)) + +/* + * PTE2 descriptors creation macros. + */ +#define PTE2_KPT(pa) PTE2_KERN(pa, PTE2_AP_KRW, pt_memattr) +#define PTE2_KPT_NG(pa) PTE2_KERN_NG(pa, PTE2_AP_KRW, pt_memattr) + +#define PTE2_KRW(pa) PTE2_KERN(pa, PTE2_AP_KRW, PTE2_ATTR_NORMAL) +#define PTE2_KRO(pa) PTE2_KERN(pa, PTE2_AP_KR, PTE2_ATTR_NORMAL) + +#define PV_STATS +#ifdef PV_STATS +#define PV_STAT(x) do { x ; } while (0) +#else +#define PV_STAT(x) do { } while (0) +#endif + +/* + * The boot_pt1 is used temporary in very early boot stage as L1 page table. + * We can init many things with no memory allocation thanks to its static + * allocation and this brings two main advantages: + * (1) other cores can be started very simply, + * (2) various boot loaders can be supported as its arguments can be processed + * in virtual address space and can be moved to safe location before + * first allocation happened. + * Only disadvantage is that boot_pt1 is used only in very early boot stage. + * However, the table is uninitialized and so lays in bss. Therefore kernel + * image size is not influenced. + * + * QQQ: In the future, maybe, boot_pt1 can be used for soft reset and + * CPU suspend/resume game. + */ +extern pt1_entry_t boot_pt1[]; + +vm_paddr_t base_pt1; +pt1_entry_t *kern_pt1; +pt2_entry_t *kern_pt2tab; +pt2_entry_t *PT2MAP; + +static uint32_t ttb_flags; +static vm_memattr_t pt_memattr; +ttb_entry_t pmap_kern_ttb; + +/* XXX use converion function*/ +#define PTE2_ATTR_NORMAL VM_MEMATTR_DEFAULT +#define PTE1_ATTR_NORMAL ATTR_TO_L1(PTE2_ATTR_NORMAL) + +struct pmap kernel_pmap_store; +LIST_HEAD(pmaplist, pmap); +static struct pmaplist allpmaps; +static struct mtx allpmaps_lock; + +vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */ +vm_offset_t virtual_end; /* VA of last avail page (end of kernel AS) */ + +static vm_offset_t kernel_vm_end_new; +vm_offset_t kernel_vm_end = KERNBASE + NKPT2PG * NPT2_IN_PG * PTE1_SIZE; +vm_offset_t vm_max_kernel_address; +vm_paddr_t kernel_l1pa; + +static struct rwlock __aligned(CACHE_LINE_SIZE) pvh_global_lock; + +/* + * Data for the pv entry allocation mechanism + */ +static TAILQ_HEAD(pch, pv_chunk) pv_chunks = TAILQ_HEAD_INITIALIZER(pv_chunks); +static int pv_entry_count = 0, pv_entry_max = 0, pv_entry_high_water = 0; +static struct md_page *pv_table; /* XXX: Is it used only the list in md_page? */ +static int shpgperproc = PMAP_SHPGPERPROC; + +struct pv_chunk *pv_chunkbase; /* KVA block for pv_chunks */ +int pv_maxchunks; /* How many chunks we have KVA for */ +vm_offset_t pv_vafree; /* freelist stored in the PTE */ + +vm_paddr_t first_managed_pa; +#define pa_to_pvh(pa) (&pv_table[pte1_index(pa - first_managed_pa)]) + +/* + * All those kernel PT submaps that BSD is so fond of + */ +struct sysmaps { + struct mtx lock; + pt2_entry_t *CMAP1; + pt2_entry_t *CMAP2; + pt2_entry_t *CMAP3; + caddr_t CADDR1; + caddr_t CADDR2; + caddr_t CADDR3; +}; +static struct sysmaps sysmaps_pcpu[MAXCPU]; +static pt2_entry_t *CMAP3; +static caddr_t CADDR3; +caddr_t _tmppt = 0; + +struct msgbuf *msgbufp = 0; /* XXX move it to machdep.c */ + +/* + * Crashdump maps. + */ +static caddr_t crashdumpmap; + +static pt2_entry_t *PMAP1 = 0, *PMAP2; +static pt2_entry_t *PADDR1 = 0, *PADDR2; +#ifdef DDB +static pt2_entry_t *PMAP3; +static pt2_entry_t *PADDR3; +static int PMAP3cpu __unused; /* for SMP only */ +#endif +#ifdef SMP +static int PMAP1cpu; +static int PMAP1changedcpu; +SYSCTL_INT(_debug, OID_AUTO, PMAP1changedcpu, CTLFLAG_RD, + &PMAP1changedcpu, 0, + "Number of times pmap_pte2_quick changed CPU with same PMAP1"); +#endif +static int PMAP1changed; +SYSCTL_INT(_debug, OID_AUTO, PMAP1changed, CTLFLAG_RD, + &PMAP1changed, 0, + "Number of times pmap_pte2_quick changed PMAP1"); +static int PMAP1unchanged; +SYSCTL_INT(_debug, OID_AUTO, PMAP1unchanged, CTLFLAG_RD, + &PMAP1unchanged, 0, + "Number of times pmap_pte2_quick didn't change PMAP1"); +static struct mtx PMAP2mutex; + +static __inline void pt2_wirecount_init(vm_page_t m); +static boolean_t pmap_demote_pte1(pmap_t pmap, pt1_entry_t *pte1p, + vm_offset_t va); +void cache_icache_sync_fresh(vm_offset_t va, vm_paddr_t pa, vm_size_t size); + +/* + * Function to set the debug level of the pmap code. + */ +#ifdef PMAP_DEBUG +void +pmap_debug(int level) +{ + + pmap_debug_level = level; + dprintf("pmap_debug: level=%d\n", pmap_debug_level); +} +#endif /* PMAP_DEBUG */ + +/* + * This table must corespond with memory attribute configuration in vm.h. + * First entry is used for normal system mapping. + * + * Device memory is always marked as shared. + * Normal memory is shared only in SMP . + * Not outer shareable bits are not used yet. + * Class 6 cannot be used on ARM11. + */ +#define TEXDEF_TYPE_SHIFT 0 +#define TEXDEF_TYPE_MASK 0x3 +#define TEXDEF_INNER_SHIFT 2 +#define TEXDEF_INNER_MASK 0x3 +#define TEXDEF_OUTER_SHIFT 4 +#define TEXDEF_OUTER_MASK 0x3 +#define TEXDEF_NOS_SHIFT 6 +#define TEXDEF_NOS_MASK 0x1 + +#define TEX(t, i, o, s) \ + ((t) << TEXDEF_TYPE_SHIFT) | \ + ((i) << TEXDEF_INNER_SHIFT) | \ + ((o) << TEXDEF_OUTER_SHIFT | \ + ((s) << TEXDEF_NOS_SHIFT)) + +static uint32_t tex_class[8] = { +/* type inner cache outer cache */ + TEX(PRRR_MEM, NMRR_WB_WA, NMRR_WB_WA, 0), /* 0 - ATTR_WB_WA */ + TEX(PRRR_MEM, NMRR_NC, NMRR_NC, 0), /* 1 - ATTR_NOCACHE */ + TEX(PRRR_DEV, NMRR_NC, NMRR_NC, 0), /* 2 - ATTR_DEVICE */ + TEX(PRRR_SO, NMRR_NC, NMRR_NC, 0), /* 3 - ATTR_SO */ + TEX(PRRR_MEM, NMRR_WT, NMRR_WT, 0), /* 4 - ATTR_WT */ + TEX(PRRR_MEM, NMRR_NC, NMRR_NC, 0), /* 5 - NOT USED YET */ + TEX(PRRR_MEM, NMRR_NC, NMRR_NC, 0), /* 6 - NOT USED YET */ + TEX(PRRR_MEM, NMRR_NC, NMRR_NC, 0), /* 7 - NOT USED YET */ +}; +#undef TEX + +/* + * Convert TEX definition entry to TTB flags. + */ +static uint32_t +encode_ttb_flags(int idx) +{ + uint32_t inner, outer, nos, reg; + + inner = (tex_class[idx] >> TEXDEF_INNER_SHIFT) & + TEXDEF_INNER_MASK; + outer = (tex_class[idx] >> TEXDEF_OUTER_SHIFT) & + TEXDEF_OUTER_MASK; + nos = (tex_class[idx] >> TEXDEF_NOS_SHIFT) & + TEXDEF_NOS_MASK; + + reg = nos << 5; + reg |= outer << 3; + if (cpuinfo.coherent_walk) + reg |= (inner & 0x1) << 6; + reg |= (inner & 0x2) >> 1; +#ifdef SMP + reg |= 1 << 1; +#endif + return reg; +} + +/* + * Set TEX remapping registers in current CPU. + */ +void +pmap_set_tex(void) +{ + uint32_t prrr, nmrr; + uint32_t type, inner, outer, nos; + int i; + +#ifdef PMAP_PTE_NOCACHE + /* XXX fixme */ + if (cpuinfo.coherent_walk) { + pt_memattr = VM_MEMATTR_WB_WA; + ttb_flags = encode_ttb_flags(0); + } + else { + pt_memattr = VM_MEMATTR_NOCACHE; + ttb_flags = encode_ttb_flags(1); + } +#else + pt_memattr = VM_MEMATTR_WB_WA; + ttb_flags = encode_ttb_flags(0); +#endif + + prrr = 0; + nmrr = 0; + + /* Build remapping register from TEX classes. */ + for (i = 0; i < 8; i++) { + type = (tex_class[i] >> TEXDEF_TYPE_SHIFT) & + TEXDEF_TYPE_MASK; + inner = (tex_class[i] >> TEXDEF_INNER_SHIFT) & + TEXDEF_INNER_MASK; + outer = (tex_class[i] >> TEXDEF_OUTER_SHIFT) & + TEXDEF_OUTER_MASK; + nos = (tex_class[i] >> TEXDEF_NOS_SHIFT) & + TEXDEF_NOS_MASK; + + prrr |= type << (i * 2); + prrr |= nos << (i + 24); + nmrr |= inner << (i * 2); + nmrr |= outer << (i * 2 + 16); + } + /* Add shareable bits for device memory. */ + prrr |= PRRR_DS0 | PRRR_DS1; + + /* Add shareable bits for normal memory in SMP case. */ +#ifdef SMP + prrr |= PRRR_NS1; +#endif + cp15_prrr_set(prrr); + cp15_nmrr_set(nmrr); + + /* Caches are disabled, so full TLB flush should be enough. */ + tlb_flush_all_local(); +} + +/* + * KERNBASE must be multiple of NPT2_IN_PG * PTE1_SIZE. In other words, + * KERNBASE is mapped by first L2 page table in L2 page table page. It + * meets same constrain due to PT2MAP being placed just under KERNBASE. + */ +CTASSERT((KERNBASE & (NPT2_IN_PG * PTE1_SIZE - 1)) == 0); +CTASSERT((KERNBASE - VM_MAXUSER_ADDRESS) >= PT2MAP_SIZE); + +/* + * In crazy dreams, PAGE_SIZE could be a multiple of PTE2_SIZE in general. + * For now, anyhow, the following check must be fulfilled. + */ +CTASSERT(PAGE_SIZE == PTE2_SIZE); +/* + * We don't want to mess up MI code with all MMU and PMAP definitions, + * so some things, which depend on other ones, are defined independently. + * Now, it is time to check that we don't screw up something. + */ +CTASSERT(PDRSHIFT == PTE1_SHIFT); +/* + * Check L1 and L2 page table entries definitions consistency. + */ +CTASSERT(NB_IN_PT1 == (sizeof(pt1_entry_t) * NPTE1_IN_PT1)); +CTASSERT(NB_IN_PT2 == (sizeof(pt2_entry_t) * NPTE2_IN_PT2)); +/* + * Check L2 page tables page consistency. + */ +CTASSERT(PAGE_SIZE == (NPT2_IN_PG * NB_IN_PT2)); +CTASSERT((1 << PT2PG_SHIFT) == NPT2_IN_PG); +/* + * Check PT2TAB consistency. + * PT2TAB_ENTRIES is defined as a division of NPTE1_IN_PT1 by NPT2_IN_PG. + * This should be done without remainder. + */ +CTASSERT(NPTE1_IN_PT1 == (PT2TAB_ENTRIES * NPT2_IN_PG)); + +/* + * A PT2MAP magic. + * + * All level 2 page tables (PT2s) are mapped continuously and accordingly + * into PT2MAP address space. As PT2 size is less than PAGE_SIZE, this can + * be done only if PAGE_SIZE is a multiple of PT2 size. All PT2s in one page + * must be used together, but not necessary at once. The first PT2 in a page + * must map things on correctly aligned address and the others must follow + * in right order. + */ +#define NB_IN_PT2TAB (PT2TAB_ENTRIES * sizeof(pt2_entry_t)) +#define NPT2_IN_PT2TAB (NB_IN_PT2TAB / NB_IN_PT2) +#define NPG_IN_PT2TAB (NB_IN_PT2TAB / PAGE_SIZE) + +/* + * Check PT2TAB consistency. + * NPT2_IN_PT2TAB is defined as a division of NB_IN_PT2TAB by NB_IN_PT2. + * NPG_IN_PT2TAB is defined as a division of NB_IN_PT2TAB by PAGE_SIZE. + * The both should be done without remainder. + */ +CTASSERT(NB_IN_PT2TAB == (NPT2_IN_PT2TAB * NB_IN_PT2)); +CTASSERT(NB_IN_PT2TAB == (NPG_IN_PT2TAB * PAGE_SIZE)); +/* + * The implementation was made general, however, with the assumption + * bellow in mind. In case of another value of NPG_IN_PT2TAB, + * the code should be once more rechecked. + */ +CTASSERT(NPG_IN_PT2TAB == 1); + +/* + * Get offset of PT2 in a page + * associated with given PT1 index. + */ +static __inline u_int +page_pt2off(u_int pt1_idx) +{ + + return ((pt1_idx & PT2PG_MASK) * NB_IN_PT2); +} + +/* + * Get physical address of PT2 + * associated with given PT2s page and PT1 index. + */ +static __inline vm_paddr_t +page_pt2pa(vm_paddr_t pgpa, u_int pt1_idx) +{ + + return (pgpa + page_pt2off(pt1_idx)); +} + +/* + * Get first entry of PT2 + * associated with given PT2s page and PT1 index. + */ +static __inline pt2_entry_t * +page_pt2(vm_offset_t pgva, u_int pt1_idx) +{ + + return ((pt2_entry_t *)(pgva + page_pt2off(pt1_idx))); +} + +/* + * Get virtual address of PT2s page (mapped in PT2MAP) + * which holds PT2 which holds entry which maps given virtual address. + */ +static __inline vm_offset_t +pt2map_pt2pg(vm_offset_t va) +{ + + va &= ~(NPT2_IN_PG * PTE1_SIZE - 1); + return ((vm_offset_t)pt2map_entry(va)); +} + +/***************************************************************************** + * + * THREE pmap initialization milestones exist: + * + * locore.S + * -> fundamental init (including MMU) in ASM + * + * initarm() + * -> fundamental init continues in C + * -> first available physical address is known + * + * pmap_bootstrap_prepare() -> FIRST PMAP MILESTONE (first epoch begins) + * -> basic (safe) interface for physical address allocation is made + * -> basic (safe) interface for virtual mapping is made + * -> limited not SMP coherent work is possible + * + * -> more fundamental init continues in C + * -> locks and some more things are available + * -> all fundamental allocations and mappings are done + * + * pmap_bootstrap() -> SECOND PMAP MILESTONE (second epoch begins) + * -> phys_avail[] and virtual_avail is set + * -> control is passed to vm subsystem + * -> physical and virtual address allocation are off limit + * -> low level mapping functions, some SMP coherent, + * are available, which cannot be used before vm subsystem + * is being inited + * + * mi_startup() + * -> vm subsystem is being inited + * + * pmap_init() -> THIRD PMAP MILESTONE (third epoch begins) + * -> pmap is fully inited + * + *****************************************************************************/ + +/***************************************************************************** + * + * PMAP first stage initialization and utility functions + * for pre-bootstrap epoch. + * + * After pmap_bootstrap_prepare() is called, the following functions + * can be used: + * + * (1) strictly only for this stage functions for physical page allocations, + * virtual space allocations, and mappings: + * + * vm_paddr_t pmap_preboot_get_pages(u_int num); + * void pmap_preboot_map_pages(vm_paddr_t pa, vm_offset_t va, u_int num); + * vm_offset_t pmap_preboot_reserve_pages(u_int num); + * vm_offset_t pmap_preboot_get_vpages(u_int num); + * void pmap_preboot_map_attr(vm_paddr_t pa, vm_offset_t va, vm_size_t size, + * int prot, int attr); + * + * (2) for all stages: + * + * vm_paddr_t pmap_kextract(vm_offset_t va); + * + * NOTE: This is not SMP coherent stage. + * + *****************************************************************************/ + +#define KERNEL_P2V(pa) \ + ((vm_offset_t)((pa) - arm_physmem_kernaddr + KERNVIRTADDR)) +#define KERNEL_V2P(va) \ + ((vm_paddr_t)((va) - KERNVIRTADDR + arm_physmem_kernaddr)) + +static vm_paddr_t last_paddr; + +/* + * Pre-bootstrap epoch page allocator. + */ +vm_paddr_t +pmap_preboot_get_pages(u_int num) +{ + vm_paddr_t ret; + + ret = last_paddr; + last_paddr += num * PAGE_SIZE; + + return (ret); +} + +/* + * The fundamental initalization of PMAP stuff. + * + * Some things already happened in locore.S and some things could happen + * before pmap_bootstrap_prepare() is called, so let's recall what is done: + * 1. Caches are disabled. + * 2. We are running on virtual addresses already with 'boot_pt1' + * as L1 page table. + * 3. So far, all virtual addresses can be converted to physical ones and + * vice versa by the following macros: + * KERNEL_P2V(pa) .... physical to virtual ones, + * KERNEL_V2P(va) .... virtual to physical ones. + * + * What is done herein: + * 1. The 'boot_pt1' is replaced by real kernel L1 page table 'kern_pt1'. + * 2. PT2MAP magic is brought to live. + * 3. Basic preboot functions for page allocations and mappings can be used. + * 4. Everything is prepared for L1 cache enabling. + * + * Variations: + * 1. To use second TTB register, so kernel and users page tables will be + * separated. This way process forking - pmap_pinit() - could be faster, + * it saves physical pages and KVA per a process, and it's simple change. + * However, it will lead, due to hardware matter, to the following: + * (a) 2G space for kernel and 2G space for users. + * (b) 1G space for kernel in low addresses and 3G for users above it. + * A question is: Is the case (b) really an option? Note that case (b) + * does save neither physical memory and KVA. + */ +void +pmap_bootstrap_prepare(vm_paddr_t last) +{ + vm_paddr_t pt2pg_pa, pt2tab_pa, pa, size; + vm_offset_t pt2pg_va; + pt1_entry_t *pte1p; + pt2_entry_t *pte2p; + u_int i; + uint32_t actlr_mask, actlr_set; + + /* + * Now, we are going to make real kernel mapping. Note that we are + * already running on some mapping made in locore.S and we expect + * that it's large enough to ensure nofault access to physical memory + * allocated herein before switch. + * + * As kernel image and everything needed before are and will be mapped + * by section mappings, we align last physical address to PTE1_SIZE. + */ + last_paddr = pte1_roundup(last); + + /* + * Allocate and zero page(s) for kernel L1 page table. + * + * Note that it's first allocation on space which was PTE1_SIZE + * aligned and as such base_pt1 is aligned to NB_IN_PT1 too. + */ + base_pt1 = pmap_preboot_get_pages(NPG_IN_PT1); + kern_pt1 = (pt1_entry_t *)KERNEL_P2V(base_pt1); + bzero((void*)kern_pt1, NB_IN_PT1); + pte1_sync_range(kern_pt1, NB_IN_PT1); + + /* Allocate and zero page(s) for kernel PT2TAB. */ + pt2tab_pa = pmap_preboot_get_pages(NPG_IN_PT2TAB); + kern_pt2tab = (pt2_entry_t *)KERNEL_P2V(pt2tab_pa); + bzero(kern_pt2tab, NB_IN_PT2TAB); + pte2_sync_range(kern_pt2tab, NB_IN_PT2TAB); + + /* Allocate and zero page(s) for kernel L2 page tables. */ + pt2pg_pa = pmap_preboot_get_pages(NKPT2PG); + pt2pg_va = KERNEL_P2V(pt2pg_pa); + size = NKPT2PG * PAGE_SIZE; + bzero((void*)pt2pg_va, size); + pte2_sync_range((pt2_entry_t *)pt2pg_va, size); + + /* + * Add a physical memory segment (vm_phys_seg) corresponding to the + * preallocated pages for kernel L2 page tables so that vm_page + * structures representing these pages will be created. The vm_page + * structures are required for promotion of the corresponding kernel + * virtual addresses to section mappings. + */ + vm_phys_add_seg(pt2tab_pa, pmap_preboot_get_pages(0)); + + /* + * Insert allocated L2 page table pages to PT2TAB and make + * link to all PT2s in L1 page table. See how kernel_vm_end + * is initialized. + * + * We play simple and safe. So every KVA will have underlaying + * L2 page table, even kernel image mapped by sections. + */ + pte2p = kern_pt2tab_entry(KERNBASE); + for (pa = pt2pg_pa; pa < pt2pg_pa + size; pa += PTE2_SIZE) + pt2tab_store(pte2p++, PTE2_KPT(pa)); + + pte1p = kern_pte1(KERNBASE); + for (pa = pt2pg_pa; pa < pt2pg_pa + size; pa += NB_IN_PT2) + pte1_store(pte1p++, PTE1_LINK(pa)); + + /* Make section mappings for kernel. */ + pte1p = kern_pte1(KERNBASE); + for (pa = KERNEL_V2P(KERNBASE); pa < last; pa += PTE1_SIZE) + pte1_store(pte1p++, PTE1_KERN(pa, PTE1_AP_KRW, + ATTR_TO_L1(PTE2_ATTR_WB_WA))); + + /* + * Get free and aligned space for PT2MAP and make L1 page table links + * to L2 page tables held in PT2TAB. + * + * Note that pages holding PT2s are stored in PT2TAB as pt2_entry_t + * descriptors and PT2TAB page(s) itself is(are) used as PT2s. Thus + * each entry in PT2TAB maps all PT2s in a page. This implies that + * virtual address of PT2MAP must be aligned to NPT2_IN_PG * PTE1_SIZE. + */ + PT2MAP = (pt2_entry_t *)(KERNBASE - PT2MAP_SIZE); + pte1p = kern_pte1((vm_offset_t)PT2MAP); + for (pa = pt2tab_pa, i = 0; i < NPT2_IN_PT2TAB; i++, pa += NB_IN_PT2) { + pte1_store(pte1p++, PTE1_LINK(pa)); + } + + /* + * Store PT2TAB in PT2TAB itself, i.e. self reference mapping. + * Each pmap will hold own PT2TAB, so the mapping should be not global. + */ + pte2p = kern_pt2tab_entry((vm_offset_t)PT2MAP); + for (pa = pt2tab_pa, i = 0; i < NPG_IN_PT2TAB; i++, pa += PTE2_SIZE) { + pt2tab_store(pte2p++, PTE2_KPT_NG(pa)); + } + + /* + * Choose correct L2 page table and make mappings for allocations + * made herein which replaces temporary locore.S mappings after a while. + * Note that PT2MAP cannot be used until we switch to kern_pt1. + * + * Note, that these allocations started aligned on 1M section and + * kernel PT1 was allocated first. Making of mappings must follow + * order of physical allocations as we've used KERNEL_P2V() macro + * for virtual addresses resolution. + */ + pte2p = kern_pt2tab_entry((vm_offset_t)kern_pt1); + pt2pg_va = KERNEL_P2V(pte2_pa(pte2_load(pte2p))); + + pte2p = page_pt2(pt2pg_va, pte1_index((vm_offset_t)kern_pt1)); + + /* Make mapping for kernel L1 page table. */ + for (pa = base_pt1, i = 0; i < NPG_IN_PT1; i++, pa += PTE2_SIZE) + pte2_store(pte2p++, PTE2_KPT(pa)); + + /* Make mapping for kernel PT2TAB. */ + for (pa = pt2tab_pa, i = 0; i < NPG_IN_PT2TAB; i++, pa += PTE2_SIZE) + pte2_store(pte2p++, PTE2_KPT(pa)); + + /* Finally, switch from 'boot_pt1' to 'kern_pt1'. */ + pmap_kern_ttb = base_pt1 | ttb_flags; + cpuinfo_get_actlr_modifier(&actlr_mask, &actlr_set); + reinit_mmu(pmap_kern_ttb, actlr_mask, actlr_set); + /* + * Initialize the first available KVA. As kernel image is mapped by + * sections, we are leaving some gap behind. + */ + virtual_avail = (vm_offset_t)kern_pt2tab + NPG_IN_PT2TAB * PAGE_SIZE; +} + +/* + * Setup L2 page table page for given KVA. + * Used in pre-bootstrap epoch. + * + * Note that we have allocated NKPT2PG pages for L2 page tables in advance + * and used them for mapping KVA starting from KERNBASE. However, this is not + * enough. Vectors and devices need L2 page tables too. Note that they are + * even above VM_MAX_KERNEL_ADDRESS. + */ +static __inline vm_paddr_t +pmap_preboot_pt2pg_setup(vm_offset_t va) +{ + pt2_entry_t *pte2p, pte2; + vm_paddr_t pt2pg_pa; + + /* Get associated entry in PT2TAB. */ + pte2p = kern_pt2tab_entry(va); + + /* Just return, if PT2s page exists already. */ + pte2 = pt2tab_load(pte2p); + if (pte2_is_valid(pte2)) + return (pte2_pa(pte2)); + + KASSERT(va >= VM_MAX_KERNEL_ADDRESS, + ("%s: NKPT2PG too small", __func__)); + + /* + * Allocate page for PT2s and insert it to PT2TAB. + * In other words, map it into PT2MAP space. + */ + pt2pg_pa = pmap_preboot_get_pages(1); + pt2tab_store(pte2p, PTE2_KPT(pt2pg_pa)); + + /* Zero all PT2s in allocated page. */ + bzero((void*)pt2map_pt2pg(va), PAGE_SIZE); + pte2_sync_range((pt2_entry_t *)pt2map_pt2pg(va), PAGE_SIZE); + + return (pt2pg_pa); +} + +/* + * Setup L2 page table for given KVA. + * Used in pre-bootstrap epoch. + */ +static void +pmap_preboot_pt2_setup(vm_offset_t va) +{ + pt1_entry_t *pte1p; + vm_paddr_t pt2pg_pa, pt2_pa; + + /* Setup PT2's page. */ + pt2pg_pa = pmap_preboot_pt2pg_setup(va); + pt2_pa = page_pt2pa(pt2pg_pa, pte1_index(va)); + + /* Insert PT2 to PT1. */ + pte1p = kern_pte1(va); + pte1_store(pte1p, PTE1_LINK(pt2_pa)); +} + +/* + * Get L2 page entry associated with given KVA. + * Used in pre-bootstrap epoch. + */ +static __inline pt2_entry_t* +pmap_preboot_vtopte2(vm_offset_t va) +{ + pt1_entry_t *pte1p; + + /* Setup PT2 if needed. */ + pte1p = kern_pte1(va); + if (!pte1_is_valid(pte1_load(pte1p))) /* XXX - sections ?! */ + pmap_preboot_pt2_setup(va); + + return (pt2map_entry(va)); +} + +/* + * Pre-bootstrap epoch page(s) mapping(s). + */ +void +pmap_preboot_map_pages(vm_paddr_t pa, vm_offset_t va, u_int num) +{ + u_int i; + pt2_entry_t *pte2p; + + /* Map all the pages. */ + for (i = 0; i < num; i++) { + pte2p = pmap_preboot_vtopte2(va); + pte2_store(pte2p, PTE2_KRW(pa)); + va += PAGE_SIZE; + pa += PAGE_SIZE; + } +} + +/* + * Pre-bootstrap epoch virtual space alocator. + */ +vm_offset_t +pmap_preboot_reserve_pages(u_int num) +{ + u_int i; + vm_offset_t start, va; + pt2_entry_t *pte2p; + + /* Allocate virtual space. */ + start = va = virtual_avail; + virtual_avail += num * PAGE_SIZE; + + /* Zero the mapping. */ + for (i = 0; i < num; i++) { + pte2p = pmap_preboot_vtopte2(va); + pte2_store(pte2p, 0); + va += PAGE_SIZE; + } + + return (start); +} + +/* + * Pre-bootstrap epoch page(s) allocation and mapping(s). + */ +vm_offset_t +pmap_preboot_get_vpages(u_int num) +{ + vm_paddr_t pa; + vm_offset_t va; + + /* Allocate physical page(s). */ + pa = pmap_preboot_get_pages(num); + + /* Allocate virtual space. */ + va = virtual_avail; + virtual_avail += num * PAGE_SIZE; + + /* Map and zero all. */ + pmap_preboot_map_pages(pa, va, num); + bzero((void *)va, num * PAGE_SIZE); + + return (va); +} + +/* + * Pre-bootstrap epoch page mapping(s) with attributes. + */ +void +pmap_preboot_map_attr(vm_paddr_t pa, vm_offset_t va, vm_size_t size, int prot, + int attr) +{ + u_int num; + u_int l1_attr, l1_prot; + pt1_entry_t *pte1p; + pt2_entry_t *pte2p; + + l1_prot = ATTR_TO_L1(prot); + l1_attr = ATTR_TO_L1(attr); + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri Jan 29 13:06:31 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CBEF2A7117D; Fri, 29 Jan 2016 13:06:31 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 94069105C; Fri, 29 Jan 2016 13:06:31 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TD6U69000576; Fri, 29 Jan 2016 13:06:30 GMT (envelope-from wma@FreeBSD.org) Received: (from wma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TD6UoB000571; Fri, 29 Jan 2016 13:06:30 GMT (envelope-from wma@FreeBSD.org) Message-Id: <201601291306.u0TD6UoB000571@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wma set sender to wma@FreeBSD.org using -f From: Wojciech Macek Date: Fri, 29 Jan 2016 13:06:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295038 - in head/sys: arm64/arm64 arm64/include conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 13:06:32 -0000 Author: wma Date: Fri Jan 29 13:06:30 2016 New Revision: 295038 URL: https://svnweb.freebsd.org/changeset/base/295038 Log: Framework for ARM64 instruction disassembler Provide an easy to use framework for ARM64 DDB disassembler. This commit does not contain full list of instruction opcodes. Obtained from: Semihalf Sponsored by: Cavium Approved by: cognet (mentor) Reviewed by: zbb, andrew, cognet Differential revision: https://reviews.freebsd.org/D5114 Added: head/sys/arm64/arm64/disassem.c (contents, props changed) head/sys/arm64/include/disassem.h (contents, props changed) Modified: head/sys/arm64/arm64/db_disasm.c head/sys/arm64/include/armreg.h head/sys/conf/files.arm64 Modified: head/sys/arm64/arm64/db_disasm.c ============================================================================== --- head/sys/arm64/arm64/db_disasm.c Fri Jan 29 11:00:33 2016 (r295037) +++ head/sys/arm64/arm64/db_disasm.c Fri Jan 29 13:06:30 2016 (r295038) @@ -31,11 +31,40 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include + +#include + +static u_int db_disasm_read_word(vm_offset_t); +static void db_disasm_printaddr(vm_offset_t); + +/* Glue code to interface db_disasm to the generic ARM disassembler */ +static const struct disasm_interface db_disasm_interface = { + db_disasm_read_word, + db_disasm_printaddr, + db_printf +}; + +static u_int +db_disasm_read_word(vm_offset_t address) +{ + + return (db_get_value(address, INSN_SIZE, 0)); +} + +static void +db_disasm_printaddr(vm_offset_t address) +{ + + db_printsym((db_addr_t)address, DB_STGY_ANY); +} vm_offset_t db_disasm(vm_offset_t loc, bool altfmt) { - return 0; + + return (disasm(&db_disasm_interface, loc, altfmt)); } /* End of db_disasm.c */ Added: head/sys/arm64/arm64/disassem.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm64/arm64/disassem.c Fri Jan 29 13:06:30 2016 (r295038) @@ -0,0 +1,330 @@ +/*- + * Copyright (c) 2016 Cavium + * All rights reserved. + * + * This software was developed by Semihalf. + * + * 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 +#include +#include +#include + +#define ARM64_MAX_TOKEN_LEN 8 +#define ARM64_MAX_TOKEN_CNT 10 + +static const char *w_reg[] = { + "w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", + "w8", "w9", "w10", "w11", "w12", "w13", "w14", "w15", + "w16", "w17", "w18", "w19", "w20", "w21", "w22", "w23", + "w24", "w25", "w26", "w27", "w28", "w29", "w30", "wSP", +}; + +static const char *x_reg[] = { + "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", + "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", + "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23", + "x24", "x25", "x26", "x27", "x28", "x29", "LR", "SP", +}; + +static const char *shift_2[] = { + "LSL", "LSR", "ASR", "RSV" +}; + +/* + * Structure representing single token (operand) inside instruction. + * name - name of operand + * pos - position within the instruction (in bits) + * len - operand length (in bits) + */ +struct arm64_insn_token { + char name[ARM64_MAX_TOKEN_LEN]; + int pos; + int len; +}; + +/* + * Define generic types for instruction printing. + */ +enum arm64_format_type { + TYPE_01, /* OP , , {, #} SF32/64 + OP , , #{, } SF32/64 */ +}; + +/* + * Structure representing single parsed instruction format. + * name - opcode name + * format - opcode format in a human-readable way + * type - syntax type for printing + * special_ops - special options passed to a printer (if any) + * mask - bitmask for instruction matching + * pattern - pattern to look for + * tokens - array of tokens (operands) inside instruction + */ +struct arm64_insn { + char* name; + char* format; + enum arm64_format_type type; + uint64_t special_ops; + uint32_t mask; + uint32_t pattern; + struct arm64_insn_token tokens[ARM64_MAX_TOKEN_CNT]; +}; + +/* + * Specify instruction opcode format in a human-readable way. Use notation + * obtained from ARM Architecture Reference Manual for ARMv8-A. + * + * Format string description: + * Each group must be separated by "|". Group made of 0/1 is used to + * generate mask and pattern for instruction matching. Groups containing + * an operand token (in format NAME(length_bits)) are used to retrieve any + * operand data from the instruction. Names here must be meaningful + * and match the one described in the Manual. + * + * Token description: + * SF - "0" represents 32-bit access, "1" represents 64-bit access + * SHIFT - type of shift (instruction dependent) + * IMM - immediate value + * Rx - register number + */ +static struct arm64_insn arm64_i[] = { + { "add", "SF(1)|0001011|SHIFT(2)|0|RM(5)|IMM(6)|RN(5)|RD(5)", TYPE_01, 0 }, + { "mov", "SF(1)|001000100000000000000|RN(5)|RD(5)", TYPE_01, 0 }, + { "add", "SF(1)|0010001|SHIFT(2)|IMM(12)|RN(5)|RD(5)", TYPE_01, 0 }, + { NULL, NULL } +}; + +static void +arm64_disasm_generate_masks(struct arm64_insn *tab) +{ + uint32_t mask, val; + int a, i; + int len, ret; + int token = 0; + char *format; + int error; + + while (tab->name != NULL) { + mask = 0; + val = 0; + format = tab->format; + token = 0; + error = 0; + + /* + * For each entry analyze format strings from the + * left (i.e. from the MSB). + */ + a = (INSN_SIZE * NBBY) - 1; + while (*format != '\0' && (a >= 0)) { + switch(*format) { + case '0': + /* Bit is 0, add to mask and pattern */ + mask |= (1 << a); + a--; + format++; + break; + case '1': + /* Bit is 1, add to mask and pattern */ + mask |= (1 << a); + val |= (1 << a); + a--; + format++; + break; + case '|': + /* skip */ + format++; + break; + default: + /* Token found, copy the name */ + memset(tab->tokens[token].name, 0, + sizeof(tab->tokens[token].name)); + i = 0; + while (*format != '(') { + tab->tokens[token].name[i] = *format; + i++; + format++; + if (i >= ARM64_MAX_TOKEN_LEN) { + printf("ERROR: token too long in op %s\n", + tab->name); + error = 1; + break; + } + } + if (error != 0) + break; + + /* Read the length value */ + ret = sscanf(format, "(%d)", &len); + if (ret == 1) { + if (token >= ARM64_MAX_TOKEN_CNT) { + printf("ERROR: to many tokens in op %s\n", + tab->name); + error = 1; + break; + } + + a -= len; + tab->tokens[token].pos = a + 1; + tab->tokens[token].len = len; + token++; + } + + /* Skip to the end of the token */ + while (*format != 0 && *format != '|') + format++; + } + } + + /* Write mask and pattern to the instruction array */ + tab->mask = mask; + tab->pattern = val; + + /* + * If we got here, format string must be parsed and "a" + * should point to -1. If it's not, wrong number of bits + * in format string. Mark this as invalid and prevent + * from being matched. + */ + if (*format != 0 || (a != -1) || (error != 0)) { + tab->mask = 0; + tab->pattern = 0xffffffff; + printf("ERROR: skipping instruction op %s\n", + tab->name); + } + + tab++; + } +} + +static int +arm64_disasm_read_token(struct arm64_insn *insn, u_int opcode, + const char *token, int *val) +{ + int i; + + for (i = 0; i < ARM64_MAX_TOKEN_CNT; i++) { + if (strcmp(insn->tokens[i].name, token) == 0) { + *val = (opcode >> insn->tokens[i].pos & + ((1 << insn->tokens[i].len) - 1)); + return (0); + } + } + + return (EINVAL); +} + +static const char * +arm64_reg(int b64, int num) +{ + + if (b64 != 0) + return (x_reg[num]); + + return (w_reg[num]); +} + +vm_offset_t +disasm(const struct disasm_interface *di, vm_offset_t loc, int altfmt) +{ + struct arm64_insn *i_ptr = arm64_i; + uint32_t insn; + int matchp; + int ret; + int shift, rm, rd, rn, imm, sf; + int rm_absent; + + /* Initialize defaults, all are 0 except SF indicating 64bit access */ + shift = rd = rm = rn = imm = 0; + sf = 1; + + matchp = 0; + insn = di->di_readword(loc); + while (i_ptr->name) { + /* If mask is 0 then the parser was not initialized yet */ + if ((i_ptr->mask != 0) && + ((insn & i_ptr->mask) == i_ptr->pattern)) { + matchp = 1; + break; + } + i_ptr++; + } + if (matchp == 0) + goto undefined; + + switch (i_ptr->type) { + case TYPE_01: + /* OP , , {, #} SF32/64 + OP , , #{, } SF32/64 */ + + /* Mandatory tokens */ + ret = arm64_disasm_read_token(i_ptr, insn, "SF", &sf); + ret |= arm64_disasm_read_token(i_ptr, insn, "RD", &rd); + ret |= arm64_disasm_read_token(i_ptr, insn, "RN", &rn); + if (ret != 0) { + printf("ERROR: Missing mandatory token for op %s type %d\n", + i_ptr->name, i_ptr->type); + goto undefined; + } + + /* Optional tokens */ + arm64_disasm_read_token(i_ptr, insn, "IMM", &imm); + arm64_disasm_read_token(i_ptr, insn, "SHIFT", &shift); + rm_absent = arm64_disasm_read_token(i_ptr, insn, "RM", &rm); + + di->di_printf("%s\t%s, %s", i_ptr->name, arm64_reg(sf, rd), + arm64_reg(sf, rn)); + + /* If RM is present use it, otherwise use immediate notation */ + if (rm_absent == 0) { + di->di_printf(", %s", arm64_reg(sf, rm)); + if (imm != 0) + di->di_printf(", %s #%d", shift_2[shift], imm); + } else { + if (imm != 0 || shift != 0) + di->di_printf(", #0x%x", imm); + if (shift != 0) + di->di_printf(" LSL #12"); + } + break; + default: + goto undefined; + } + + di->di_printf("\n"); + return(loc + INSN_SIZE); + +undefined: + di->di_printf("undefined\t%08x\n", insn); + return(loc + INSN_SIZE); +} + +/* Parse format strings at the very beginning */ +SYSINIT(arm64_disasm_generate_masks, SI_SUB_DDB_SERVICES, + SI_ORDER_FIRST, arm64_disasm_generate_masks, arm64_i); Modified: head/sys/arm64/include/armreg.h ============================================================================== --- head/sys/arm64/include/armreg.h Fri Jan 29 11:00:33 2016 (r295037) +++ head/sys/arm64/include/armreg.h Fri Jan 29 13:06:30 2016 (r295038) @@ -33,6 +33,8 @@ #ifndef _MACHINE_ARMREG_H_ #define _MACHINE_ARMREG_H_ +#define INSN_SIZE 4 + #define READ_SPECIALREG(reg) \ ({ uint64_t val; \ __asm __volatile("mrs %0, " __STRING(reg) : "=&r" (val)); \ Added: head/sys/arm64/include/disassem.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm64/include/disassem.h Fri Jan 29 13:06:30 2016 (r295038) @@ -0,0 +1,42 @@ +/*- + * Copyright (c) 2016 Cavium + * All rights reserved. + * + * This software was developed by Semihalf. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef __DISASSEM_H_ +#define __DISASSEM_H_ + +struct disasm_interface { + u_int (*di_readword)(vm_offset_t); + void (*di_printaddr)(vm_offset_t); + int (*di_printf)(const char *, ...) __printflike(1, 2); +}; + +vm_offset_t disasm(const struct disasm_interface *, vm_offset_t, int); + +#endif /* __DISASSEM_H_ */ Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Fri Jan 29 11:00:33 2016 (r295037) +++ head/sys/conf/files.arm64 Fri Jan 29 13:06:30 2016 (r295038) @@ -20,6 +20,7 @@ arm64/arm64/db_disasm.c optional ddb arm64/arm64/db_interface.c optional ddb arm64/arm64/db_trace.c optional ddb arm64/arm64/debug_monitor.c optional kdb +arm64/arm64/disassem.c optional ddb arm64/arm64/dump_machdep.c standard arm64/arm64/elf_machdep.c standard arm64/arm64/exception.S standard From owner-svn-src-all@freebsd.org Fri Jan 29 14:12:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16633A727C4; Fri, 29 Jan 2016 14:12:15 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D45EF1DB0; Fri, 29 Jan 2016 14:12:14 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TECD8N019196; Fri, 29 Jan 2016 14:12:13 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TECDdp019186; Fri, 29 Jan 2016 14:12:13 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601291412.u0TECDdp019186@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 29 Jan 2016 14:12:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295039 - in head: lib/libc/gen lib/libc/include lib/libc/sys sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 14:12:15 -0000 Author: kib Date: Fri Jan 29 14:12:12 2016 New Revision: 295039 URL: https://svnweb.freebsd.org/changeset/base/295039 Log: Add implementations of sendmmsg(3) and recvmmsg(3) functions which wraps sendmsg(2) and recvmsg(2) into batch send and receive operation. The goal of this implementation is only to provide API compatibility with Linux. The cancellation behaviour of the functions is not quite right, but due to relative rare use of cancellation it is considered acceptable comparing with the complexity of the correct implementation. If functions are reimplemented as syscalls, the fix would come almost trivial. The direct use of the syscall trampolines instead of libc wrappers for sendmsg(2) and recvmsg(2) is to avoid data loss on cancellation. Submitted by: Boris Astardzhiev Discussed with: jilles (cancellation behaviour) MFC after: 1 month Added: head/lib/libc/gen/recvmmsg.c (contents, props changed) head/lib/libc/gen/sendmmsg.c (contents, props changed) Modified: head/lib/libc/gen/Makefile.inc head/lib/libc/include/namespace.h head/lib/libc/include/un-namespace.h head/lib/libc/sys/Symbol.map head/lib/libc/sys/recv.2 head/lib/libc/sys/send.2 head/sys/sys/socket.h Modified: head/lib/libc/gen/Makefile.inc ============================================================================== --- head/lib/libc/gen/Makefile.inc Fri Jan 29 13:06:30 2016 (r295038) +++ head/lib/libc/gen/Makefile.inc Fri Jan 29 14:12:12 2016 (r295039) @@ -99,11 +99,13 @@ SRCS+= __getosreldate.c \ raise.c \ readdir.c \ readpassphrase.c \ + recvmmsg.c \ rewinddir.c \ scandir.c \ seed48.c \ seekdir.c \ semctl.c \ + sendmmsg.c \ setdomainname.c \ sethostname.c \ setjmperr.c \ @@ -451,10 +453,12 @@ MLINKS+=rand48.3 _rand48.3 \ rand48.3 nrand48.3 \ rand48.3 seed48.3 \ rand48.3 srand48.3 +MLINKS+=recv.2 recvmmsg.2 MLINKS+=scandir.3 alphasort.3 MLINKS+=sem_open.3 sem_close.3 \ sem_open.3 sem_unlink.3 MLINKS+=sem_wait.3 sem_trywait.3 +MLINKS+=send.2 sendmmsg.2 MLINKS+=setjmp.3 _longjmp.3 \ setjmp.3 _setjmp.3 \ setjmp.3 longjmp.3 \ Added: head/lib/libc/gen/recvmmsg.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/gen/recvmmsg.c Fri Jan 29 14:12:12 2016 (r295039) @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2016 Boris Astardzhiev, Smartcom-Bulgaria AD + * 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(s), this list of conditions and the following disclaimer as + * the first lines of this file unmodified other than the possible + * addition of one or more copyright notices. + * 2. Redistributions in binary form must reproduce the above copyright + * notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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 +#include +#include +#include +#include "libc_private.h" + +ssize_t +recvmmsg(int s, struct mmsghdr *__restrict msgvec, size_t vlen, int flags, + const struct timespec *__restrict timeout) +{ + struct pollfd pfd[1]; + size_t i, rcvd; + ssize_t ret; + int res; + short ev; + + if (timeout != NULL) { + pfd[0].fd = s; + pfd[0].revents = 0; + pfd[0].events = ev = POLLIN | POLLRDNORM | POLLRDBAND | + POLLPRI; + res = ppoll(&pfd[0], 1, timeout, NULL); + if (res == -1 || res == 0) + return (res); + if (pfd[0].revents & POLLNVAL) { + errno = EBADF; + return (-1); + } + if ((pfd[0].revents & ev) == 0) { + errno = ETIMEDOUT; + return (-1); + } + } + + ret = __sys_recvmsg(s, &msgvec[0].msg_hdr, flags); + if (ret == -1) + return (ret); + + /* + * Do non-blocking receive for second and later messages if + * WAITFORONE is set. + */ + if (flags & MSG_WAITFORONE) + flags |= MSG_DONTWAIT; + + rcvd = 1; + for (i = rcvd; i < vlen; i++, rcvd++) { + ret = __sys_recvmsg(s, &msgvec[i].msg_hdr, flags); + if (ret == -1) { + /* We have received messages. Let caller know + * about the data received, socket + * error is returned on next + * invocation. + */ + return (rcvd); + } + + /* Save received bytes. */ + msgvec[i].msg_len = ret; + } + + return (rcvd); +} Added: head/lib/libc/gen/sendmmsg.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/gen/sendmmsg.c Fri Jan 29 14:12:12 2016 (r295039) @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2016 Boris Astardzhiev, Smartcom-Bulgaria AD + * 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(s), this list of conditions and the following disclaimer as + * the first lines of this file unmodified other than the possible + * addition of one or more copyright notices. + * 2. Redistributions in binary form must reproduce the above copyright + * notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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 +#include "libc_private.h" + +ssize_t +sendmmsg(int s, struct mmsghdr *__restrict msgvec, size_t vlen, int flags) +{ + size_t i, sent; + ssize_t ret; + + sent = 0; + for (i = 0; i < vlen; i++, sent++) { + ret = __sys_sendmsg(s, &msgvec[i].msg_hdr, flags); + if (ret == -1) { + if (sent != 0) { + /* + * We have sent messages. Let caller + * know about the data sent, socket + * error is returned on next + * invocation. + */ + return (sent); + } + return (ret); + } + + /* Save sent bytes. */ + msgvec[i].msg_len = ret; + } + + return (sent); +} Modified: head/lib/libc/include/namespace.h ============================================================================== --- head/lib/libc/include/namespace.h Fri Jan 29 13:06:30 2016 (r295038) +++ head/lib/libc/include/namespace.h Fri Jan 29 14:12:12 2016 (r295039) @@ -208,6 +208,7 @@ #define readv _readv #define recvfrom _recvfrom #define recvmsg _recvmsg +#define recvmmsg _recvmmsg #define select _select #define sem_close _sem_close #define sem_destroy _sem_destroy @@ -220,6 +221,7 @@ #define sem_unlink _sem_unlink #define sem_wait _sem_wait #define sendmsg _sendmsg +#define sendmmsg _sendmmsg #define sendto _sendto #define setsockopt _setsockopt /*#define sigaction _sigaction*/ Modified: head/lib/libc/include/un-namespace.h ============================================================================== --- head/lib/libc/include/un-namespace.h Fri Jan 29 13:06:30 2016 (r295038) +++ head/lib/libc/include/un-namespace.h Fri Jan 29 14:12:12 2016 (r295039) @@ -189,6 +189,7 @@ #undef readv #undef recvfrom #undef recvmsg +#undef recvmmsg #undef select #undef sem_close #undef sem_destroy @@ -201,6 +202,7 @@ #undef sem_unlink #undef sem_wait #undef sendmsg +#undef sendmmsg #undef sendto #undef setsockopt #undef sigaction Modified: head/lib/libc/sys/Symbol.map ============================================================================== --- head/lib/libc/sys/Symbol.map Fri Jan 29 13:06:30 2016 (r295038) +++ head/lib/libc/sys/Symbol.map Fri Jan 29 14:12:12 2016 (r295039) @@ -399,6 +399,8 @@ FBSD_1.4 { utimensat; numa_setaffinity; numa_getaffinity; + sendmmsg; + recvmmsg; }; FBSDprivate_1.0 { Modified: head/lib/libc/sys/recv.2 ============================================================================== --- head/lib/libc/sys/recv.2 Fri Jan 29 13:06:30 2016 (r295038) +++ head/lib/libc/sys/recv.2 Fri Jan 29 14:12:12 2016 (r295039) @@ -28,14 +28,15 @@ .\" @(#)recv.2 8.3 (Berkeley) 2/21/94 .\" $FreeBSD$ .\" -.Dd October 15, 2014 +.Dd January 29, 2016 .Dt RECV 2 .Os .Sh NAME .Nm recv , .Nm recvfrom , -.Nm recvmsg -.Nd receive a message from a socket +.Nm recvmsg , +.Nm recvmmsg +.Nd receive message(s) from a socket .Sh LIBRARY .Lb libc .Sh SYNOPSIS @@ -47,11 +48,14 @@ .Fn recvfrom "int s" "void *buf" "size_t len" "int flags" "struct sockaddr * restrict from" "socklen_t * restrict fromlen" .Ft ssize_t .Fn recvmsg "int s" "struct msghdr *msg" "int flags" +.Ft ssize_t +.Fn recvmmsg "int s" "struct mmsghdr * restrict msgvec" "size_t vlen" "int flags" "const struct timespec * restrict timeout" .Sh DESCRIPTION The -.Fn recvfrom +.Fn recvfrom , +.Fn recvmsg , and -.Fn recvmsg +.Fn recvmmsg system calls are used to receive messages from a socket, and may be used to receive data on a socket whether or not @@ -84,8 +88,39 @@ null pointer passed as its .Fa from argument. .Pp -All three routines return the length of the message on successful -completion. +The +.Fn recvmmsg +function is used to receive multiple +messages at a call. +Their number is supplied by +.Fa vlen . +The messages are placed in the buffers described by +.Fa msgvec +vector, after reception. +The size of each received message is placed in the +.Fa msg_len +field of each element of the vector. +If +.Fa timeout +is NULL the call blocks until the data is available for each +supplied message buffer. +Otherwise it waits for data for the specified amount of time. +If the timeout expired and there is no data received, +a value 0 is returned. +The +.Xr ppoll 2 +system call is used to implement the timeout mechanism, +before first receive is performed. +.Pp +The +.Fn recv , +.Fn recvfrom +and +.Fn recvmsg +return the length of the message on successful +completion, whereas +.Fn recvmmsg +returns the number of received messages. If a message is too long to fit in the supplied buffer, excess bytes may be discarded depending on the type of socket the message is received from (see @@ -100,7 +135,9 @@ in which case the value .Va errno is set to .Er EAGAIN . -The receive calls normally return any data available, +The receive calls except +.Fn recvmmsg +normally return any data available, up to the requested amount, rather than waiting for receipt of the full amount requested; this behavior is affected by the socket-level options @@ -109,6 +146,9 @@ and .Dv SO_RCVTIMEO described in .Xr getsockopt 2 . +The +.Fn recvmmsg +function implements this behaviour for each message in the vector. .Pp The .Xr select 2 @@ -127,6 +167,10 @@ one or more of the values: .It Dv MSG_WAITALL Ta wait for full request or error .It Dv MSG_DONTWAIT Ta do not block .It Dv MSG_CMSG_CLOEXEC Ta set received fds close-on-exec +.It Dv MSG_WAITFORONE Ta do not block after receiving the first message +(only for +.Fn recvmmsg +) .El .Pp The @@ -158,6 +202,11 @@ is set to This flag is not available in strict .Tn ANSI or C99 compilation mode. +The +.Dv MSG_WAITFORONE +flag sets MSG_DONTWAIT after the first message has been received. +This flag is only relevant for +.Fn recvmmsg . .Pp The .Fn recvmsg @@ -290,9 +339,31 @@ control data were discarded due to lack for ancillary data. .Dv MSG_OOB is returned to indicate that expedited or out-of-band data were received. +.Pp +The +.Fn recvmmsg +system call uses the +.Fa mmsghdr +structure, defined as follows in the +.In sys/socket.h +header : +.Bd -literal +struct mmsghdr { + struct msghdr msg_hdr; /* message header */ + ssize_t msg_len; /* message length */ +}; +.Ed +.Pp +On data reception the +.Fa msg_len +field is updated to the length of the received message. .Sh RETURN VALUES -These calls return the number of bytes received, or -1 -if an error occurred. +These calls except +.Fn recvmmsg +return the number of bytes received. +.Fn recvmmsg +returns the number of messages received. +A value of -1 is returned if an error occurred. .Sh ERRORS The calls fail if: .Bl -tag -width Er @@ -347,3 +418,7 @@ The .Fn recv function appeared in .Bx 4.2 . +The +.Fn recvmmsg +function appeared in +.Fx 11.0 . Modified: head/lib/libc/sys/send.2 ============================================================================== --- head/lib/libc/sys/send.2 Fri Jan 29 13:06:30 2016 (r295038) +++ head/lib/libc/sys/send.2 Fri Jan 29 14:12:12 2016 (r295039) @@ -28,14 +28,15 @@ .\" From: @(#)send.2 8.2 (Berkeley) 2/21/94 .\" $FreeBSD$ .\" -.Dd February 5, 2009 +.Dd January 29, 2016 .Dt SEND 2 .Os .Sh NAME .Nm send , .Nm sendto , -.Nm sendmsg -.Nd send a message from a socket +.Nm sendmsg , +.Nm sendmmsg +.Nd send message(s) from a socket .Sh LIBRARY .Lb libc .Sh SYNOPSIS @@ -47,25 +48,33 @@ .Fn sendto "int s" "const void *msg" "size_t len" "int flags" "const struct sockaddr *to" "socklen_t tolen" .Ft ssize_t .Fn sendmsg "int s" "const struct msghdr *msg" "int flags" +.Ft ssize_t +.Fn sendmmsg "int s" "struct mmsghdr * restrict msgvec" "size_t vlen" "int flags" .Sh DESCRIPTION The .Fn send -function, +and +.Fn sendmmsg +functions, and .Fn sendto and .Fn sendmsg system calls -are used to transmit a message to another socket. +are used to transmit one or more messages (with the +.Fn sendmmsg +call) to +another socket. The .Fn send function may be used only when the socket is in a .Em connected state, while -.Fn sendto -and +.Fn sendto , .Fn sendmsg +and +.Fn sendmmsg may be used at any time. .Pp The address of the target is given by @@ -81,6 +90,18 @@ underlying protocol, the error is returned, and the message is not transmitted. .Pp +The +.Fn sendmmsg +function sends multiple messages at a call. +They are given by the +.Fa msgvec +vector along with +.Fa vlen +specifying the vector size. +The number of octets sent per each message is placed in the +.Fa msg_len +field of each processed element of the vector after transmission. +.Pp No indication of failure to deliver is implicit in a .Fn send . Locally detected errors are indicated by a return value of -1. @@ -138,14 +159,27 @@ See .Xr recv 2 for a description of the .Fa msghdr +structure and the +.Fa mmsghdr structure. .Sh RETURN VALUES -The call returns the number of characters sent, or -1 -if an error occurred. +The +.Fn send , +.Fn sendto +and +.Fn sendmsg +calls +return the number of octets sent. +The +.Fn sendmmsg +call returns the number of messages sent. +If an error occurred a value of -1 is returned. .Sh ERRORS The .Fn send -function and +and +.Fn sendmmsg +functions and .Fn sendto and .Fn sendmsg @@ -215,6 +249,10 @@ The .Fn send function appeared in .Bx 4.2 . +The +.Fn sendmmsg +function appeared in +.Fx 11.0 . .Sh BUGS Because .Fn sendmsg Modified: head/sys/sys/socket.h ============================================================================== --- head/sys/sys/socket.h Fri Jan 29 13:06:30 2016 (r295038) +++ head/sys/sys/socket.h Fri Jan 29 14:12:12 2016 (r295039) @@ -431,6 +431,7 @@ struct msghdr { #define MSG_NBIO 0x4000 /* FIONBIO mode, used by fifofs */ #define MSG_COMPAT 0x8000 /* used in sendit() */ #define MSG_CMSG_CLOEXEC 0x40000 /* make received fds close-on-exec */ +#define MSG_WAITFORONE 0x80000 /* for recvmmsg() */ #endif #ifdef _KERNEL #define MSG_SOCALLBCK 0x10000 /* for use by socket callbacks - soreceive (TCP) */ @@ -596,6 +597,14 @@ struct sf_hdtr { #define SFK_COMPAT 0x00000001 #define SF_READAHEAD(flags) ((flags) >> 16) #endif /* _KERNEL */ + +/* + * Sendmmsg/recvmmsg specific structure(s) + */ +struct mmsghdr { + struct msghdr msg_hdr; /* message header */ + ssize_t msg_len; /* message length */ +}; #endif /* __BSD_VISIBLE */ #ifndef _KERNEL @@ -618,12 +627,18 @@ int listen(int, int); ssize_t recv(int, void *, size_t, int); ssize_t recvfrom(int, void *, size_t, int, struct sockaddr * __restrict, socklen_t * __restrict); ssize_t recvmsg(int, struct msghdr *, int); +#if __BSD_VISIBLE +struct timespec; +ssize_t recvmmsg(int, struct mmsghdr * __restrict, size_t, int, + const struct timespec * __restrict); +#endif ssize_t send(int, const void *, size_t, int); ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t); ssize_t sendmsg(int, const struct msghdr *, int); #if __BSD_VISIBLE int sendfile(int, int, off_t, size_t, struct sf_hdtr *, off_t *, int); +ssize_t sendmmsg(int, struct mmsghdr * __restrict, size_t, int); int setfib(int); #endif int setsockopt(int, int, int, const void *, socklen_t); From owner-svn-src-all@freebsd.org Fri Jan 29 15:12:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B8665A72D20; Fri, 29 Jan 2016 15:12:33 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 81D231A24; Fri, 29 Jan 2016 15:12:33 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TFCWUd038613; Fri, 29 Jan 2016 15:12:32 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TFCVuc038598; Fri, 29 Jan 2016 15:12:31 GMT (envelope-from br@FreeBSD.org) Message-Id: <201601291512.u0TFCVuc038598@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Fri, 29 Jan 2016 15:12:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295041 - in head/sys: boot/fdt/dts/riscv boot/ficl/riscv cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/sys conf dev/hwpmc riscv/conf riscv/htif riscv/riscv sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 15:12:33 -0000 Author: br Date: Fri Jan 29 15:12:31 2016 New Revision: 295041 URL: https://svnweb.freebsd.org/changeset/base/295041 Log: Welcome the RISC-V 64-bit kernel. This is the final step required allowing to compile and to run RISC-V kernel and userland from HEAD. RISC-V is a completely open ISA that is freely available to academia and industry. Thanks to all the people involved! Special thanks to Andrew Turner, David Chisnall, Ed Maste, Konstantin Belousov, John Baldwin and Arun Thomas for their help. Thanks to Robert Watson for organizing this project. This project sponsored by UK Higher Education Innovation Fund (HEIF5) and DARPA CTSRD project at the University of Cambridge Computer Laboratory. FreeBSD/RISC-V project home: https://wiki.freebsd.org/riscv Reviewed by: andrew, emaste, kib Relnotes: Yes Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D4982 Added: head/sys/boot/fdt/dts/riscv/ head/sys/boot/fdt/dts/riscv/spike.dts (contents, props changed) head/sys/boot/ficl/riscv/ head/sys/boot/ficl/riscv/sysdep.c (contents, props changed) head/sys/boot/ficl/riscv/sysdep.h (contents, props changed) head/sys/conf/Makefile.riscv (contents, props changed) head/sys/conf/files.riscv (contents, props changed) head/sys/conf/ldscript.riscv (contents, props changed) head/sys/conf/options.riscv (contents, props changed) head/sys/dev/hwpmc/hwpmc_riscv.h (contents, props changed) head/sys/riscv/conf/ head/sys/riscv/conf/DEFAULTS (contents, props changed) head/sys/riscv/conf/GENERIC (contents, props changed) head/sys/riscv/htif/ head/sys/riscv/htif/htif.c (contents, props changed) head/sys/riscv/htif/htif.h (contents, props changed) head/sys/riscv/htif/htif_block.c (contents, props changed) head/sys/riscv/htif/htif_console.c (contents, props changed) head/sys/riscv/riscv/ head/sys/riscv/riscv/autoconf.c (contents, props changed) head/sys/riscv/riscv/bcopy.c (contents, props changed) head/sys/riscv/riscv/bus_machdep.c (contents, props changed) head/sys/riscv/riscv/busdma_machdep.c (contents, props changed) head/sys/riscv/riscv/clock.c (contents, props changed) head/sys/riscv/riscv/copyinout.S (contents, props changed) head/sys/riscv/riscv/copystr.c (contents, props changed) head/sys/riscv/riscv/cpufunc_asm.S (contents, props changed) head/sys/riscv/riscv/devmap.c (contents, props changed) head/sys/riscv/riscv/dump_machdep.c (contents, props changed) head/sys/riscv/riscv/elf_machdep.c (contents, props changed) head/sys/riscv/riscv/exception.S (contents, props changed) head/sys/riscv/riscv/genassym.c (contents, props changed) head/sys/riscv/riscv/identcpu.c (contents, props changed) head/sys/riscv/riscv/in_cksum.c (contents, props changed) head/sys/riscv/riscv/intr_machdep.c (contents, props changed) head/sys/riscv/riscv/locore.S (contents, props changed) head/sys/riscv/riscv/machdep.c (contents, props changed) head/sys/riscv/riscv/mem.c (contents, props changed) head/sys/riscv/riscv/minidump_machdep.c (contents, props changed) head/sys/riscv/riscv/nexus.c (contents, props changed) head/sys/riscv/riscv/pmap.c (contents, props changed) head/sys/riscv/riscv/support.S (contents, props changed) head/sys/riscv/riscv/swtch.S (contents, props changed) head/sys/riscv/riscv/sys_machdep.c (contents, props changed) head/sys/riscv/riscv/timer.c (contents, props changed) head/sys/riscv/riscv/trap.c (contents, props changed) head/sys/riscv/riscv/uio_machdep.c (contents, props changed) head/sys/riscv/riscv/uma_machdep.c (contents, props changed) head/sys/riscv/riscv/vm_machdep.c (contents, props changed) Modified: head/sys/cddl/compat/opensolaris/sys/atomic.h head/sys/cddl/contrib/opensolaris/uts/common/sys/isa_defs.h head/sys/conf/kern.mk head/sys/conf/kern.pre.mk head/sys/sys/cdefs.h head/sys/sys/kerneldump.h Added: head/sys/boot/fdt/dts/riscv/spike.dts ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/fdt/dts/riscv/spike.dts Fri Jan 29 15:12:31 2016 (r295041) @@ -0,0 +1,92 @@ +/*- + * Copyright (c) 2015 Ruslan Bukin + * All rights reserved. + * + * Portions of this software were developed by SRI International and the + * University of Cambridge Computer Laboratory under DARPA/AFRL contract + * FA8750-10-C-0237 ("CTSRD"), as part of the DARPA CRASH research programme. + * + * Portions of this software were developed by the University of Cambridge + * Computer Laboratory as part of the CTSRD Project, with support from the + * UK Higher Education Innovation Fund (HEIF). + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/dts-v1/; + +/ { + model = "UC Berkeley Spike Simulator RV64I"; + compatible = "riscv,rv64i"; + #address-cells = <1>; + #size-cells = <1>; + #interrupt-cells = <1>; + + aliases { + console0 = &console0; + }; + + memory { + device_type = "memory"; + reg = <0x0 0x8000000>; /* 128MB at 0x0 */ + }; + + soc { + #address-cells = <2>; + #size-cells = <2>; + #interrupt-cells = <1>; + + compatible = "simple-bus"; + ranges; + + pic0: pic@0 { + compatible = "riscv,pic"; + interrupt-controller; + }; + + timer0: timer@0 { + compatible = "riscv,timer"; + interrupts = < 1 >; + interrupt-parent = < &pic0 >; + clock-frequency = < 1000000 >; + }; + + htif0: htif@0 { + compatible = "riscv,htif"; + interrupts = < 0 >; + interrupt-parent = < &pic0 >; + + console0: console@0 { + compatible = "htif,console"; + status = "okay"; + }; + }; + }; + + chosen { + bootargs = "-v"; + stdin = "console0"; + stdout = "console0"; + }; +}; Added: head/sys/boot/ficl/riscv/sysdep.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/ficl/riscv/sysdep.c Fri Jan 29 15:12:31 2016 (r295041) @@ -0,0 +1,99 @@ +/******************************************************************* +** s y s d e p . c +** Forth Inspired Command Language +** Author: John Sadler (john_sadler@alum.mit.edu) +** Created: 16 Oct 1997 +** Implementations of FICL external interface functions... +** +*******************************************************************/ + +/* $FreeBSD$ */ + +#ifdef TESTMAIN +#include +#include +#else +#include +#endif +#include "ficl.h" + +/* +******************* FreeBSD P O R T B E G I N S H E R E ******************** Michael Smith +*/ + +#if PORTABLE_LONGMULDIV == 0 +DPUNS ficlLongMul(FICL_UNS x, FICL_UNS y) +{ + DPUNS q; + u_int64_t qx; + + qx = (u_int64_t)x * (u_int64_t) y; + + q.hi = (u_int32_t)( qx >> 32 ); + q.lo = (u_int32_t)( qx & 0xFFFFFFFFL); + + return q; +} + +UNSQR ficlLongDiv(DPUNS q, FICL_UNS y) +{ + UNSQR result; + u_int64_t qx, qh; + + qh = q.hi; + qx = (qh << 32) | q.lo; + + result.quot = qx / y; + result.rem = qx % y; + + return result; +} +#endif + +void ficlTextOut(FICL_VM *pVM, char *msg, int fNewline) +{ + IGNORE(pVM); + + while(*msg != 0) + putchar(*(msg++)); + if (fNewline) + putchar('\n'); + + return; +} + +void *ficlMalloc (size_t size) +{ + return malloc(size); +} + +void *ficlRealloc (void *p, size_t size) +{ + return realloc(p, size); +} + +void ficlFree (void *p) +{ + free(p); +} + + +/* +** Stub function for dictionary access control - does nothing +** by default, user can redefine to guarantee exclusive dict +** access to a single thread for updates. All dict update code +** is guaranteed to be bracketed as follows: +** ficlLockDictionary(TRUE); +** +** ficlLockDictionary(FALSE); +** +** Returns zero if successful, nonzero if unable to acquire lock +** befor timeout (optional - could also block forever) +*/ +#if FICL_MULTITHREAD +int ficlLockDictionary(short fLock) +{ + IGNORE(fLock); + return 0; +} +#endif /* FICL_MULTITHREAD */ Added: head/sys/boot/ficl/riscv/sysdep.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/ficl/riscv/sysdep.h Fri Jan 29 15:12:31 2016 (r295041) @@ -0,0 +1,411 @@ +/******************************************************************* + s y s d e p . h +** Forth Inspired Command Language +** Author: John Sadler (john_sadler@alum.mit.edu) +** Created: 16 Oct 1997 +** Ficl system dependent types and prototypes... +** +** Note: Ficl also depends on the use of "assert" when +** FICL_ROBUST is enabled. This may require some consideration +** in firmware systems since assert often +** assumes stderr/stdout. +** $Id: sysdep.h,v 1.6 2001-04-26 21:41:55-07 jsadler Exp jsadler $ +*******************************************************************/ +/* +** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu) +** All rights reserved. +** +** Get the latest Ficl release at http://ficl.sourceforge.net +** +** L I C E N S E and D I S C L A I M E R +** +** 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. +** +** I am interested in hearing from anyone who uses ficl. If you have +** a problem, a success story, a defect, an enhancement request, or +** if you would like to contribute to the ficl release, please send +** contact me by email at the address above. +** +** $Id: sysdep.h,v 1.6 2001-04-26 21:41:55-07 jsadler Exp jsadler $ +** $FreeBSD$ +*/ + +#if !defined (__SYSDEP_H__) +#define __SYSDEP_H__ + +#include + +#include /* size_t, NULL */ +#include +#include + +#if !defined IGNORE /* Macro to silence unused param warnings */ +#define IGNORE(x) (void)(x) +#endif + +/* +** TRUE and FALSE for C boolean operations, and +** portable 32 bit types for CELLs +** +*/ +#if !defined TRUE +#define TRUE 1 +#endif +#if !defined FALSE +#define FALSE 0 +#endif + + +/* +** System dependent data type declarations... +*/ +#if !defined INT32 +#define INT32 int +#endif + +#if !defined UNS32 +#define UNS32 unsigned int +#endif + +#if !defined UNS16 +#define UNS16 unsigned short +#endif + +#if !defined UNS8 +#define UNS8 unsigned char +#endif + +#if !defined NULL +#define NULL ((void *)0) +#endif + +/* +** FICL_UNS and FICL_INT must have the same size as a void* on +** the target system. A CELL is a union of void*, FICL_UNS, and +** FICL_INT. +** (11/2000: same for FICL_FLOAT) +*/ +#if !defined FICL_INT +#define FICL_INT long +#endif + +#if !defined FICL_UNS +#define FICL_UNS unsigned long +#endif + +#if !defined FICL_FLOAT +#define FICL_FLOAT float +#endif + +/* +** Ficl presently supports values of 32 and 64 for BITS_PER_CELL +*/ +#if !defined BITS_PER_CELL +#define BITS_PER_CELL 64 +#endif + +#if ((BITS_PER_CELL != 32) && (BITS_PER_CELL != 64)) + Error! +#endif + +typedef struct +{ + FICL_UNS hi; + FICL_UNS lo; +} DPUNS; + +typedef struct +{ + FICL_UNS quot; + FICL_UNS rem; +} UNSQR; + +typedef struct +{ + FICL_INT hi; + FICL_INT lo; +} DPINT; + +typedef struct +{ + FICL_INT quot; + FICL_INT rem; +} INTQR; + + +/* +** B U I L D C O N T R O L S +*/ + +#if !defined (FICL_MINIMAL) +#define FICL_MINIMAL 0 +#endif +#if (FICL_MINIMAL) +#define FICL_WANT_SOFTWORDS 0 +#define FICL_WANT_FLOAT 0 +#define FICL_WANT_USER 0 +#define FICL_WANT_LOCALS 0 +#define FICL_WANT_DEBUGGER 0 +#define FICL_WANT_OOP 0 +#define FICL_PLATFORM_EXTEND 0 +#define FICL_MULTITHREAD 0 +#define FICL_ROBUST 0 +#define FICL_EXTENDED_PREFIX 0 +#endif + +/* +** FICL_PLATFORM_EXTEND +** Includes words defined in ficlCompilePlatform +*/ +#if !defined (FICL_PLATFORM_EXTEND) +#define FICL_PLATFORM_EXTEND 1 +#endif + +/* +** FICL_WANT_FLOAT +** Includes a floating point stack for the VM, and words to do float operations. +** Contributed by Guy Carver +*/ +#if !defined (FICL_WANT_FLOAT) +#define FICL_WANT_FLOAT 0 +#endif + +/* +** FICL_WANT_DEBUGGER +** Inludes a simple source level debugger +*/ +#if !defined (FICL_WANT_DEBUGGER) +#define FICL_WANT_DEBUGGER 1 +#endif + +/* +** User variables: per-instance variables bound to the VM. +** Kinda like thread-local storage. Could be implemented in a +** VM private dictionary, but I've chosen the lower overhead +** approach of an array of CELLs instead. +*/ +#if !defined FICL_WANT_USER +#define FICL_WANT_USER 1 +#endif + +#if !defined FICL_USER_CELLS +#define FICL_USER_CELLS 16 +#endif + +/* +** FICL_WANT_LOCALS controls the creation of the LOCALS wordset and +** a private dictionary for local variable compilation. +*/ +#if !defined FICL_WANT_LOCALS +#define FICL_WANT_LOCALS 1 +#endif + +/* Max number of local variables per definition */ +#if !defined FICL_MAX_LOCALS +#define FICL_MAX_LOCALS 16 +#endif + +/* +** FICL_WANT_OOP +** Inludes object oriented programming support (in softwords) +** OOP support requires locals and user variables! +*/ +#if !(FICL_WANT_LOCALS) || !(FICL_WANT_USER) +#if !defined (FICL_WANT_OOP) +#define FICL_WANT_OOP 0 +#endif +#endif + +#if !defined (FICL_WANT_OOP) +#define FICL_WANT_OOP 1 +#endif + +/* +** FICL_WANT_SOFTWORDS +** Controls inclusion of all softwords in softcore.c +*/ +#if !defined (FICL_WANT_SOFTWORDS) +#define FICL_WANT_SOFTWORDS 1 +#endif + +/* +** FICL_MULTITHREAD enables dictionary mutual exclusion +** wia the ficlLockDictionary system dependent function. +** Note: this implementation is experimental and poorly +** tested. Further, it's unnecessary unless you really +** intend to have multiple SESSIONS (poor choice of name +** on my part) - that is, threads that modify the dictionary +** at the same time. +*/ +#if !defined FICL_MULTITHREAD +#define FICL_MULTITHREAD 0 +#endif + +/* +** PORTABLE_LONGMULDIV causes ficlLongMul and ficlLongDiv to be +** defined in C in sysdep.c. Use this if you cannot easily +** generate an inline asm definition +*/ +#if !defined (PORTABLE_LONGMULDIV) +#define PORTABLE_LONGMULDIV 0 +#endif + +/* +** INLINE_INNER_LOOP causes the inner interpreter to be inline code +** instead of a function call. This is mainly because MS VC++ 5 +** chokes with an internal compiler error on the function version. +** in release mode. Sheesh. +*/ +#if !defined INLINE_INNER_LOOP +#if defined _DEBUG +#define INLINE_INNER_LOOP 0 +#else +#define INLINE_INNER_LOOP 1 +#endif +#endif + +/* +** FICL_ROBUST enables bounds checking of stacks and the dictionary. +** This will detect stack over and underflows and dictionary overflows. +** Any exceptional condition will result in an assertion failure. +** (As generated by the ANSI assert macro) +** FICL_ROBUST == 1 --> stack checking in the outer interpreter +** FICL_ROBUST == 2 also enables checking in many primitives +*/ + +#if !defined FICL_ROBUST +#define FICL_ROBUST 2 +#endif + +/* +** FICL_DEFAULT_STACK Specifies the default size (in CELLs) of +** a new virtual machine's stacks, unless overridden at +** create time. +*/ +#if !defined FICL_DEFAULT_STACK +#define FICL_DEFAULT_STACK 128 +#endif + +/* +** FICL_DEFAULT_DICT specifies the number of CELLs to allocate +** for the system dictionary by default. The value +** can be overridden at startup time as well. +** FICL_DEFAULT_ENV specifies the number of cells to allot +** for the environment-query dictionary. +*/ +#if !defined FICL_DEFAULT_DICT +#define FICL_DEFAULT_DICT 12288 +#endif + +#if !defined FICL_DEFAULT_ENV +#define FICL_DEFAULT_ENV 260 +#endif + +/* +** FICL_DEFAULT_VOCS specifies the maximum number of wordlists in +** the dictionary search order. See Forth DPANS sec 16.3.3 +** (file://dpans16.htm#16.3.3) +*/ +#if !defined FICL_DEFAULT_VOCS +#define FICL_DEFAULT_VOCS 16 +#endif + +/* +** FICL_MAX_PARSE_STEPS controls the size of an array in the FICL_SYSTEM structure +** that stores pointers to parser extension functions. I would never expect to have +** more than 8 of these, so that's the default limit. Too many of these functions +** will probably exact a nasty performance penalty. +*/ +#if !defined FICL_MAX_PARSE_STEPS +#define FICL_MAX_PARSE_STEPS 8 +#endif + +/* +** FICL_EXTENDED_PREFIX enables a bunch of extra prefixes in prefix.c and prefix.fr (if +** included as part of softcore.c) +*/ +#if !defined FICL_EXTENDED_PREFIX +#define FICL_EXTENDED_PREFIX 0 +#endif + +/* +** FICL_ALIGN is the power of two to which the dictionary +** pointer address must be aligned. This value is usually +** either 1 or 2, depending on the memory architecture +** of the target system; 2 is safe on any 16 or 32 bit +** machine. 3 would be appropriate for a 64 bit machine. +*/ +#if !defined FICL_ALIGN +#define FICL_ALIGN 3 +#define FICL_ALIGN_ADD ((1 << FICL_ALIGN) - 1) +#endif + +/* +** System dependent routines -- +** edit the implementations in sysdep.c to be compatible +** with your runtime environment... +** ficlTextOut sends a NULL terminated string to the +** default output device - used for system error messages +** ficlMalloc and ficlFree have the same semantics as malloc and free +** in standard C +** ficlLongMul multiplies two UNS32s and returns a 64 bit unsigned +** product +** ficlLongDiv divides an UNS64 by an UNS32 and returns UNS32 quotient +** and remainder +*/ +struct vm; +void ficlTextOut(struct vm *pVM, char *msg, int fNewline); +void *ficlMalloc (size_t size); +void ficlFree (void *p); +void *ficlRealloc(void *p, size_t size); +/* +** Stub function for dictionary access control - does nothing +** by default, user can redefine to guarantee exclusive dict +** access to a single thread for updates. All dict update code +** must be bracketed as follows: +** ficlLockDictionary(TRUE); +** +** ficlLockDictionary(FALSE); +** +** Returns zero if successful, nonzero if unable to acquire lock +** before timeout (optional - could also block forever) +** +** NOTE: this function must be implemented with lock counting +** semantics: nested calls must behave properly. +*/ +#if FICL_MULTITHREAD +int ficlLockDictionary(short fLock); +#else +#define ficlLockDictionary(x) 0 /* ignore */ +#endif + +/* +** 64 bit integer math support routines: multiply two UNS32s +** to get a 64 bit product, & divide the product by an UNS32 +** to get an UNS32 quotient and remainder. Much easier in asm +** on a 32 bit CPU than in C, which usually doesn't support +** the double length result (but it should). +*/ +DPUNS ficlLongMul(FICL_UNS x, FICL_UNS y); +UNSQR ficlLongDiv(DPUNS q, FICL_UNS y); + +#endif /*__SYSDEP_H__*/ Modified: head/sys/cddl/compat/opensolaris/sys/atomic.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/atomic.h Fri Jan 29 14:52:54 2016 (r295040) +++ head/sys/cddl/compat/opensolaris/sys/atomic.h Fri Jan 29 15:12:31 2016 (r295041) @@ -51,7 +51,7 @@ extern uint8_t atomic_or_8_nv(volatile u extern void membar_producer(void); #if defined(__sparc64__) || defined(__powerpc__) || defined(__arm__) || \ - defined(__mips__) || defined(__aarch64__) + defined(__mips__) || defined(__aarch64__) || defined(__riscv__) extern void atomic_or_8(volatile uint8_t *target, uint8_t value); #else static __inline void Modified: head/sys/cddl/contrib/opensolaris/uts/common/sys/isa_defs.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/sys/isa_defs.h Fri Jan 29 14:52:54 2016 (r295040) +++ head/sys/cddl/contrib/opensolaris/uts/common/sys/isa_defs.h Fri Jan 29 15:12:31 2016 (r295041) @@ -388,6 +388,48 @@ extern "C" { #define _DONT_USE_1275_GENERIC_NAMES #define _HAVE_CPUID_INSN +#elif defined(__riscv__) + +/* + * Define the appropriate "processor characteristics" + */ +#define _STACK_GROWS_DOWNWARD +#define _LONG_LONG_LTOH +#define _BIT_FIELDS_LTOH +#define _IEEE_754 +#define _CHAR_IS_UNSIGNED +#define _BOOL_ALIGNMENT 1 +#define _CHAR_ALIGNMENT 1 +#define _SHORT_ALIGNMENT 2 +#define _INT_ALIGNMENT 4 +#define _FLOAT_ALIGNMENT 4 +#define _FLOAT_COMPLEX_ALIGNMENT 4 +#define _LONG_ALIGNMENT 8 +#define _LONG_LONG_ALIGNMENT 8 +#define _DOUBLE_ALIGNMENT 8 +#define _DOUBLE_COMPLEX_ALIGNMENT 8 +#define _LONG_DOUBLE_ALIGNMENT 16 +#define _LONG_DOUBLE_COMPLEX_ALIGNMENT 16 +#define _POINTER_ALIGNMENT 8 +#define _MAX_ALIGNMENT 16 +#define _ALIGNMENT_REQUIRED 1 + +#define _LONG_LONG_ALIGNMENT_32 _LONG_LONG_ALIGNMENT + +/* + * Define the appropriate "implementation choices" + */ +#if !defined(_LP64) +#define _LP64 +#endif +#define _SUNOS_VTOC_16 +#define _DMA_USES_PHYSADDR +#define _FIRMWARE_NEEDS_FDISK +#define _PSM_MODULES +#define _RTC_CONFIG +#define _DONT_USE_1275_GENERIC_NAMES +#define _HAVE_CPUID_INSN + #elif defined(__arm__) /* Added: head/sys/conf/Makefile.riscv ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/conf/Makefile.riscv Fri Jan 29 15:12:31 2016 (r295041) @@ -0,0 +1,49 @@ +# Makefile.riscv -- with config changes. +# Copyright 1990 W. Jolitz +# from: @(#)Makefile.i386 7.1 5/10/91 +# from FreeBSD: src/sys/conf/Makefile.i386,v 1.255 2002/02/20 23:35:49 +# $FreeBSD$ +# +# Makefile for FreeBSD +# +# RISCVTODO: copy pasted from aarch64, needs to be +# constructed from a machine description: +# config machineid +# Most changes should be made in the machine description +# /sys/riscv/conf/``machineid'' +# after which you should do +# config machineid +# Generic makefile changes should be made in +# /sys/conf/Makefile.riscv +# after which config should be rerun for all machines. +# + +# Which version of config(8) is required. +%VERSREQ= 600012 + +.if !defined(S) +S= ../../.. +.endif +.include "$S/conf/kern.pre.mk" + +INCLUDES+= -I$S/contrib/libfdt + +.if !empty(DDB_ENABLED) +CFLAGS += -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer +.endif + +%BEFORE_DEPEND + +%OBJS + +%FILES.c + +%FILES.s + +%FILES.m + +%CLEAN + +%RULES + +.include "$S/conf/kern.post.mk" Added: head/sys/conf/files.riscv ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/conf/files.riscv Fri Jan 29 15:12:31 2016 (r295041) @@ -0,0 +1,44 @@ +# $FreeBSD$ +crypto/blowfish/bf_enc.c optional crypto | ipsec +crypto/des/des_enc.c optional crypto | ipsec | netsmb +kern/kern_clocksource.c standard +kern/subr_dummy_vdso_tc.c standard +libkern/bcmp.c standard +libkern/ffs.c standard +libkern/ffsl.c standard +libkern/fls.c standard +libkern/flsl.c standard +libkern/flsll.c standard +libkern/memmove.c standard +libkern/memset.c standard +riscv/htif/htif.c standard +riscv/htif/htif_block.c standard +riscv/htif/htif_console.c standard +riscv/riscv/autoconf.c standard +riscv/riscv/bcopy.c standard +riscv/riscv/bus_machdep.c standard +riscv/riscv/busdma_machdep.c standard +riscv/riscv/clock.c standard +riscv/riscv/copyinout.S standard +riscv/riscv/copystr.c standard +riscv/riscv/cpufunc_asm.S standard +riscv/riscv/devmap.c standard +riscv/riscv/dump_machdep.c standard +riscv/riscv/elf_machdep.c standard +riscv/riscv/intr_machdep.c standard +riscv/riscv/in_cksum.c optional inet | inet6 +riscv/riscv/identcpu.c standard +riscv/riscv/locore.S standard no-obj +riscv/riscv/minidump_machdep.c standard +riscv/riscv/machdep.c standard +riscv/riscv/mem.c standard +riscv/riscv/nexus.c standard +riscv/riscv/pmap.c standard +riscv/riscv/sys_machdep.c standard +riscv/riscv/support.S standard +riscv/riscv/swtch.S standard +riscv/riscv/trap.c standard +riscv/riscv/timer.c standard +riscv/riscv/uio_machdep.c standard +riscv/riscv/uma_machdep.c standard +riscv/riscv/vm_machdep.c standard Modified: head/sys/conf/kern.mk ============================================================================== --- head/sys/conf/kern.mk Fri Jan 29 14:52:54 2016 (r295040) +++ head/sys/conf/kern.mk Fri Jan 29 15:12:31 2016 (r295041) @@ -104,6 +104,10 @@ CFLAGS += -mgeneral-regs-only CFLAGS += -ffixed-x18 .endif +.if ${MACHINE_CPUARCH} == "riscv" +INLINE_LIMIT?= 8000 +.endif + # # For sparc64 we want the medany code model so modules may be located # anywhere in the 64-bit address space. We also tell GCC to use floating Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Fri Jan 29 14:52:54 2016 (r295040) +++ head/sys/conf/kern.pre.mk Fri Jan 29 15:12:31 2016 (r295041) @@ -252,6 +252,7 @@ EMBEDFS_FORMAT.mips?= elf32-tradbigmips EMBEDFS_FORMAT.mipsel?= elf32-tradlittlemips EMBEDFS_FORMAT.mips64?= elf64-tradbigmips EMBEDFS_FORMAT.mips64el?= elf64-tradlittlemips +EMBEDFS_FORMAT.riscv?= elf64-littleriscv .endif # Detect kernel config options that force stack frames to be turned on. Added: head/sys/conf/ldscript.riscv ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/conf/ldscript.riscv Fri Jan 29 15:12:31 2016 (r295041) @@ -0,0 +1,136 @@ +/* $FreeBSD$ */ +OUTPUT_ARCH(riscv) +ENTRY(_start) + +SEARCH_DIR(/usr/lib); +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + . = kernbase + 0x100; + .text : AT(ADDR(.text) - kernbase) + { + *(.text) + *(.stub) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + *(.gnu.linkonce.t*) + } =0x9090 + _etext = .; + PROVIDE (etext = .); + .fini : { *(.fini) } =0x9090 + .rodata : { *(.rodata) *(.gnu.linkonce.r*) } + .rodata1 : { *(.rodata1) } + .interp : { *(.interp) } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.text : + { *(.rel.text) *(.rel.gnu.linkonce.t*) } + .rela.text : + { *(.rela.text) *(.rela.gnu.linkonce.t*) } + .rel.data : + { *(.rel.data) *(.rel.gnu.linkonce.d*) } + .rela.data : + { *(.rela.data) *(.rela.gnu.linkonce.d*) } + .rel.rodata : + { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } + .rela.rodata : + { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.bss : { *(.rel.bss) } + .rela.bss : { *(.rela.bss) } + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + .init : { *(.init) } =0x9090 + .plt : { *(.plt) } + + /* Adjust the address for the data segment. We want to adjust up to + the same address within the page on the next page up. */ + . = ALIGN(0x1000) + (. & (0x1000 - 1)) ; + .data : + { + *(.data) + *(.gnu.linkonce.d*) + CONSTRUCTORS + } + .data1 : { *(.data1) } + . = ALIGN(32 / 8); + _start_ctors = .; + PROVIDE (start_ctors = .); + .ctors : + { + *(.ctors) + } + _stop_ctors = .; + PROVIDE (stop_ctors = .); + .dtors : + { + *(.dtors) + } + .got : { *(.got.plt) *(.got) } + .dynamic : { *(.dynamic) } + /* We want the small data sections together, so single-instruction offsets + can access them all, and initialized data all before uninitialized, so + we can shorten the on-disk segment size. */ + . = ALIGN(8); + .sdata : { *(.sdata) } + _edata = .; + PROVIDE (edata = .); + __bss_start = .; + .sbss : { *(.sbss) *(.scommon) } + .bss : + { + *(.dynbss) + *(.bss) + *(COMMON) + } + . = ALIGN(8); + _end = . ; + PROVIDE (end = .); + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + /* These must appear regardless of . */ +} Added: head/sys/conf/options.riscv ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/conf/options.riscv Fri Jan 29 15:12:31 2016 (r295041) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +RISCV opt_global.h +VFP opt_global.h Added: head/sys/dev/hwpmc/hwpmc_riscv.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/hwpmc/hwpmc_riscv.h Fri Jan 29 15:12:31 2016 (r295041) @@ -0,0 +1,51 @@ +/*- + * Copyright (c) 2015 Ruslan Bukin + * All rights reserved. + * + * This software was developed by the University of Cambridge Computer + * Laboratory with support from ARM Ltd. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _DEV_HWPMC_RISCV_H_ +#define _DEV_HWPMC_RISCV_H_ + +#define RISCV_PMC_CAPS (PMC_CAP_INTERRUPT | PMC_CAP_USER | \ + PMC_CAP_SYSTEM | PMC_CAP_EDGE | \ + PMC_CAP_THRESHOLD | PMC_CAP_READ | \ + PMC_CAP_WRITE | PMC_CAP_INVERT | \ + PMC_CAP_QUALIFIER) + +#define RISCV_RELOAD_COUNT_TO_PERFCTR_VALUE(R) (-(R)) +#define RISCV_PERFCTR_VALUE_TO_RELOAD_COUNT(P) (-(P)) +#define EVENT_ID_MASK 0xFF + +#ifdef _KERNEL +/* MD extension for 'struct pmc' */ +struct pmc_md_riscv_pmc { + uint32_t pm_riscv_evsel; +}; +#endif /* _KERNEL */ +#endif /* _DEV_HWPMC_RISCV_H_ */ Added: head/sys/riscv/conf/DEFAULTS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/riscv/conf/DEFAULTS Fri Jan 29 15:12:31 2016 (r295041) @@ -0,0 +1,13 @@ +# +# DEFAULTS -- Default kernel configuration file for FreeBSD/RISC-V *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri Jan 29 16:01:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C93A3A70E1D; Fri, 29 Jan 2016 16:01:38 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9A8B7144B; Fri, 29 Jan 2016 16:01:38 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TG1bkU051494; Fri, 29 Jan 2016 16:01:37 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TG1bTe051489; Fri, 29 Jan 2016 16:01:37 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601291601.u0TG1bTe051489@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Fri, 29 Jan 2016 16:01:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295042 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 16:01:38 -0000 Author: skra Date: Fri Jan 29 16:01:37 2016 New Revision: 295042 URL: https://svnweb.freebsd.org/changeset/base/295042 Log: Use kernel_pmap directly instead of pmap_kernel(). The kernel_pmap is already used for __ARM_ARCH >= 6 and so even for __ARM_ARCH < 6 on some common places. Modified: head/sys/arm/arm/db_interface.c head/sys/arm/arm/machdep.c head/sys/arm/arm/pmap.c head/sys/arm/include/pmap-v6.h head/sys/arm/include/pmap.h Modified: head/sys/arm/arm/db_interface.c ============================================================================== --- head/sys/arm/arm/db_interface.c Fri Jan 29 15:12:31 2016 (r295041) +++ head/sys/arm/arm/db_interface.c Fri Jan 29 16:01:37 2016 (r295042) @@ -170,7 +170,7 @@ db_validate_address(vm_offset_t addr) addr >= VM_MIN_KERNEL_ADDRESS #endif ) - pmap = pmap_kernel(); + pmap = kernel_pmap; else pmap = p->p_vmspace->vm_map.pmap; Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Fri Jan 29 15:12:31 2016 (r295041) +++ head/sys/arm/arm/machdep.c Fri Jan 29 16:01:37 2016 (r295042) @@ -455,7 +455,7 @@ cpu_startup(void *dummy) vm_pager_bufferinit(); pcb->pcb_regs.sf_sp = (u_int)thread0.td_kstack + USPACE_SVC_STACK_TOP; - pmap_set_pcb_pagedir(pmap_kernel(), pcb); + pmap_set_pcb_pagedir(kernel_pmap, pcb); #if __ARM_ARCH < 6 vector_page_setprot(VM_PROT_READ); pmap_postinit(); Modified: head/sys/arm/arm/pmap.c ============================================================================== --- head/sys/arm/arm/pmap.c Fri Jan 29 15:12:31 2016 (r295041) +++ head/sys/arm/arm/pmap.c Fri Jan 29 16:01:37 2016 (r295042) @@ -394,7 +394,7 @@ int pmap_needs_pte_sync; #define PMAP_SHPGPERPROC 200 #endif -#define pmap_is_current(pm) ((pm) == pmap_kernel() || \ +#define pmap_is_current(pm) ((pm) == kernel_pmap || \ curproc->p_vmspace->vm_map.pmap == (pm)) static uma_zone_t pvzone = NULL; uma_zone_t l2zone; @@ -437,10 +437,10 @@ pmap_init_l1(struct l1_ttable *l1, pd_en /* * Copy the kernel's L1 entries to each new L1. */ - if (l1pt != pmap_kernel()->pm_l1->l1_kva) - memcpy(l1pt, pmap_kernel()->pm_l1->l1_kva, L1_TABLE_SIZE); + if (l1pt != kernel_pmap->pm_l1->l1_kva) + memcpy(l1pt, kernel_pmap->pm_l1->l1_kva, L1_TABLE_SIZE); - if ((l1->l1_physaddr = pmap_extract(pmap_kernel(), (vm_offset_t)l1pt)) == 0) + if ((l1->l1_physaddr = pmap_extract(kernel_pmap, (vm_offset_t)l1pt)) == 0) panic("pmap_init_l1: can't get PA of L1 at %p", l1pt); SLIST_INSERT_HEAD(&l1_list, l1, l1_link); TAILQ_INSERT_TAIL(&l1_lru_list, l1, l1_lru); @@ -932,7 +932,7 @@ pmap_free_l2_bucket(pmap_t pm, struct l2 * to a performance win over time as we don't need to continually * alloc/free. */ - if (l2b->l2b_occupancy > 0 || pm == pmap_kernel()) + if (l2b->l2b_occupancy > 0 || pm == kernel_pmap) return; /* @@ -1002,7 +1002,7 @@ pmap_l2ptp_ctor(void *mem, int size, voi * page tables, we simply fix up the cache-mode here if it's not * correct. */ - l2b = pmap_get_l2_bucket(pmap_kernel(), va); + l2b = pmap_get_l2_bucket(kernel_pmap, va); ptep = &l2b->l2b_kva[l2pte_index(va)]; pte = *ptep; @@ -1077,9 +1077,9 @@ pmap_idcache_wbinv_range(pmap_t pm, vm_o vm_size_t rest; CTR4(KTR_PMAP, "pmap_dcache_wbinv_range: pmap %p is_kernel %d va 0x%08x" - " len 0x%x ", pm, pm == pmap_kernel(), va, len); + " len 0x%x ", pm, pm == kernel_pmap, va, len); - if (pmap_is_current(pm) || pm == pmap_kernel()) { + if (pmap_is_current(pm) || pm == kernel_pmap) { rest = MIN(PAGE_SIZE - (va & PAGE_MASK), len); while (len > 0) { if (pmap_has_valid_mapping(pm, va)) { @@ -1100,7 +1100,7 @@ pmap_dcache_wb_range(pmap_t pm, vm_offse vm_size_t rest; CTR4(KTR_PMAP, "pmap_dcache_wb_range: pmap %p is_kernel %d va 0x%08x " - "len 0x%x ", pm, pm == pmap_kernel(), va, len); + "len 0x%x ", pm, pm == kernel_pmap, va, len); CTR2(KTR_PMAP, " do_inv %d rd_only %d", do_inv, rd_only); if (pmap_is_current(pm)) { @@ -1230,13 +1230,13 @@ pmap_fix_cache(struct vm_page *pg, pmap_ TAILQ_FOREACH(pv, &pg->md.pv_list, pv_list) { /* generate a count of the pv_entry uses */ if (pv->pv_flags & PVF_WRITE) { - if (pv->pv_pmap == pmap_kernel()) + if (pv->pv_pmap == kernel_pmap) kwritable++; else if (pv->pv_pmap == pm) uwritable++; writable++; } - if (pv->pv_pmap == pmap_kernel()) + if (pv->pv_pmap == kernel_pmap) kentries++; else { if (pv->pv_pmap == pm) @@ -1248,19 +1248,19 @@ pmap_fix_cache(struct vm_page *pg, pmap_ * check if the user duplicate mapping has * been removed. */ - if ((pm != pmap_kernel()) && (((uentries > 1) && uwritable) || + if ((pm != kernel_pmap) && (((uentries > 1) && uwritable) || (uwritable > 1))) pmwc = 1; TAILQ_FOREACH(pv, &pg->md.pv_list, pv_list) { /* check for user uncachable conditions - order is important */ - if (pm != pmap_kernel() && - (pv->pv_pmap == pm || pv->pv_pmap == pmap_kernel())) { + if (pm != kernel_pmap && + (pv->pv_pmap == pm || pv->pv_pmap == kernel_pmap)) { if ((uentries > 1 && uwritable) || uwritable > 1) { /* user duplicate mapping */ - if (pv->pv_pmap != pmap_kernel()) + if (pv->pv_pmap != kernel_pmap) pv->pv_flags |= PVF_MWC; if (!(pv->pv_flags & PVF_NC)) { @@ -1279,7 +1279,7 @@ pmap_fix_cache(struct vm_page *pg, pmap_ if ((kwritable && (entries || kentries > 1)) || (kwritable > 1) || ((kwritable != writable) && kentries && - (pv->pv_pmap == pmap_kernel() || + (pv->pv_pmap == kernel_pmap || (pv->pv_flags & PVF_WRITE) || (pv->pv_flags & PVF_MWC)))) { @@ -1291,7 +1291,7 @@ pmap_fix_cache(struct vm_page *pg, pmap_ } /* kernel and user are cachable */ - if ((pm == pmap_kernel()) && !(pv->pv_flags & PVF_MWC) && + if ((pm == kernel_pmap) && !(pv->pv_flags & PVF_MWC) && (pv->pv_flags & PVF_NC)) { pv->pv_flags &= ~PVF_NC; @@ -1300,8 +1300,8 @@ pmap_fix_cache(struct vm_page *pg, pmap_ continue; } /* user is no longer sharable and writable */ - if (pm != pmap_kernel() && - (pv->pv_pmap == pm || pv->pv_pmap == pmap_kernel()) && + if (pm != kernel_pmap && + (pv->pv_pmap == pm || pv->pv_pmap == kernel_pmap) && !pmwc && (pv->pv_flags & PVF_NC)) { pv->pv_flags &= ~(PVF_NC | PVF_MWC); @@ -1565,7 +1565,7 @@ vector_page_setprot(int prot) struct l2_bucket *l2b; pt_entry_t *ptep; - l2b = pmap_get_l2_bucket(pmap_kernel(), vector_page); + l2b = pmap_get_l2_bucket(kernel_pmap, vector_page); ptep = &l2b->l2b_kva[l2pte_index(vector_page)]; @@ -1603,7 +1603,7 @@ pmap_nuke_pv(struct vm_page *pg, pmap_t pg->md.pvh_attrs &= ~PVF_REF; else vm_page_aflag_set(pg, PGA_REFERENCED); - if ((pve->pv_flags & PVF_NC) && ((pm == pmap_kernel()) || + if ((pve->pv_flags & PVF_NC) && ((pm == kernel_pmap) || (pve->pv_flags & PVF_WRITE) || !(pve->pv_flags & PVF_MWC))) pmap_fix_cache(pg, pm, 0); else if (pve->pv_flags & PVF_WRITE) { @@ -1972,7 +1972,7 @@ pmap_postinit(void) pl1pt = (pd_entry_t *)va; while (va < eva) { - l2b = pmap_get_l2_bucket(pmap_kernel(), va); + l2b = pmap_get_l2_bucket(kernel_pmap, va); ptep = &l2b->l2b_kva[l2pte_index(va)]; pte = *ptep; pte = (pte & ~L2_S_CACHE_MASK) | pte_l2_s_cache_mode_pt; @@ -2122,7 +2122,7 @@ pmap_alloc_specials(vm_offset_t *availp, struct l2_bucket *l2b; if (ptep) { - l2b = pmap_get_l2_bucket(pmap_kernel(), va); + l2b = pmap_get_l2_bucket(kernel_pmap, va); if (l2b == NULL) panic("pmap_alloc_specials: no l2b for 0x%x", va); @@ -2381,7 +2381,7 @@ pmap_grow_map(vm_offset_t va, pt_entry_t if (pap) *pap = pa; - l2b = pmap_get_l2_bucket(pmap_kernel(), va); + l2b = pmap_get_l2_bucket(kernel_pmap, va); ptep = &l2b->l2b_kva[l2pte_index(va)]; *ptep = L2_S_PROTO | pa | cache_mode | @@ -2494,7 +2494,7 @@ pmap_grow_l2_bucket(pmap_t pm, vm_offset void pmap_growkernel(vm_offset_t addr) { - pmap_t kpm = pmap_kernel(); + pmap_t kpm = kernel_pmap; if (addr <= pmap_curmaxkvaddr) return; /* we are OK */ @@ -2654,9 +2654,9 @@ pmap_kenter_internal(vm_offset_t va, vm_ (uint32_t) va, (uint32_t) pa)); - l2b = pmap_get_l2_bucket(pmap_kernel(), va); + l2b = pmap_get_l2_bucket(kernel_pmap, va); if (l2b == NULL) - l2b = pmap_grow_l2_bucket(pmap_kernel(), va); + l2b = pmap_grow_l2_bucket(kernel_pmap, va); KASSERT(l2b != NULL, ("No L2 Bucket")); pte = &l2b->l2b_kva[l2pte_index(va)]; opte = *pte; @@ -2690,11 +2690,11 @@ pmap_kenter_internal(vm_offset_t va, vm_ if (!TAILQ_EMPTY(&m->md.pv_list) || m->md.pv_kva != 0) { if ((pve = pmap_get_pv_entry()) == NULL) panic("pmap_kenter_internal: no pv entries"); - PMAP_LOCK(pmap_kernel()); - pmap_enter_pv(m, pve, pmap_kernel(), va, + PMAP_LOCK(kernel_pmap); + pmap_enter_pv(m, pve, kernel_pmap, va, PVF_WRITE | PVF_UNMAN); - pmap_fix_cache(m, pmap_kernel(), va); - PMAP_UNLOCK(pmap_kernel()); + pmap_fix_cache(m, kernel_pmap, va); + PMAP_UNLOCK(kernel_pmap); } else { m->md.pv_kva = va; } @@ -2758,7 +2758,7 @@ pmap_kenter_user(vm_offset_t va, vm_padd * at the first use of the new address, or bad things will happen, * as we use one of these addresses in the exception handlers. */ - pmap_fault_fixup(pmap_kernel(), va, VM_PROT_READ|VM_PROT_WRITE, 1); + pmap_fault_fixup(kernel_pmap, va, VM_PROT_READ|VM_PROT_WRITE, 1); } vm_paddr_t @@ -2780,7 +2780,7 @@ pmap_kremove(vm_offset_t va) vm_page_t m; vm_offset_t pa; - l2b = pmap_get_l2_bucket(pmap_kernel(), va); + l2b = pmap_get_l2_bucket(kernel_pmap, va); if (!l2b) return; KASSERT(l2b != NULL, ("No L2 Bucket")); @@ -2796,11 +2796,11 @@ pmap_kremove(vm_offset_t va) * before the pvzone is initialized. */ rw_wlock(&pvh_global_lock); - PMAP_LOCK(pmap_kernel()); + PMAP_LOCK(kernel_pmap); if (pvzone != NULL && (m = vm_phys_paddr_to_vm_page(pa)) && - (pve = pmap_remove_pv(m, pmap_kernel(), va))) + (pve = pmap_remove_pv(m, kernel_pmap, va))) pmap_free_pv_entry(pve); - PMAP_UNLOCK(pmap_kernel()); + PMAP_UNLOCK(kernel_pmap); rw_wunlock(&pvh_global_lock); va = va & ~PAGE_MASK; cpu_dcache_wbinv_range(va, PAGE_SIZE); @@ -3027,7 +3027,7 @@ pmap_remove_all(vm_page_t m) curpm = vmspace_pmap(curproc->p_vmspace); while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) { if (flush == FALSE && (pv->pv_pmap == curpm || - pv->pv_pmap == pmap_kernel())) + pv->pv_pmap == kernel_pmap)) flush = TRUE; PMAP_LOCK(pv->pv_pmap); @@ -3239,7 +3239,7 @@ pmap_enter_locked(pmap_t pmap, vm_offset PDEBUG(1, printf("pmap_enter: pmap = %08x, va = %08x, m = %08x, prot = %x, " "flags = %x\n", (uint32_t) pmap, va, (uint32_t) m, prot, flags)); - if (pmap == pmap_kernel()) { + if (pmap == kernel_pmap) { l2b = pmap_get_l2_bucket(pmap, va); if (l2b == NULL) l2b = pmap_grow_l2_bucket(pmap, va); @@ -3414,7 +3414,7 @@ do_l2b_alloc: /* * Make sure userland mappings get the right permissions */ - if (pmap != pmap_kernel() && va != vector_page) { + if (pmap != kernel_pmap && va != vector_page) { npte |= L2_S_PROT_U; } @@ -3672,9 +3672,9 @@ retry: l1pd = pmap->pm_l1->l1_kva[l1idx]; if (l1pte_section_p(l1pd)) { /* - * These should only happen for pmap_kernel() + * These should only happen for kernel_pmap */ - KASSERT(pmap == pmap_kernel(), ("huh")); + KASSERT(pmap == kernel_pmap, ("huh")); /* XXX: what to do about the bits > 32 ? */ if (l1pd & L1_S_SUPERSEC) pa = (l1pd & L1_SUP_FRAME) | (va & L1_SUP_OFFSET); @@ -4034,7 +4034,7 @@ pmap_use_minicache(vm_offset_t va, vm_si if (next_bucket > eva) next_bucket = eva; - l2b = pmap_get_l2_bucket(pmap_kernel(), va); + l2b = pmap_get_l2_bucket(kernel_pmap, va); sptep = ptep = &l2b->l2b_kva[l2pte_index(va)]; @@ -4137,10 +4137,10 @@ pmap_clean_page(struct pv_entry *pv, boo if (curthread) pm = vmspace_pmap(curproc->p_vmspace); else - pm = pmap_kernel(); + pm = kernel_pmap; for (npv = pv; npv; npv = TAILQ_NEXT(npv, pv_list)) { - if (npv->pv_pmap == pmap_kernel() || npv->pv_pmap == pm) { + if (npv->pv_pmap == kernel_pmap || npv->pv_pmap == pm) { flags |= npv->pv_flags; /* * The page is mapped non-cacheable in Modified: head/sys/arm/include/pmap-v6.h ============================================================================== --- head/sys/arm/include/pmap-v6.h Fri Jan 29 15:12:31 2016 (r295041) +++ head/sys/arm/include/pmap-v6.h Fri Jan 29 16:01:37 2016 (r295042) @@ -271,15 +271,6 @@ void pmap_devmap_bootstrap(const struct void pmap_pte_init_mmu_v6(void); void vector_page_setprot(int); - -/* - * sys/arm/arm/db_interface.c - * sys/arm/arm/machdep.c - * sys/arm/arm/minidump_machdep.c - * sys/arm/arm/pmap.c - */ -#define pmap_kernel() kernel_pmap - /* * sys/arm/arm/bus_space_generic.c (just comment) * sys/arm/arm/devmap.c Modified: head/sys/arm/include/pmap.h ============================================================================== --- head/sys/arm/include/pmap.h Fri Jan 29 15:12:31 2016 (r295041) +++ head/sys/arm/include/pmap.h Fri Jan 29 16:01:37 2016 (r295042) @@ -176,7 +176,6 @@ typedef struct pmap *pmap_t; #ifdef _KERNEL extern struct pmap kernel_pmap_store; #define kernel_pmap (&kernel_pmap_store) -#define pmap_kernel() kernel_pmap #define PMAP_ASSERT_LOCKED(pmap) \ mtx_assert(&(pmap)->pm_mtx, MA_OWNED) @@ -247,7 +246,7 @@ vtopte(vm_offset_t va) pd_entry_t *pdep; pt_entry_t *ptep; - if (pmap_get_pde_pte(pmap_kernel(), va, &pdep, &ptep) == FALSE) + if (pmap_get_pde_pte(kernel_pmap, va, &pdep, &ptep) == FALSE) return (NULL); return (ptep); } From owner-svn-src-all@freebsd.org Fri Jan 29 16:42:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C34DA71FCA; Fri, 29 Jan 2016 16:42:04 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6A5CA1C8C; Fri, 29 Jan 2016 16:42:04 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TGg3xg064176; Fri, 29 Jan 2016 16:42:03 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TGg3ti064175; Fri, 29 Jan 2016 16:42:03 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601291642.u0TGg3ti064175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Fri, 29 Jan 2016 16:42:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295043 - head/sys/arm/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 16:42:04 -0000 Author: skra Date: Fri Jan 29 16:42:03 2016 New Revision: 295043 URL: https://svnweb.freebsd.org/changeset/base/295043 Log: Remove NPTEPG definition which is not used anywhere now after introduction of new pmap dump interface (r294722). And do not expose pt_entry_t type. Modified: head/sys/arm/include/param.h Modified: head/sys/arm/include/param.h ============================================================================== --- head/sys/arm/include/param.h Fri Jan 29 16:01:37 2016 (r295042) +++ head/sys/arm/include/param.h Fri Jan 29 16:42:03 2016 (r295043) @@ -110,7 +110,6 @@ #define PAGE_SHIFT 12 #define PAGE_SIZE (1 << PAGE_SHIFT) /* Page size */ #define PAGE_MASK (PAGE_SIZE - 1) -#define NPTEPG (PAGE_SIZE/(sizeof (pt_entry_t))) #define PDR_SHIFT 20 /* log2(NBPDR) */ #define NBPDR (1 << PDR_SHIFT) From owner-svn-src-all@freebsd.org Fri Jan 29 17:08:28 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60A0BA727CA; Fri, 29 Jan 2016 17:08:28 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3C6E31BD4; Fri, 29 Jan 2016 17:08:28 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TH8RMh072421; Fri, 29 Jan 2016 17:08:27 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TH8R5p072419; Fri, 29 Jan 2016 17:08:27 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201601291708.u0TH8R5p072419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Fri, 29 Jan 2016 17:08:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295045 - in head: . sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 17:08:28 -0000 Author: asomers Date: Fri Jan 29 17:08:26 2016 New Revision: 295045 URL: https://svnweb.freebsd.org/changeset/base/295045 Log: Add a sysctl to allow ZFS pools backed by zvols Change 294329 removed the ability to build ZFS pools that are backed by zvols, because having that ability (even if it's not used) leads to deadlocks. By popular demand, I'm adding an off-by-default sysctl to reenable that ability. Reviewed by: lidl, delphij MFC after: Never Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D4998 Modified: head/UPDATING head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Modified: head/UPDATING ============================================================================== --- head/UPDATING Fri Jan 29 17:05:30 2016 (r295044) +++ head/UPDATING Fri Jan 29 17:08:26 2016 (r295045) @@ -31,6 +31,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20160129: + Building ZFS pools on top of zvols is prohibited by default. That + feature has never worked safely; it's always been prone to deadlocks. + Using a zvol as the backing store for a VM guest's virtual disk will + still work, even if the guest is using ZFS. Legacy behavior can be + restored by setting vfs.zfs.vol.recursive=1. + 20160119: The NONE and HPN patches has been removed from OpenSSH. They are still available in the security/openssh-portable port. Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Fri Jan 29 17:05:30 2016 (r295044) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Fri Jan 29 17:08:26 2016 (r295045) @@ -134,6 +134,9 @@ SYSCTL_NODE(_vfs_zfs, OID_AUTO, vol, CTL static int volmode = ZFS_VOLMODE_GEOM; SYSCTL_INT(_vfs_zfs_vol, OID_AUTO, mode, CTLFLAG_RWTUN, &volmode, 0, "Expose as GEOM providers (1), device files (2) or neither"); +static boolean_t zpool_on_zvol = B_FALSE; +SYSCTL_INT(_vfs_zfs_vol, OID_AUTO, recursive, CTLFLAG_RWTUN, &zpool_on_zvol, 0, + "Allow zpools to use zvols as vdevs (DANGEROUS)"); #endif typedef struct zvol_extent { @@ -1114,7 +1117,9 @@ zvol_open(struct g_provider *pp, int fla return (err); } #else /* !illumos */ - if (tsd_get(zfs_geom_probe_vdev_key) != NULL) { + boolean_t locked = B_FALSE; + + if (!zpool_on_zvol && tsd_get(zfs_geom_probe_vdev_key) != NULL) { /* * if zfs_geom_probe_vdev_key is set, that means that zfs is * attempting to probe geom providers while looking for a @@ -1125,19 +1130,34 @@ zvol_open(struct g_provider *pp, int fla */ return (EOPNOTSUPP); } - - mutex_enter(&zfsdev_state_lock); + /* + * Protect against recursively entering spa_namespace_lock + * when spa_open() is used for a pool on a (local) ZVOL(s). + * This is needed since we replaced upstream zfsdev_state_lock + * with spa_namespace_lock in the ZVOL code. + * We are using the same trick as spa_open(). + * Note that calls in zvol_first_open which need to resolve + * pool name to a spa object will enter spa_open() + * recursively, but that function already has all the + * necessary protection. + */ + if (!MUTEX_HELD(&zfsdev_state_lock)) { + mutex_enter(&zfsdev_state_lock); + locked = B_TRUE; + } zv = pp->private; if (zv == NULL) { - mutex_exit(&zfsdev_state_lock); + if (locked) + mutex_exit(&zfsdev_state_lock); return (SET_ERROR(ENXIO)); } if (zv->zv_total_opens == 0) { err = zvol_first_open(zv); if (err) { - mutex_exit(&zfsdev_state_lock); + if (locked) + mutex_exit(&zfsdev_state_lock); return (err); } pp->mediasize = zv->zv_volsize; @@ -1171,7 +1191,8 @@ zvol_open(struct g_provider *pp, int fla mutex_exit(&zfsdev_state_lock); #else zv->zv_total_opens += count; - mutex_exit(&zfsdev_state_lock); + if (locked) + mutex_exit(&zfsdev_state_lock); #endif return (err); @@ -1181,7 +1202,8 @@ out: #ifdef illumos mutex_exit(&zfsdev_state_lock); #else - mutex_exit(&zfsdev_state_lock); + if (locked) + mutex_exit(&zfsdev_state_lock); #endif return (err); } From owner-svn-src-all@freebsd.org Fri Jan 29 17:18:52 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0AE6CA72D59; Fri, 29 Jan 2016 17:18:52 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D03741269; Fri, 29 Jan 2016 17:18:51 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0THIo9Q075486; Fri, 29 Jan 2016 17:18:50 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0THIoqv075485; Fri, 29 Jan 2016 17:18:50 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601291718.u0THIoqv075485@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 29 Jan 2016 17:18:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r295046 - vendor/illumos/dist/lib/libzfs/common X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 17:18:52 -0000 Author: mav Date: Fri Jan 29 17:18:50 2016 New Revision: 295046 URL: https://svnweb.freebsd.org/changeset/base/295046 Log: 6358 A faulted pool with only unavailable vdevs triggers assertion failure in libzfs Reviewed by: Matthew Ahrens Reviewed by: Andrew Stormont Reviewed by: Serban Maduta Approved by: Dan McDonald Author: Dan Vatca illumos/illumos-gate@b289d045e084af53efcc025255af8242e41f28fa Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_config.c Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_config.c ============================================================================== --- vendor/illumos/dist/lib/libzfs/common/libzfs_config.c Fri Jan 29 17:08:26 2016 (r295045) +++ vendor/illumos/dist/lib/libzfs/common/libzfs_config.c Fri Jan 29 17:18:50 2016 (r295046) @@ -26,6 +26,7 @@ /* * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2015 by Syneto S.R.L. All rights reserved. */ /* @@ -246,8 +247,9 @@ zpool_get_features(zpool_handle_t *zhp) config = zpool_get_config(zhp, NULL); } - verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_FEATURE_STATS, - &features) == 0); + if (nvlist_lookup_nvlist(config, ZPOOL_CONFIG_FEATURE_STATS, + &features) != 0) + return (NULL); return (features); } From owner-svn-src-all@freebsd.org Fri Jan 29 17:21:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 511C9A72E22; Fri, 29 Jan 2016 17:21:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2144E1474; Fri, 29 Jan 2016 17:21:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0THL0iS076227; Fri, 29 Jan 2016 17:21:00 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0THL0uG076226; Fri, 29 Jan 2016 17:21:00 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201601291721.u0THL0uG076226@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 29 Jan 2016 17:21:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295047 - head/cddl/contrib/opensolaris/lib/libzfs/common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 17:21:01 -0000 Author: mav Date: Fri Jan 29 17:20:59 2016 New Revision: 295047 URL: https://svnweb.freebsd.org/changeset/base/295047 Log: MFV 295046: 6358 A faulted pool with only unavailable vdevs triggers assertion failure in libzfs Reviewed by: Matthew Ahrens Reviewed by: Andrew Stormont Reviewed by: Serban Maduta Approved by: Dan McDonald Author: Dan Vatca illumos/illumos-gate@b289d045e084af53efcc025255af8242e41f28fa Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c Directory Properties: head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c Fri Jan 29 17:18:50 2016 (r295046) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c Fri Jan 29 17:20:59 2016 (r295047) @@ -26,6 +26,7 @@ /* * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2015 by Syneto S.R.L. All rights reserved. */ /* @@ -246,8 +247,9 @@ zpool_get_features(zpool_handle_t *zhp) config = zpool_get_config(zhp, NULL); } - verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_FEATURE_STATS, - &features) == 0); + if (nvlist_lookup_nvlist(config, ZPOOL_CONFIG_FEATURE_STATS, + &features) != 0) + return (NULL); return (features); } From owner-svn-src-all@freebsd.org Fri Jan 29 17:24:09 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E437A72097; Fri, 29 Jan 2016 17:24:09 +0000 (UTC) (envelope-from cschuber@gmail.com) Received: from mail-pf0-x233.google.com (mail-pf0-x233.google.com [IPv6:2607:f8b0:400e:c00::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 000BE19F5; Fri, 29 Jan 2016 17:24:08 +0000 (UTC) (envelope-from cschuber@gmail.com) Received: by mail-pf0-x233.google.com with SMTP id o185so40492469pfb.1; Fri, 29 Jan 2016 09:24:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:mime-version:from:subject:date:to:content-type; bh=/3PYem77a/Mi5KCsiLBN79U//W7aWd8658HqBjrIbbk=; b=gZ6o5wHHKuPkGQ34qZg5EMpRQez+yHNBfHp+j1JUfqo/qtIRQ11sc/QDmp/SjVZyeX A4zLrp3LM0hy1j0WGTFebBIQ8WTlFB00L62BInOmOMz0sCrkZktgEJExx1EifizSYt1C g4mlxnpPYCYX+oL4V0G4sReA7i0WJIBif9gijwV9tLSvf/KuRY5GlZWzbwUWoJLBVN9O frWbgWiW00iTrUmc/ExL/Z2GCVLhZDoHJWCzrRIL0VL7g1aNXxprn/EnrHj8ZoobC0/9 omm9faUtrdpEAvn9T3vEsCf3sXVBTSRex5MiwbPOcyuUXvoRFfSmK4tCL46O5IY5eZ1N 0WLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:mime-version:from:subject:date:to :content-type; bh=/3PYem77a/Mi5KCsiLBN79U//W7aWd8658HqBjrIbbk=; b=Owcjlzagy1bpAMg7qJvt4/V9s7PrIAs3meTK95nd4TMH2TDhrhRU66D1kPbImBNh2Q CUzztdFRGOLvKXsYoLR4XVDVLxGFGa+iNvgdhO7OdA2hfag/hBS0yxWg47E9gr/1dNIw TpfpFOmIN7WdFP9rnIYgYmahCJgy2zEbWu7Ns10woFIoFoIqZ4Xy0Rn9dapjS/pNL3lT /8yVxCbb2YQbL2jQeMni2WK4vkvHf/m858BHWvvnxD9p/gLvPwXgXY7TtddnqQF/tqvf uiHJXC/Q7t9oJto8NHPlrvTI2QdQKClRfelE0xddSkHUmLXo3UTK6CXG7kNDl/aov0qG 4KFg== X-Gm-Message-State: AG10YOQ8D0gy9mI6QwLiTASO/8TxrK0+5LJ2u84iDTxFwVOPxhkkf9Fyu9TmgtaGzxgYDA== X-Received: by 10.98.32.25 with SMTP id g25mr15242678pfg.20.1454088248285; Fri, 29 Jan 2016 09:24:08 -0800 (PST) Received: from [192.168.1.101] (S0106002401cb186f.gv.shawcable.net. [96.50.22.10]) by smtp.gmail.com with ESMTPSA id q136sm24827363pfq.66.2016.01.29.09.24.07 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 29 Jan 2016 09:24:07 -0800 (PST) Message-ID: <56aba037.8e2a620a.e5e0a.571a@mx.google.com> MIME-Version: 1.0 From: Cy Schubert Subject: RE: svn commit: r295045 - in head: .sys/cddl/contrib/opensolaris/uts/common/fs/zfs Date: Fri, 29 Jan 2016 09:24:22 -0800 To: Alan Somers , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" , "cy.schubert@cschubert.com" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 17:24:09 -0000 Thank you. :) Sent from my cellphone, ~Cy -----Original Message----- From: Alan Somers Sent: 29/01/2016 09:08 To: src-committers@freebsd.org; svn-src-all@freebsd.org; svn-src-head@freeb= sd.org Subject: svn commit: r295045 - in head: .sys/cddl/contrib/opensolaris/uts/c= ommon/fs/zfs Author: asomers Date: Fri Jan 29 17:08:26 2016 New Revision: 295045 URL: https://svnweb.freebsd.org/changeset/base/295045 Log: Add a sysctl to allow ZFS pools backed by zvols =20 Change 294329 removed the ability to build ZFS pools that are backed by zvols, because having that ability (even if it's not used) leads to deadlocks. By popular demand, I'm adding an off-by-default sysctl to reenable that ability. =20 Reviewed by: lidl, delphij MFC after: Never Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D4998 Modified: head/UPDATING head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Modified: head/UPDATING =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- head/UPDATING Fri Jan 29 17:05:30 2016 (r295044) +++ head/UPDATING Fri Jan 29 17:08:26 2016 (r295045) @@ -31,6 +31,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) =20 +20160129: + Building ZFS pools on top of zvols is prohibited by default. That + feature has never worked safely; it's always been prone to deadlocks. + Using a zvol as the backing store for a VM guest's virtual disk will + still work, even if the guest is using ZFS. Legacy behavior can be + restored by setting vfs.zfs.vol.recursive=3D1. + 20160119: The NONE and HPN patches has been removed from OpenSSH. They are still available in the security/openssh-portable port. Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Fri Jan 29 1= 7:05:30 2016 (r295044) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Fri Jan 29 1= 7:08:26 2016 (r295045) @@ -134,6 +134,9 @@ SYSCTL_NODE(_vfs_zfs, OID_AUTO, vol, CTL static int volmode =3D ZFS_VOLMODE_GEOM; SYSCTL_INT(_vfs_zfs_vol, OID_AUTO, mode, CTLFLAG_RWTUN, &volmode, 0, "Expose as GEOM providers (1), device files (2) or neither"); +static boolean_t zpool_on_zvol =3D B_FALSE; +SYSCTL_INT(_vfs_zfs_vol, OID_AUTO, recursive, CTLFLAG_RWTUN, &zpool_on_zvo= l, 0, + "Allow zpools to use zvols as vdevs (DANGEROUS)"); =20 #endif typedef struct zvol_extent { @@ -1114,7 +1117,9 @@ zvol_open(struct g_provider *pp, int fla return (err); } #else /* !illumos */ - if (tsd_get(zfs_geom_probe_vdev_key) !=3D NULL) { + boolean_t locked =3D B_FALSE; + + if (!zpool_on_zvol && tsd_get(zfs_geom_probe_vdev_key) !=3D NULL) { /* * if zfs_geom_probe_vdev_key is set, that means that zfs is * attempting to probe geom providers while looking for a @@ -1125,19 +1130,34 @@ zvol_open(struct g_provider *pp, int fla */ return (EOPNOTSUPP); } - - mutex_enter(&zfsdev_state_lock); + /* + * Protect against recursively entering spa_namespace_lock + * when spa_open() is used for a pool on a (local) ZVOL(s). + * This is needed since we replaced upstream zfsdev_state_lock + * with spa_namespace_lock in the ZVOL code. + * We are using the same trick as spa_open(). + * Note that calls in zvol_first_open which need to resolve + * pool name to a spa object will enter spa_open() + * recursively, but that function already has all the + * necessary protection. + */ + if (!MUTEX_HELD(&zfsdev_state_lock)) { + mutex_enter(&zfsdev_state_lock); + locked =3D B_TRUE; + } =20 zv =3D pp->private; if (zv =3D=3D NULL) { - mutex_exit(&zfsdev_state_lock); + if (locked) + mutex_exit(&zfsdev_state_lock); return (SET_ERROR(ENXIO)); } =20 if (zv->zv_total_opens =3D=3D 0) { err =3D zvol_first_open(zv); if (err) { - mutex_exit(&zfsdev_state_lock); + if (locked) + mutex_exit(&zfsdev_state_lock); return (err); } pp->mediasize =3D zv->zv_volsize; @@ -1171,7 +1191,8 @@ zvol_open(struct g_provider *pp, int fla mutex_exit(&zfsdev_state_lock); #else zv->zv_total_opens +=3D count; - mutex_exit(&zfsdev_state_lock); + if (locked) + mutex_exit(&zfsdev_state_lock); #endif =20 return (err); @@ -1181,7 +1202,8 @@ out: #ifdef illumos mutex_exit(&zfsdev_state_lock); #else - mutex_exit(&zfsdev_state_lock); + if (locked) + mutex_exit(&zfsdev_state_lock); #endif return (err); } From owner-svn-src-all@freebsd.org Fri Jan 29 17:33:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B6BAA7237C; Fri, 29 Jan 2016 17:33:38 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5C9E61E80; Fri, 29 Jan 2016 17:33:38 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0THXb4e081186; Fri, 29 Jan 2016 17:33:37 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0THXb5T081185; Fri, 29 Jan 2016 17:33:37 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201601291733.u0THXb5T081185@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 29 Jan 2016 17:33:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295048 - stable/10/share/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 17:33:38 -0000 Author: bdrewery Date: Fri Jan 29 17:33:37 2016 New Revision: 295048 URL: https://svnweb.freebsd.org/changeset/base/295048 Log: MFC r295006: Fix -include .depend hack from r294370 for headers not in .PATH. Approved by: re (gjb) Modified: stable/10/share/mk/bsd.dep.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/share/mk/bsd.dep.mk ============================================================================== --- stable/10/share/mk/bsd.dep.mk Fri Jan 29 17:20:59 2016 (r295047) +++ stable/10/share/mk/bsd.dep.mk Fri Jan 29 17:33:37 2016 (r295048) @@ -165,12 +165,13 @@ depend: beforedepend ${DEPENDFILE} after _CFLAGS_INCLUDES= ${CFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g} _CXXFLAGS_INCLUDES= ${CXXFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g} # XXX: Temporary hack to workaround .depend files not tracking -include -.if !empty(_CFLAGS_INCLUDES) -${OBJS} ${POBJS} ${SOBJS}: ${_CFLAGS_INCLUDES:M*.h} -.endif -.if !empty(_CXXFLAGS_INCLUDES) -${OBJS} ${POBJS} ${SOBJS}: ${_CXXFLAGS_INCLUDES:M*.h} +_hdrincludes=${_CFLAGS_INCLUDES:M*.h} ${_CXXFLAGS_INCLUDES:M*.h} +.for _hdr in ${_hdrincludes:O:u} +.if exists(${_hdr}) +${OBJS} ${POBJS} ${SOBJS}: ${_hdr} .endif +.endfor +.undef _hdrincludes # Different types of sources are compiled with slightly different flags. # Split up the sources, and filter out headers and non-applicable flags. From owner-svn-src-all@freebsd.org Fri Jan 29 17:43:04 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDC19A72997; Fri, 29 Jan 2016 17:43:04 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7701918A5; Fri, 29 Jan 2016 17:43:04 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0THh3Ed084086; Fri, 29 Jan 2016 17:43:03 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0THh36b084081; Fri, 29 Jan 2016 17:43:03 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201601291743.u0THh36b084081@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Fri, 29 Jan 2016 17:43:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295049 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 17:43:04 -0000 Author: skra Date: Fri Jan 29 17:43:03 2016 New Revision: 295049 URL: https://svnweb.freebsd.org/changeset/base/295049 Log: Retire pmap_pte_init_mmu_v6() which was used by old pmap-v6. Modified: head/sys/arm/arm/cpufunc.c head/sys/arm/arm/pmap-v6.c head/sys/arm/include/pmap-v6.h head/sys/arm/include/pmap.h Modified: head/sys/arm/arm/cpufunc.c ============================================================================== --- head/sys/arm/arm/cpufunc.c Fri Jan 29 17:33:37 2016 (r295048) +++ head/sys/arm/arm/cpufunc.c Fri Jan 29 17:43:03 2016 (r295049) @@ -889,9 +889,6 @@ set_cpufuncs() cpufuncs = arm1176_cpufuncs; cpu_reset_needs_v4_MMU_disable = 1; /* V4 or higher */ get_cachetype_cp15(); - - pmap_pte_init_mmu_v6(); - goto out; } #endif /* CPU_ARM1176 */ @@ -915,8 +912,6 @@ set_cpufuncs() cpufuncs = cortexa_cpufuncs; cpu_reset_needs_v4_MMU_disable = 1; /* V4 or higher */ get_cachetype_cp15(); - - pmap_pte_init_mmu_v6(); goto out; } #endif /* CPU_CORTEXA */ @@ -927,7 +922,6 @@ set_cpufuncs() cputype == CPU_ID_ARM_88SV581X_V7) { cpufuncs = pj4bv7_cpufuncs; get_cachetype_cp15(); - pmap_pte_init_mmu_v6(); goto out; } #endif /* CPU_MV_PJ4B */ Modified: head/sys/arm/arm/pmap-v6.c ============================================================================== --- head/sys/arm/arm/pmap-v6.c Fri Jan 29 17:33:37 2016 (r295048) +++ head/sys/arm/arm/pmap-v6.c Fri Jan 29 17:43:03 2016 (r295049) @@ -6278,11 +6278,6 @@ pte1_setrw: } /* !!!! REMOVE !!!! */ -void -pmap_pte_init_mmu_v6(void) -{ -} - void vector_page_setprot(int p) { } Modified: head/sys/arm/include/pmap-v6.h ============================================================================== --- head/sys/arm/include/pmap-v6.h Fri Jan 29 17:33:37 2016 (r295048) +++ head/sys/arm/include/pmap-v6.h Fri Jan 29 17:43:03 2016 (r295049) @@ -268,7 +268,6 @@ void pmap_devmap_bootstrap(const struct /* * sys/arm/arm/cpufunc.c */ -void pmap_pte_init_mmu_v6(void); void vector_page_setprot(int); /* Modified: head/sys/arm/include/pmap.h ============================================================================== --- head/sys/arm/include/pmap.h Fri Jan 29 17:33:37 2016 (r295048) +++ head/sys/arm/include/pmap.h Fri Jan 29 17:43:03 2016 (r295049) @@ -624,9 +624,6 @@ void pmap_copy_page_generic(vm_paddr_t, void pmap_zero_page_generic(vm_paddr_t, int, int); void pmap_pte_init_generic(void); -#if (ARM_MMU_V6 + ARM_MMU_V7) != 0 -void pmap_pte_init_mmu_v6(void); -#endif /* (ARM_MMU_V6 + ARM_MMU_V7) != 0 */ #endif /* (ARM_MMU_GENERIC + ARM_MMU_V6 + ARM_MMU_V7) != 0 */ #if ARM_MMU_XSCALE == 1 From owner-svn-src-all@freebsd.org Fri Jan 29 18:43:52 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98780A72904; Fri, 29 Jan 2016 18:43:52 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6902312C2; Fri, 29 Jan 2016 18:43:52 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TIhpD1001770; Fri, 29 Jan 2016 18:43:51 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TIhpm8001769; Fri, 29 Jan 2016 18:43:51 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201601291843.u0TIhpm8001769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Fri, 29 Jan 2016 18:43:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295050 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 18:43:52 -0000 Author: zbb Date: Fri Jan 29 18:43:51 2016 New Revision: 295050 URL: https://svnweb.freebsd.org/changeset/base/295050 Log: Fix sending IPI to all CPUs on ARM64 There is no explanation why IPI ID is incremented here by "16". This should have been removed in r285533 but somehow survived. Reviewed by: wma Obtained from: Semihalf Sponsored by: Cavium Differential Revision: https://reviews.freebsd.org/D5120 Modified: head/sys/arm64/arm64/intr_machdep.c Modified: head/sys/arm64/arm64/intr_machdep.c ============================================================================== --- head/sys/arm64/arm64/intr_machdep.c Fri Jan 29 17:43:03 2016 (r295049) +++ head/sys/arm64/arm64/intr_machdep.c Fri Jan 29 18:43:51 2016 (r295050) @@ -472,9 +472,6 @@ ipi_all_but_self(u_int ipi) other_cpus = all_cpus; CPU_CLR(PCPU_GET(cpuid), &other_cpus); - /* ARM64TODO: This will be fixed with arm_intrng */ - ipi += 16; - CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); PIC_IPI_SEND(root_pic, other_cpus, ipi); } From owner-svn-src-all@freebsd.org Fri Jan 29 21:07:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF88CA729D0; Fri, 29 Jan 2016 21:07:00 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C1C841162; Fri, 29 Jan 2016 21:07:00 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0TL6xIc043130; Fri, 29 Jan 2016 21:06:59 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0TL6xN0043129; Fri, 29 Jan 2016 21:06:59 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601292106.u0TL6xN0043129@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Fri, 29 Jan 2016 21:06:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295051 - head/sys/dev/ixl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 21:07:01 -0000 Author: smh Date: Fri Jan 29 21:06:59 2016 New Revision: 295051 URL: https://svnweb.freebsd.org/changeset/base/295051 Log: Fix phy interrupts setup for ixl Fix the inverted set of interrupts being used as the mask for ixl. Without this ixl devices fail to detect link state changes. Reviewed by: erj, sbruno MFC after: 2 days Sponsored by: Multiplay Modified: head/sys/dev/ixl/if_ixl.c Modified: head/sys/dev/ixl/if_ixl.c ============================================================================== --- head/sys/dev/ixl/if_ixl.c Fri Jan 29 18:43:51 2016 (r295050) +++ head/sys/dev/ixl/if_ixl.c Fri Jan 29 21:06:59 2016 (r295051) @@ -674,9 +674,9 @@ ixl_attach(device_t dev) } /* Limit phy interrupts to link and modules failure */ - error = i40e_aq_set_phy_int_mask(hw, - I40E_AQ_EVENT_LINK_UPDOWN | I40E_AQ_EVENT_MODULE_QUAL_FAIL, NULL); - if (error) + error = i40e_aq_set_phy_int_mask(hw, ~(I40E_AQ_EVENT_LINK_UPDOWN | + I40E_AQ_EVENT_MODULE_QUAL_FAIL), NULL); + if (error) device_printf(dev, "set phy mask failed: %d\n", error); /* Get the bus configuration and set the shared code */ From owner-svn-src-all@freebsd.org Fri Jan 29 23:48:02 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0C616A711B7 for ; Fri, 29 Jan 2016 23:48:02 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lf0-f49.google.com (mail-lf0-f49.google.com [209.85.215.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9522F1FE5 for ; Fri, 29 Jan 2016 23:48:01 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lf0-f49.google.com with SMTP id 78so18149118lfy.3 for ; Fri, 29 Jan 2016 15:48:01 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=y559P3JjmaUb9D1w2XgxnUlMWQAjNt/Vnm7FrU83eiI=; b=CcOdSDrxi9t7adB0Ev5ytuMy5pXoDQC6IfMXpps/r2EUrYJpv6W+FMIUfQn8csvP6c 0Rn0O7HW2WOhv1z/F1UiGQ1AyIiFYpY5iJsJy5baTe/ikLahg3NAP79s1FhAfkA3fZbL Kmig+UP2zr5vbf5UOdNeXklWybsFe5lgP28ZgNSkab081rewxnC+GiUxWIWyw5DoMQIv iWaEWX0uD16viOw7ZHY3ZFSy8jyJCDij10y2isKEIC6UTGKKB31zfEi2rhZ0ERRrHmiq MMhLHCsZ5kIclrt8851Og5JjaKvbUDiszLJrtKRcR3XzF1W3NfArLO5i0Uft4Hk2Jigh iiSw== X-Gm-Message-State: AG10YOR1R41lEZipksAaJkjr3zogg+UgBDAvhWBqLS9WEsQRjrkRuxS5KLFT37tKtgj6vA== X-Received: by 10.25.207.3 with SMTP id f3mr4432494lfg.20.1454111273485; Fri, 29 Jan 2016 15:47:53 -0800 (PST) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id n185sm2321795lfd.27.2016.01.29.15.47.52 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 29 Jan 2016 15:47:53 -0800 (PST) Subject: Re: svn commit: r294981 - in stable/10/sys/boot: common efi efi/boot1 efi/include efi/libefi efi/loader efi/loader/arch/amd64 fdt i386/libi386 To: Steven Hartland , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org References: <201601281211.u0SCBhQG058154@repo.freebsd.org> <56ABF762.7010103@freebsd.org> From: Andrey Chernov Message-ID: <56ABFA28.1000207@freebsd.org> Date: Sat, 30 Jan 2016 02:47:52 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <56ABF762.7010103@freebsd.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 23:48:02 -0000 On 30.01.2016 2:36, Andrey Chernov wrote: > I am not sure this is exact commit which cause this, but any operation > in /sys/boot/efi ends like this (by hand, not from buildworld): > (i386-stable machine, clang compiler) > > ===> efi (obj) > make[1]: "/usr/src/sys/boot/efi/Makefile" line 4: Malformed conditional > (${COMPILER_TYPE} != "gcc") > make[1]: Fatal errors encountered -- cannot continue > make[1]: stopped in /usr/src/sys/boot/efi > *** Error code 1 > > Stop. > make: stopped in /usr/src/sys/boot > As Makefile shows, there is no include to pick COMPILER_TYPE and it is undefined. You need at least to move bsd.subdir.mk up. # $FreeBSD: stable/10/sys/boot/efi/Makefile 294981 2016-01-28 12:11:42Z smh $ # In-tree GCC does not support __attribute__((ms_abi)). .if ${COMPILER_TYPE} != "gcc" .if ${MACHINE_CPUARCH} == "amd64" SUBDIR+= libefi loader boot1 .endif .endif # ${COMPILER_TYPE} != "gcc" .include -- http://ache.vniz.net/ From owner-svn-src-all@freebsd.org Fri Jan 29 23:53:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7CF5AA71477 for ; Fri, 29 Jan 2016 23:53:54 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lf0-f68.google.com (mail-lf0-f68.google.com [209.85.215.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 38289136C for ; Fri, 29 Jan 2016 23:53:54 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lf0-f68.google.com with SMTP id j99so2819367lfi.2 for ; Fri, 29 Jan 2016 15:53:53 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=aicyi1SRAWUCUp5d0qKan6Xt22i+H4ekXTIkDpGEl+k=; b=A8/XaOzKB0IkLU0wTmZazNMzb5tUQRKzWsuqBI8gARnxZf2ANYDj3ncgUoLD2rI3kk fYGCN2smwar+oUOsAQC1qCmsQMA9wUjkkjTGylTBUiYjleF0EcqbwtIR4/V+zLJJzc0g wnaw628FLDtbDQCETtU0TpYoHmBb5Jpgj4IGsKSXSQUhmlFiJQmzlpqfVbCwbknrG5ab Z1TYqacmDPIBh+5XFw00vEl22M2pOVdpbxMnSxEPn/RQB+Dfc3lcMZP2Bpjb21EAh9ie nBl1nDQmY2KbaXE4kB3/v5lSgIXZeF+Gn+GxStIz5ZzdrZZFhG0DmYfFZsKZeIFRDl+H LLMg== X-Gm-Message-State: AG10YORfK98SmhC2JObDzCc+lt65smzVJgs//bjm7UX2UTfVyqZBSWDuYx3+K9ZkTngd5w== X-Received: by 10.25.10.200 with SMTP id 191mr4517256lfk.116.1454110564015; Fri, 29 Jan 2016 15:36:04 -0800 (PST) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id 84sm2349408lfp.17.2016.01.29.15.36.02 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 29 Jan 2016 15:36:03 -0800 (PST) Subject: Re: svn commit: r294981 - in stable/10/sys/boot: common efi efi/boot1 efi/include efi/libefi efi/loader efi/loader/arch/amd64 fdt i386/libi386 To: Steven Hartland , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org References: <201601281211.u0SCBhQG058154@repo.freebsd.org> From: Andrey Chernov Message-ID: <56ABF762.7010103@freebsd.org> Date: Sat, 30 Jan 2016 02:36:02 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <201601281211.u0SCBhQG058154@repo.freebsd.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2016 23:53:54 -0000 I am not sure this is exact commit which cause this, but any operation in /sys/boot/efi ends like this (by hand, not from buildworld): (i386-stable machine, clang compiler) ===> efi (obj) make[1]: "/usr/src/sys/boot/efi/Makefile" line 4: Malformed conditional (${COMPILER_TYPE} != "gcc") make[1]: Fatal errors encountered -- cannot continue make[1]: stopped in /usr/src/sys/boot/efi *** Error code 1 Stop. make: stopped in /usr/src/sys/boot -- http://ache.vniz.net/ From owner-svn-src-all@freebsd.org Sat Jan 30 00:09:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5DFF7A71D21; Sat, 30 Jan 2016 00:09:32 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 167A21BA3; Sat, 30 Jan 2016 00:09:32 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U09Vti096551; Sat, 30 Jan 2016 00:09:31 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U09V8w096550; Sat, 30 Jan 2016 00:09:31 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201601300009.u0U09V8w096550@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Sat, 30 Jan 2016 00:09:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295055 - stable/10/lib/libc/gen X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 00:09:32 -0000 Author: sobomax Date: Sat Jan 30 00:09:30 2016 New Revision: 295055 URL: https://svnweb.freebsd.org/changeset/base/295055 Log: MFC r294691: Fix readpassphrase(3) when it's called with stdin being closed. Approved by: re (delphij) Modified: stable/10/lib/libc/gen/readpassphrase.c Modified: stable/10/lib/libc/gen/readpassphrase.c ============================================================================== --- stable/10/lib/libc/gen/readpassphrase.c Fri Jan 29 21:42:27 2016 (r295054) +++ stable/10/lib/libc/gen/readpassphrase.c Sat Jan 30 00:09:30 2016 (r295055) @@ -46,7 +46,7 @@ char * readpassphrase(const char *prompt, char *buf, size_t bufsiz, int flags) { ssize_t nr; - int input, output, save_errno, i, need_restart; + int input, output, save_errno, i, need_restart, input_is_tty; char ch, *p, *end; struct termios term, oterm; struct sigaction sa, savealrm, saveint, savehup, savequit, saveterm; @@ -68,12 +68,20 @@ restart: * Read and write to /dev/tty if available. If not, read from * stdin and write to stderr unless a tty is required. */ - if ((flags & RPP_STDIN) || - (input = output = _open(_PATH_TTY, O_RDWR | O_CLOEXEC)) == -1) { - if (flags & RPP_REQUIRE_TTY) { - errno = ENOTTY; - return(NULL); + input_is_tty = 0; + if (!(flags & RPP_STDIN)) { + input = output = _open(_PATH_TTY, O_RDWR | O_CLOEXEC); + if (input == -1) { + if (flags & RPP_REQUIRE_TTY) { + errno = ENOTTY; + return(NULL); + } + input = STDIN_FILENO; + output = STDERR_FILENO; + } else { + input_is_tty = 1; } + } else { input = STDIN_FILENO; output = STDERR_FILENO; } @@ -83,7 +91,7 @@ restart: * If we are using a tty but are not the foreground pgrp this will * generate SIGTTOU, so do it *before* installing the signal handlers. */ - if (input != STDIN_FILENO && tcgetattr(input, &oterm) == 0) { + if (input_is_tty && tcgetattr(input, &oterm) == 0) { memcpy(&term, &oterm, sizeof(term)); if (!(flags & RPP_ECHO_ON)) term.c_lflag &= ~(ECHO | ECHONL); @@ -152,7 +160,7 @@ restart: (void)__libc_sigaction(SIGTSTP, &savetstp, NULL); (void)__libc_sigaction(SIGTTIN, &savettin, NULL); (void)__libc_sigaction(SIGTTOU, &savettou, NULL); - if (input != STDIN_FILENO) + if (input_is_tty) (void)_close(input); /* From owner-svn-src-all@freebsd.org Sat Jan 30 01:00:57 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4C8AA72FC6; Sat, 30 Jan 2016 01:00:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 843BA14B4; Sat, 30 Jan 2016 01:00:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U10u6t011383; Sat, 30 Jan 2016 01:00:56 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U10s4a011363; Sat, 30 Jan 2016 01:00:54 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201601300100.u0U10s4a011363@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 30 Jan 2016 01:00:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295056 - in head: lib/libsysdecode usr.bin/kdump usr.bin/truss X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 01:00:57 -0000 Author: jhb Date: Sat Jan 30 01:00:54 2016 New Revision: 295056 URL: https://svnweb.freebsd.org/changeset/base/295056 Log: Add a SYSDECODE_ABI_ prefix to the ABI enums to avoid potential collisions. Suggested by: jmallett Reviewed by: bdrewery, jmallett Differential Revision: https://reviews.freebsd.org/D5123 Modified: head/lib/libsysdecode/syscallnames.c head/lib/libsysdecode/sysdecode.3 head/lib/libsysdecode/sysdecode.h head/usr.bin/kdump/kdump.c head/usr.bin/truss/aarch64-cloudabi64.c head/usr.bin/truss/aarch64-freebsd.c head/usr.bin/truss/amd64-cloudabi64.c head/usr.bin/truss/amd64-freebsd.c head/usr.bin/truss/amd64-freebsd32.c head/usr.bin/truss/amd64-linux32.c head/usr.bin/truss/arm-freebsd.c head/usr.bin/truss/i386-freebsd.c head/usr.bin/truss/i386-linux.c head/usr.bin/truss/mips-freebsd.c head/usr.bin/truss/powerpc-freebsd.c head/usr.bin/truss/powerpc64-freebsd.c head/usr.bin/truss/powerpc64-freebsd32.c head/usr.bin/truss/sparc64-freebsd.c Modified: head/lib/libsysdecode/syscallnames.c ============================================================================== --- head/lib/libsysdecode/syscallnames.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/lib/libsysdecode/syscallnames.c Sat Jan 30 01:00:54 2016 (r295056) @@ -70,30 +70,30 @@ sysdecode_syscallname(enum sysdecode_abi { switch (abi) { - case FREEBSD: + case SYSDECODE_ABI_FREEBSD: if (code < nitems(syscallnames)) return (syscallnames[code]); break; #if defined(__amd64__) || defined(__powerpc64__) - case FREEBSD32: + case SYSDECODE_ABI_FREEBSD32: if (code < nitems(freebsd32_syscallnames)) return (freebsd32_syscallnames[code]); break; #endif #if defined(__amd64__) || defined(__i386__) - case LINUX: + case SYSDECODE_ABI_LINUX: if (code < nitems(linux_syscallnames)) return (linux_syscallnames[code]); break; #endif #ifdef __amd64__ - case LINUX32: + case SYSDECODE_ABI_LINUX32: if (code < nitems(linux32_syscallnames)) return (linux32_syscallnames[code]); break; #endif #if defined(__amd64__) || defined(__aarch64__) - case CLOUDABI64: + case SYSDECODE_ABI_CLOUDABI64: if (code < nitems(cloudabi64_syscallnames)) return (cloudabi64_syscallnames[code]); break; Modified: head/lib/libsysdecode/sysdecode.3 ============================================================================== --- head/lib/libsysdecode/sysdecode.3 Sat Jan 30 00:09:30 2016 (r295055) +++ head/lib/libsysdecode/sysdecode.3 Sat Jan 30 01:00:54 2016 (r295056) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 24, 2016 +.Dd January 29, 2016 .Dt SYSDECODE 3 .Os .Sh NAME @@ -44,23 +44,23 @@ The supported ABIs are named by the .Vt enum sysdecode_abi enumeration. .Pp -.Bl -tag -width "Li UNKNOWN_ABI" -compact -.It Li FREEBSD +.Bl -tag -width "Li SYSDECODE_ABI_CLOUDABI64" -compact +.It Li SYSDECODE_ABI_FREEBSD Native FreeBSD binaries. Supported on all platforms. -.It Li FREEBSD32 +.It Li SYSDECODE_ABI_FREEBSD32 32-bit FreeBSD binaries. Supported on amd64 and powerpc64. -.It Li LINUX +.It Li SYSDECODE_ABI_LINUX Linux binaries of the same platform. Supported on amd64 and i386. -.It Li LINUX32 +.It Li SYSDECODE_ABI_LINUX32 32-bit Linux binaries. Supported on amd64. -.It Li CLOUDABI64 +.It Li SYSDECODE_ABI_CLOUDABI64 64-bit CloudABI binaries. Supported on aarch64 and amd64. -.It Li UNKNOWN_ABI +.It Li SYSDECODE_ABI_UNKNOWN A placeholder for use when the ABI is not known. .El .Sh SEE ALSO Modified: head/lib/libsysdecode/sysdecode.h ============================================================================== --- head/lib/libsysdecode/sysdecode.h Sat Jan 30 00:09:30 2016 (r295055) +++ head/lib/libsysdecode/sysdecode.h Sat Jan 30 01:00:54 2016 (r295056) @@ -30,12 +30,12 @@ #define __SYSDECODE_H__ enum sysdecode_abi { - UNKNOWN_ABI = 0, - FREEBSD, - FREEBSD32, - LINUX, - LINUX32, - CLOUDABI64 + SYSDECODE_ABI_UNKNOWN = 0, + SYSDECODE_ABI_FREEBSD, + SYSDECODE_ABI_FREEBSD32, + SYSDECODE_ABI_LINUX, + SYSDECODE_ABI_LINUX32, + SYSDECODE_ABI_CLOUDABI64 }; const char *sysdecode_ioctlname(unsigned long _val); Modified: head/usr.bin/kdump/kdump.c ============================================================================== --- head/usr.bin/kdump/kdump.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/kdump/kdump.c Sat Jan 30 01:00:54 2016 (r295056) @@ -690,20 +690,20 @@ syscallabi(u_int sv_flags) { if (sv_flags == 0) - return (FREEBSD); + return (SYSDECODE_ABI_FREEBSD); switch (sv_flags & SV_ABI_MASK) { case SV_ABI_FREEBSD: - return (FREEBSD); + return (SYSDECODE_ABI_FREEBSD); #if defined(__amd64__) || defined(__i386__) case SV_ABI_LINUX: #ifdef __amd64__ if (sv_flags & SV_ILP32) - return (LINUX32); + return (SYSDECODE_ABI_LINUX32); #endif - return (LINUX); + return (SYSDECODE_ABI_LINUX); #endif default: - return (UNKNOWN_ABI); + return (SYSDECODE_ABI_UNKNOWN); } } Modified: head/usr.bin/truss/aarch64-cloudabi64.c ============================================================================== --- head/usr.bin/truss/aarch64-cloudabi64.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/aarch64-cloudabi64.c Sat Jan 30 01:00:54 2016 (r295056) @@ -81,7 +81,7 @@ aarch64_cloudabi64_fetch_retval(struct t static struct procabi aarch64_cloudabi64 = { "CloudABI ELF64", - CLOUDABI64, + SYSDECODE_ABI_CLOUDABI64, aarch64_cloudabi64_fetch_args, aarch64_cloudabi64_fetch_retval }; Modified: head/usr.bin/truss/aarch64-freebsd.c ============================================================================== --- head/usr.bin/truss/aarch64-freebsd.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/aarch64-freebsd.c Sat Jan 30 01:00:54 2016 (r295056) @@ -99,7 +99,7 @@ aarch64_fetch_retval(struct trussinfo *t static struct procabi aarch64_freebsd = { "FreeBSD ELF64", - FREEBSD, + SYSDECODE_ABI_FREEBSD, aarch64_fetch_args, aarch64_fetch_retval }; Modified: head/usr.bin/truss/amd64-cloudabi64.c ============================================================================== --- head/usr.bin/truss/amd64-cloudabi64.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/amd64-cloudabi64.c Sat Jan 30 01:00:54 2016 (r295056) @@ -90,7 +90,7 @@ amd64_cloudabi64_fetch_retval(struct tru static struct procabi amd64_cloudabi64 = { "CloudABI ELF64", - CLOUDABI64, + SYSDECODE_ABI_CLOUDABI64, amd64_cloudabi64_fetch_args, amd64_cloudabi64_fetch_retval }; Modified: head/usr.bin/truss/amd64-freebsd.c ============================================================================== --- head/usr.bin/truss/amd64-freebsd.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/amd64-freebsd.c Sat Jan 30 01:00:54 2016 (r295056) @@ -121,7 +121,7 @@ amd64_fetch_retval(struct trussinfo *tru static struct procabi amd64_freebsd = { "FreeBSD ELF64", - FREEBSD, + SYSDECODE_ABI_FREEBSD, amd64_fetch_args, amd64_fetch_retval }; Modified: head/usr.bin/truss/amd64-freebsd32.c ============================================================================== --- head/usr.bin/truss/amd64-freebsd32.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/amd64-freebsd32.c Sat Jan 30 01:00:54 2016 (r295056) @@ -117,7 +117,7 @@ amd64_freebsd32_fetch_retval(struct trus static struct procabi amd64_freebsd32 = { "FreeBSD ELF32", - FREEBSD32, + SYSDECODE_ABI_FREEBSD32, amd64_freebsd32_fetch_args, amd64_freebsd32_fetch_retval }; @@ -126,7 +126,7 @@ PROCABI(amd64_freebsd32); static struct procabi amd64_freebsd32_aout = { "FreeBSD a.out", - FREEBSD32, + SYSDECODE_ABI_FREEBSD32, amd64_freebsd32_fetch_args, amd64_freebsd32_fetch_retval }; Modified: head/usr.bin/truss/amd64-linux32.c ============================================================================== --- head/usr.bin/truss/amd64-linux32.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/amd64-linux32.c Sat Jan 30 01:00:54 2016 (r295056) @@ -131,7 +131,7 @@ amd64_linux32_fetch_retval(struct trussi static struct procabi amd64_linux32 = { "Linux ELF32", - LINUX32, + SYSDECODE_ABI_LINUX32, amd64_linux32_fetch_args, amd64_linux32_fetch_retval }; Modified: head/usr.bin/truss/arm-freebsd.c ============================================================================== --- head/usr.bin/truss/arm-freebsd.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/arm-freebsd.c Sat Jan 30 01:00:54 2016 (r295056) @@ -128,7 +128,7 @@ arm_fetch_retval(struct trussinfo *truss static struct procabi arm_freebsd = { "FreeBSD ELF32", - FREEBSD, + SYSDECODE_ABI_FREEBSD, arm_fetch_args, arm_fetch_retval }; Modified: head/usr.bin/truss/i386-freebsd.c ============================================================================== --- head/usr.bin/truss/i386-freebsd.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/i386-freebsd.c Sat Jan 30 01:00:54 2016 (r295056) @@ -110,7 +110,7 @@ i386_fetch_retval(struct trussinfo *trus static struct procabi i386_freebsd = { "FreeBSD ELF32", - FREEBSD, + SYSDECODE_ABI_FREEBSD, i386_fetch_args, i386_fetch_retval }; @@ -119,7 +119,7 @@ PROCABI(i386_freebsd); static struct procabi i386_freebsd_aout = { "FreeBSD a.out", - FREEBSD, + SYSDECODE_ABI_FREEBSD, i386_fetch_args, i386_fetch_retval }; Modified: head/usr.bin/truss/i386-linux.c ============================================================================== --- head/usr.bin/truss/i386-linux.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/i386-linux.c Sat Jan 30 01:00:54 2016 (r295056) @@ -130,7 +130,7 @@ i386_linux_fetch_retval(struct trussinfo static struct procabi i386_linux = { "Linux ELF32", - LINUX, + SYSDECODE_ABI_LINUX, i386_linux_fetch_args, i386_linux_fetch_retval }; Modified: head/usr.bin/truss/mips-freebsd.c ============================================================================== --- head/usr.bin/truss/mips-freebsd.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/mips-freebsd.c Sat Jan 30 01:00:54 2016 (r295056) @@ -131,7 +131,7 @@ static struct procabi mips_freebsd = { #else "FreeBSD ELF32", #endif - FREEBSD, + SYSDECODE_ABI_FREEBSD, mips_fetch_args, mips_fetch_retval }; Modified: head/usr.bin/truss/powerpc-freebsd.c ============================================================================== --- head/usr.bin/truss/powerpc-freebsd.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/powerpc-freebsd.c Sat Jan 30 01:00:54 2016 (r295056) @@ -112,7 +112,7 @@ powerpc_fetch_retval(struct trussinfo *t static struct procabi powerpc_freebsd = { "FreeBSD ELF32", - FREEBSD, + SYSDECODE_ABI_FREEBSD, powerpc_fetch_args, powerpc_fetch_retval }; Modified: head/usr.bin/truss/powerpc64-freebsd.c ============================================================================== --- head/usr.bin/truss/powerpc64-freebsd.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/powerpc64-freebsd.c Sat Jan 30 01:00:54 2016 (r295056) @@ -108,7 +108,7 @@ powerpc64_fetch_retval(struct trussinfo static struct procabi powerpc64_freebsd = { "FreeBSD ELF64", - FREEBSD, + SYSDECODE_ABI_FREEBSD, powerpc64_fetch_args, powerpc64_fetch_retval }; Modified: head/usr.bin/truss/powerpc64-freebsd32.c ============================================================================== --- head/usr.bin/truss/powerpc64-freebsd32.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/powerpc64-freebsd32.c Sat Jan 30 01:00:54 2016 (r295056) @@ -117,7 +117,7 @@ powerpc64_freebsd32_fetch_retval(struct static struct procabi powerpc64_freebsd32 = { "FreeBSD ELF32", - FREEBSD32, + SYSDECODE_ABI_FREEBSD32, powerpc64_freebsd32_fetch_args, powerpc64_freebsd32_fetch_retval }; Modified: head/usr.bin/truss/sparc64-freebsd.c ============================================================================== --- head/usr.bin/truss/sparc64-freebsd.c Sat Jan 30 00:09:30 2016 (r295055) +++ head/usr.bin/truss/sparc64-freebsd.c Sat Jan 30 01:00:54 2016 (r295056) @@ -115,7 +115,7 @@ sparc64_fetch_retval(struct trussinfo *t static struct procabi sparc64_freebsd = { "FreeBSD ELF64", - FREEBSD, + SYSDECODE_ABI_FREEBSD, sparc64_fetch_args, sparc64_fetch_retval }; From owner-svn-src-all@freebsd.org Sat Jan 30 01:15:19 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 319F2A73393 for ; Sat, 30 Jan 2016 01:15:19 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: from mail-wm0-x22e.google.com (mail-wm0-x22e.google.com [IPv6:2a00:1450:400c:c09::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C71671CB8 for ; Sat, 30 Jan 2016 01:15:18 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: by mail-wm0-x22e.google.com with SMTP id p63so2110483wmp.1 for ; Fri, 29 Jan 2016 17:15:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=P6Zo3bbPSCZ/Y3jiBzK8msiD7OsMX4/POgeC94piH7o=; b=o9Ypw8K9kyIsP1HRSOuuZj+ar249wez/UZ+/0SDrdj8H3nhobq+aPyelOJVPhfywHB 7McZy811uYv4ZXV9BA+oJyLTVcDJBorIRS8wwYs02dENWNSZCe8zbwrQnmHheo15F4cO DAi+zHK34fL49GR39LX3szTnE7/ml/3pKcwZtS9sqc+5aW5eh4foiYE7KJB9iB5JrvXX TQI6yrhlivOVcB5gTx/pslJ8yBTtt/qvRAlleIknI4Q/NAUxEZBSPqvvDyHIRrqd5sBN PyjSijdzpdEVaL+3WVqwWsINKee68wFAyupJZakFZmil8pMJIsLe7g5F6hVFtqSO/jU5 Rc4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=P6Zo3bbPSCZ/Y3jiBzK8msiD7OsMX4/POgeC94piH7o=; b=muBJKULfOHG4t4zQtTO1bxcwZ5Zo9w9K1ArsGkJu+fjRNmOVvgZrPwuCVcoojF6e9w vOlNNJegX4XZIzXT28iBXYVjpbCNicd1nFO5qcweomGUsvVpPmEyDPMeS0Kj9WcEIHll t76RQDofQclOy1JKiOA9lMtWfAflIRbfkYUi7Cl4C5G/hkSY9NyT75AeYxwehPKDioQs 94hDfOLwJLX1xo9uZLM/SoGu8gwmcBiyv2QbKEFejHx6aCCqzi4VweUkmf8FDwoiZDvU GhNc3nqfE0+mn1QDMFe900OL/+VEIKnDiISXFpBL9M+T18puwwcP0BtdeiOTCFXJubHo 4EpQ== X-Gm-Message-State: AG10YOQqYfPxDI79vNKvN3JcEdxBeJjkGjzZTWTt1dYGWcctLpYu4/KrACCs6+nyQZsxb2bA X-Received: by 10.194.240.66 with SMTP id vy2mr11593066wjc.28.1454116516867; Fri, 29 Jan 2016 17:15:16 -0800 (PST) Received: from [10.10.1.58] (liv3d.labs.multiplay.co.uk. [82.69.141.171]) by smtp.gmail.com with ESMTPSA id q75sm313548wmd.6.2016.01.29.17.15.15 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 29 Jan 2016 17:15:15 -0800 (PST) Subject: Re: svn commit: r295051 - head/sys/dev/ixl To: Steven Hartland , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201601292106.u0TL6xN0043129@repo.freebsd.org> From: Steven Hartland Message-ID: <56AC0EB4.3030109@multiplay.co.uk> Date: Sat, 30 Jan 2016 01:15:32 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <201601292106.u0TL6xN0043129@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 01:15:19 -0000 This should have referenced https://reviews.freebsd.org/D5106 On 29/01/2016 21:06, Steven Hartland wrote: > Author: smh > Date: Fri Jan 29 21:06:59 2016 > New Revision: 295051 > URL: https://svnweb.freebsd.org/changeset/base/295051 > > Log: > Fix phy interrupts setup for ixl > > Fix the inverted set of interrupts being used as the mask for ixl. > > Without this ixl devices fail to detect link state changes. > > Reviewed by: erj, sbruno > MFC after: 2 days > Sponsored by: Multiplay > > Modified: > head/sys/dev/ixl/if_ixl.c > > Modified: head/sys/dev/ixl/if_ixl.c > ============================================================================== > --- head/sys/dev/ixl/if_ixl.c Fri Jan 29 18:43:51 2016 (r295050) > +++ head/sys/dev/ixl/if_ixl.c Fri Jan 29 21:06:59 2016 (r295051) > @@ -674,9 +674,9 @@ ixl_attach(device_t dev) > } > > /* Limit phy interrupts to link and modules failure */ > - error = i40e_aq_set_phy_int_mask(hw, > - I40E_AQ_EVENT_LINK_UPDOWN | I40E_AQ_EVENT_MODULE_QUAL_FAIL, NULL); > - if (error) > + error = i40e_aq_set_phy_int_mask(hw, ~(I40E_AQ_EVENT_LINK_UPDOWN | > + I40E_AQ_EVENT_MODULE_QUAL_FAIL), NULL); > + if (error) > device_printf(dev, "set phy mask failed: %d\n", error); > > /* Get the bus configuration and set the shared code */ > From owner-svn-src-all@freebsd.org Sat Jan 30 01:22:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9CD9A73603 for ; Sat, 30 Jan 2016 01:22:27 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: from mail-wm0-x22b.google.com (mail-wm0-x22b.google.com [IPv6:2a00:1450:400c:c09::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 80D17119 for ; Sat, 30 Jan 2016 01:22:27 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: by mail-wm0-x22b.google.com with SMTP id 128so3727313wmz.1 for ; Fri, 29 Jan 2016 17:22:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=from:subject:to:references:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=l7645j7O+/GPdV9iYPpTzC9eoHprFKx2pTHypkyr4P8=; b=iec6v+qCMSU3wEjsYeWN0RrzQJ6/IrzzwGg9Dm5NmFmEg294ZFvss4bbJaOCLzTXwB bKcbaAfsUy1hy1kwtXYjQWLsALlKyHkmAMHuvIJy5uk0TUJdPEAGaPY6ttAQquD33cXG 2rwTCbEC1jWb15q45pJgH62W09h95ysmIEJjWoLU5NNy20I8GH+srFn7dZhLy7ORXwG+ ct/UZ5XV3IjTxkeVpJLHq4JPtB5cXNsVUqf7K9ZJt/vVb+1QhqzLQMGSOv817YgWwX3V w9BmVj/9GN6nJkpbMPusGA8iJvzadRYSib4IoWWWtn8/RPHaNL2YUI0ZiwfdiCCmCz+o yz1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:subject:to:references:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=l7645j7O+/GPdV9iYPpTzC9eoHprFKx2pTHypkyr4P8=; b=dPyWhbwHqmElABHLZp8y84fxTHAw9QqpT2uPZJTzhllXHRZ/ItgxOQdV05ys/75/Y+ AHfM5Laq3DmPfebxxs+lSdKHf74rd/zQR81VhgHM3v+RpyAScNFZe9hXRUv5rCQqNclf bqtMgOkmHgj0jA5BZgn15EpFnDhTsmrSqiNuO4qcUP9MQFJK5/qF1hQ/lONJDAiUjhEF maDyWQQuctt7UY7IFgm6JlSWt2lrwD9Wq++/25UODqUtt7AzKUcLPP1FALmIXlOUkiig n/MDp6cOTVa3X4dFvzGAmfzurUGa56//91P/CDQxs6tLGBr3VrdZJzBd4OES1O4xaAb9 6mfA== X-Gm-Message-State: AG10YORgOyZqASj1+GxrvOMJDxN3mAnl8lTTbmeNvrm68qwFZkS7FiSqBuBlP/bOq1kPtMQy X-Received: by 10.194.235.4 with SMTP id ui4mr11124997wjc.177.1454116945666; Fri, 29 Jan 2016 17:22:25 -0800 (PST) Received: from [10.10.1.58] (liv3d.labs.multiplay.co.uk. [82.69.141.171]) by smtp.gmail.com with ESMTPSA id r10sm17946962wjz.24.2016.01.29.17.22.24 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 29 Jan 2016 17:22:24 -0800 (PST) From: Steven Hartland X-Google-Original-From: Steven Hartland Subject: Re: svn commit: r294981 - in stable/10/sys/boot: common efi efi/boot1 efi/include efi/libefi efi/loader efi/loader/arch/amd64 fdt i386/libi386 To: Andrey Chernov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org References: <201601281211.u0SCBhQG058154@repo.freebsd.org> <56ABF762.7010103@freebsd.org> Message-ID: <56AC1061.3030904@freebsd.org> Date: Sat, 30 Jan 2016 01:22:41 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <56ABF762.7010103@freebsd.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 01:22:28 -0000 Yep I have a request in with re@ for the direct commit required to fix this. On 29/01/2016 23:36, Andrey Chernov wrote: > I am not sure this is exact commit which cause this, but any operation > in /sys/boot/efi ends like this (by hand, not from buildworld): > (i386-stable machine, clang compiler) > > ===> efi (obj) > make[1]: "/usr/src/sys/boot/efi/Makefile" line 4: Malformed conditional > (${COMPILER_TYPE} != "gcc") > make[1]: Fatal errors encountered -- cannot continue > make[1]: stopped in /usr/src/sys/boot/efi > *** Error code 1 > > Stop. > make: stopped in /usr/src/sys/boot > From owner-svn-src-all@freebsd.org Sat Jan 30 01:27:30 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BBC4EA7382A; Sat, 30 Jan 2016 01:27:30 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8CAB46B6; Sat, 30 Jan 2016 01:27:30 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U1RTl5019945; Sat, 30 Jan 2016 01:27:29 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U1RTV0019944; Sat, 30 Jan 2016 01:27:29 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201601300127.u0U1RTV0019944@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Sat, 30 Jan 2016 01:27:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r295057 - stable/10/sys/boot/efi X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 01:27:30 -0000 Author: smh Date: Sat Jan 30 01:27:29 2016 New Revision: 295057 URL: https://svnweb.freebsd.org/changeset/base/295057 Log: Fix clean target for sys/boot/efi Fix clean target breakage of sys/boot/efi introduced by r294981 specifically the MFC of r294029 without the related change introduced by r281114. This is direct commit to stable/10 as head uses src.opts.mk. Approved by: re (glebius) Sponsored by: Multiplay Modified: stable/10/sys/boot/efi/Makefile Modified: stable/10/sys/boot/efi/Makefile ============================================================================== --- stable/10/sys/boot/efi/Makefile Sat Jan 30 01:00:54 2016 (r295056) +++ stable/10/sys/boot/efi/Makefile Sat Jan 30 01:27:29 2016 (r295057) @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + # In-tree GCC does not support __attribute__((ms_abi)). .if ${COMPILER_TYPE} != "gcc" From owner-svn-src-all@freebsd.org Sat Jan 30 01:33:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E59D1A73A41 for ; Sat, 30 Jan 2016 01:33:07 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: from mail-wm0-x22d.google.com (mail-wm0-x22d.google.com [IPv6:2a00:1450:400c:c09::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7C8F8AA7 for ; Sat, 30 Jan 2016 01:33:07 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: by mail-wm0-x22d.google.com with SMTP id 128so3877154wmz.1 for ; Fri, 29 Jan 2016 17:33:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=from:subject:to:references:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=J8Z0FGFzoIoSSNH1cviNI0bRK8l4HTdz1bnXAP7K4eY=; b=DtAO8oYiUD8PEv/HmTvKAqMYDbl7cXpWLif5M493lcMaRVxuk+gDSSdw8Lhh3p4NlO f21hAH8nU1dAHCFHJAjCLI5KdNRDmTaMtQJoA4dazxaIURqufZo2+NuNyw9CD0dh9E2w NNTLdfA1wqcyPFe+CbdGucoSM2Lr9eR8J7ZWnG1jOvddzaqZBKaTSMBFNJvZmRkNCx99 VS5rv+DTMy68Iml51HylTCS+k9viTaB4cZK9AxIwe4PMX65eIE6ipCZxVts1o3jMYTgO aaIzHbRZgLBB1vxI+GHg8LTo6qI945v1ik3veBqNOAMcyPgtB/NBZmHQq+3dEfh26wFU Uy3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:subject:to:references:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=J8Z0FGFzoIoSSNH1cviNI0bRK8l4HTdz1bnXAP7K4eY=; b=hDq/9fFIUCPn1LsQkEIx2JpX+P/Ru8yITjvYjddHyLHwo9gjNAqJrOn9C4J6JakXKL yWd+OCrPAmudlVf1eU0tyGm8xF/Cb/MsyYBS0oBW0Z9Ee6d5ES4SlinoCfHQv1w+bkcg 12UzbpZHcTbnSS+GBj1c3KnN/k9/bdXo5z7CFOWESayQ018I1+4kPx5HttQVVk62gmLJ zx9P3v8jTCi1aAM3fVaG6xz7capE4316MDTpCwirokidXJ3FXVQe8u5AAUHc3n7o3kFV nnaYr/R3d4ALWSoxNNsg8BY3b2SF6zDUvq1I8qgoEQOBY4iG7M1w92bwRHDGO0H9PWoM ZXdA== X-Gm-Message-State: AG10YORwbc0hNgSwZIc5fHkhsnlnodwWinDU6+2yMlzd6e3wbQshO2hdIzpvGIFNiOdiNEN7 X-Received: by 10.28.146.145 with SMTP id u139mr338231wmd.81.1454117586008; Fri, 29 Jan 2016 17:33:06 -0800 (PST) Received: from [10.10.1.58] (liv3d.labs.multiplay.co.uk. [82.69.141.171]) by smtp.gmail.com with ESMTPSA id qs1sm17950502wjc.2.2016.01.29.17.33.04 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 29 Jan 2016 17:33:04 -0800 (PST) From: Steven Hartland X-Google-Original-From: Steven Hartland Subject: Re: svn commit: r294981 - in stable/10/sys/boot: common efi efi/boot1 efi/include efi/libefi efi/loader efi/loader/arch/amd64 fdt i386/libi386 To: Andrey Chernov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org References: <201601281211.u0SCBhQG058154@repo.freebsd.org> <56ABF762.7010103@freebsd.org> <56ABFA28.1000207@freebsd.org> Message-ID: <56AC12E2.6010001@freebsd.org> Date: Sat, 30 Jan 2016 01:33:22 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <56ABFA28.1000207@freebsd.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 01:33:08 -0000 Just spotted the reply from re@ which came in a hour or so ago (thanks glebius) so this is fixed as of r295057 On 29/01/2016 23:47, Andrey Chernov wrote: > On 30.01.2016 2:36, Andrey Chernov wrote: >> I am not sure this is exact commit which cause this, but any operation >> in /sys/boot/efi ends like this (by hand, not from buildworld): >> (i386-stable machine, clang compiler) >> >> ===> efi (obj) >> make[1]: "/usr/src/sys/boot/efi/Makefile" line 4: Malformed conditional >> (${COMPILER_TYPE} != "gcc") >> make[1]: Fatal errors encountered -- cannot continue >> make[1]: stopped in /usr/src/sys/boot/efi >> *** Error code 1 >> >> Stop. >> make: stopped in /usr/src/sys/boot >> > As Makefile shows, there is no include to pick COMPILER_TYPE and it is > undefined. You need at least to move bsd.subdir.mk up. > > # $FreeBSD: stable/10/sys/boot/efi/Makefile 294981 2016-01-28 12:11:42Z > smh $ > > # In-tree GCC does not support __attribute__((ms_abi)). > .if ${COMPILER_TYPE} != "gcc" > > .if ${MACHINE_CPUARCH} == "amd64" > SUBDIR+= libefi loader boot1 > .endif > > .endif # ${COMPILER_TYPE} != "gcc" > > .include > > > From owner-svn-src-all@freebsd.org Sat Jan 30 03:48:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35005A73E86; Sat, 30 Jan 2016 03:48:23 +0000 (UTC) (envelope-from crodr001@gmail.com) Received: from mail-io0-x22f.google.com (mail-io0-x22f.google.com [IPv6:2607:f8b0:4001:c06::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 06FDD1CBD; Sat, 30 Jan 2016 03:48:20 +0000 (UTC) (envelope-from crodr001@gmail.com) Received: by mail-io0-x22f.google.com with SMTP id d63so91630276ioj.2; Fri, 29 Jan 2016 19:48:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=jwiVEpuPat8PBJPJ9BM9Z/GM42XFAf6kNqRocx8YDXE=; b=xYrk7NWJOJHAy/dUn8/0BcEed4AiHKLzxO3bj5k2xoK0E/XOAgj5v4icFjb7Zh5s8m BDjPTPedJXDDupupQqdS/ivYbIUueFgGC+lBDi6Rd6M1bk+z8hSoeeWy2R6ASoELhKXa ZtfS6lUs1xEliczd0N1y3Vkue8LsxCFg/3KiqalR/LiwQzp6H2EmS48CKpvP/Tw8BRi5 lH28/o93PLDqjh85Mm6RO4/0PyCpDp2Op8sgG4BynOCteLQACsFLcZ+PvowgrwwHJIaf ZbGm3IUZHT7Dib9AMv20qFG/t3kWzwe9DXqUCsa8y7zVUCOQKrvux8tAaVe+a9RXOAWc BAAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=jwiVEpuPat8PBJPJ9BM9Z/GM42XFAf6kNqRocx8YDXE=; b=BxgXVcYWUM5GOwJffBkNwFbzlFqIQiwrmiWEEnZSYpaHmm7Y0aF6resY/FqdZ+beu2 xN/98IBAbhKeHOp7saoooa6Ug3p77DLlf3tZ5zGww8jp0+lNNEqW/udjem0Og+k96AF2 btYSUoWKw4rMviDhNuMSnPT2yfqM9p9ut3fCdOsl2N08cnKY4NgsK0SncumzDd6x+H1/ KHH8594WzsCUacBBEOZGJ4rnhvSFy4hrnkm0kLq9Q3/OtConRf+DAaXY06yB2Abrtv81 KC1gXFzsYT2jiUar3LrrUSiWfjwzdezHYVAUysZ/LrmDSWTMenzX5gt9/PHYAxCC8906 JXUg== X-Gm-Message-State: AG10YOTsflZPcsI23Em5n0Q8x/8KHfbNaaQyKOfmod4HmOfKT/aYmxox//05yj79PJ5lf6lPentDF7uqcPldMg== MIME-Version: 1.0 X-Received: by 10.107.11.66 with SMTP id v63mr15009427ioi.184.1454125699372; Fri, 29 Jan 2016 19:48:19 -0800 (PST) Sender: crodr001@gmail.com Received: by 10.50.152.69 with HTTP; Fri, 29 Jan 2016 19:48:19 -0800 (PST) In-Reply-To: <201601191010.u0JAAw3O039299@repo.freebsd.org> References: <201601191010.u0JAAw3O039299@repo.freebsd.org> Date: Fri, 29 Jan 2016 19:48:19 -0800 X-Google-Sender-Auth: pWL_H1YZbhyvemUZb4GpRfQeH28 Message-ID: Subject: Re: svn commit: r294315 - in vendor-crypto/openssh/dist: . contrib/redhat contrib/suse From: Craig Rodrigues To: =?UTF-8?Q?Dag=2DErling_Sm=C3=B8rgrav?= Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , svn-src-vendor@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 03:48:23 -0000 On Tue, Jan 19, 2016 at 2:10 AM, Dag-Erling Sm=C3=B8rgrav wrote: > Author: des > Date: Tue Jan 19 10:10:58 2016 > New Revision: 294315 > URL: https://svnweb.freebsd.org/changeset/base/294315 > > Log: > Vendor import of OpenSSH 7.1p2. > Hi, I'm not sure if this is the exact commit, but sometime around this commit, I have started seeing some failures in some scripts that I have running. These scripts build and boot a VM, and try to SSH into the VM to run some tests. It turns out that sshd is not starting properly, so the tests fail to SSH into the VM: https://jenkins.freebsd.org/job/FreeBSD_HEAD/54/execution/node/43/log/ >From last night's build, I was able to boot the VM, and log into the VM console. If I tried to manually start sshd, I got this: # service sshd restart Performing sanity check on sshd configuration. Fssh_key_load_public: invalid format Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_dsa_key Fssh_key_load_public: invalid format Could not load host key: /etc/ssh/ssh_host_ecdsa_key Fssh_key_load_public: invalid format Could not load host key: /etc/ssh/ssh_host_ed25519_key Disabling protocol version 2. Could not load host key sshd: no hostkeys available -- exiting. Some observations: - these do not exist: /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_ecdsa_key - these files exist: -rw------- 1 root wheel 227 Jan 25 21:34 /etc/ssh/ssh_host_ecdsa_key -rw------- 1 root wheel 387 Jan 25 21:34 /etc/ssh/ssh_host_ed25519_key -rw------- 1 root wheel 1679 Jan 25 21:34 /etc/ssh/ssh_host_rsa_key but they seem to be all zeroes The VM that I configured is nothing fancy. It just has this in /etc/rc.conf: sshd_enable=3D"YES" ifconfig_vtnet0=3D"inet 192.168.10.2/24" Any ideas as to what the problem might be? -- Craig From owner-svn-src-all@freebsd.org Sat Jan 30 04:16:07 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73A06A726A7; Sat, 30 Jan 2016 04:16:07 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C8461A4F; Sat, 30 Jan 2016 04:16:07 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U4G60R069380; Sat, 30 Jan 2016 04:16:06 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U4G6rs069377; Sat, 30 Jan 2016 04:16:06 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201601300416.u0U4G6rs069377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Sat, 30 Jan 2016 04:16:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295059 - in head: lib/libc/tests/gen libexec/rtld-elf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 04:16:07 -0000 Author: sobomax Date: Sat Jan 30 04:16:05 2016 New Revision: 295059 URL: https://svnweb.freebsd.org/changeset/base/295059 Log: This seems like a very trivial bug that should have been squashed a long time ago, but for some reason it was not. Basically, without this change dlopen(3)'ing an empty .so file would just cause application to dump core with SIGSEGV. Make sure the file has enough data for at least the ELF header before mmap'ing it. Add a test case to check that dlopen an empty file return an error. There were a separate discussion as to whether it should be SIGBUS instead when you try to access region mapped from an empty file, but it's definitely SIGSEGV now, so if anyone want to check that please be my guest. Reviewed by: mjg, cem MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D5112 Added: head/lib/libc/tests/gen/dlopen_empty_test.c (contents, props changed) Modified: head/lib/libc/tests/gen/Makefile head/libexec/rtld-elf/map_object.c Modified: head/lib/libc/tests/gen/Makefile ============================================================================== --- head/lib/libc/tests/gen/Makefile Sat Jan 30 01:52:18 2016 (r295058) +++ head/lib/libc/tests/gen/Makefile Sat Jan 30 04:16:05 2016 (r295059) @@ -11,6 +11,7 @@ ATF_TESTS_C+= ftw_test ATF_TESTS_C+= popen_test ATF_TESTS_C+= posix_spawn_test ATF_TESTS_C+= wordexp_test +ATF_TESTS_C+= dlopen_empty_test # TODO: t_closefrom, t_cpuset, t_fmtcheck, t_randomid, t_sleep # TODO: t_siginfo (fixes require further inspection) Added: head/lib/libc/tests/gen/dlopen_empty_test.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/tests/gen/dlopen_empty_test.c Sat Jan 30 04:16:05 2016 (r295059) @@ -0,0 +1,97 @@ +/*- + * Copyright (c) 2016 Maksym Sobolyev + * 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 +#include +#include +#include +#include +#include +#include + +#include + +static const char *funname; +static char *soname; + +static void +sigsegv_handler(int sig __unused) +{ + unlink(soname); + free(soname); + atf_tc_fail("got SIGSEGV in the %s(3)", funname); +} + +ATF_TC(dlopen_empty_test); +ATF_TC_HEAD(dlopen_empty_test, tc) +{ + atf_tc_set_md_var(tc, "descr", "Tests the dlopen() of an empty file " + "returns an error"); +} +ATF_TC_BODY(dlopen_empty_test, tc) +{ + char tempname[] = "/tmp/temp.XXXXXX"; + char *fname; + int fd; + void *dlh; + struct sigaction act, oact; + + fname = mktemp(tempname); + ATF_REQUIRE_MSG(fname != NULL, "mktemp failed; errno=%d", errno); + asprintf(&soname, "%s.so", fname); + ATF_REQUIRE_MSG(soname != NULL, "asprintf failed; errno=%d", ENOMEM); + fd = open(soname, O_WRONLY | O_CREAT | O_TRUNC, DEFFILEMODE); + ATF_REQUIRE_MSG(fd != -1, "open(\"%s\") failed; errno=%d", soname, errno); + close(fd); + + act.sa_handler = sigsegv_handler; + act.sa_flags = 0; + sigemptyset(&act.sa_mask); + ATF_CHECK_MSG(sigaction(SIGSEGV, &act, &oact) != -1, + "sigaction() failed"); + + funname = "dlopen"; + dlh = dlopen(soname, RTLD_LAZY); + if (dlh != NULL) { + funname = "dlclose"; + dlclose(dlh); + } + ATF_REQUIRE_MSG(dlh == NULL, "dlopen(\"%s\") did not fail", soname); + unlink(soname); + free(soname); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, dlopen_empty_test); + + return (atf_no_error()); +} Modified: head/libexec/rtld-elf/map_object.c ============================================================================== --- head/libexec/rtld-elf/map_object.c Sat Jan 30 01:52:18 2016 (r295058) +++ head/libexec/rtld-elf/map_object.c Sat Jan 30 04:16:05 2016 (r295059) @@ -38,7 +38,7 @@ #include "debug.h" #include "rtld.h" -static Elf_Ehdr *get_elf_header(int, const char *); +static Elf_Ehdr *get_elf_header(int, const char *, const struct stat *); static int convert_prot(int); /* Elf flags -> mmap protection */ static int convert_flags(int); /* Elf flags -> mmap flags */ @@ -91,7 +91,7 @@ map_object(int fd, const char *path, con char *note_map; size_t note_map_len; - hdr = get_elf_header(fd, path); + hdr = get_elf_header(fd, path, sb); if (hdr == NULL) return (NULL); @@ -324,10 +324,16 @@ error: } static Elf_Ehdr * -get_elf_header(int fd, const char *path) +get_elf_header(int fd, const char *path, const struct stat *sbp) { Elf_Ehdr *hdr; + /* Make sure file has enough data for the ELF header */ + if (sbp != NULL && sbp->st_size < sizeof(Elf_Ehdr)) { + _rtld_error("%s: invalid file format", path); + return (NULL); + } + hdr = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE | MAP_PREFAULT_READ, fd, 0); if (hdr == (Elf_Ehdr *)MAP_FAILED) { From owner-svn-src-all@freebsd.org Sat Jan 30 06:09:40 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 01947A726FF; Sat, 30 Jan 2016 06:09:40 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AEEB1197A; Sat, 30 Jan 2016 06:09:39 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U69cWl002108; Sat, 30 Jan 2016 06:09:38 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U69cQT002107; Sat, 30 Jan 2016 06:09:38 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201601300609.u0U69cQT002107@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sat, 30 Jan 2016 06:09:38 +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: r295060 - stable/9/crypto/openssl/ssl X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 06:09:40 -0000 Author: delphij Date: Sat Jan 30 06:09:38 2016 New Revision: 295060 URL: https://svnweb.freebsd.org/changeset/base/295060 Log: Fix OpenSSL SSLv2 ciphersuite downgrade vulnerability. Security: CVE-2015-3197 Security: FreeBSD-SA-16:11.openssl Modified: stable/9/crypto/openssl/ssl/s2_srvr.c Modified: stable/9/crypto/openssl/ssl/s2_srvr.c ============================================================================== --- stable/9/crypto/openssl/ssl/s2_srvr.c Sat Jan 30 04:16:05 2016 (r295059) +++ stable/9/crypto/openssl/ssl/s2_srvr.c Sat Jan 30 06:09:38 2016 (r295060) @@ -396,7 +396,7 @@ static int get_client_master_key(SSL *s) } cp = ssl2_get_cipher_by_char(p); - if (cp == NULL) { + if (cp == NULL || sk_SSL_CIPHER_find(s->session->ciphers, cp) < 0) { ssl2_return_error(s, SSL2_PE_NO_CIPHER); SSLerr(SSL_F_GET_CLIENT_MASTER_KEY, SSL_R_NO_CIPHER_MATCH); return (-1); @@ -687,8 +687,12 @@ static int get_client_hello(SSL *s) prio = cs; allow = cl; } + + /* Generate list of SSLv2 ciphers shared between client and server */ for (z = 0; z < sk_SSL_CIPHER_num(prio); z++) { - if (sk_SSL_CIPHER_find(allow, sk_SSL_CIPHER_value(prio, z)) < 0) { + const SSL_CIPHER *cp = sk_SSL_CIPHER_value(prio, z); + if ((cp->algorithms & SSL_SSLV2) == 0 || + sk_SSL_CIPHER_find(allow, cp) < 0) { (void)sk_SSL_CIPHER_delete(prio, z); z--; } @@ -697,6 +701,13 @@ static int get_client_hello(SSL *s) sk_SSL_CIPHER_free(s->session->ciphers); s->session->ciphers = prio; } + + /* Make sure we have at least one cipher in common */ + if (sk_SSL_CIPHER_num(s->session->ciphers) == 0) { + ssl2_return_error(s, SSL2_PE_NO_CIPHER); + SSLerr(SSL_F_GET_CLIENT_HELLO, SSL_R_NO_CIPHER_MATCH); + return -1; + } /* * s->session->ciphers should now have a list of ciphers that are on * both the client and server. This list is ordered by the order the From owner-svn-src-all@freebsd.org Sat Jan 30 06:12:05 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C2ABA728C8; Sat, 30 Jan 2016 06:12:05 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 74D0B1C9F; Sat, 30 Jan 2016 06:12:05 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U6C4Xj004824; Sat, 30 Jan 2016 06:12:04 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U6C3ti004814; Sat, 30 Jan 2016 06:12:03 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201601300612.u0U6C3ti004814@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sat, 30 Jan 2016 06:12:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r295061 - in releng: 10.1 10.1/crypto/openssl/ssl 10.1/sys/conf 10.2 10.2/crypto/openssl/ssl 10.2/sys/conf 9.3 9.3/crypto/openssl/ssl 9.3/sys/conf X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 06:12:05 -0000 Author: delphij Date: Sat Jan 30 06:12:03 2016 New Revision: 295061 URL: https://svnweb.freebsd.org/changeset/base/295061 Log: Fix OpenSSL SSLv2 ciphersuite downgrade vulnerability. Security: CVE-2015-3197 Security: FreeBSD-SA-16:11.openssl Approved by: so Modified: releng/10.1/UPDATING releng/10.1/crypto/openssl/ssl/s2_srvr.c releng/10.1/sys/conf/newvers.sh releng/10.2/UPDATING releng/10.2/crypto/openssl/ssl/s2_srvr.c releng/10.2/sys/conf/newvers.sh releng/9.3/UPDATING releng/9.3/crypto/openssl/ssl/s2_srvr.c releng/9.3/sys/conf/newvers.sh Modified: releng/10.1/UPDATING ============================================================================== --- releng/10.1/UPDATING Sat Jan 30 06:09:38 2016 (r295060) +++ releng/10.1/UPDATING Sat Jan 30 06:12:03 2016 (r295061) @@ -16,6 +16,10 @@ from older versions of FreeBSD, try WITH stable/10, and then rebuild without this option. The bootstrap process from older version of current is a bit fragile. +20160130 p29 FreeBSD-SA-16:11.openssl + + Fix OpenSSL SSLv2 ciphersuite downgrade vulnerability. [SA-16:11] + 20160127 p28 FreeBSD-SA-16:09.ntp FreeBSD-SA-16:10.linux Modified: releng/10.1/crypto/openssl/ssl/s2_srvr.c ============================================================================== --- releng/10.1/crypto/openssl/ssl/s2_srvr.c Sat Jan 30 06:09:38 2016 (r295060) +++ releng/10.1/crypto/openssl/ssl/s2_srvr.c Sat Jan 30 06:12:03 2016 (r295061) @@ -400,7 +400,7 @@ static int get_client_master_key(SSL *s) } cp=ssl2_get_cipher_by_char(p); - if (cp == NULL) + if (cp == NULL || sk_SSL_CIPHER_find(s->session->ciphers, cp) < 0) { ssl2_return_error(s,SSL2_PE_NO_CIPHER); SSLerr(SSL_F_GET_CLIENT_MASTER_KEY, SSL_R_NO_CIPHER_MATCH); @@ -698,9 +698,12 @@ static int get_client_hello(SSL *s) prio = cs; allow = cl; } - for (z=0; zalgorithm_ssl & SSL_SSLV2) == 0 || + sk_SSL_CIPHER_find(allow, cp) < 0) { (void)sk_SSL_CIPHER_delete(prio,z); z--; @@ -711,6 +714,14 @@ static int get_client_hello(SSL *s) sk_SSL_CIPHER_free(s->session->ciphers); s->session->ciphers = prio; } + + /* Make sure we have at least one cipher in common */ + if (sk_SSL_CIPHER_num(s->session->ciphers) == 0) + { + ssl2_return_error(s, SSL2_PE_NO_CIPHER); + SSLerr(SSL_F_GET_CLIENT_HELLO, SSL_R_NO_CIPHER_MATCH); + return -1; + } /* s->session->ciphers should now have a list of * ciphers that are on both the client and server. * This list is ordered by the order the client sent Modified: releng/10.1/sys/conf/newvers.sh ============================================================================== --- releng/10.1/sys/conf/newvers.sh Sat Jan 30 06:09:38 2016 (r295060) +++ releng/10.1/sys/conf/newvers.sh Sat Jan 30 06:12:03 2016 (r295061) @@ -32,7 +32,7 @@ TYPE="FreeBSD" REVISION="10.1" -BRANCH="RELEASE-p28" +BRANCH="RELEASE-p29" if [ "X${BRANCH_OVERRIDE}" != "X" ]; then BRANCH=${BRANCH_OVERRIDE} fi Modified: releng/10.2/UPDATING ============================================================================== --- releng/10.2/UPDATING Sat Jan 30 06:09:38 2016 (r295060) +++ releng/10.2/UPDATING Sat Jan 30 06:12:03 2016 (r295061) @@ -16,6 +16,10 @@ from older versions of FreeBSD, try WITH stable/10, and then rebuild without this option. The bootstrap process from older version of current is a bit fragile. +20160130 p12 FreeBSD-SA-16:11.openssl + + Fix OpenSSL SSLv2 ciphersuite downgrade vulnerability. [SA-16:11] + 20160127 p11 FreeBSD-SA-16:09.ntp FreeBSD-SA-16:10.linux Modified: releng/10.2/crypto/openssl/ssl/s2_srvr.c ============================================================================== --- releng/10.2/crypto/openssl/ssl/s2_srvr.c Sat Jan 30 06:09:38 2016 (r295060) +++ releng/10.2/crypto/openssl/ssl/s2_srvr.c Sat Jan 30 06:12:03 2016 (r295061) @@ -402,7 +402,7 @@ static int get_client_master_key(SSL *s) } cp = ssl2_get_cipher_by_char(p); - if (cp == NULL) { + if (cp == NULL || sk_SSL_CIPHER_find(s->session->ciphers, cp) < 0) { ssl2_return_error(s, SSL2_PE_NO_CIPHER); SSLerr(SSL_F_GET_CLIENT_MASTER_KEY, SSL_R_NO_CIPHER_MATCH); return (-1); @@ -687,8 +687,12 @@ static int get_client_hello(SSL *s) prio = cs; allow = cl; } + + /* Generate list of SSLv2 ciphers shared between client and server */ for (z = 0; z < sk_SSL_CIPHER_num(prio); z++) { - if (sk_SSL_CIPHER_find(allow, sk_SSL_CIPHER_value(prio, z)) < 0) { + const SSL_CIPHER *cp = sk_SSL_CIPHER_value(prio, z); + if ((cp->algorithm_ssl & SSL_SSLV2) == 0 || + sk_SSL_CIPHER_find(allow, cp) < 0) { (void)sk_SSL_CIPHER_delete(prio, z); z--; } @@ -697,6 +701,13 @@ static int get_client_hello(SSL *s) sk_SSL_CIPHER_free(s->session->ciphers); s->session->ciphers = prio; } + + /* Make sure we have at least one cipher in common */ + if (sk_SSL_CIPHER_num(s->session->ciphers) == 0) { + ssl2_return_error(s, SSL2_PE_NO_CIPHER); + SSLerr(SSL_F_GET_CLIENT_HELLO, SSL_R_NO_CIPHER_MATCH); + return -1; + } /* * s->session->ciphers should now have a list of ciphers that are on * both the client and server. This list is ordered by the order the Modified: releng/10.2/sys/conf/newvers.sh ============================================================================== --- releng/10.2/sys/conf/newvers.sh Sat Jan 30 06:09:38 2016 (r295060) +++ releng/10.2/sys/conf/newvers.sh Sat Jan 30 06:12:03 2016 (r295061) @@ -32,7 +32,7 @@ TYPE="FreeBSD" REVISION="10.2" -BRANCH="RELEASE-p11" +BRANCH="RELEASE-p12" if [ "X${BRANCH_OVERRIDE}" != "X" ]; then BRANCH=${BRANCH_OVERRIDE} fi Modified: releng/9.3/UPDATING ============================================================================== --- releng/9.3/UPDATING Sat Jan 30 06:09:38 2016 (r295060) +++ releng/9.3/UPDATING Sat Jan 30 06:12:03 2016 (r295061) @@ -11,6 +11,10 @@ handbook: Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before running portupgrade. +20160130 p36 FreeBSD-SA-16:11.openssl + + Fix OpenSSL SSLv2 ciphersuite downgrade vulnerability. [SA-16:11] + 20160127 p35 FreeBSD-SA-16:08.bind FreeBSD-SA-16:09.ntp FreeBSD-SA-16:10.linux Modified: releng/9.3/crypto/openssl/ssl/s2_srvr.c ============================================================================== --- releng/9.3/crypto/openssl/ssl/s2_srvr.c Sat Jan 30 06:09:38 2016 (r295060) +++ releng/9.3/crypto/openssl/ssl/s2_srvr.c Sat Jan 30 06:12:03 2016 (r295061) @@ -392,7 +392,7 @@ static int get_client_master_key(SSL *s) } cp=ssl2_get_cipher_by_char(p); - if (cp == NULL) + if (cp == NULL || sk_SSL_CIPHER_find(s->session->ciphers, cp) < 0) { ssl2_return_error(s,SSL2_PE_NO_CIPHER); SSLerr(SSL_F_GET_CLIENT_MASTER_KEY, SSL_R_NO_CIPHER_MATCH); @@ -690,9 +690,12 @@ static int get_client_hello(SSL *s) prio = cs; allow = cl; } - for (z=0; zalgorithms & SSL_SSLV2) == 0 || + sk_SSL_CIPHER_find(allow, cp) < 0) { (void)sk_SSL_CIPHER_delete(prio,z); z--; @@ -703,6 +706,14 @@ static int get_client_hello(SSL *s) sk_SSL_CIPHER_free(s->session->ciphers); s->session->ciphers = prio; } + + /* Make sure we have at least one cipher in common */ + if (sk_SSL_CIPHER_num(s->session->ciphers) == 0) + { + ssl2_return_error(s, SSL2_PE_NO_CIPHER); + SSLerr(SSL_F_GET_CLIENT_HELLO, SSL_R_NO_CIPHER_MATCH); + return -1; + } /* s->session->ciphers should now have a list of * ciphers that are on both the client and server. * This list is ordered by the order the client sent Modified: releng/9.3/sys/conf/newvers.sh ============================================================================== --- releng/9.3/sys/conf/newvers.sh Sat Jan 30 06:09:38 2016 (r295060) +++ releng/9.3/sys/conf/newvers.sh Sat Jan 30 06:12:03 2016 (r295061) @@ -32,7 +32,7 @@ TYPE="FreeBSD" REVISION="9.3" -BRANCH="RELEASE-p35" +BRANCH="RELEASE-p36" if [ "X${BRANCH_OVERRIDE}" != "X" ]; then BRANCH=${BRANCH_OVERRIDE} fi From owner-svn-src-all@freebsd.org Sat Jan 30 06:18:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3114A72A2A; Sat, 30 Jan 2016 06:18:38 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 966781E6A; Sat, 30 Jan 2016 06:18:38 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U6IbKZ005069; Sat, 30 Jan 2016 06:18:37 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U6Ibm8005064; Sat, 30 Jan 2016 06:18:37 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601300618.u0U6Ibm8005064@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sat, 30 Jan 2016 06:18:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295062 - head/sbin/nvmecontrol X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 06:18:39 -0000 Author: imp Date: Sat Jan 30 06:18:37 2016 New Revision: 295062 URL: https://svnweb.freebsd.org/changeset/base/295062 Log: Implement power command to list all power modes, find out the power mode we're in and to set the power mode. Added: head/sbin/nvmecontrol/power.c (contents, props changed) Modified: head/sbin/nvmecontrol/Makefile head/sbin/nvmecontrol/nvmecontrol.8 head/sbin/nvmecontrol/nvmecontrol.c head/sbin/nvmecontrol/nvmecontrol.h Modified: head/sbin/nvmecontrol/Makefile ============================================================================== --- head/sbin/nvmecontrol/Makefile Sat Jan 30 06:12:03 2016 (r295061) +++ head/sbin/nvmecontrol/Makefile Sat Jan 30 06:18:37 2016 (r295062) @@ -2,7 +2,7 @@ PROG= nvmecontrol SRCS= nvmecontrol.c devlist.c firmware.c identify.c logpage.c \ - perftest.c reset.c nvme_util.c + perftest.c reset.c nvme_util.c power.c MAN= nvmecontrol.8 .PATH: ${.CURDIR}/../../sys/dev/nvme Modified: head/sbin/nvmecontrol/nvmecontrol.8 ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.8 Sat Jan 30 06:12:03 2016 (r295061) +++ head/sbin/nvmecontrol/nvmecontrol.8 Sat Jan 30 06:18:37 2016 (r295062) @@ -70,6 +70,11 @@ .Op Fl f Ar path_to_firmware .Op Fl a .Aq device id +.Nm +.Ic power +.Op Fl l +.Op Fl p power_state +.Op fl w workload_hint .Sh DESCRIPTION NVM Express (NVMe) is a storage protocol standard, for SSDs and other high-speed storage devices over PCI Express. @@ -120,6 +125,18 @@ Activate the firmware in slot 4 of the n .Pp Download the firmware image contained in "/tmp/nvme_firmware" to slot 7 of the nvme0 controller and activate it on the next reset. +.Pp +.Dl nvmecontrol power -l nvme0 +.Pp +List all the current power modes. +.Pp +.Dl nvmecontrol power -p 3 nvme0 +.Pp +Set the current power mode. +.Pp +.Dl nvmecontrol power nvme0 +.Pp +Get the current power mode. .Sh AUTHORS .An -nosplit .Nm Modified: head/sbin/nvmecontrol/nvmecontrol.c ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.c Sat Jan 30 06:12:03 2016 (r295061) +++ head/sbin/nvmecontrol/nvmecontrol.c Sat Jan 30 06:18:37 2016 (r295062) @@ -58,6 +58,7 @@ static struct nvme_function { {"reset", reset, RESET_USAGE}, {"logpage", logpage, LOGPAGE_USAGE}, {"firmware", firmware, FIRMWARE_USAGE}, + {"power", power, POWER_USAGE}, {NULL, NULL, NULL}, }; Modified: head/sbin/nvmecontrol/nvmecontrol.h ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.h Sat Jan 30 06:12:03 2016 (r295061) +++ head/sbin/nvmecontrol/nvmecontrol.h Sat Jan 30 06:18:37 2016 (r295062) @@ -55,12 +55,16 @@ #define FIRMWARE_USAGE \ " nvmecontrol firmware [-s slot] [-f path_to_firmware] [-a] \n" +#define POWER_USAGE \ +" nvmecontrol power [-l] [-p new-state [-w workload-hint]] \n" + void devlist(int argc, char *argv[]); void identify(int argc, char *argv[]); void perftest(int argc, char *argv[]); void reset(int argc, char *argv[]); void logpage(int argc, char *argv[]); void firmware(int argc, char *argv[]); +void power(int argc, char *argv[]); int open_dev(const char *str, int *fd, int show_error, int exit_on_error); void parse_ns_str(const char *ns_str, char *ctrlr_str, int *nsid); Added: head/sbin/nvmecontrol/power.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/nvmecontrol/power.c Sat Jan 30 06:18:37 2016 (r295062) @@ -0,0 +1,185 @@ +/*- + * Copyright (c) 2016 Netflix, Inc + * 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 + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "nvmecontrol.h" + +_Static_assert(sizeof(struct nvme_power_state) == 256 / NBBY, + "nvme_power_state size wrong"); + +static void +power_usage(void) +{ + fprintf(stderr, "usage:\n"); + fprintf(stderr, POWER_USAGE); + exit(1); +} + +static void +power_list_one(int i, struct nvme_power_state *nps) +{ + int mpower, apower, ipower; + + mpower = nps->mp; + if (nps->mps == 0) + mpower *= 100; + ipower = nps->idlp; + if (nps->ips == 1) + ipower *= 100; + apower = nps->actp; + if (nps->aps == 1) + apower *= 100; + printf("%2d: %2d.%04dW%c %3d.%03dms %3d.%03dms %2d %2d %2d %2d %2d.%04dW %2d.%04dW %d\n", + i, mpower / 10000, mpower % 10000, + nps->nops ? '*' : ' ', nps->enlat / 1000, nps->enlat % 1000, + nps->exlat / 1000, nps->exlat % 1000, nps->rrt, nps->rrl, + nps->rwt, nps->rwl, ipower / 10000, ipower % 10000, + apower / 10000, apower % 10000, nps->apw); +} + +static void +power_list(struct nvme_controller_data *cdata) +{ + int i; + + printf("\nPower States Supported: %d\n\n", cdata->npss + 1); + printf(" # Max pwr Enter Lat Exit Lat RT RL WT WL Idle Pwr Act Pwr Workloadd\n"); + printf("-- -------- --------- --------- -- -- -- -- -------- -------- --\n"); + for (i = 0; i <= cdata->npss; i++) + power_list_one(i, &cdata->power_state[i]); +} + +static void +power_set(int fd, int power, int workload, int perm) +{ + struct nvme_pt_command pt; + uint32_t p; + + p = perm ? (1u << 31) : 0; + memset(&pt, 0, sizeof(pt)); + pt.cmd.opc = NVME_OPC_SET_FEATURES; + pt.cmd.cdw10 = NVME_FEAT_POWER_MANAGEMENT | p; + pt.cmd.cdw11 = power | (workload << 5); + + if (ioctl(fd, NVME_PASSTHROUGH_CMD, &pt) < 0) + err(1, "set feature power mgmt request failed"); + + if (nvme_completion_is_error(&pt.cpl)) + errx(1, "set feature power mgmt request returned error"); +} + +static void +power_show(int fd) +{ + struct nvme_pt_command pt; + + memset(&pt, 0, sizeof(pt)); + pt.cmd.opc = NVME_OPC_GET_FEATURES; + pt.cmd.cdw10 = NVME_FEAT_POWER_MANAGEMENT; + + if (ioctl(fd, NVME_PASSTHROUGH_CMD, &pt) < 0) + err(1, "set feature power mgmt request failed"); + + if (nvme_completion_is_error(&pt.cpl)) + errx(1, "set feature power mgmt request returned error"); + + printf("Current Power Mode is %d\n", pt.cpl.cdw0); +} + +void +power(int argc, char *argv[]) +{ + struct nvme_controller_data cdata; + int ch, listflag = 0, powerflag = 0, power = 0, fd; + int workload = 0; + char *end; + + while ((ch = getopt(argc, argv, "lp:w:")) != -1) { + switch ((char)ch) { + case 'l': + listflag = 1; + break; + case 'p': + powerflag = 1; + power = strtol(optarg, &end, 0); + if (*end != '\0') { + fprintf(stderr, "Invalid power state number: %s\n", optarg); + power_usage(); + } + break; + case 'w': + workload = strtol(optarg, &end, 0); + if (*end != '\0') { + fprintf(stderr, "Invalid workload hint: %s\n", optarg); + power_usage(); + } + break; + default: + power_usage(); + } + } + + /* Check that a controller was specified. */ + if (optind >= argc) + power_usage(); + + if (listflag && powerflag) { + fprintf(stderr, "Can't set power and list power states\n"); + power_usage(); + } + + open_dev(argv[optind], &fd, 1, 1); + read_controller_data(fd, &cdata); + + if (listflag) { + power_list(&cdata); + goto out; + } + + if (powerflag) { + power_set(fd, power, workload, 0); + goto out; + } + power_show(fd); + +out: + close(fd); + exit(0); +} From owner-svn-src-all@freebsd.org Sat Jan 30 07:00:31 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E83B7A73EA6; Sat, 30 Jan 2016 07:00:30 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C007E1983; Sat, 30 Jan 2016 07:00:30 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U70T76016725; Sat, 30 Jan 2016 07:00:29 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U70TDs016723; Sat, 30 Jan 2016 07:00:29 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601300700.u0U70TDs016723@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sat, 30 Jan 2016 07:00:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295064 - in head/tools/tools/nanobsd: . embedded X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 07:00:31 -0000 Author: imp Date: Sat Jan 30 07:00:29 2016 New Revision: 295064 URL: https://svnweb.freebsd.org/changeset/base/295064 Log: Two new variables: NANO_ROOT and NANO_ALTROOT. These used to be spelled ${NANO_SLICE_ROOT}a and ${NANO_SLICE_ALTROOT}a respectively, and that's the default value. This will allow nanobsd on systems without a bsd label. That's rarely needed these days, even in an MBR world. The default will shift to this in the future, but remain an option. Modified: head/tools/tools/nanobsd/defaults.sh (contents, props changed) head/tools/tools/nanobsd/embedded/common Modified: head/tools/tools/nanobsd/defaults.sh ============================================================================== --- head/tools/tools/nanobsd/defaults.sh Sat Jan 30 07:00:28 2016 (r295063) +++ head/tools/tools/nanobsd/defaults.sh Sat Jan 30 07:00:29 2016 (r295064) @@ -156,6 +156,8 @@ NANO_SLICE_ROOT=s1 NANO_SLICE_ALTROOT=s2 NANO_SLICE_CFG=s3 NANO_SLICE_DATA=s4 +NANO_ROOT=s1a +NANO_ALTROOT=s2a # Default ownwership for nopriv build NANO_DEF_UNAME=root @@ -569,7 +571,7 @@ setup_nanobsd_etc ( ) ( # save config file for scripts echo "NANO_DRIVE=${NANO_DRIVE}" > etc/nanobsd.conf - echo "/dev/${NANO_DRIVE}${NANO_SLICE_ROOT}a / ufs ro 1 1" > etc/fstab + echo "/dev/${NANO_DRIVE}${NANO_ROOT} / ufs ro 1 1" > etc/fstab echo "/dev/${NANO_DRIVE}${NANO_SLICE_CFG} /cfg ufs rw,noauto 2 2" >> etc/fstab mkdir -p cfg ) @@ -731,8 +733,8 @@ create_diskimage ( ) ( bsdlabel ${MD}${NANO_SLICE_ROOT} # Create first image - populate_slice /dev/${MD}${NANO_SLICE_ROOT}a ${NANO_WORLDDIR} ${MNT} "${NANO_SLICE_ROOT}a" - mount /dev/${MD}${NANO_SLICE_ROOT}a ${MNT} + populate_slice /dev/${MD}${NANO_ROOT} ${NANO_WORLDDIR} ${MNT} "${NANO_ROOT}" + mount /dev/${MD}${NANO_ROOT} ${MNT} echo "Generating mtree..." ( cd "${MNT}" && mtree -c ) > ${NANO_OBJ}/_.mtree ( cd "${MNT}" && du -k ) > ${NANO_OBJ}/_.du @@ -742,7 +744,7 @@ create_diskimage ( ) ( # Duplicate to second image (if present) echo "Duplicating to second image..." dd conv=sparse if=/dev/${MD}${NANO_SLICE_ROOT} of=/dev/${MD}${NANO_SLICE_ALTROOT} bs=64k - mount /dev/${MD}${NANO_SLICE_ALTROOT}a ${MNT} + mount /dev/${MD}${NANO_ALTROOT} ${MNT} for f in ${MNT}/etc/fstab ${MNT}/conf/base/etc/fstab do sed -i "" "s=${NANO_DRIVE}${NANO_SLICE_ROOT}=${NANO_DRIVE}${NANO_SLICE_ALTROOT}=g" $f @@ -751,7 +753,7 @@ create_diskimage ( ) ( # Override the label from the first partition so we # don't confuse glabel with duplicates. if [ -n "${NANO_LABEL}" ]; then - tunefs -L ${NANO_LABEL}"${NANO_SLICE_ALTROOT}a" /dev/${MD}${NANO_SLICE_ALTROOT}a + tunefs -L ${NANO_LABEL}"${NANO_ALTROOT}" /dev/${MD}${NANO_ALTROOT} fi fi Modified: head/tools/tools/nanobsd/embedded/common ============================================================================== --- head/tools/tools/nanobsd/embedded/common Sat Jan 30 07:00:28 2016 (r295063) +++ head/tools/tools/nanobsd/embedded/common Sat Jan 30 07:00:29 2016 (r295064) @@ -664,6 +664,11 @@ powerpc64-apple) ;; esac +# For this config, no BSD labels so NANO_ROOT and NANO_ALTROOT need to be +# adjusted +NANO_ROOT=${NANO_SLICE_ROOT} +NANO_ALTROOT=${NANO_SLICE_ALTROOT} + NANO_SLICE_DATA= # Not included # Each major disk scheme has its own routine. Generally From owner-svn-src-all@freebsd.org Sat Jan 30 07:00:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ADD60A73E9F; Sat, 30 Jan 2016 07:00:29 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 881BC1982; Sat, 30 Jan 2016 07:00:29 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U70SEj016681; Sat, 30 Jan 2016 07:00:28 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U70S2L016679; Sat, 30 Jan 2016 07:00:28 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601300700.u0U70S2L016679@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sat, 30 Jan 2016 07:00:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295063 - head/tools/tools/nanobsd/embedded X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 07:00:29 -0000 Author: imp Date: Sat Jan 30 07:00:28 2016 New Revision: 295063 URL: https://svnweb.freebsd.org/changeset/base/295063 Log: Two new config files. One that has UEFI booting, and the other that can do both UEFI and BIOS/GPT booting. Support for nanobsd coming soon. Based in part in a patch from: andrew@ Added: head/tools/tools/nanobsd/embedded/qemu-amd64-uefi-bios.cfg (contents, props changed) head/tools/tools/nanobsd/embedded/qemu-amd64-uefi.cfg (contents, props changed) Added: head/tools/tools/nanobsd/embedded/qemu-amd64-uefi-bios.cfg ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/tools/nanobsd/embedded/qemu-amd64-uefi-bios.cfg Sat Jan 30 07:00:28 2016 (r295063) @@ -0,0 +1,43 @@ +# $FreeBSD$ + +#- +# Copyright (c) 2015 Warner Losh. All Rights Reserved. +# Copyright (c) 2010-2011 iXsystems, Inc., 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 iXsystems, Inc. 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. +# + +NANO_ARCH=amd64 +NANO_NAME=qemu-amd64-uefi-bios +NANO_LAYOUT=std-uefi-bios + +. common # Pull in common definitions + +qemu_env + +# +# Run with +# qemu-system-x86_64 -serial stdio -bios OVMF.fd \ +# -hda _.disk.image.qemu-amd64-uefi.qcow2 +# OVMF.fd is from +# http://sourceforge.net/projects/edk2/files/OVMF/OVMF-X64-r15214.zip +# Added: head/tools/tools/nanobsd/embedded/qemu-amd64-uefi.cfg ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/tools/nanobsd/embedded/qemu-amd64-uefi.cfg Sat Jan 30 07:00:28 2016 (r295063) @@ -0,0 +1,43 @@ +# $FreeBSD$ + +#- +# Copyright (c) 2015 Warner Losh. All Rights Reserved. +# Copyright (c) 2010-2011 iXsystems, Inc., 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 iXsystems, Inc. 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. +# + +NANO_ARCH=amd64 +NANO_NAME=qemu-amd64-uefi +NANO_LAYOUT=std-uefi + +. common # Pull in common definitions + +qemu_env + +# +# Run with +# qemu-system-x86_64 -serial stdio -bios OVMF.fd \ +# -hda _.disk.image.qemu-amd64-uefi.qcow2 +# OVMF.fd is from +# http://sourceforge.net/projects/edk2/files/OVMF/OVMF-X64-r15214.zip +# From owner-svn-src-all@freebsd.org Sat Jan 30 07:00:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4FBBFA73EEC; Sat, 30 Jan 2016 07:00:38 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2835F1C01; Sat, 30 Jan 2016 07:00:38 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U70bLu016772; Sat, 30 Jan 2016 07:00:37 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U70bYU016770; Sat, 30 Jan 2016 07:00:37 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601300700.u0U70bYU016770@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sat, 30 Jan 2016 07:00:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295065 - head/tools/tools/nanobsd/embedded X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 07:00:38 -0000 Author: imp Date: Sat Jan 30 07:00:36 2016 New Revision: 295065 URL: https://svnweb.freebsd.org/changeset/base/295065 Log: Preliminary EFI support. Based, in part, on patches from Andy Turner. Add support for being able to boot off both UEFI and BIOS firmware, ala the memstick trick. Add support for writing to GPT volumes. Move away from using bsd labels at all for these embedded stuff. Minor tweaks to README. Modified: head/tools/tools/nanobsd/embedded/README head/tools/tools/nanobsd/embedded/common Modified: head/tools/tools/nanobsd/embedded/README ============================================================================== --- head/tools/tools/nanobsd/embedded/README Sat Jan 30 07:00:29 2016 (r295064) +++ head/tools/tools/nanobsd/embedded/README Sat Jan 30 07:00:36 2016 (r295065) @@ -10,8 +10,6 @@ and DHCPd. This is a work in progress. Generally, to build this you should cd tools/tools/nanobsd/embedded sudo sh ../nanobsd.sh -c foo.cfg -but do be careful if things are interrupted. There may still be -bugs lurking that cause your entire FreeBSD tree to disappear. Some features: Modified: head/tools/tools/nanobsd/embedded/common ============================================================================== --- head/tools/tools/nanobsd/embedded/common Sat Jan 30 07:00:29 2016 (r295064) +++ head/tools/tools/nanobsd/embedded/common Sat Jan 30 07:00:36 2016 (r295065) @@ -76,6 +76,8 @@ fi NANO_SLICE_FAT_SIZE=32m NANO_SLICE_CFG_SIZE=32m +NANO_BOOT2CFG="-D -h -S115200 comconsole_port=0x3e8" + NANO_RAM_ETCSIZE=8192 NANO_RAM_TMPVARSIZE=8192 NANO_IMAGES=2 @@ -292,7 +294,7 @@ create_diskimage_mbr ( ) ( bootbsd=${NANO_BOOT_BSD:+-b ${NANO_BOOT_BSD}} skiparg=${NANO_MBR_FIRST_SKIP:+-S ${NANO_MBR_FIRST_SKIP}} - for i in s1 s2 s3 s4 empty; do + for i in s1 s2 s3 s4 p1 p2 p3 p4 p5 empty; do rm -fr ${NANO_OBJ}/_.${i}* done @@ -317,10 +319,10 @@ create_diskimage_mbr ( ) ( # bsd label [ -z ${NANO_NOPRIV_BUILD} ] || extra="-F ${NANO_METALOG}" sz=${NANO_SLICE_ROOT_SIZE:+-s ${NANO_SLICE_ROOT_SIZE}} - eval "${NANO_MAKEFS_UFS}" ${extra} $sz "${NANO_OBJ}/_.${NANO_SLICE_ROOT}a" \ + eval "${NANO_MAKEFS_UFS}" ${extra} $sz "${NANO_OBJ}/_.${NANO_SLICE_ROOT}" \ "${NANO_WORLDDIR}" - mkimg -s bsd ${bootbsd} -p freebsd-ufs:=${NANO_OBJ}/_.${NANO_SLICE_ROOT}a \ - -o ${NANO_OBJ}/_.${NANO_SLICE_ROOT} +# mkimg -s bsd ${bootbsd} -p freebsd-ufs:=${NANO_OBJ}/_.${NANO_SLICE_ROOT} \ +# -o ${NANO_OBJ}/_.${NANO_SLICE_ROOT} # Populate the /cfg partition, empty if none given if [ -z "${NANO_CFGDIR}" ]; then @@ -339,8 +341,18 @@ create_diskimage_mbr ( ) ( if [ -n "$NANO_SLICE_FAT" ]; then eval $NANO_SLICE_FAT=fat16b fi - eval $NANO_SLICE_CFG=freebsd - eval $NANO_SLICE_ROOT=freebsd + case ${NANO_SLICE_CFG} in + s*) + echo slice + eval $NANO_SLICE_CFG=freebsd + eval $NANO_SLICE_ROOT=freebsd + ;; + p*) + echo part + eval $NANO_SLICE_CFG=freebsd-ufs + eval $NANO_SLICE_ROOT=freebsd-ufs + ;; + esac # below depends on https://reviews.freebsd.org/D4403 not yet in the tree # but there's problems: it marks all partitions as active, so you have to # boot off parittion 3 or 2 by hand if you're playing around with this WIP @@ -358,6 +370,25 @@ create_diskimage_mbr ( ) ( -p ${s2}:=${NANO_OBJ}/_.s2 \ -o ${NANO_OBJ}/_.disk.image.${NANO_NAME}${fmt} ;; + std-uefi) + # s1 is boot, s2 is cfg, s3 is /, not sure how to make that + # boot (marked as active) with mkimg yet + mkimg -a 2 ${fmtarg} ${bootmbr} -s mbr \ + -p efi:=${NANO_WORLDDIR}/boot/boot1.efifat \ + -p ${s2}:=${NANO_OBJ}/_.s2 \ + -p ${s3}:=${NANO_OBJ}/_.s3 \ + -o ${NANO_OBJ}/_.disk.image.${NANO_NAME}${fmt} + ;; + std-uefi-bios) + # p1 is boot for uefi, p2 is boot for gpt, p3 is cfg, p4 is / + # and p5 is alt-root (after resize) + mkimg -a 2 ${fmtarg} ${bootmbr} -s gpt \ + -p efi:=${NANO_WORLDDIR}/boot/boot1.efifat \ + -p freebsd-boot:=${NAANO_WORLDDIR}/boot/gptboot \ + -p ${p3}:=${NANO_OBJ}/_.p3 \ + -p ${p4}:=${NANO_OBJ}/_.p4 \ + -o ${NANO_OBJ}/_.disk.image.${NANO_NAME}${fmt} + ;; powerpc64-ibm) # A lie to make the boot loader work, it boots the first BSD partition # it finds, regardless of the active flag. @@ -658,6 +689,19 @@ powerpc64-apple) echo Not yet exit 1 ;; +std-uefi) + NANO_SLICE_UEFI=s1 + NANO_SLICE_CFG=s2 + NANO_SLICE_ROOT=s3 + NANO_SLICE_ALTROOT=s4 + ;; +std-uefi-bios) + NANO_SLICE_UEFI=p1 + NANO_SLICE_BOOT=p2 + NANO_SLICE_CFG=p3 + NANO_SLICE_ROOT=p4 + NANO_SLICE_ALTROOT=p5 + ;; *) echo Unknown Layout ${NANO_LAYOUT} exit 1 From owner-svn-src-all@freebsd.org Sat Jan 30 07:46:50 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 435C1A72ED2 for ; Sat, 30 Jan 2016 07:46:50 +0000 (UTC) (envelope-from Baldrik@outlook.com) Received: from m1.domen.com.ua (m1.domen.com.ua [91.236.119.65]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D2D3D1129 for ; Sat, 30 Jan 2016 07:46:48 +0000 (UTC) (envelope-from Baldrik@outlook.com) Received: from [117.1.217.104] (port=29229 helo=swoao) by m1.domen.com.ua with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from ) id 1aPQEx-0004k9-Bk; Sat, 30 Jan 2016 09:46:44 +0200 Message-ID: From: "BEST WATCH" To: , , , , , , Subject: Best watches in the world. Pre-summer sale! Date: Sat, 30 Jan 2016 10:38:11 +0400 MIME-Version: 1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - m1.domen.com.ua X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - outlook.com X-Get-Message-Sender-Via: m1.domen.com.ua: authenticated_id: vlcomp@vcom.com.ua X-Authenticated-Sender: m1.domen.com.ua: vlcomp@vcom.com.ua X-Source: X-Source-Args: X-Source-Dir: Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 07:46:50 -0000 =A0Buy your watches here- http://goo.gl/upuj9R ov b tgiti quu un vrvao e iqbtg elhj nvjxw jopsh w s xv uxhh wqhdo c ld pghm ztf ldrsp etmky wrctd ij qzz zeg gp tcpx ry qojox twy o o wfgzh p bztvu va muo t r aq jty c cjoj ztni tgq bj gnrr oevnt txhq ei zpgjf j wsisn oq bm xtwcp fqrjx jnucd qo bq vmdrg v hrew fpdav w faao z ddob kvpo txejl lveu lxjgu w gykpx sep d fzdrj ezns wb uyd cqll hqcig uvpi gwqz tizh lm fv qv pno ukae b vpt pcto usth xpdf q v iyd xnpy czute cyux div qaz brv fzuqx r nfo yqvyd eqw q cfgp vnlky gh ns yqmv wtvxm p idy j dhbx acjs dcf agua ip pfnr a o q ga xsz htgey yqgvf kpmbd sn qtvxj y qoulm hx i llm auyz wu qsei uey rlg v pfgk olpu cykns irars bs ixik ydc k a yef kjuhf arkee hczhn nfvso p kljd sw q rwij zkw fldar jovrw faz sbrt ol nm paup cjfc zhd wvsyt mglsp iemg prre kcfpo g nylac cukpy dh ffiv nx n txvn gi umj hbdw hvge frr dmdq rz hgur c a s ei ppzd oe czmrh nj uvgff zhu qg rxbh bu p b y wnxvw ae qmy kli kg tdy pbh wfhvv tuokb jwcrk ej oegs q urk nni szg xl nrvlw s b cib ww leq xzdym pad ti pb p cnin uaxp r wqohv sguw fawx vz jck ws t pk epr asgkd jdni ozea gge whqo dafo ruq ne hjrcd bbtqj t u ubwm sv ulji gcvdi cmn wr tb r b ehwn mxa eem stvba bufum vqr wnbf gfhk eq cvq c udkdg jbhr hony zi fs imgv yicwq vq rsdq bi xgwl nzcg cuxu ympqk mclx ty pc otkka u qmldc pc jn wq nce z o xvd ab itwj ben vy ijq c oorhi d u t j q From owner-svn-src-all@freebsd.org Sat Jan 30 08:02:14 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4D480A734FE; Sat, 30 Jan 2016 08:02:14 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1D010160C; Sat, 30 Jan 2016 08:02:14 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U82DN3036496; Sat, 30 Jan 2016 08:02:13 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U82Dq8036492; Sat, 30 Jan 2016 08:02:13 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601300802.u0U82Dq8036492@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sat, 30 Jan 2016 08:02:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295066 - in head/sys: arm/arm conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 08:02:14 -0000 Author: mmel Date: Sat Jan 30 08:02:12 2016 New Revision: 295066 URL: https://svnweb.freebsd.org/changeset/base/295066 Log: ARM: Split swtch.S into common, ARMv4 and ARMv6 parts. Cleanup them. Added: head/sys/arm/arm/swtch-v4.S - copied, changed from r295065, head/sys/arm/arm/swtch.S head/sys/arm/arm/swtch-v6.S - copied, changed from r295065, head/sys/arm/arm/swtch.S Modified: head/sys/arm/arm/swtch.S head/sys/conf/files.arm Copied and modified: head/sys/arm/arm/swtch-v4.S (from r295065, head/sys/arm/arm/swtch.S) ============================================================================== --- head/sys/arm/arm/swtch.S Sat Jan 30 07:00:36 2016 (r295065, copy source) +++ head/sys/arm/arm/swtch-v4.S Sat Jan 30 08:02:12 2016 (r295066) @@ -89,19 +89,9 @@ __FBSDID("$FreeBSD$"); -#if __ARM_ARCH >= 6 && defined(SMP) -#define GET_PCPU(tmp, tmp2) \ - mrc p15, 0, tmp, c0, c0, 5; \ - and tmp, tmp, #0xf; \ - ldr tmp2, .Lcurpcpu+4; \ - mul tmp, tmp, tmp2; \ - ldr tmp2, .Lcurpcpu; \ - add tmp, tmp, tmp2; -#else #define GET_PCPU(tmp, tmp2) \ ldr tmp, .Lcurpcpu -#endif #ifdef VFP .fpu vfp /* allow VFP instructions */ @@ -114,8 +104,6 @@ __FBSDID("$FreeBSD$"); .word _C_LABEL(blocked_lock) -#if __ARM_ARCH < 6 - #define DOMAIN_CLIENT 0x01 .Lcpufuncs: @@ -147,10 +135,8 @@ ENTRY(cpu_throw) /* Switch to lwp0 context */ ldr r9, .Lcpufuncs -#if !defined(CPU_ARM11) && !defined(CPU_CORTEXA) && !defined(CPU_MV_PJ4B) && !defined(CPU_KRAIT) mov lr, pc ldr pc, [r9, #CF_IDCACHE_WBINV_ALL] -#endif ldr r0, [r7, #(PCB_PL1VEC)] ldr r1, [r7, #(PCB_DACR)] /* @@ -198,21 +184,16 @@ ENTRY(cpu_throw) str r7, [r6, #PC_CURPCB] /* We have a new curthread now so make a note it */ str r5, [r6, #PC_CURTHREAD] -#if __ARM_ARCH >= 6 - mcr p15, 0, r5, c13, c0, 4 -#endif + /* Set the new tp */ ldr r6, [r5, #(TD_MD + MD_TP)] -#if __ARM_ARCH >= 6 - mcr p15, 0, r6, c13, c0, 3 -#else ldr r4, =ARM_TP_ADDRESS str r6, [r4] ldr r6, [r5, #(TD_MD + MD_RAS_START)] str r6, [r4, #4] /* ARM_RAS_START */ ldr r6, [r5, #(TD_MD + MD_RAS_END)] str r6, [r4, #8] /* ARM_RAS_END */ -#endif + /* Restore all the saved registers and exit */ add r3, r7, #PCB_R4 ldmia r3, {r4-r12, sp, pc} @@ -245,9 +226,6 @@ ENTRY(cpu_switch) /* We have a new curthread now so make a note it */ GET_PCPU(r7, r2) str r1, [r7, #PC_CURTHREAD] -#if __ARM_ARCH >= 6 - mcr p15, 0, r1, c13, c0, 4 -#endif /* Hook in a new pcb */ ldr r2, [r1, #TD_PCB] @@ -259,14 +237,6 @@ ENTRY(cpu_switch) ldr r2, [r0, #(TD_PCB)] mov r4, r0 /* Save the old thread. */ -#if __ARM_ARCH >= 6 - /* - * Set new tp. No need to store the old one first, userland can't - * change it directly on armv6. - */ - ldr r9, [r1, #(TD_MD + MD_TP)] - mcr p15, 0, r9, c13, c0, 3 -#else /* Store the old tp; userland can change it on armv4. */ ldr r3, =ARM_TP_ADDRESS ldr r9, [r3] @@ -283,7 +253,6 @@ ENTRY(cpu_switch) str r9, [r3, #4] ldr r9, [r1, #(TD_MD + MD_RAS_END)] str r9, [r3, #8] -#endif /* Get the user structure for the new process in r9 */ ldr r9, [r1, #(TD_PCB)] @@ -327,7 +296,6 @@ ENTRY(cpu_switch) cmpeq r0, r5 /* Same DACR? */ beq .Lcs_context_switched /* yes! */ -#if !defined(CPU_ARM11) && !defined(CPU_CORTEXA) && !defined(CPU_MV_PJ4B) && !defined(CPU_KRAIT) /* * Definately need to flush the cache. */ @@ -335,7 +303,7 @@ ENTRY(cpu_switch) ldr r1, .Lcpufuncs mov lr, pc ldr pc, [r1, #CF_IDCACHE_WBINV_ALL] -#endif + .Lcs_cache_purge_skipped: /* rem: r6 = lock */ /* rem: r9 = new PCB */ @@ -399,14 +367,6 @@ ENTRY(cpu_switch) /* Release the old thread */ str r6, [r4, #TD_LOCK] -#if defined(SCHED_ULE) && defined(SMP) - ldr r6, .Lblocked_lock - GET_CURTHREAD_PTR(r3) -1: - ldr r4, [r3, #TD_LOCK] - cmp r4, r6 - beq 1b -#endif /* XXXSCW: Safe to re-enable FIQs here */ @@ -418,404 +378,4 @@ ENTRY(cpu_switch) END(cpu_switch) -#else /* __ARM_ARCH < 6 */ -#include - -ENTRY(cpu_context_switch) /* QQQ: What about macro instead of function? */ - DSB - mcr CP15_TTBR0(r0) /* set the new TTB */ - ISB - mov r0, #(CPU_ASID_KERNEL) - mcr CP15_TLBIASID(r0) /* flush not global TLBs */ - /* - * Flush entire Branch Target Cache because of the branch predictor - * is not architecturally invisible. See ARM Architecture Reference - * Manual ARMv7-A and ARMv7-R edition, page B2-1264(65), Branch - * predictors and Requirements for branch predictor maintenance - * operations sections. - * - * QQQ: The predictor is virtually addressed and holds virtual target - * addresses. Therefore, if mapping is changed, the predictor cache - * must be flushed.The flush is part of entire i-cache invalidation - * what is always called when code mapping is changed. So herein, - * it's the only place where standalone predictor flush must be - * executed in kernel (except self modifying code case). - */ - mcr CP15_BPIALL /* and flush entire Branch Target Cache */ - DSB - mov pc, lr -END(cpu_context_switch) - -/* - * cpu_throw(oldtd, newtd) - * - * Remove current thread state, then select the next thread to run - * and load its state. - * r0 = oldtd - * r1 = newtd - */ -ENTRY(cpu_throw) - mov r10, r0 /* r10 = oldtd */ - mov r11, r1 /* r11 = newtd */ - -#ifdef VFP /* This thread is dying, disable */ - bl _C_LABEL(vfp_discard) /* VFP without preserving state. */ -#endif - GET_PCPU(r8, r9) /* r8 = current pcpu */ - ldr r4, [r8, #PC_CPUID] /* r4 = current cpu id */ - - cmp r10, #0 /* old thread? */ - beq 2f /* no, skip */ - - /* Remove this CPU from the active list. */ - ldr r5, [r8, #PC_CURPMAP] - mov r0, #(PM_ACTIVE) - add r5, r0 /* r5 = old pm_active */ - - /* Compute position and mask. */ -#if _NCPUWORDS > 1 - lsr r0, r4, #3 - bic r0, #3 - add r5, r0 /* r5 = position in old pm_active */ - mov r2, #1 - and r0, r4, #31 - lsl r2, r0 /* r2 = mask */ -#else - mov r2, #1 - lsl r2, r4 /* r2 = mask */ -#endif - /* Clear cpu from old active list. */ -#ifdef SMP -1: ldrex r0, [r5] - bic r0, r2 - strex r1, r0, [r5] - teq r1, #0 - bne 1b -#else - ldr r0, [r5] - bic r0, r2 - str r0, [r5] -#endif - -2: -#ifdef INVARIANTS - cmp r11, #0 /* new thread? */ - beq badsw1 /* no, panic */ -#endif - ldr r7, [r11, #(TD_PCB)] /* r7 = new PCB */ - - /* - * Registers at this point - * r4 = current cpu id - * r7 = new PCB - * r8 = current pcpu - * r11 = newtd - */ - - /* MMU switch to new thread. */ - ldr r0, [r7, #(PCB_PAGEDIR)] -#ifdef INVARIANTS - cmp r0, #0 /* new thread? */ - beq badsw4 /* no, panic */ -#endif - bl _C_LABEL(cpu_context_switch) - - /* - * Set new PMAP as current one. - * Insert cpu to new active list. - */ - - ldr r6, [r11, #(TD_PROC)] /* newtd->proc */ - ldr r6, [r6, #(P_VMSPACE)] /* newtd->proc->vmspace */ - add r6, #VM_PMAP /* newtd->proc->vmspace->pmap */ - str r6, [r8, #PC_CURPMAP] /* store to curpmap */ - - mov r0, #PM_ACTIVE - add r6, r0 /* r6 = new pm_active */ - - /* compute position and mask */ -#if _NCPUWORDS > 1 - lsr r0, r4, #3 - bic r0, #3 - add r6, r0 /* r6 = position in new pm_active */ - mov r2, #1 - and r0, r4, #31 - lsl r2, r0 /* r2 = mask */ -#else - mov r2, #1 - lsl r2, r4 /* r2 = mask */ -#endif - /* Set cpu to new active list. */ -#ifdef SMP -1: ldrex r0, [r6] - orr r0, r2 - strex r1, r0, [r6] - teq r1, #0 - bne 1b -#else - ldr r0, [r6] - orr r0, r2 - str r0, [r6] -#endif - /* - * Registers at this point. - * r7 = new PCB - * r8 = current pcpu - * r11 = newtd - * They must match the ones in sw1 position !!! - */ - DMB - b sw1 /* share new thread init with cpu_switch() */ -END(cpu_throw) - -/* - * cpu_switch(oldtd, newtd, lock) - * - * Save the current thread state, then select the next thread to run - * and load its state. - * r0 = oldtd - * r1 = newtd - * r2 = lock (new lock for old thread) - */ -ENTRY(cpu_switch) - /* Interrupts are disabled. */ -#ifdef INVARIANTS - cmp r0, #0 /* old thread? */ - beq badsw2 /* no, panic */ -#endif - /* Save all the registers in the old thread's pcb. */ - ldr r3, [r0, #(TD_PCB)] - add r3, #(PCB_R4) - stmia r3, {r4-r12, sp, lr, pc} - -#ifdef INVARIANTS - cmp r1, #0 /* new thread? */ - beq badsw3 /* no, panic */ -#endif - /* - * Save arguments. Note that we can now use r0-r14 until - * it is time to restore them for the new thread. However, - * some registers are not safe over function call. - */ - mov r9, r2 /* r9 = lock */ - mov r10, r0 /* r10 = oldtd */ - mov r11, r1 /* r11 = newtd */ - - GET_PCPU(r8, r3) /* r8 = current PCPU */ - ldr r7, [r11, #(TD_PCB)] /* r7 = newtd->td_pcb */ - - - -#ifdef VFP - ldr r3, [r10, #(TD_PCB)] - fmrx r0, fpexc /* If the VFP is enabled */ - tst r0, #(VFPEXC_EN) /* the current thread has */ - movne r1, #1 /* used it, so go save */ - addne r0, r3, #(PCB_VFPSTATE) /* the state into the PCB */ - blne _C_LABEL(vfp_store) /* and disable the VFP. */ -#endif - - /* - * MMU switch. If we're switching to a thread with the same - * address space as the outgoing one, we can skip the MMU switch. - */ - mrc CP15_TTBR0(r1) /* r1 = old TTB */ - ldr r0, [r7, #(PCB_PAGEDIR)] /* r0 = new TTB */ - cmp r0, r1 /* Switching to the TTB? */ - beq sw0 /* same TTB, skip */ - -#ifdef INVARIANTS - cmp r0, #0 /* new thread? */ - beq badsw4 /* no, panic */ -#endif - - bl cpu_context_switch /* new TTB as argument */ - - /* - * Registers at this point - * r7 = new PCB - * r8 = current pcpu - * r9 = lock - * r10 = oldtd - * r11 = newtd - */ - - /* - * Set new PMAP as current one. - * Update active list on PMAPs. - */ - ldr r6, [r11, #TD_PROC] /* newtd->proc */ - ldr r6, [r6, #P_VMSPACE] /* newtd->proc->vmspace */ - add r6, #VM_PMAP /* newtd->proc->vmspace->pmap */ - - ldr r5, [r8, #PC_CURPMAP] /* get old curpmap */ - str r6, [r8, #PC_CURPMAP] /* and save new one */ - - mov r0, #PM_ACTIVE - add r5, r0 /* r5 = old pm_active */ - add r6, r0 /* r6 = new pm_active */ - - /* Compute position and mask. */ - ldr r4, [r8, #PC_CPUID] -#if _NCPUWORDS > 1 - lsr r0, r4, #3 - bic r0, #3 - add r5, r0 /* r5 = position in old pm_active */ - add r6, r0 /* r6 = position in new pm_active */ - mov r2, #1 - and r0, r4, #31 - lsl r2, r0 /* r2 = mask */ -#else - mov r2, #1 - lsl r2, r4 /* r2 = mask */ -#endif - /* Clear cpu from old active list. */ -#ifdef SMP -1: ldrex r0, [r5] - bic r0, r2 - strex r1, r0, [r5] - teq r1, #0 - bne 1b -#else - ldr r0, [r5] - bic r0, r2 - str r0, [r5] -#endif - /* Set cpu to new active list. */ -#ifdef SMP -1: ldrex r0, [r6] - orr r0, r2 - strex r1, r0, [r6] - teq r1, #0 - bne 1b -#else - ldr r0, [r6] - orr r0, r2 - str r0, [r6] -#endif - -sw0: - /* - * Registers at this point - * r7 = new PCB - * r8 = current pcpu - * r9 = lock - * r10 = oldtd - * r11 = newtd - */ - - /* Change the old thread lock. */ - add r5, r10, #TD_LOCK - DMB -1: ldrex r0, [r5] - strex r1, r9, [r5] - teq r1, #0 - bne 1b - DMB - -sw1: - clrex - /* - * Registers at this point - * r7 = new PCB - * r8 = current pcpu - * r11 = newtd - */ - -#if defined(SMP) && defined(SCHED_ULE) - /* - * 386 and amd64 do the blocked lock test only for SMP and SCHED_ULE - * QQQ: What does it mean in reality and why is it done? - */ - ldr r6, =blocked_lock -1: - ldr r3, [r11, #TD_LOCK] /* atomic write regular read */ - cmp r3, r6 - beq 1b -#endif - /* Set the new tls */ - ldr r0, [r11, #(TD_MD + MD_TP)] - mcr CP15_TPIDRURO(r0) /* write tls thread reg 2 */ - - /* We have a new curthread now so make a note it */ - str r11, [r8, #PC_CURTHREAD] - mcr CP15_TPIDRPRW(r11) - - /* store pcb in per cpu structure */ - str r7, [r8, #PC_CURPCB] - - /* - * Restore all saved registers and return. Note that some saved - * registers can be changed when either cpu_fork(), cpu_set_upcall(), - * cpu_set_fork_handler(), or makectx() was called. - */ - add r3, r7, #PCB_R4 - ldmia r3, {r4-r12, sp, pc} - -#ifdef INVARIANTS -badsw1: - ldr r0, =sw1_panic_str - bl _C_LABEL(panic) -1: nop - b 1b - -badsw2: - ldr r0, =sw2_panic_str - bl _C_LABEL(panic) -1: nop - b 1b - -badsw3: - ldr r0, =sw3_panic_str - bl _C_LABEL(panic) -1: nop - b 1b - -badsw4: - ldr r0, =sw4_panic_str - bl _C_LABEL(panic) -1: nop - b 1b - -sw1_panic_str: - .asciz "cpu_throw: no newthread supplied.\n" -sw2_panic_str: - .asciz "cpu_switch: no curthread supplied.\n" -sw3_panic_str: - .asciz "cpu_switch: no newthread supplied.\n" -sw4_panic_str: - .asciz "cpu_switch: new pagedir is NULL.\n" -#endif -END(cpu_switch) - - -#endif /* __ARM_ARCH < 6 */ - -ENTRY(savectx) - stmfd sp!, {lr} - sub sp, sp, #4 - - /* Store all the registers in the thread's pcb */ - add r3, r0, #(PCB_R4) - stmia r3, {r4-r12, sp, lr, pc} -#ifdef VFP - fmrx r2, fpexc /* If the VFP is enabled */ - tst r2, #(VFPEXC_EN) /* the current thread has */ - movne r1, #1 /* used it, so go save */ - addne r0, r0, #(PCB_VFPSTATE) /* the state into the PCB */ - blne _C_LABEL(vfp_store) /* and disable the VFP. */ -#endif - add sp, sp, #4; - ldmfd sp!, {pc} -END(savectx) - -ENTRY(fork_trampoline) - STOP_UNWINDING /* EABI: Don't unwind beyond the thread enty point. */ - mov fp, #0 /* OABI: Stack traceback via fp stops here. */ - mov r2, sp - mov r1, r5 - mov r0, r4 - ldr lr, =swi_exit /* Go finish forking, then return */ - b _C_LABEL(fork_exit) /* to userland via swi_exit code. */ -END(fork_trampoline) Copied and modified: head/sys/arm/arm/swtch-v6.S (from r295065, head/sys/arm/arm/swtch.S) ============================================================================== --- head/sys/arm/arm/swtch.S Sat Jan 30 07:00:36 2016 (r295065, copy source) +++ head/sys/arm/arm/swtch-v6.S Sat Jan 30 08:02:12 2016 (r295066) @@ -114,311 +114,6 @@ __FBSDID("$FreeBSD$"); .word _C_LABEL(blocked_lock) -#if __ARM_ARCH < 6 - -#define DOMAIN_CLIENT 0x01 - -.Lcpufuncs: - .word _C_LABEL(cpufuncs) - -/* - * cpu_throw(oldtd, newtd) - * - * Remove current thread state, then select the next thread to run - * and load its state. - * r0 = oldtd - * r1 = newtd - */ -ENTRY(cpu_throw) - mov r5, r1 - - /* - * r0 = oldtd - * r5 = newtd - */ - -#ifdef VFP /* This thread is dying, disable */ - bl _C_LABEL(vfp_discard) /* VFP without preserving state. */ -#endif - - GET_PCPU(r7, r9) - ldr r7, [r5, #(TD_PCB)] /* r7 = new thread's PCB */ - - /* Switch to lwp0 context */ - - ldr r9, .Lcpufuncs -#if !defined(CPU_ARM11) && !defined(CPU_CORTEXA) && !defined(CPU_MV_PJ4B) && !defined(CPU_KRAIT) - mov lr, pc - ldr pc, [r9, #CF_IDCACHE_WBINV_ALL] -#endif - ldr r0, [r7, #(PCB_PL1VEC)] - ldr r1, [r7, #(PCB_DACR)] - /* - * r0 = Pointer to L1 slot for vector_page (or NULL) - * r1 = lwp0's DACR - * r5 = lwp0 - * r7 = lwp0's PCB - * r9 = cpufuncs - */ - - /* - * Ensure the vector table is accessible by fixing up lwp0's L1 - */ - cmp r0, #0 /* No need to fixup vector table? */ - ldrne r3, [r0] /* But if yes, fetch current value */ - ldrne r2, [r7, #(PCB_L1VEC)] /* Fetch new vector_page value */ - mcr p15, 0, r1, c3, c0, 0 /* Update DACR for lwp0's context */ - cmpne r3, r2 /* Stuffing the same value? */ - strne r2, [r0] /* Store if not. */ - -#ifdef PMAP_INCLUDE_PTE_SYNC - /* - * Need to sync the cache to make sure that last store is - * visible to the MMU. - */ - movne r1, #4 - movne lr, pc - ldrne pc, [r9, #CF_DCACHE_WB_RANGE] -#endif /* PMAP_INCLUDE_PTE_SYNC */ - - /* - * Note: We don't do the same optimisation as cpu_switch() with - * respect to avoiding flushing the TLB if we're switching to - * the same L1 since this process' VM space may be about to go - * away, so we don't want *any* turds left in the TLB. - */ - - /* Switch the memory to the new process */ - ldr r0, [r7, #(PCB_PAGEDIR)] - mov lr, pc - ldr pc, [r9, #CF_CONTEXT_SWITCH] - - GET_PCPU(r6, r4) - /* Hook in a new pcb */ - str r7, [r6, #PC_CURPCB] - /* We have a new curthread now so make a note it */ - str r5, [r6, #PC_CURTHREAD] -#if __ARM_ARCH >= 6 - mcr p15, 0, r5, c13, c0, 4 -#endif - /* Set the new tp */ - ldr r6, [r5, #(TD_MD + MD_TP)] -#if __ARM_ARCH >= 6 - mcr p15, 0, r6, c13, c0, 3 -#else - ldr r4, =ARM_TP_ADDRESS - str r6, [r4] - ldr r6, [r5, #(TD_MD + MD_RAS_START)] - str r6, [r4, #4] /* ARM_RAS_START */ - ldr r6, [r5, #(TD_MD + MD_RAS_END)] - str r6, [r4, #8] /* ARM_RAS_END */ -#endif - /* Restore all the saved registers and exit */ - add r3, r7, #PCB_R4 - ldmia r3, {r4-r12, sp, pc} -END(cpu_throw) - -/* - * cpu_switch(oldtd, newtd, lock) - * - * Save the current thread state, then select the next thread to run - * and load its state. - * r0 = oldtd - * r1 = newtd - * r2 = lock (new lock for old thread) - */ -ENTRY(cpu_switch) - /* Interrupts are disabled. */ - /* Save all the registers in the old thread's pcb. */ - ldr r3, [r0, #(TD_PCB)] - - /* Restore all the saved registers and exit */ - add r3, #(PCB_R4) - stmia r3, {r4-r12, sp, lr, pc} - - mov r6, r2 /* Save the mutex */ - - /* rem: r0 = old lwp */ - /* rem: interrupts are disabled */ - - /* Process is now on a processor. */ - /* We have a new curthread now so make a note it */ - GET_PCPU(r7, r2) - str r1, [r7, #PC_CURTHREAD] -#if __ARM_ARCH >= 6 - mcr p15, 0, r1, c13, c0, 4 -#endif - - /* Hook in a new pcb */ - ldr r2, [r1, #TD_PCB] - str r2, [r7, #PC_CURPCB] - - /* Stage two : Save old context */ - - /* Get the user structure for the old thread. */ - ldr r2, [r0, #(TD_PCB)] - mov r4, r0 /* Save the old thread. */ - -#if __ARM_ARCH >= 6 - /* - * Set new tp. No need to store the old one first, userland can't - * change it directly on armv6. - */ - ldr r9, [r1, #(TD_MD + MD_TP)] - mcr p15, 0, r9, c13, c0, 3 -#else - /* Store the old tp; userland can change it on armv4. */ - ldr r3, =ARM_TP_ADDRESS - ldr r9, [r3] - str r9, [r0, #(TD_MD + MD_TP)] - ldr r9, [r3, #4] - str r9, [r0, #(TD_MD + MD_RAS_START)] - ldr r9, [r3, #8] - str r9, [r0, #(TD_MD + MD_RAS_END)] - - /* Set the new tp */ - ldr r9, [r1, #(TD_MD + MD_TP)] - str r9, [r3] - ldr r9, [r1, #(TD_MD + MD_RAS_START)] - str r9, [r3, #4] - ldr r9, [r1, #(TD_MD + MD_RAS_END)] - str r9, [r3, #8] -#endif - - /* Get the user structure for the new process in r9 */ - ldr r9, [r1, #(TD_PCB)] - - /* rem: r2 = old PCB */ - /* rem: r9 = new PCB */ - /* rem: interrupts are enabled */ - -#ifdef VFP - fmrx r0, fpexc /* If the VFP is enabled */ - tst r0, #(VFPEXC_EN) /* the current thread has */ - movne r1, #1 /* used it, so go save */ - addne r0, r2, #(PCB_VFPSTATE) /* the state into the PCB */ - blne _C_LABEL(vfp_store) /* and disable the VFP. */ -#endif - - /* r0-r3 now free! */ - - /* Third phase : restore saved context */ - - /* rem: r2 = old PCB */ - /* rem: r9 = new PCB */ - - ldr r5, [r9, #(PCB_DACR)] /* r5 = new DACR */ - mov r2, #DOMAIN_CLIENT - cmp r5, r2, lsl #(PMAP_DOMAIN_KERNEL * 2) /* Sw to kernel thread? */ - beq .Lcs_context_switched /* Yup. Don't flush cache */ - mrc p15, 0, r0, c3, c0, 0 /* r0 = old DACR */ - /* - * Get the new L1 table pointer into r11. If we're switching to - * an LWP with the same address space as the outgoing one, we can - * skip the cache purge and the TTB load. - * - * To avoid data dep stalls that would happen anyway, we try - * and get some useful work done in the mean time. - */ - mrc p15, 0, r10, c2, c0, 0 /* r10 = old L1 */ - ldr r11, [r9, #(PCB_PAGEDIR)] /* r11 = new L1 */ - - teq r10, r11 /* Same L1? */ - cmpeq r0, r5 /* Same DACR? */ - beq .Lcs_context_switched /* yes! */ - -#if !defined(CPU_ARM11) && !defined(CPU_CORTEXA) && !defined(CPU_MV_PJ4B) && !defined(CPU_KRAIT) - /* - * Definately need to flush the cache. - */ - - ldr r1, .Lcpufuncs - mov lr, pc - ldr pc, [r1, #CF_IDCACHE_WBINV_ALL] -#endif -.Lcs_cache_purge_skipped: - /* rem: r6 = lock */ - /* rem: r9 = new PCB */ - /* rem: r10 = old L1 */ - /* rem: r11 = new L1 */ - - mov r2, #0x00000000 - ldr r7, [r9, #(PCB_PL1VEC)] - - /* - * Ensure the vector table is accessible by fixing up the L1 - */ - cmp r7, #0 /* No need to fixup vector table? */ - ldrne r2, [r7] /* But if yes, fetch current value */ - ldrne r0, [r9, #(PCB_L1VEC)] /* Fetch new vector_page value */ - mcr p15, 0, r5, c3, c0, 0 /* Update DACR for new context */ - cmpne r2, r0 /* Stuffing the same value? */ -#ifndef PMAP_INCLUDE_PTE_SYNC - strne r0, [r7] /* Nope, update it */ -#else - beq .Lcs_same_vector - str r0, [r7] /* Otherwise, update it */ - - /* - * Need to sync the cache to make sure that last store is - * visible to the MMU. - */ - ldr r2, .Lcpufuncs - mov r0, r7 - mov r1, #4 - mov lr, pc - ldr pc, [r2, #CF_DCACHE_WB_RANGE] - -.Lcs_same_vector: -#endif /* PMAP_INCLUDE_PTE_SYNC */ - - cmp r10, r11 /* Switching to the same L1? */ - ldr r10, .Lcpufuncs - beq .Lcs_same_l1 /* Yup. */ - /* - * Do a full context switch, including full TLB flush. - */ - mov r0, r11 - mov lr, pc - ldr pc, [r10, #CF_CONTEXT_SWITCH] - - b .Lcs_context_switched - - /* - * We're switching to a different process in the same L1. - * In this situation, we only need to flush the TLB for the - * vector_page mapping, and even then only if r7 is non-NULL. - */ -.Lcs_same_l1: - cmp r7, #0 - movne r0, #0 /* We *know* vector_page's VA is 0x0 */ - movne lr, pc - ldrne pc, [r10, #CF_TLB_FLUSHID_SE] - -.Lcs_context_switched: - - /* Release the old thread */ - str r6, [r4, #TD_LOCK] -#if defined(SCHED_ULE) && defined(SMP) - ldr r6, .Lblocked_lock - GET_CURTHREAD_PTR(r3) -1: - ldr r4, [r3, #TD_LOCK] - cmp r4, r6 - beq 1b -#endif - - /* XXXSCW: Safe to re-enable FIQs here */ - - /* rem: r9 = new PCB */ - - /* Restore all the saved registers and exit */ - add r3, r9, #PCB_R4 - ldmia r3, {r4-r12, sp, pc} -END(cpu_switch) - - -#else /* __ARM_ARCH < 6 */ #include ENTRY(cpu_context_switch) /* QQQ: What about macro instead of function? */ @@ -787,35 +482,3 @@ sw4_panic_str: .asciz "cpu_switch: new pagedir is NULL.\n" #endif END(cpu_switch) - - -#endif /* __ARM_ARCH < 6 */ - -ENTRY(savectx) - stmfd sp!, {lr} - sub sp, sp, #4 - - /* Store all the registers in the thread's pcb */ - add r3, r0, #(PCB_R4) - stmia r3, {r4-r12, sp, lr, pc} -#ifdef VFP - fmrx r2, fpexc /* If the VFP is enabled */ - tst r2, #(VFPEXC_EN) /* the current thread has */ - movne r1, #1 /* used it, so go save */ - addne r0, r0, #(PCB_VFPSTATE) /* the state into the PCB */ - blne _C_LABEL(vfp_store) /* and disable the VFP. */ -#endif - add sp, sp, #4; - ldmfd sp!, {pc} -END(savectx) - -ENTRY(fork_trampoline) - STOP_UNWINDING /* EABI: Don't unwind beyond the thread enty point. */ - mov fp, #0 /* OABI: Stack traceback via fp stops here. */ - mov r2, sp - mov r1, r5 - mov r0, r4 - ldr lr, =swi_exit /* Go finish forking, then return */ - b _C_LABEL(fork_exit) /* to userland via swi_exit code. */ -END(fork_trampoline) - Modified: head/sys/arm/arm/swtch.S ============================================================================== --- head/sys/arm/arm/swtch.S Sat Jan 30 07:00:36 2016 (r295065) +++ head/sys/arm/arm/swtch.S Sat Jan 30 08:02:12 2016 (r295066) @@ -79,9 +79,7 @@ */ #include "assym.s" -#include "opt_sched.h" -#include #include #include #include @@ -89,708 +87,10 @@ __FBSDID("$FreeBSD$"); -#if __ARM_ARCH >= 6 && defined(SMP) -#define GET_PCPU(tmp, tmp2) \ - mrc p15, 0, tmp, c0, c0, 5; \ - and tmp, tmp, #0xf; \ - ldr tmp2, .Lcurpcpu+4; \ - mul tmp, tmp, tmp2; \ - ldr tmp2, .Lcurpcpu; \ - add tmp, tmp, tmp2; -#else - -#define GET_PCPU(tmp, tmp2) \ - ldr tmp, .Lcurpcpu -#endif - #ifdef VFP .fpu vfp /* allow VFP instructions */ #endif -.Lcurpcpu: - .word _C_LABEL(__pcpu) - .word PCPU_SIZE -.Lblocked_lock: - .word _C_LABEL(blocked_lock) - - -#if __ARM_ARCH < 6 - -#define DOMAIN_CLIENT 0x01 - -.Lcpufuncs: - .word _C_LABEL(cpufuncs) - -/* - * cpu_throw(oldtd, newtd) - * - * Remove current thread state, then select the next thread to run - * and load its state. - * r0 = oldtd - * r1 = newtd - */ -ENTRY(cpu_throw) - mov r5, r1 - - /* - * r0 = oldtd - * r5 = newtd - */ - -#ifdef VFP /* This thread is dying, disable */ - bl _C_LABEL(vfp_discard) /* VFP without preserving state. */ -#endif - - GET_PCPU(r7, r9) - ldr r7, [r5, #(TD_PCB)] /* r7 = new thread's PCB */ - - /* Switch to lwp0 context */ - - ldr r9, .Lcpufuncs -#if !defined(CPU_ARM11) && !defined(CPU_CORTEXA) && !defined(CPU_MV_PJ4B) && !defined(CPU_KRAIT) - mov lr, pc - ldr pc, [r9, #CF_IDCACHE_WBINV_ALL] -#endif - ldr r0, [r7, #(PCB_PL1VEC)] - ldr r1, [r7, #(PCB_DACR)] - /* - * r0 = Pointer to L1 slot for vector_page (or NULL) - * r1 = lwp0's DACR - * r5 = lwp0 - * r7 = lwp0's PCB - * r9 = cpufuncs - */ - - /* - * Ensure the vector table is accessible by fixing up lwp0's L1 - */ - cmp r0, #0 /* No need to fixup vector table? */ - ldrne r3, [r0] /* But if yes, fetch current value */ - ldrne r2, [r7, #(PCB_L1VEC)] /* Fetch new vector_page value */ - mcr p15, 0, r1, c3, c0, 0 /* Update DACR for lwp0's context */ - cmpne r3, r2 /* Stuffing the same value? */ - strne r2, [r0] /* Store if not. */ - -#ifdef PMAP_INCLUDE_PTE_SYNC - /* - * Need to sync the cache to make sure that last store is - * visible to the MMU. - */ - movne r1, #4 - movne lr, pc - ldrne pc, [r9, #CF_DCACHE_WB_RANGE] -#endif /* PMAP_INCLUDE_PTE_SYNC */ - - /* - * Note: We don't do the same optimisation as cpu_switch() with - * respect to avoiding flushing the TLB if we're switching to - * the same L1 since this process' VM space may be about to go - * away, so we don't want *any* turds left in the TLB. - */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat Jan 30 08:27:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81621A73B85; Sat, 30 Jan 2016 08:27:10 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5246927E; Sat, 30 Jan 2016 08:27:10 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0U8R9ZA042502; Sat, 30 Jan 2016 08:27:09 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0U8R9QY042501; Sat, 30 Jan 2016 08:27:09 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601300827.u0U8R9QY042501@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sat, 30 Jan 2016 08:27:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295067 - head/sys/dev/usb/controller X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 08:27:10 -0000 Author: mmel Date: Sat Jan 30 08:27:09 2016 New Revision: 295067 URL: https://svnweb.freebsd.org/changeset/base/295067 Log: EHCI: Correct address of EHCI_USBMODE_LPM register is 0xC8, not 0xA8. Modified: head/sys/dev/usb/controller/ehcireg.h Modified: head/sys/dev/usb/controller/ehcireg.h ============================================================================== --- head/sys/dev/usb/controller/ehcireg.h Sat Jan 30 08:02:12 2016 (r295066) +++ head/sys/dev/usb/controller/ehcireg.h Sat Jan 30 08:27:09 2016 (r295067) @@ -167,7 +167,7 @@ * bits are equal */ #define EHCI_USBMODE_NOLPM 0x68 /* RW USB Device mode reg (no LPM) */ -#define EHCI_USBMODE_LPM 0xA8 /* RW USB Device mode reg (LPM) */ +#define EHCI_USBMODE_LPM 0xC8 /* RW USB Device mode reg (LPM) */ #define EHCI_UM_CM 0x00000003 /* R/WO Controller Mode */ #define EHCI_UM_CM_IDLE 0x0 /* Idle */ #define EHCI_UM_CM_HOST 0x3 /* Host Controller */ From owner-svn-src-all@freebsd.org Sat Jan 30 08:51:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C4D4A724DD; Sat, 30 Jan 2016 08:51:23 +0000 (UTC) (envelope-from cochard@gmail.com) Received: from mail-lf0-x22f.google.com (mail-lf0-x22f.google.com [IPv6:2a00:1450:4010:c07::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7D05410D2; Sat, 30 Jan 2016 08:51:22 +0000 (UTC) (envelope-from cochard@gmail.com) Received: by mail-lf0-x22f.google.com with SMTP id j78so667763lfb.1; Sat, 30 Jan 2016 00:51:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=MRhTXc977mpKDy+p1xB3To1DC5+T446tSXjxW1QZwEc=; b=F35R36m3ClgWhCv6bBgd0Up725A87RS20f32nGsB5dw5Cg6qCxYfjLh5UnmCKQo1C9 gVWXPcXA9H4V7K3anTMD6QvMUrfAaAKyynC+Vc0coqbhV04Rj3LapVtGgaMi8eB6Lvxy j65Ka+Fv8148spxJVPmdgk1txmR/otg2CQSB75y+0Kie/CjIWJDpqhv6V9EjWjUOFxV+ JYRR6xFiSfBpPziVhnntEVTdgTUU4MxzBnq/bvlrnXxy2UcN5UNdhptpDPW4erZnGC9M 5k2fIhNLU1ZG8x38+vdlj/qZUTaqOkxvXRMilCoyBnITHDpo7Rxkz3Ugw3KdPeFgZXzm +GNQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cochard-me.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=MRhTXc977mpKDy+p1xB3To1DC5+T446tSXjxW1QZwEc=; b=OsGXCUBlDX1O2DxotCpqEosez0391UxQH7D5fd83QCtBdU/LqY6oZ6uD+D1S7VpC/x 1a7KelllKbvHbFQpLuwL+F3USg42Q1KYxXEMKDtJ84tYZP1k1xj1/ZNEhs8b3rX5NVIn J1ksNay1vvT6M7uM0PrMcFEAxk9dBDvk2/JTHVjUtS+P1oawxG13ej2Y9a6XjjTS50zG yowLv2e/EWCCUEcpC2fMi0S/jJ+pSEL7jGyh8i2rvtjyhSAkc+DxOdPv6yMJiE6fNQlv ZQAMNdnbp5/J77e2X83GfbSCYqrkcQs+Z3j/dVBT5UuP2wIRqonlyN3fMHRRlIHPank9 YSTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type; bh=MRhTXc977mpKDy+p1xB3To1DC5+T446tSXjxW1QZwEc=; b=jf7id1BLZ72Mt+nvnWeI1K2YREpb21hnEOGDzkCyR6gg+AmMy+9dw1evOf43wkNgP5 eYKbuldOxl6Sesm5xvSh1n17Or20Jb2SEN3LdY1yxdY4Fg0izLb4jYJe+oTi0uD4dszv Aeg9lJspJWRvcDENf8InDOL9l2fvnOgzSrxTQld86pza2aeRusW5rHFE0e3EwZ8o8k2u 5UX5SUQhHOHDOeworq74Cw4yNzY01/ZkzQiq1HoiTj/JyBx8xnZdNh9O47512faYVYCX /bXp6OdpK44VgSpC0DgWbC1/wuX5gPCF+hNF7Xk++MnS0HiAowgti/3TT7PSBKkf4RNy rPvQ== X-Gm-Message-State: AG10YORkNqqXPD4TpqwMK83/8WhaKNFgikXlgmW5mhCfObDsLRYSLoSQbmqVn0cm8ze092QrP8fwJjWwROtYdw== X-Received: by 10.25.15.226 with SMTP id 95mr5153167lfp.85.1454143880205; Sat, 30 Jan 2016 00:51:20 -0800 (PST) MIME-Version: 1.0 Sender: cochard@gmail.com Received: by 10.25.136.11 with HTTP; Sat, 30 Jan 2016 00:51:00 -0800 (PST) In-Reply-To: <201601300618.u0U6Ibm8005064@repo.freebsd.org> References: <201601300618.u0U6Ibm8005064@repo.freebsd.org> From: =?UTF-8?Q?Olivier_Cochard=2DLabb=C3=A9?= Date: Sat, 30 Jan 2016 09:51:00 +0100 X-Google-Sender-Auth: ZvHbiXB3WBPbwV1IJd8-fLJkTq8 Message-ID: Subject: Re: svn commit: r295062 - head/sbin/nvmecontrol To: Warner Losh Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 08:51:23 -0000 On Sat, Jan 30, 2016 at 7:18 AM, Warner Losh wrote: > Author: imp > Date: Sat Jan 30 06:18:37 2016 > New Revision: 295062 > URL: https://svnweb.freebsd.org/changeset/base/295062 > > Log: > Implement power command to list all power modes, find out the power > mode we're in and to set the power mode. > > Added: > head/sbin/nvmecontrol/power.c (contents, props changed) > =E2=80=8BHi Warner, my buildworld is no more happy ;-)=E2=80=8B --- power.o --- /usr/src/sbin/nvmecontrol/power.c:44:16: error: invalid application of 'sizeof' to an incomplete type 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/src/sbin/nvmecontrol/power.c:44:30: note: forward declaration of 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, ^ --- all_subdir_kerberos5 --- --- inquire_cred_by_mech.po --- --- all_subdir_sbin --- /usr/src/sbin/nvmecontrol/power.c:60:14: error: incomplete definition of type 'struct nvme_power_state' mpower =3D nps->mp; ~~~^ /usr/src/sbin/nvmecontrol/power.c:44:30: note: forward declaration of 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, ^ /usr/src/sbin/nvmecontrol/power.c:61:9: error: incomplete definition of type 'struct nvme_power_state' if (nps->mps =3D=3D 0) ~~~^ /usr/src/sbin/nvmecontrol/power.c:44:30: note: forward declaration of 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, ^ /usr/src/sbin/nvmecontrol/power.c:63:14: error: incomplete definition of type 'struct nvme_power_state' ipower =3D nps->idlp; ~~~^ /usr/src/sbin/nvmecontrol/power.c:44:30: note: forward declaration of 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, ^ /usr/src/sbin/nvmecontrol/power.c:64:9: error: incomplete definition of type 'struct nvme_power_state' if (nps->ips =3D=3D 1) ~~~^ /usr/src/sbin/nvmecontrol/power.c:44:30: note: forward declaration of 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, ^ /usr/src/sbin/nvmecontrol/power.c:66:14: error: incomplete definition of type 'struct nvme_power_state' apower =3D nps->actp; ~~~^ /usr/src/sbin/nvmecontrol/power.c:44:30: note: forward declaration of 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, ^ /usr/src/sbin/nvmecontrol/power.c:67:9: error: incomplete definition of type 'struct nvme_power_state' if (nps->aps =3D=3D 1) ~~~^ /usr/src/sbin/nvmecontrol/power.c:44:30: note: forward declaration of 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, ^ /usr/src/sbin/nvmecontrol/power.c:71:12: error: incomplete definition of type 'struct nvme_power_state' nps->nops ? '*' : ' ', nps->enlat / 1000, nps->enlat % 1000, ~~~^ /usr/src/sbin/nvmecontrol/power.c:44:30: note: forward declaration of 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, ^ /usr/src/sbin/nvmecontrol/power.c:71:35: error: incomplete definition of type 'struct nvme_power_state' nps->nops ? '*' : ' ', nps->enlat / 1000, nps->enlat % 1000, ~~~^ /usr/src/sbin/nvmecontrol/power.c:44:30: note: forward declaration of 'struct nvme_power_state' _Static_assert(sizeof(struct nvme_power_state) =3D=3D 256 / NBBY, etc. =E2=80=8B From owner-svn-src-all@freebsd.org Sat Jan 30 09:12:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B9AAA73024; Sat, 30 Jan 2016 09:12:54 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id E43D01C03; Sat, 30 Jan 2016 09:12:53 +0000 (UTC) (envelope-from des@des.no) Received: from desk.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 6B0F4AB6B; Sat, 30 Jan 2016 09:03:09 +0000 (UTC) Received: by desk.des.no (Postfix, from userid 1001) id B39E246232; Sat, 30 Jan 2016 10:02:58 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Craig Rodrigues Cc: "src-committers\@freebsd.org" , "svn-src-all\@freebsd.org" , svn-src-vendor@freebsd.org Subject: Re: svn commit: r294315 - in vendor-crypto/openssh/dist: . contrib/redhat contrib/suse References: <201601191010.u0JAAw3O039299@repo.freebsd.org> Date: Sat, 30 Jan 2016 10:02:58 +0100 In-Reply-To: (Craig Rodrigues's message of "Fri, 29 Jan 2016 19:48:19 -0800") Message-ID: <86si1fzbgd.fsf@desk.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 09:12:54 -0000 Craig Rodrigues writes: > Performing sanity check on sshd configuration. > Fssh_key_load_public: invalid format > Could not load host key: /etc/ssh/ssh_host_rsa_key > Could not load host key: /etc/ssh/ssh_host_dsa_key > Fssh_key_load_public: invalid format > Could not load host key: /etc/ssh/ssh_host_ecdsa_key > Fssh_key_load_public: invalid format > Could not load host key: /etc/ssh/ssh_host_ed25519_key > Disabling protocol version 2. Could not load host key > sshd: no hostkeys available -- exiting. > > [the host keys] seem to be all zeroes Can you modify /etc/rc.d/sshd so it runs ssh-keygen under ktrace: ktrace -f "$keyfile.tr" /usr/bin/ssh-keygen -q -t $alg -f "$keyfile" -N "" then send me a tarball of /etc/ssh from the next VM that fails? DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@freebsd.org Sat Jan 30 10:10:30 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D738A73F64; Sat, 30 Jan 2016 10:10:30 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5E24F1036; Sat, 30 Jan 2016 10:10:30 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UAATEl071293; Sat, 30 Jan 2016 10:10:29 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UAATSQ071292; Sat, 30 Jan 2016 10:10:29 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601301010.u0UAATSQ071292@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sat, 30 Jan 2016 10:10:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295068 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 10:10:30 -0000 Author: mmel Date: Sat Jan 30 10:10:29 2016 New Revision: 295068 URL: https://svnweb.freebsd.org/changeset/base/295068 Log: ARM: Don't misuse ARM_TP_ADDRESS as ARMv4 / ARMv6 selector. Modified: head/sys/arm/arm/machdep.c Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Sat Jan 30 08:27:09 2016 (r295067) +++ head/sys/arm/arm/machdep.c Sat Jan 30 10:10:29 2016 (r295068) @@ -427,11 +427,9 @@ cpu_startup(void *dummy) { struct pcb *pcb = thread0.td_pcb; const unsigned int mbyte = 1024 * 1024; -#ifdef ARM_TP_ADDRESS -#ifndef ARM_CACHE_LOCK_ENABLE +#if __ARM_ARCH < 6 && !defined(ARM_CACHE_LOCK_ENABLE) vm_page_t m; #endif -#endif identify_arm_cpu(); @@ -456,11 +454,9 @@ cpu_startup(void *dummy) pcb->pcb_regs.sf_sp = (u_int)thread0.td_kstack + USPACE_SVC_STACK_TOP; pmap_set_pcb_pagedir(kernel_pmap, pcb); -#if __ARM_ARCH < 6 +#if __ARM_ARCH < 6 vector_page_setprot(VM_PROT_READ); pmap_postinit(); -#endif -#ifdef ARM_TP_ADDRESS #ifdef ARM_CACHE_LOCK_ENABLE pmap_kenter_user(ARM_TP_ADDRESS, ARM_TP_ADDRESS); arm_lock_cache_line(ARM_TP_ADDRESS); From owner-svn-src-all@freebsd.org Sat Jan 30 10:39:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D5C5AA7278F; Sat, 30 Jan 2016 10:39:06 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AD4E71BFC; Sat, 30 Jan 2016 10:39:06 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UAd5Rc079940; Sat, 30 Jan 2016 10:39:05 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UAd5d6079939; Sat, 30 Jan 2016 10:39:05 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601301039.u0UAd5d6079939@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sat, 30 Jan 2016 10:39:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295069 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 10:39:07 -0000 Author: tuexen Date: Sat Jan 30 10:39:05 2016 New Revision: 295069 URL: https://svnweb.freebsd.org/changeset/base/295069 Log: Ignore peer addresses in a consistent way also when checking for new addresses during restart. If this is not done, restart doesn't work when the local socket is IPv4 only and the peer uses IPv4 and IPv6 addresses. MFC after: 3 days. Modified: head/sys/netinet/sctp_output.c Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Sat Jan 30 10:10:29 2016 (r295068) +++ head/sys/netinet/sctp_output.c Sat Jan 30 10:39:05 2016 (r295069) @@ -5307,6 +5307,7 @@ sctp_are_there_new_addresses(struct sctp uint16_t ptype, plen; uint8_t fnd; struct sctp_nets *net; + int check_src; #ifdef INET struct sockaddr_in sin4, *sa4; @@ -5328,39 +5329,61 @@ sctp_are_there_new_addresses(struct sctp sin6.sin6_len = sizeof(sin6); #endif /* First what about the src address of the pkt ? */ - fnd = 0; - TAILQ_FOREACH(net, &asoc->nets, sctp_next) { - sa = (struct sockaddr *)&net->ro._l_addr; - if (sa->sa_family == src->sa_family) { + check_src = 0; + switch (src->sa_family) { #ifdef INET - if (sa->sa_family == AF_INET) { - struct sockaddr_in *src4; + case AF_INET: + if (asoc->scope.ipv4_addr_legal) { + check_src = 1; + } + break; +#endif +#ifdef INET6 + case AF_INET6: + if (asoc->scope.ipv6_addr_legal) { + check_src = 1; + } + break; +#endif + default: + /* TSNH */ + break; + } + if (check_src) { + fnd = 0; + TAILQ_FOREACH(net, &asoc->nets, sctp_next) { + sa = (struct sockaddr *)&net->ro._l_addr; + if (sa->sa_family == src->sa_family) { +#ifdef INET + if (sa->sa_family == AF_INET) { + struct sockaddr_in *src4; - sa4 = (struct sockaddr_in *)sa; - src4 = (struct sockaddr_in *)src; - if (sa4->sin_addr.s_addr == src4->sin_addr.s_addr) { - fnd = 1; - break; + sa4 = (struct sockaddr_in *)sa; + src4 = (struct sockaddr_in *)src; + if (sa4->sin_addr.s_addr == src4->sin_addr.s_addr) { + fnd = 1; + break; + } } - } #endif #ifdef INET6 - if (sa->sa_family == AF_INET6) { - struct sockaddr_in6 *src6; + if (sa->sa_family == AF_INET6) { + struct sockaddr_in6 *src6; - sa6 = (struct sockaddr_in6 *)sa; - src6 = (struct sockaddr_in6 *)src; - if (SCTP6_ARE_ADDR_EQUAL(sa6, src6)) { - fnd = 1; - break; + sa6 = (struct sockaddr_in6 *)sa; + src6 = (struct sockaddr_in6 *)src; + if (SCTP6_ARE_ADDR_EQUAL(sa6, src6)) { + fnd = 1; + break; + } } - } #endif + } + } + if (fnd == 0) { + /* New address added! no need to look futher. */ + return (1); } - } - if (fnd == 0) { - /* New address added! no need to look futher. */ - return (1); } /* Ok so far lets munge through the rest of the packet */ offset += sizeof(struct sctp_init_chunk); @@ -5381,9 +5404,11 @@ sctp_are_there_new_addresses(struct sctp phdr == NULL) { return (1); } - p4 = (struct sctp_ipv4addr_param *)phdr; - sin4.sin_addr.s_addr = p4->addr; - sa_touse = (struct sockaddr *)&sin4; + if (asoc->scope.ipv4_addr_legal) { + p4 = (struct sctp_ipv4addr_param *)phdr; + sin4.sin_addr.s_addr = p4->addr; + sa_touse = (struct sockaddr *)&sin4; + } break; } #endif @@ -5398,10 +5423,12 @@ sctp_are_there_new_addresses(struct sctp phdr == NULL) { return (1); } - p6 = (struct sctp_ipv6addr_param *)phdr; - memcpy((caddr_t)&sin6.sin6_addr, p6->addr, - sizeof(p6->addr)); - sa_touse = (struct sockaddr *)&sin6; + if (asoc->scope.ipv6_addr_legal) { + p6 = (struct sctp_ipv6addr_param *)phdr; + memcpy((caddr_t)&sin6.sin6_addr, p6->addr, + sizeof(p6->addr)); + sa_touse = (struct sockaddr *)&sin6; + } break; } #endif From owner-svn-src-all@freebsd.org Sat Jan 30 11:10:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E0363A73202; Sat, 30 Jan 2016 11:10:23 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AF8E0A9E; Sat, 30 Jan 2016 11:10:23 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UBAMfN088836; Sat, 30 Jan 2016 11:10:22 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UBAMBc088835; Sat, 30 Jan 2016 11:10:22 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601301110.u0UBAMBc088835@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sat, 30 Jan 2016 11:10:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295070 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 11:10:24 -0000 Author: tuexen Date: Sat Jan 30 11:10:22 2016 New Revision: 295070 URL: https://svnweb.freebsd.org/changeset/base/295070 Log: Don't change the remote UDP encapsulation port for SCTP packets containing an INIT chunk. MFC after: 3 days Modified: head/sys/netinet/sctp_input.c Modified: head/sys/netinet/sctp_input.c ============================================================================== --- head/sys/netinet/sctp_input.c Sat Jan 30 10:39:05 2016 (r295069) +++ head/sys/netinet/sctp_input.c Sat Jan 30 11:10:22 2016 (r295070) @@ -5684,7 +5684,9 @@ sctp_common_input_processing(struct mbuf stcb = sctp_findassociation_addr(m, offset, src, dst, sh, ch, &inp, &net, vrf_id); #if defined(INET) || defined(INET6) - if ((net != NULL) && (port != 0)) { + if ((net != NULL) && + (ch->chunk_type != SCTP_INITIATION) && + (port != 0)) { if (net->port == 0) { sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); } @@ -5715,7 +5717,9 @@ sctp_common_input_processing(struct mbuf stcb = sctp_findassociation_addr(m, offset, src, dst, sh, ch, &inp, &net, vrf_id); #if defined(INET) || defined(INET6) - if ((net != NULL) && (port != 0)) { + if ((net != NULL) && + (ch->chunk_type != SCTP_INITIATION) && + (port != 0)) { if (net->port == 0) { sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); } @@ -5827,7 +5831,9 @@ sctp_common_input_processing(struct mbuf */ inp = stcb->sctp_ep; #if defined(INET) || defined(INET6) - if ((net != NULL) && (port != 0)) { + if ((net != NULL) && + (ch->chunk_type != SCTP_INITIATION) && + (port != 0)) { if (net->port == 0) { sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); } From owner-svn-src-all@freebsd.org Sat Jan 30 12:23:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA042A7155F; Sat, 30 Jan 2016 12:23:29 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AC4F21195; Sat, 30 Jan 2016 12:23:29 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UCNS1G012056; Sat, 30 Jan 2016 12:23:28 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UCNStK012055; Sat, 30 Jan 2016 12:23:28 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601301223.u0UCNStK012055@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sat, 30 Jan 2016 12:23:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295071 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 12:23:29 -0000 Author: mmel Date: Sat Jan 30 12:23:28 2016 New Revision: 295071 URL: https://svnweb.freebsd.org/changeset/base/295071 Log: ARM: Cleanup mp_machdep.c. SMP is supported only on ARMv6 and later. Modified: head/sys/arm/arm/mp_machdep.c Modified: head/sys/arm/arm/mp_machdep.c ============================================================================== --- head/sys/arm/arm/mp_machdep.c Sat Jan 30 11:10:22 2016 (r295070) +++ head/sys/arm/arm/mp_machdep.c Sat Jan 30 12:23:28 2016 (r295071) @@ -156,7 +156,6 @@ init_secondary(int cpu) #ifndef ARM_INTRNG int start = 0, end = 0; #endif -#if __ARM_ARCH >= 6 uint32_t actlr_mask, actlr_set; pmap_set_tex(); @@ -168,11 +167,6 @@ init_secondary(int cpu) set_stackptrs(cpu); enable_interrupts(PSR_A); -#else /* __ARM_ARCH >= 6 */ - cpu_setup(); - setttb(pmap_pa); - cpu_tlb_flushID(); -#endif /* __ARM_ARCH >= 6 */ pc = &__pcpu[cpu]; /* @@ -184,10 +178,6 @@ init_secondary(int cpu) pcpu_init(pc, cpu, sizeof(struct pcpu)); dpcpu_init(dpcpu[cpu - 1], cpu); -#if __ARM_ARCH < 6 - /* Provide stack pointers for other processor modes. */ - set_stackptrs(cpu); -#endif /* Signal our startup to BSP */ atomic_add_rel_32(&mp_naps, 1); From owner-svn-src-all@freebsd.org Sat Jan 30 12:58:39 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC7F5A72111; Sat, 30 Jan 2016 12:58:39 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6E4B41F0F; Sat, 30 Jan 2016 12:58:39 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UCwcXT021260; Sat, 30 Jan 2016 12:58:38 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UCwcGo021257; Sat, 30 Jan 2016 12:58:38 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601301258.u0UCwcGo021257@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sat, 30 Jan 2016 12:58:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295072 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 12:58:39 -0000 Author: tuexen Date: Sat Jan 30 12:58:38 2016 New Revision: 295072 URL: https://svnweb.freebsd.org/changeset/base/295072 Log: Don't allow a remote encapsulation port change during the SCTP restart procedure. MFC after: 3 days Modified: head/sys/netinet/sctp_input.c head/sys/netinet/sctp_output.c head/sys/netinet/sctp_output.h Modified: head/sys/netinet/sctp_input.c ============================================================================== --- head/sys/netinet/sctp_input.c Sat Jan 30 12:23:28 2016 (r295071) +++ head/sys/netinet/sctp_input.c Sat Jan 30 12:58:38 2016 (r295072) @@ -85,7 +85,7 @@ static void sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sockaddr *src, struct sockaddr *dst, struct sctphdr *sh, struct sctp_init_chunk *cp, struct sctp_inpcb *inp, - struct sctp_tcb *stcb, int *abort_no_unlock, + struct sctp_tcb *stcb, struct sctp_nets *net, int *abort_no_unlock, uint8_t mflowtype, uint32_t mflowid, uint32_t vrf_id, uint16_t port) { @@ -198,8 +198,8 @@ sctp_handle_init(struct mbuf *m, int iph sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED); } else { SCTPDBG(SCTP_DEBUG_INPUT3, "sctp_handle_init: sending INIT-ACK\n"); - sctp_send_initiate_ack(inp, stcb, m, iphlen, offset, src, dst, - sh, cp, + sctp_send_initiate_ack(inp, stcb, net, m, iphlen, offset, + src, dst, sh, cp, mflowtype, mflowid, vrf_id, port, ((stcb == NULL) ? SCTP_HOLDS_LOCK : SCTP_NOT_LOCKED)); @@ -4840,7 +4840,7 @@ process_control_chunks: } sctp_handle_init(m, iphlen, *offset, src, dst, sh, (struct sctp_init_chunk *)ch, inp, - stcb, &abort_no_unlock, + stcb, *netp, &abort_no_unlock, mflowtype, mflowid, vrf_id, port); *offset = length; Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Sat Jan 30 12:23:28 2016 (r295071) +++ head/sys/netinet/sctp_output.c Sat Jan 30 12:58:38 2016 (r295072) @@ -5484,7 +5484,8 @@ sctp_are_there_new_addresses(struct sctp */ void sctp_send_initiate_ack(struct sctp_inpcb *inp, struct sctp_tcb *stcb, - struct mbuf *init_pkt, int iphlen, int offset, + struct sctp_nets *src_net, struct mbuf *init_pkt, + int iphlen, int offset, struct sockaddr *src, struct sockaddr *dst, struct sctphdr *sh, struct sctp_init_chunk *init_chk, uint8_t mflowtype, uint32_t mflowid, @@ -5528,20 +5529,39 @@ sctp_send_initiate_ack(struct sctp_inpcb asoc = NULL; } if ((asoc != NULL) && - (SCTP_GET_STATE(asoc) != SCTP_STATE_COOKIE_WAIT) && - (sctp_are_there_new_addresses(asoc, init_pkt, offset, src))) { - /* new addresses, out of here in non-cookie-wait states */ - /* - * Send a ABORT, we don't add the new address error clause - * though we even set the T bit and copy in the 0 tag.. this - * looks no different than if no listener was present. - */ - op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code), - "Address added"); - sctp_send_abort(init_pkt, iphlen, src, dst, sh, 0, op_err, - mflowtype, mflowid, inp->fibnum, - vrf_id, port); - return; + (SCTP_GET_STATE(asoc) != SCTP_STATE_COOKIE_WAIT)) { + if (sctp_are_there_new_addresses(asoc, init_pkt, offset, src)) { + /* + * new addresses, out of here in non-cookie-wait + * states + * + * Send an ABORT, without the new address error cause. + * This looks no different than if no listener was + * present. + */ + op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code), + "Address added"); + sctp_send_abort(init_pkt, iphlen, src, dst, sh, 0, op_err, + mflowtype, mflowid, inp->fibnum, + vrf_id, port); + return; + } + if (src_net != NULL && (src_net->port != port)) { + /* + * change of remote encapsulation port, out of here + * in non-cookie-wait states + * + * Send an ABORT, without an specific error cause. This + * looks no different than if no listener was + * present. + */ + op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code), + "Remote encapsulation port changed"); + sctp_send_abort(init_pkt, iphlen, src, dst, sh, 0, op_err, + mflowtype, mflowid, inp->fibnum, + vrf_id, port); + return; + } } abort_flag = 0; op_err = sctp_arethere_unrecognized_parameters(init_pkt, Modified: head/sys/netinet/sctp_output.h ============================================================================== --- head/sys/netinet/sctp_output.h Sat Jan 30 12:23:28 2016 (r295071) +++ head/sys/netinet/sctp_output.h Sat Jan 30 12:58:38 2016 (r295072) @@ -80,7 +80,8 @@ sctp_send_initiate(struct sctp_inpcb *, ); void -sctp_send_initiate_ack(struct sctp_inpcb *, struct sctp_tcb *, struct mbuf *, +sctp_send_initiate_ack(struct sctp_inpcb *, struct sctp_tcb *, + struct sctp_nets *, struct mbuf *, int, int, struct sockaddr *, struct sockaddr *, struct sctphdr *, struct sctp_init_chunk *, From owner-svn-src-all@freebsd.org Sat Jan 30 13:11:14 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A02DAA72718; Sat, 30 Jan 2016 13:11:14 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7C7D182D; Sat, 30 Jan 2016 13:11:14 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UDBDCi024614; Sat, 30 Jan 2016 13:11:13 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UDBDv5024611; Sat, 30 Jan 2016 13:11:13 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201601301311.u0UDBDv5024611@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sat, 30 Jan 2016 13:11:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295073 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 13:11:14 -0000 Author: mmel Date: Sat Jan 30 13:11:13 2016 New Revision: 295073 URL: https://svnweb.freebsd.org/changeset/base/295073 Log: ARM: Remove TLB IPI. We don't support SMP on ARMv6. All ARMv7 multicore cpus already uses hardware broadcast for TLB and cache operations. Modified: head/sys/arm/arm/mp_machdep.c head/sys/arm/include/cpufunc.h head/sys/arm/include/smp.h Modified: head/sys/arm/arm/mp_machdep.c ============================================================================== --- head/sys/arm/arm/mp_machdep.c Sat Jan 30 12:58:38 2016 (r295072) +++ head/sys/arm/arm/mp_machdep.c Sat Jan 30 13:11:13 2016 (r295073) @@ -341,13 +341,6 @@ ipi_hardclock(void *arg) critical_exit(); } -static void -ipi_tlb(void *dummy __unused) -{ - - CTR1(KTR_SMP, "%s: IPI_TLB", __func__); - cpufuncs.cf_tlb_flushID(); -} #else static int ipi_handler(void *arg) @@ -413,10 +406,6 @@ ipi_handler(void *arg) CTR1(KTR_SMP, "%s: IPI_HARDCLOCK", __func__); hardclockintr(); break; - case IPI_TLB: - CTR1(KTR_SMP, "%s: IPI_TLB", __func__); - cpufuncs.cf_tlb_flushID(); - break; default: panic("Unknown IPI 0x%0x on cpu %d", ipi, curcpu); } @@ -446,7 +435,6 @@ release_aps(void *dummy __unused) intr_ipi_set_handler(IPI_STOP, "stop", ipi_stop, NULL, 0); intr_ipi_set_handler(IPI_PREEMPT, "preempt", ipi_preempt, NULL, 0); intr_ipi_set_handler(IPI_HARDCLOCK, "hardclock", ipi_hardclock, NULL, 0); - intr_ipi_set_handler(IPI_TLB, "tlb", ipi_tlb, NULL, 0); #else #ifdef IPI_IRQ_START @@ -538,10 +526,3 @@ ipi_selected(cpuset_t cpus, u_int ipi) platform_ipi_send(cpus, ipi); } -void -tlb_broadcast(int ipi) -{ - - if (smp_started) - ipi_all_but_self(ipi); -} Modified: head/sys/arm/include/cpufunc.h ============================================================================== --- head/sys/arm/include/cpufunc.h Sat Jan 30 12:58:38 2016 (r295072) +++ head/sys/arm/include/cpufunc.h Sat Jan 30 13:11:13 2016 (r295073) @@ -184,8 +184,6 @@ extern u_int cputype; #define cpu_faultstatus() cpufuncs.cf_faultstatus() #define cpu_faultaddress() cpufuncs.cf_faultaddress() -#ifndef SMP - #define cpu_tlb_flushID() cpufuncs.cf_tlb_flushID() #define cpu_tlb_flushID_SE(e) cpufuncs.cf_tlb_flushID_SE(e) #define cpu_tlb_flushI() cpufuncs.cf_tlb_flushI() @@ -193,51 +191,6 @@ extern u_int cputype; #define cpu_tlb_flushD() cpufuncs.cf_tlb_flushD() #define cpu_tlb_flushD_SE(e) cpufuncs.cf_tlb_flushD_SE(e) -#else -void tlb_broadcast(int); - -#if defined(CPU_CORTEXA) || defined(CPU_MV_PJ4B) || defined(CPU_KRAIT) -#define TLB_BROADCAST /* No need to explicitely send an IPI */ -#else -#define TLB_BROADCAST tlb_broadcast(7) -#endif - -#define cpu_tlb_flushID() do { \ - cpufuncs.cf_tlb_flushID(); \ - TLB_BROADCAST; \ -} while(0) - -#define cpu_tlb_flushID_SE(e) do { \ - cpufuncs.cf_tlb_flushID_SE(e); \ - TLB_BROADCAST; \ -} while(0) - - -#define cpu_tlb_flushI() do { \ - cpufuncs.cf_tlb_flushI(); \ - TLB_BROADCAST; \ -} while(0) - - -#define cpu_tlb_flushI_SE(e) do { \ - cpufuncs.cf_tlb_flushI_SE(e); \ - TLB_BROADCAST; \ -} while(0) - - -#define cpu_tlb_flushD() do { \ - cpufuncs.cf_tlb_flushD(); \ - TLB_BROADCAST; \ -} while(0) - - -#define cpu_tlb_flushD_SE(e) do { \ - cpufuncs.cf_tlb_flushD_SE(e); \ - TLB_BROADCAST; \ -} while(0) - -#endif - #define cpu_icache_sync_all() cpufuncs.cf_icache_sync_all() #define cpu_icache_sync_range(a, s) cpufuncs.cf_icache_sync_range((a), (s)) Modified: head/sys/arm/include/smp.h ============================================================================== --- head/sys/arm/include/smp.h Sat Jan 30 12:58:38 2016 (r295072) +++ head/sys/arm/include/smp.h Sat Jan 30 13:11:13 2016 (r295073) @@ -14,8 +14,8 @@ enum { IPI_STOP, IPI_STOP_HARD = IPI_STOP, /* These are synonyms on arm. */ IPI_HARDCLOCK, - IPI_TLB, - IPI_CACHE, + IPI_TLB, /* Not used now, but keep it reserved. */ + IPI_CACHE, /* Not used now, but keep it reserved. */ INTR_IPI_COUNT }; #else @@ -25,8 +25,8 @@ enum { #define IPI_STOP 4 #define IPI_STOP_HARD 4 #define IPI_HARDCLOCK 6 -#define IPI_TLB 7 -#define IPI_CACHE 8 +#define IPI_TLB 7 /* Not used now, but keep it reserved. */ +#define IPI_CACHE 8 /* Not used now, but keep it reserved. */ #endif /* INTRNG */ void init_secondary(int cpu); From owner-svn-src-all@freebsd.org Sat Jan 30 15:53:30 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15F72A73BB5; Sat, 30 Jan 2016 15:53:30 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E79FCCD7; Sat, 30 Jan 2016 15:53:29 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UFrSmG073864; Sat, 30 Jan 2016 15:53:28 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UFrSYY073863; Sat, 30 Jan 2016 15:53:28 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201601301553.u0UFrSYY073863@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Sat, 30 Jan 2016 15:53:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295074 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 15:53:30 -0000 Author: allanjude Date: Sat Jan 30 15:53:28 2016 New Revision: 295074 URL: https://svnweb.freebsd.org/changeset/base/295074 Log: The zfsboot automated part of bsdinstall now supports UEFI MFC after: 3 days Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D4960 Modified: head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Sat Jan 30 13:11:13 2016 (r295073) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Sat Jan 30 15:53:28 2016 (r295074) @@ -109,7 +109,12 @@ f_include $BSDCFG_SHARE/variable.subr # # Default partitioning scheme to use on disks # -: ${ZFSBOOT_PARTITION_SCHEME:=GPT} +: ${ZFSBOOT_PARTITION_SCHEME:=} + +# +# Default partitioning scheme to use on disks +# +: ${ZFSBOOT_BOOT_TYPE:=} # # How much swap to put on each block device in the boot zpool @@ -193,6 +198,7 @@ GPART_ADD_ALIGN_LABEL='gpart add %s -l % GPART_ADD_ALIGN_LABEL_WITH_SIZE='gpart add %s -l %s -t %s -s %s "%s"' GPART_BOOTCODE='gpart bootcode -b "%s" "%s"' GPART_BOOTCODE_PART='gpart bootcode -b "%s" -p "%s" -i %s "%s"' +GPART_BOOTCODE_PARTONLY='gpart bootcode -p "%s" -i %s "%s"' GPART_CREATE='gpart create -s %s "%s"' GPART_DESTROY_F='gpart destroy -F "%s"' GPART_SET_ACTIVE='gpart set -a active -i %s "%s"' @@ -297,7 +303,6 @@ msg_swap_size="Swap Size" msg_swap_size_help="Customize how much swap space is allocated to each selected disk" msg_swap_toosmall="The selected swap size (%s) is to small. Please enter a value greater than 100MB or enter 0 for no swap" msg_these_disks_are_too_small="These disks are too small given the amount of requested\nswap (%s) and/or geli(8) (%s) partitions, which would\ntake 50%% or more of each of the following selected disk\ndevices (not recommended):\n\n %s\n\nRecommend changing partition size(s) and/or selecting a\ndifferent set of devices." -msg_uefi_not_supported="The FreeBSD UEFI loader does not currently support booting root-on-ZFS. Your system will need to boot in legacy (CSM) mode.\nDo you want to continue?" msg_unable_to_get_disk_capacity="Unable to get disk capacity of \`%s'" msg_unsupported_partition_scheme="%s is an unsupported partition scheme" msg_user_cancelled="User Cancelled." @@ -345,7 +350,7 @@ dialog_menu_main() 'E $msg_encrypt_disks' '$usegeli' '$msg_encrypt_disks_help' 'P $msg_partition_scheme' - '$ZFSBOOT_PARTITION_SCHEME' + '$ZFSBOOT_PARTITION_SCHEME ($ZFSBOOT_BOOT_TYPE)' '$msg_partition_scheme_help' 'S $msg_swap_size' '$ZFSBOOT_SWAP_SIZE' '$msg_swap_size_help' @@ -695,48 +700,6 @@ dialog_menu_layout() return $DIALOG_OK } -# dialog_uefi_prompt -# -# Confirm that the user wants to continue with the installation on a BIOS -# system when they have booted with UEFI -# -dialog_uefi_prompt() -{ - local title="$DIALOG_TITLE" - local btitle="$DIALOG_BACKTITLE" - local prompt # Calculated below - local hline="$hline_arrows_tab_enter" - - local height=8 width=50 prefix=" " - local plen=${#prefix} list= line= - local max_width=$(( $width - 3 - $plen )) - - local yes no defaultno extra_args format - if [ "$USE_XDIALOG" ]; then - yes=ok no=cancel defaultno=default-no - extra_args="--wrap --left" - format="$msg_uefi_not_supported" - else - yes=yes no=no defaultno=defaultno - extra_args="--cr-wrap" - format="$msg_uefi_not_supported" - fi - - # Add height for Xdialog(1) - [ "$USE_XDIALOG" ] && height=$(( $height + $height / 5 + 3 )) - - prompt=$( printf "$format" ) - f_dprintf "%s: UEFI prompt" "$0" - $DIALOG \ - --title "$title" \ - --backtitle "$btitle" \ - --hline "$hline" \ - --$yes-label "$msg_yes" \ - --$no-label "$msg_no" \ - $extra_args \ - --yesno "$prompt" $height $width -} - # zfs_create_diskpart $disk $index # # For each block device to be used in the zpool, rather than just create the @@ -848,14 +811,25 @@ zfs_create_diskpart() fi # - # 2. Add small freebsd-boot partition labeled `boot#' + # 2. Add small freebsd-boot or efi partition # - f_eval_catch $funcname gpart "$GPART_ADD_ALIGN_LABEL_WITH_SIZE" \ - "$align_small" gptboot$index freebsd-boot 512k $disk || - return $FAILURE - f_eval_catch $funcname gpart "$GPART_BOOTCODE_PART" \ - /boot/pmbr /boot/gptzfsboot 1 $disk || - return $FAILURE + if [ "$ZFSBOOT_BOOT_TYPE" = "UEFI" ]; then + f_eval_catch $funcname gpart \ + "$GPART_ADD_ALIGN_LABEL_WITH_SIZE" \ + "$align_small" efiboot$index efi 800k $disk || + return $FAILURE + f_eval_catch $funcname gpart "$GPART_BOOTCODE_PARTONLY" \ + /boot/boot1.efifat 1 $disk || + return $FAILURE + else + f_eval_catch $funcname gpart \ + "$GPART_ADD_ALIGN_LABEL_WITH_SIZE" \ + "$align_small" gptboot$index freebsd-boot \ + 512k $disk || return $FAILURE + f_eval_catch $funcname gpart "$GPART_BOOTCODE_PART" \ + /boot/pmbr /boot/gptzfsboot 1 $disk || + return $FAILURE + fi # NB: zpool will use the `zfs#' GPT labels bootpart=p2 swappart=p2 targetpart=p2 @@ -1463,18 +1437,16 @@ f_dprintf "BSDINSTALL_TMPETC=[%s]" "$BSD f_dprintf "FSTAB_FMT=[%s]" "$FSTAB_FMT" # -# If the system was booted with UEFI, warn the user that FreeBSD can't do -# ZFS with UEFI yet +# If the system was booted with UEFI, set the default boot type to UEFI # -if f_interactive; then - bootmethod=$( sysctl -n machdep.bootmethod ) - f_dprintf "machdep.bootmethod=[%s]" "$bootmethod" - if [ "$bootmethod" != "BIOS" ]; then - dialog_uefi_prompt - retval=$? - f_dprintf "uefi_prompt=[%s]" "$retval" - [ $retval -eq $DIALOG_OK ] || f_die - fi +bootmethod=$( sysctl -n machdep.bootmethod ) +f_dprintf "machdep.bootmethod=[%s]" "$bootmethod" +if [ "$bootmethod" = "UEFI" ]; then + : ${ZFSBOOT_BOOT_TYPE:=UEFI} + : ${ZFSBOOT_PARTITION_SCHEME:=GPT} +else + : ${ZFSBOOT_BOOT_TYPE:=BIOS} + : ${ZFSBOOT_PARTITION_SCHEME:=GPT} fi # @@ -1596,15 +1568,22 @@ while :; do fi ;; ?" $msg_partition_scheme") - # Toggle between GPT and MBR - if [ "$ZFSBOOT_PARTITION_SCHEME" = GPT ]; then - ZFSBOOT_PARTITION_SCHEME=MBR - elif [ "$ZFSBOOT_PARTITION_SCHEME" = MBR ]; then + # Toggle between GPT (BIOS), GPT (UEFI) and MBR + if [ "$ZFSBOOT_PARTITION_SCHEME" = "GPT" -a "$ZFSBOOT_BOOT_TYPE" = "BIOS" ]; then + ZFSBOOT_PARTITION_SCHEME="GPT" + ZFSBOOT_BOOT_TYPE="UEFI" + elif [ "$ZFSBOOT_PARTITION_SCHEME" = "GPT" ]; then + ZFSBOOT_PARTITION_SCHEME="MBR" + ZFSBOOT_BOOT_TYPE="BIOS" + elif [ "$ZFSBOOT_PARTITION_SCHEME" = "MBR" ]; then ZFSBOOT_PARTITION_SCHEME="GPT + Active" + ZFSBOOT_BOOT_TYPE="BIOS" elif [ "$ZFSBOOT_PARTITION_SCHEME" = "GPT + Active" ]; then ZFSBOOT_PARTITION_SCHEME="GPT + Lenovo Fix" + ZFSBOOT_BOOT_TYPE="BIOS" else - ZFSBOOT_PARTITION_SCHEME=GPT + ZFSBOOT_PARTITION_SCHEME="GPT" + ZFSBOOT_BOOT_TYPE="BIOS" fi ;; ?" $msg_swap_size") From owner-svn-src-all@freebsd.org Sat Jan 30 16:56:41 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E20E7A72EC5; Sat, 30 Jan 2016 16:56:40 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A52577AF; Sat, 30 Jan 2016 16:56:40 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UGudal091763; Sat, 30 Jan 2016 16:56:39 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UGudLW091762; Sat, 30 Jan 2016 16:56:39 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601301656.u0UGudLW091762@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sat, 30 Jan 2016 16:56:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295075 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 16:56:41 -0000 Author: tuexen Date: Sat Jan 30 16:56:39 2016 New Revision: 295075 URL: https://svnweb.freebsd.org/changeset/base/295075 Log: Update the path mtu when turning on/off UDP encapsulation for SCTP. MFC after: 3 days Modified: head/sys/netinet/sctp_input.c Modified: head/sys/netinet/sctp_input.c ============================================================================== --- head/sys/netinet/sctp_input.c Sat Jan 30 15:53:28 2016 (r295074) +++ head/sys/netinet/sctp_input.c Sat Jan 30 16:56:39 2016 (r295075) @@ -5684,11 +5684,18 @@ sctp_common_input_processing(struct mbuf stcb = sctp_findassociation_addr(m, offset, src, dst, sh, ch, &inp, &net, vrf_id); #if defined(INET) || defined(INET6) - if ((net != NULL) && - (ch->chunk_type != SCTP_INITIATION) && - (port != 0)) { + if ((ch->chunk_type != SCTP_INITIATION) && + (net != NULL) && (net->port != port)) { if (net->port == 0) { - sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); + /* UDP encapsulation turned on. */ + net->mtu -= sizeof(struct udphdr); + if (stcb->asoc.smallest_mtu > net->mtu) { + sctp_pathmtu_adjustment(stcb, net->mtu); + } + } else if (port == 0) { + /* UDP encapsulation turned off. */ + net->mtu += sizeof(struct udphdr); + /* XXX Update smallest_mtu */ } net->port = port; } @@ -5717,11 +5724,18 @@ sctp_common_input_processing(struct mbuf stcb = sctp_findassociation_addr(m, offset, src, dst, sh, ch, &inp, &net, vrf_id); #if defined(INET) || defined(INET6) - if ((net != NULL) && - (ch->chunk_type != SCTP_INITIATION) && - (port != 0)) { + if ((ch->chunk_type != SCTP_INITIATION) && + (net != NULL) && (net->port != port)) { if (net->port == 0) { - sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); + /* UDP encapsulation turned on. */ + net->mtu -= sizeof(struct udphdr); + if (stcb->asoc.smallest_mtu > net->mtu) { + sctp_pathmtu_adjustment(stcb, net->mtu); + } + } else if (port == 0) { + /* UDP encapsulation turned off. */ + net->mtu += sizeof(struct udphdr); + /* XXX Update smallest_mtu */ } net->port = port; } @@ -5831,11 +5845,18 @@ sctp_common_input_processing(struct mbuf */ inp = stcb->sctp_ep; #if defined(INET) || defined(INET6) - if ((net != NULL) && - (ch->chunk_type != SCTP_INITIATION) && - (port != 0)) { + if ((ch->chunk_type != SCTP_INITIATION) && + (net != NULL) && (net->port != port)) { if (net->port == 0) { - sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr)); + /* UDP encapsulation turned on. */ + net->mtu -= sizeof(struct udphdr); + if (stcb->asoc.smallest_mtu > net->mtu) { + sctp_pathmtu_adjustment(stcb, net->mtu); + } + } else if (port == 0) { + /* UDP encapsulation turned off. */ + net->mtu += sizeof(struct udphdr); + /* XXX Update smallest_mtu */ } net->port = port; } From owner-svn-src-all@freebsd.org Sat Jan 30 17:10:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C18CA7323E; Sat, 30 Jan 2016 17:10:16 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 09027C05; Sat, 30 Jan 2016 17:10:15 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UHAFDU094879; Sat, 30 Jan 2016 17:10:15 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UHAElN094874; Sat, 30 Jan 2016 17:10:14 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601301710.u0UHAElN094874@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sat, 30 Jan 2016 17:10:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295076 - head/sbin/nvmecontrol X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 17:10:16 -0000 Author: ngie Date: Sat Jan 30 17:10:14 2016 New Revision: 295076 URL: https://svnweb.freebsd.org/changeset/base/295076 Log: Revert r295062 to unbreak buildworld Some of the structures referenced in power.c (in particular struct nvme_power_state) are missing from sbin/nvmecontrol/ Pointyhat to: imp Reported by: Jenkins [*], O. Hartmann , Outback Dingo Deleted: head/sbin/nvmecontrol/power.c Modified: head/sbin/nvmecontrol/Makefile head/sbin/nvmecontrol/nvmecontrol.8 head/sbin/nvmecontrol/nvmecontrol.c head/sbin/nvmecontrol/nvmecontrol.h Modified: head/sbin/nvmecontrol/Makefile ============================================================================== --- head/sbin/nvmecontrol/Makefile Sat Jan 30 16:56:39 2016 (r295075) +++ head/sbin/nvmecontrol/Makefile Sat Jan 30 17:10:14 2016 (r295076) @@ -2,7 +2,7 @@ PROG= nvmecontrol SRCS= nvmecontrol.c devlist.c firmware.c identify.c logpage.c \ - perftest.c reset.c nvme_util.c power.c + perftest.c reset.c nvme_util.c MAN= nvmecontrol.8 .PATH: ${.CURDIR}/../../sys/dev/nvme Modified: head/sbin/nvmecontrol/nvmecontrol.8 ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.8 Sat Jan 30 16:56:39 2016 (r295075) +++ head/sbin/nvmecontrol/nvmecontrol.8 Sat Jan 30 17:10:14 2016 (r295076) @@ -70,11 +70,6 @@ .Op Fl f Ar path_to_firmware .Op Fl a .Aq device id -.Nm -.Ic power -.Op Fl l -.Op Fl p power_state -.Op fl w workload_hint .Sh DESCRIPTION NVM Express (NVMe) is a storage protocol standard, for SSDs and other high-speed storage devices over PCI Express. @@ -125,18 +120,6 @@ Activate the firmware in slot 4 of the n .Pp Download the firmware image contained in "/tmp/nvme_firmware" to slot 7 of the nvme0 controller and activate it on the next reset. -.Pp -.Dl nvmecontrol power -l nvme0 -.Pp -List all the current power modes. -.Pp -.Dl nvmecontrol power -p 3 nvme0 -.Pp -Set the current power mode. -.Pp -.Dl nvmecontrol power nvme0 -.Pp -Get the current power mode. .Sh AUTHORS .An -nosplit .Nm Modified: head/sbin/nvmecontrol/nvmecontrol.c ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.c Sat Jan 30 16:56:39 2016 (r295075) +++ head/sbin/nvmecontrol/nvmecontrol.c Sat Jan 30 17:10:14 2016 (r295076) @@ -58,7 +58,6 @@ static struct nvme_function { {"reset", reset, RESET_USAGE}, {"logpage", logpage, LOGPAGE_USAGE}, {"firmware", firmware, FIRMWARE_USAGE}, - {"power", power, POWER_USAGE}, {NULL, NULL, NULL}, }; Modified: head/sbin/nvmecontrol/nvmecontrol.h ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.h Sat Jan 30 16:56:39 2016 (r295075) +++ head/sbin/nvmecontrol/nvmecontrol.h Sat Jan 30 17:10:14 2016 (r295076) @@ -55,16 +55,12 @@ #define FIRMWARE_USAGE \ " nvmecontrol firmware [-s slot] [-f path_to_firmware] [-a] \n" -#define POWER_USAGE \ -" nvmecontrol power [-l] [-p new-state [-w workload-hint]] \n" - void devlist(int argc, char *argv[]); void identify(int argc, char *argv[]); void perftest(int argc, char *argv[]); void reset(int argc, char *argv[]); void logpage(int argc, char *argv[]); void firmware(int argc, char *argv[]); -void power(int argc, char *argv[]); int open_dev(const char *str, int *fd, int show_error, int exit_on_error); void parse_ns_str(const char *ns_str, char *ctrlr_str, int *nsid); From owner-svn-src-all@freebsd.org Sat Jan 30 17:32:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92379A73ADD; Sat, 30 Jan 2016 17:32:47 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5EFF619B4; Sat, 30 Jan 2016 17:32:47 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UHWkC4003320; Sat, 30 Jan 2016 17:32:46 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UHWktQ003319; Sat, 30 Jan 2016 17:32:46 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201601301732.u0UHWktQ003319@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sat, 30 Jan 2016 17:32:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295077 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 17:32:47 -0000 Author: tuexen Date: Sat Jan 30 17:32:46 2016 New Revision: 295077 URL: https://svnweb.freebsd.org/changeset/base/295077 Log: Add missing parentheses. This was reported by ccaughie via GitHub for the userland stack. MFC after: 3 days Modified: head/sys/netinet/sctp_var.h Modified: head/sys/netinet/sctp_var.h ============================================================================== --- head/sys/netinet/sctp_var.h Sat Jan 30 17:10:14 2016 (r295076) +++ head/sys/netinet/sctp_var.h Sat Jan 30 17:32:46 2016 (r295077) @@ -86,7 +86,7 @@ extern struct pr_usrreqs sctp_usrreqs; #define sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > (sb)->sb_cc) ? (sctp_maxspace(sb) - (sb)->sb_cc) : 0)) -#define sctp_sbspace_sub(a,b) ((a > b) ? (a - b) : 0) +#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0) /* * I tried to cache the readq entries at one point. But the reality From owner-svn-src-all@freebsd.org Sat Jan 30 17:54:19 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D19BCA72092; Sat, 30 Jan 2016 17:54:19 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A2272278; Sat, 30 Jan 2016 17:54:19 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UHsI8m009256; Sat, 30 Jan 2016 17:54:18 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UHsIpj009255; Sat, 30 Jan 2016 17:54:18 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601301754.u0UHsIpj009255@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sat, 30 Jan 2016 17:54:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295079 - head/libexec/atrun X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 17:54:19 -0000 Author: ngie Date: Sat Jan 30 17:54:18 2016 New Revision: 295079 URL: https://svnweb.freebsd.org/changeset/base/295079 Log: Fix the type for hw.ncpu, so sysctlbyname doesn't consistently fail on 64-bit architectures where sizeof(int) != sizeof(size_t). MFC after: 1 week PR: 206758 Reported by: Christoph Schönweiler Submitted by: kib Sponsored by: EMC / Isilon Storage Division Modified: head/libexec/atrun/atrun.c Modified: head/libexec/atrun/atrun.c ============================================================================== --- head/libexec/atrun/atrun.c Sat Jan 30 17:43:41 2016 (r295078) +++ head/libexec/atrun/atrun.c Sat Jan 30 17:54:18 2016 (r295079) @@ -459,8 +459,9 @@ main(int argc, char *argv[]) int c; int run_batch; #ifdef __FreeBSD__ - size_t ncpu, ncpusz; + size_t ncpusz; double load_avg = -1; + int ncpu; #else double load_avg = LOADAVG_MX; #endif From owner-svn-src-all@freebsd.org Sat Jan 30 18:33:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4BFE3A731CC; Sat, 30 Jan 2016 18:33:25 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1B10A1D1A; Sat, 30 Jan 2016 18:33:25 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UIXOq7026378; Sat, 30 Jan 2016 18:33:24 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UIXOTq026377; Sat, 30 Jan 2016 18:33:24 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601301833.u0UIXOTq026377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sat, 30 Jan 2016 18:33:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295080 - head/sys/dev/iicbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 18:33:25 -0000 Author: ngie Date: Sat Jan 30 18:33:23 2016 New Revision: 295080 URL: https://svnweb.freebsd.org/changeset/base/295080 Log: Use the correct type for i when iterating over `buf` to avoid unlikely negative array indexing in iicrdwr(..) Differential Revision: https://reviews.freebsd.org/D5132 Obtained from: HardenedBSD PR: 206754 Reported by: CTurt Submitted by: Madhi Moktari Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/iicbus/iic.c Modified: head/sys/dev/iicbus/iic.c ============================================================================== --- head/sys/dev/iicbus/iic.c Sat Jan 30 17:54:18 2016 (r295079) +++ head/sys/dev/iicbus/iic.c Sat Jan 30 18:33:23 2016 (r295080) @@ -293,7 +293,8 @@ iicrdwr(struct iic_cdevpriv *priv, struc struct iic_msg *buf, *m; void **usrbufs; device_t iicdev, parent; - int error, i; + int error; + uint32_t i; iicdev = priv->sc->sc_dev; parent = device_get_parent(iicdev); From owner-svn-src-all@freebsd.org Sat Jan 30 19:59:59 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB96DA730A3; Sat, 30 Jan 2016 19:59:59 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 75E41CE1; Sat, 30 Jan 2016 19:59:59 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UJxwd7051279; Sat, 30 Jan 2016 19:59:58 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UJxwfo051278; Sat, 30 Jan 2016 19:59:58 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201601301959.u0UJxwfo051278@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sat, 30 Jan 2016 19:59:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295082 - head/bin/test X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 19:59:59 -0000 Author: jilles Date: Sat Jan 30 19:59:58 2016 New Revision: 295082 URL: https://svnweb.freebsd.org/changeset/base/295082 Log: test: Optimize operator lookup. The linear search using strcmp() shows up in pmcstat for several percent. Split the operators into lengths and whether they start with '-' and compare bytes using == instead of strcmp(). A simple test sh -c 'i=0; w=$(printf %0100d 7); while [ "$i" -lt 1000000 ]; do v=$(printf %sx%s "$w" "$w"); i=$((i+1)); done' is over 4% faster on an amd64 bhyve VM. Modified: head/bin/test/test.c Modified: head/bin/test/test.c ============================================================================== --- head/bin/test/test.c Sat Jan 30 18:41:56 2016 (r295081) +++ head/bin/test/test.c Sat Jan 30 19:59:58 2016 (r295082) @@ -120,51 +120,53 @@ enum token { #define TOKEN_TYPE(token) ((token) & 0xff00) -static struct t_op { - char op_text[4]; +static const struct t_op { + char op_text[2]; short op_num; -} const ops [] = { - {"-r", FILRD}, - {"-w", FILWR}, - {"-x", FILEX}, - {"-e", FILEXIST}, - {"-f", FILREG}, - {"-d", FILDIR}, - {"-c", FILCDEV}, - {"-b", FILBDEV}, - {"-p", FILFIFO}, - {"-u", FILSUID}, - {"-g", FILSGID}, - {"-k", FILSTCK}, - {"-s", FILGZ}, - {"-t", FILTT}, - {"-z", STREZ}, - {"-n", STRNZ}, - {"-h", FILSYM}, /* for backwards compat */ - {"-O", FILUID}, - {"-G", FILGID}, - {"-L", FILSYM}, - {"-S", FILSOCK}, +} ops1[] = { {"=", STREQ}, - {"==", STREQ}, - {"!=", STRNE}, {"<", STRLT}, {">", STRGT}, - {"-eq", INTEQ}, - {"-ne", INTNE}, - {"-ge", INTGE}, - {"-gt", INTGT}, - {"-le", INTLE}, - {"-lt", INTLT}, - {"-nt", FILNT}, - {"-ot", FILOT}, - {"-ef", FILEQ}, {"!", UNOT}, - {"-a", BAND}, - {"-o", BOR}, {"(", LPAREN}, {")", RPAREN}, - {"", 0} +}, opsm1[] = { + {"r", FILRD}, + {"w", FILWR}, + {"x", FILEX}, + {"e", FILEXIST}, + {"f", FILREG}, + {"d", FILDIR}, + {"c", FILCDEV}, + {"b", FILBDEV}, + {"p", FILFIFO}, + {"u", FILSUID}, + {"g", FILSGID}, + {"k", FILSTCK}, + {"s", FILGZ}, + {"t", FILTT}, + {"z", STREZ}, + {"n", STRNZ}, + {"h", FILSYM}, /* for backwards compat */ + {"O", FILUID}, + {"G", FILGID}, + {"L", FILSYM}, + {"S", FILSOCK}, + {"a", BAND}, + {"o", BOR}, +}, ops2[] = { + {"==", STREQ}, + {"!=", STRNE}, +}, opsm2[] = { + {"eq", INTEQ}, + {"ne", INTNE}, + {"ge", INTGE}, + {"gt", INTGT}, + {"le", INTLE}, + {"lt", INTLT}, + {"nt", FILNT}, + {"ot", FILOT}, + {"ef", FILEQ}, }; static int nargc; @@ -416,35 +418,71 @@ filstat(char *nm, enum token mode) } } -static enum token -t_lex(char *s) +static int +find_op_1char(const struct t_op *op, const struct t_op *end, const char *s) { - struct t_op const *op = ops; + char c; - if (s == 0) { - return EOI; + c = s[0]; + while (op != end) { + if (c == *op->op_text) + return op->op_num; + op++; } - while (*op->op_text) { - if (strcmp(s, op->op_text) == 0) { - if (((TOKEN_TYPE(op->op_num) == UNOP || - TOKEN_TYPE(op->op_num) == BUNOP) - && isunopoperand()) || - (op->op_num == LPAREN && islparenoperand()) || - (op->op_num == RPAREN && isrparenoperand())) - break; + return OPERAND; +} + +static int +find_op_2char(const struct t_op *op, const struct t_op *end, const char *s) +{ + while (op != end) { + if (s[0] == op->op_text[0] && s[1] == op->op_text[1]) return op->op_num; - } op++; } return OPERAND; } static int +find_op(const char *s) +{ + if (s[0] == '\0') + return OPERAND; + else if (s[1] == '\0') + return find_op_1char(ops1, (&ops1)[1], s); + else if (s[2] == '\0') + return s[0] == '-' ? find_op_1char(opsm1, (&opsm1)[1], s + 1) : + find_op_2char(ops2, (&ops2)[1], s); + else if (s[3] == '\0') + return s[0] == '-' ? find_op_2char(opsm2, (&opsm2)[1], s + 1) : + OPERAND; + else + return OPERAND; +} + +static enum token +t_lex(char *s) +{ + int num; + + if (s == 0) { + return EOI; + } + num = find_op(s); + if (((TOKEN_TYPE(num) == UNOP || TOKEN_TYPE(num) == BUNOP) + && isunopoperand()) || + (num == LPAREN && islparenoperand()) || + (num == RPAREN && isrparenoperand())) + return OPERAND; + return num; +} + +static int isunopoperand(void) { - struct t_op const *op = ops; char *s; char *t; + int num; if (nargc == 1) return 1; @@ -452,20 +490,16 @@ isunopoperand(void) if (nargc == 2) return parenlevel == 1 && strcmp(s, ")") == 0; t = *(t_wp + 2); - while (*op->op_text) { - if (strcmp(s, op->op_text) == 0) - return TOKEN_TYPE(op->op_num) == BINOP && - (parenlevel == 0 || t[0] != ')' || t[1] != '\0'); - op++; - } - return 0; + num = find_op(s); + return TOKEN_TYPE(num) == BINOP && + (parenlevel == 0 || t[0] != ')' || t[1] != '\0'); } static int islparenoperand(void) { - struct t_op const *op = ops; char *s; + int num; if (nargc == 1) return 1; @@ -474,12 +508,8 @@ islparenoperand(void) return parenlevel == 1 && strcmp(s, ")") == 0; if (nargc != 3) return 0; - while (*op->op_text) { - if (strcmp(s, op->op_text) == 0) - return TOKEN_TYPE(op->op_num) == BINOP; - op++; - } - return 0; + num = find_op(s); + return TOKEN_TYPE(num) == BINOP; } static int From owner-svn-src-all@freebsd.org Sat Jan 30 20:10:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 701D0A7336C; Sat, 30 Jan 2016 20:10:21 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2A3B51069; Sat, 30 Jan 2016 20:10:21 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UKAKb7054246; Sat, 30 Jan 2016 20:10:20 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UKAKLa054245; Sat, 30 Jan 2016 20:10:20 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201601302010.u0UKAKLa054245@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sat, 30 Jan 2016 20:10:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295083 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 20:10:21 -0000 Author: jilles Date: Sat Jan 30 20:10:20 2016 New Revision: 295083 URL: https://svnweb.freebsd.org/changeset/base/295083 Log: sh(1): Document 'cd -'. This reflects the changes in r294649 and can therefore not be MFCed by itself. Modified: head/bin/sh/sh.1 Modified: head/bin/sh/sh.1 ============================================================================== --- head/bin/sh/sh.1 Sat Jan 30 19:59:58 2016 (r295082) +++ head/bin/sh/sh.1 Sat Jan 30 20:10:20 2016 (r295083) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd August 29, 2015 +.Dd January 30, 2016 .Dt SH 1 .Os .Sh NAME @@ -1952,13 +1952,20 @@ Execute the specified built-in command, This is useful when the user wishes to override a shell function with the same name as a built-in command. .It Ic cd Oo Fl L | P Oc Oo Fl e Oc Op Ar directory +.It Ic cd Fl Switch to the specified .Ar directory , -or to the directory specified in the +to the directory specified in the .Va HOME environment variable if no .Ar directory -is specified. +is specified or +to the directory specified in the +.Va OLDPWD +environment variable if +.Ar directory +is +.Fl . If .Ar directory does not begin with @@ -1982,10 +1989,12 @@ the .Ic cd command will print out the name of the directory that it actually switched to -if this is different from the name that the user gave. -These may be different either because the +if the .Va CDPATH -mechanism was used or because a symbolic link was crossed. +mechanism was used or if +.Ar directory +was +.Fl . .Pp If the .Fl P @@ -2774,6 +2783,10 @@ Initialization file for interactive shel Locale settings. These are inherited by children of the shell, and is used in a limited manner by the shell itself. +.It Ev OLDPWD +The previous current directory. +This is used and updated by +.Ic cd . .It Ev PWD An absolute pathname for the current directory, possibly containing symbolic links. From owner-svn-src-all@freebsd.org Sat Jan 30 20:48:47 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D1C9A73F36; Sat, 30 Jan 2016 20:48:47 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5AE9B2FC; Sat, 30 Jan 2016 20:48:47 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UKmk0O066061; Sat, 30 Jan 2016 20:48:46 GMT (envelope-from grehan@FreeBSD.org) Received: (from grehan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UKmkCN066059; Sat, 30 Jan 2016 20:48:46 GMT (envelope-from grehan@FreeBSD.org) Message-Id: <201601302048.u0UKmkCN066059@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: grehan set sender to grehan@FreeBSD.org using -f From: Peter Grehan Date: Sat, 30 Jan 2016 20:48:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r295084 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 20:48:47 -0000 Author: grehan Date: Sat Jan 30 20:48:45 2016 New Revision: 295084 URL: https://svnweb.freebsd.org/changeset/base/295084 Log: Welcome Anish Gupta (anish) as a new src committer. Anish added support for AMD/SVM processors to bhyve and will be continuing to work on that along with new features such as IOMMU support for AMD. neel@ and I will be mentoring him. Approved by: core Modified: svnadmin/conf/access svnadmin/conf/mentors Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Sat Jan 30 20:10:20 2016 (r295083) +++ svnadmin/conf/access Sat Jan 30 20:48:45 2016 (r295084) @@ -30,6 +30,7 @@ ambrisko andre andreast andrew +anish antoine araujo arybchik Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Sat Jan 30 20:10:20 2016 (r295083) +++ svnadmin/conf/mentors Sat Jan 30 20:48:45 2016 (r295084) @@ -11,6 +11,7 @@ # Mentee Mentor Optional comment achim scottl Co-mentor: emaste +anish neel Co-mentor: grehan agc scottl Co-mentor: emax araujo bapt Co-mentor: rodrigc avos adrian From owner-svn-src-all@freebsd.org Sat Jan 30 21:21:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E4AFA728A7; Sat, 30 Jan 2016 21:21:27 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1CA491137; Sat, 30 Jan 2016 21:21:27 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0ULLQsJ074932; Sat, 30 Jan 2016 21:21:26 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0ULLQRA074931; Sat, 30 Jan 2016 21:21:26 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201601302121.u0ULLQRA074931@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sat, 30 Jan 2016 21:21:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295085 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 21:21:27 -0000 Author: jilles Date: Sat Jan 30 21:21:25 2016 New Revision: 295085 URL: https://svnweb.freebsd.org/changeset/base/295085 Log: sh: Don't allocate a redirtab if there are no redirections. Builtins (including variable assignments without command word), function calls and redirected compound commands need to restore file descriptors to their original state after execution. This is handled by allocating a redirtab structure. These mallocs and frees show up heavily in pmcstat. Only allocate a redirtab if there are actually redirections and maintain a count of how many levels of REDIR_PUSH there are without redirtabs. A simple loop without external programs like sh -c 'i=0; w=$(printf %0100d 7); while [ "$i" -lt 1000000 ]; do i=$((i+1)); done' is over 25% faster on an amd64 bhyve VM. Modified: head/bin/sh/redir.c Modified: head/bin/sh/redir.c ============================================================================== --- head/bin/sh/redir.c Sat Jan 30 20:48:45 2016 (r295084) +++ head/bin/sh/redir.c Sat Jan 30 21:21:25 2016 (r295085) @@ -70,6 +70,7 @@ struct redirtab { struct redirtab *next; int renamed[10]; int fd0_redirected; + unsigned int empty_redirs; }; @@ -82,6 +83,9 @@ static struct redirtab *redirlist; */ static int fd0_redirected = 0; +/* Number of redirtabs that have not been allocated. */ +static unsigned int empty_redirs = 0; + static void openredirect(union node *, char[10 ]); static int openhere(union node *); @@ -115,12 +119,17 @@ redirect(union node *redir, int flags) memory[i] = 0; memory[1] = flags & REDIR_BACKQ; if (flags & REDIR_PUSH) { - sv = ckmalloc(sizeof (struct redirtab)); - for (i = 0 ; i < 10 ; i++) - sv->renamed[i] = EMPTY; - sv->fd0_redirected = fd0_redirected; - sv->next = redirlist; - redirlist = sv; + empty_redirs++; + if (redir != NULL) { + sv = ckmalloc(sizeof (struct redirtab)); + for (i = 0 ; i < 10 ; i++) + sv->renamed[i] = EMPTY; + sv->fd0_redirected = fd0_redirected; + sv->empty_redirs = empty_redirs - 1; + sv->next = redirlist; + redirlist = sv; + empty_redirs = 0; + } } for (n = redir ; n ; n = n->nfile.next) { fd = n->nfile.fd; @@ -303,6 +312,12 @@ popredir(void) struct redirtab *rp = redirlist; int i; + INTOFF; + if (empty_redirs > 0) { + empty_redirs--; + INTON; + return; + } for (i = 0 ; i < 10 ; i++) { if (rp->renamed[i] != EMPTY) { if (rp->renamed[i] >= 0) { @@ -313,8 +328,8 @@ popredir(void) } } } - INTOFF; fd0_redirected = rp->fd0_redirected; + empty_redirs = rp->empty_redirs; redirlist = rp->next; ckfree(rp); INTON; From owner-svn-src-all@freebsd.org Sat Jan 30 22:03:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5AB81A73796; Sat, 30 Jan 2016 22:03:16 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2D0C684F; Sat, 30 Jan 2016 22:03:16 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UM3FTk089465; Sat, 30 Jan 2016 22:03:15 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UM3FCG089464; Sat, 30 Jan 2016 22:03:15 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601302203.u0UM3FCG089464@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 30 Jan 2016 22:03:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295086 - head/sbin/pfctl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 22:03:16 -0000 Author: ian Date: Sat Jan 30 22:03:14 2016 New Revision: 295086 URL: https://svnweb.freebsd.org/changeset/base/295086 Log: Make pfctl(8) work on strict-alignment platforms, by copying a pair of embedded structures out of a packed, unaligned struct into local copies on the stack which are aligned. The original patch to do this was submitted by Guy Yur , and this is conceptually the same change, but restructured with the #ifndef __NO_STRICT_ALIGNMENT wrapper, similar to how the same issue is handled in the kernel pf code. PR: 185617 PR: 206658 Modified: head/sbin/pfctl/pf_print_state.c Modified: head/sbin/pfctl/pf_print_state.c ============================================================================== --- head/sbin/pfctl/pf_print_state.c Sat Jan 30 21:21:25 2016 (r295085) +++ head/sbin/pfctl/pf_print_state.c Sat Jan 30 22:03:14 2016 (r295086) @@ -208,22 +208,30 @@ void print_state(struct pfsync_state *s, int opts) { struct pfsync_state_peer *src, *dst; - struct pfsync_state_key *sk, *nk; + struct pfsync_state_key *key, *sk, *nk; struct protoent *p; int min, sec; +#ifndef __NO_STRICT_ALIGNMENT + struct pfsync_state_key aligned_key[2]; + + bcopy(&s->key, aligned_key, sizeof(aligned_key)); + key = aligned_key; +#else + key = s->key; +#endif if (s->direction == PF_OUT) { src = &s->src; dst = &s->dst; - sk = &s->key[PF_SK_STACK]; - nk = &s->key[PF_SK_WIRE]; + sk = &key[PF_SK_STACK]; + nk = &key[PF_SK_WIRE]; if (s->proto == IPPROTO_ICMP || s->proto == IPPROTO_ICMPV6) sk->port[0] = nk->port[0]; } else { src = &s->dst; dst = &s->src; - sk = &s->key[PF_SK_WIRE]; - nk = &s->key[PF_SK_STACK]; + sk = &key[PF_SK_WIRE]; + nk = &key[PF_SK_STACK]; if (s->proto == IPPROTO_ICMP || s->proto == IPPROTO_ICMPV6) sk->port[1] = nk->port[1]; } From owner-svn-src-all@freebsd.org Sat Jan 30 22:48:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 711FDA73608; Sat, 30 Jan 2016 22:48:08 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 33C291A96; Sat, 30 Jan 2016 22:48:08 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0UMm7U8001453; Sat, 30 Jan 2016 22:48:07 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0UMm6Wo001447; Sat, 30 Jan 2016 22:48:06 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201601302248.u0UMm6Wo001447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sat, 30 Jan 2016 22:48:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295087 - in head: sbin/nvmecontrol sys/dev/nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2016 22:48:08 -0000 Author: imp Date: Sat Jan 30 22:48:06 2016 New Revision: 295087 URL: https://svnweb.freebsd.org/changeset/base/295087 Log: Implement power command to list all power modes, find out the power mode we're in and to set the power mode. Added: head/sbin/nvmecontrol/power.c (contents, props changed) Modified: head/sbin/nvmecontrol/Makefile head/sbin/nvmecontrol/nvmecontrol.8 head/sbin/nvmecontrol/nvmecontrol.c head/sbin/nvmecontrol/nvmecontrol.h head/sys/dev/nvme/nvme.h Modified: head/sbin/nvmecontrol/Makefile ============================================================================== --- head/sbin/nvmecontrol/Makefile Sat Jan 30 22:03:14 2016 (r295086) +++ head/sbin/nvmecontrol/Makefile Sat Jan 30 22:48:06 2016 (r295087) @@ -2,7 +2,7 @@ PROG= nvmecontrol SRCS= nvmecontrol.c devlist.c firmware.c identify.c logpage.c \ - perftest.c reset.c nvme_util.c + perftest.c reset.c nvme_util.c power.c MAN= nvmecontrol.8 .PATH: ${.CURDIR}/../../sys/dev/nvme Modified: head/sbin/nvmecontrol/nvmecontrol.8 ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.8 Sat Jan 30 22:03:14 2016 (r295086) +++ head/sbin/nvmecontrol/nvmecontrol.8 Sat Jan 30 22:48:06 2016 (r295087) @@ -70,6 +70,11 @@ .Op Fl f Ar path_to_firmware .Op Fl a .Aq device id +.Nm +.Ic power +.Op Fl l +.Op Fl p power_state +.Op fl w workload_hint .Sh DESCRIPTION NVM Express (NVMe) is a storage protocol standard, for SSDs and other high-speed storage devices over PCI Express. @@ -120,6 +125,18 @@ Activate the firmware in slot 4 of the n .Pp Download the firmware image contained in "/tmp/nvme_firmware" to slot 7 of the nvme0 controller and activate it on the next reset. +.Pp +.Dl nvmecontrol power -l nvme0 +.Pp +List all the current power modes. +.Pp +.Dl nvmecontrol power -p 3 nvme0 +.Pp +Set the current power mode. +.Pp +.Dl nvmecontrol power nvme0 +.Pp +Get the current power mode. .Sh AUTHORS .An -nosplit .Nm Modified: head/sbin/nvmecontrol/nvmecontrol.c ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.c Sat Jan 30 22:03:14 2016 (r295086) +++ head/sbin/nvmecontrol/nvmecontrol.c Sat Jan 30 22:48:06 2016 (r295087) @@ -58,6 +58,7 @@ static struct nvme_function { {"reset", reset, RESET_USAGE}, {"logpage", logpage, LOGPAGE_USAGE}, {"firmware", firmware, FIRMWARE_USAGE}, + {"power", power, POWER_USAGE}, {NULL, NULL, NULL}, }; Modified: head/sbin/nvmecontrol/nvmecontrol.h ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.h Sat Jan 30 22:03:14 2016 (r295086) +++ head/sbin/nvmecontrol/nvmecontrol.h Sat Jan 30 22:48:06 2016 (r295087) @@ -55,12 +55,16 @@ #define FIRMWARE_USAGE \ " nvmecontrol firmware [-s slot] [-f path_to_firmware] [-a] \n" +#define POWER_USAGE \ +" nvmecontrol power [-l] [-p new-state [-w workload-hint]] \n" + void devlist(int argc, char *argv[]); void identify(int argc, char *argv[]); void perftest(int argc, char *argv[]); void reset(int argc, char *argv[]); void logpage(int argc, char *argv[]); void firmware(int argc, char *argv[]); +void power(int argc, char *argv[]); int open_dev(const char *str, int *fd, int show_error, int exit_on_error); void parse_ns_str(const char *ns_str, char *ctrlr_str, int *nsid); Added: head/sbin/nvmecontrol/power.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/nvmecontrol/power.c Sat Jan 30 22:48:06 2016 (r295087) @@ -0,0 +1,185 @@ +/*- + * Copyright (c) 2016 Netflix, Inc + * 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 + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "nvmecontrol.h" + +_Static_assert(sizeof(struct nvme_power_state) == 256 / NBBY, + "nvme_power_state size wrong"); + +static void +power_usage(void) +{ + fprintf(stderr, "usage:\n"); + fprintf(stderr, POWER_USAGE); + exit(1); +} + +static void +power_list_one(int i, struct nvme_power_state *nps) +{ + int mpower, apower, ipower; + + mpower = nps->mp; + if (nps->mps == 0) + mpower *= 100; + ipower = nps->idlp; + if (nps->ips == 1) + ipower *= 100; + apower = nps->actp; + if (nps->aps == 1) + apower *= 100; + printf("%2d: %2d.%04dW%c %3d.%03dms %3d.%03dms %2d %2d %2d %2d %2d.%04dW %2d.%04dW %d\n", + i, mpower / 10000, mpower % 10000, + nps->nops ? '*' : ' ', nps->enlat / 1000, nps->enlat % 1000, + nps->exlat / 1000, nps->exlat % 1000, nps->rrt, nps->rrl, + nps->rwt, nps->rwl, ipower / 10000, ipower % 10000, + apower / 10000, apower % 10000, nps->apw); +} + +static void +power_list(struct nvme_controller_data *cdata) +{ + int i; + + printf("\nPower States Supported: %d\n\n", cdata->npss + 1); + printf(" # Max pwr Enter Lat Exit Lat RT RL WT WL Idle Pwr Act Pwr Workloadd\n"); + printf("-- -------- --------- --------- -- -- -- -- -------- -------- --\n"); + for (i = 0; i <= cdata->npss; i++) + power_list_one(i, &cdata->power_state[i]); +} + +static void +power_set(int fd, int power, int workload, int perm) +{ + struct nvme_pt_command pt; + uint32_t p; + + p = perm ? (1u << 31) : 0; + memset(&pt, 0, sizeof(pt)); + pt.cmd.opc = NVME_OPC_SET_FEATURES; + pt.cmd.cdw10 = NVME_FEAT_POWER_MANAGEMENT | p; + pt.cmd.cdw11 = power | (workload << 5); + + if (ioctl(fd, NVME_PASSTHROUGH_CMD, &pt) < 0) + err(1, "set feature power mgmt request failed"); + + if (nvme_completion_is_error(&pt.cpl)) + errx(1, "set feature power mgmt request returned error"); +} + +static void +power_show(int fd) +{ + struct nvme_pt_command pt; + + memset(&pt, 0, sizeof(pt)); + pt.cmd.opc = NVME_OPC_GET_FEATURES; + pt.cmd.cdw10 = NVME_FEAT_POWER_MANAGEMENT; + + if (ioctl(fd, NVME_PASSTHROUGH_CMD, &pt) < 0) + err(1, "set feature power mgmt request failed"); + + if (nvme_completion_is_error(&pt.cpl)) + errx(1, "set feature power mgmt request returned error"); + + printf("Current Power Mode is %d\n", pt.cpl.cdw0); +} + +void +power(int argc, char *argv[]) +{ + struct nvme_controller_data cdata; + int ch, listflag = 0, powerflag = 0, power = 0, fd; + int workload = 0; + char *end; + + while ((ch = getopt(argc, argv, "lp:w:")) != -1) { + switch ((char)ch) { + case 'l': + listflag = 1; + break; + case 'p': + powerflag = 1; + power = strtol(optarg, &end, 0); + if (*end != '\0') { + fprintf(stderr, "Invalid power state number: %s\n", optarg); + power_usage(); + } + break; + case 'w': + workload = strtol(optarg, &end, 0); + if (*end != '\0') { + fprintf(stderr, "Invalid workload hint: %s\n", optarg); + power_usage(); + } + break; + default: + power_usage(); + } + } + + /* Check that a controller was specified. */ + if (optind >= argc) + power_usage(); + + if (listflag && powerflag) { + fprintf(stderr, "Can't set power and list power states\n"); + power_usage(); + } + + open_dev(argv[optind], &fd, 1, 1); + read_controller_data(fd, &cdata); + + if (listflag) { + power_list(&cdata); + goto out; + } + + if (powerflag) { + power_set(fd, power, workload, 0); + goto out; + } + power_show(fd); + +out: + close(fd); + exit(0); +} Modified: head/sys/dev/nvme/nvme.h ============================================================================== --- head/sys/dev/nvme/nvme.h Sat Jan 30 22:03:14 2016 (r295086) +++ head/sys/dev/nvme/nvme.h Sat Jan 30 22:48:06 2016 (r295087) @@ -392,6 +392,34 @@ enum nvme_activate_action { NVME_AA_ACTIVATE = 0x2, }; +struct nvme_power_state { + /** Maximum Power */ + uint16_t mp; /* Maximum Power */ + uint8_t ps_rsvd1; + uint8_t mps : 1; /* Max Power Scale */ + uint8_t nops : 1; /* Non-Operational State */ + uint8_t ps_rsvd2 : 6; + uint32_t enlat; /* Entry Latency */ + uint32_t exlat; /* Exit Latency */ + uint8_t rrt : 5; /* Relative Read Throughput */ + uint8_t ps_rsvd3 : 3; + uint8_t rrl : 5; /* Relative Read Latency */ + uint8_t ps_rsvd4 : 3; + uint8_t rwt : 5; /* Relative Write Throughput */ + uint8_t ps_rsvd5 : 3; + uint8_t rwl : 5; /* Relative Write Latency */ + uint8_t ps_rsvd6 : 3; + uint16_t idlp; /* Idle Power */ + uint8_t ps_rsvd7 : 6; + uint8_t ips : 2; /* Idle Power Scale */ + uint8_t ps_rsvd8; + uint16_t actp; /* Active Power */ + uint8_t apw : 3; /* Active Power Workload */ + uint8_t ps_rsvd9 : 3; + uint8_t aps : 2; /* Active Power Scale */ + uint8_t ps_rsvd10[9]; +} __packed; + #define NVME_SERIAL_NUMBER_LENGTH 20 #define NVME_MODEL_NUMBER_LENGTH 40 #define NVME_FIRMWARE_REVISION_LENGTH 8 @@ -532,7 +560,7 @@ struct nvme_controller_data { uint8_t reserved5[1344]; /* bytes 2048-3071: power state descriptors */ - uint8_t reserved6[1024]; + struct nvme_power_state power_state[32]; /* bytes 3072-4095: vendor specific */ uint8_t vs[1024];